Searching video contents in Plone
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 44 | |
Author | ||
License | CC Attribution 3.0 Germany: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/60239 (DOI) | |
Publisher | ||
Release Date | ||
Language | ||
Production Place | Namur, Belgium |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
Plone Conference 20227 / 44
10
14
22
23
26
27
40
00:00
Streaming mediaWeb pageBoom (sailing)Canadian Mathematical SocietyContent (media)SpacetimeDemo (music)Subject indexingSystem callWeb 2.0WebsiteBand matrixSoftwareMoment (mathematics)Photographic mosaicPoint (geometry)Hand fanTheory of relativityYouTubeNatural languageSoftware developerGoodness of fitSearch engine (computing)ScalabilityKey (cryptography)GUI widget1 (number)Process (computing)Speech synthesisTerm (mathematics)Right angleFreewareArithmetic meanStack (abstract data type)Point cloudGame theoryComputer fileGroup actionResultantMultiplication signHome pageFlow separationEnterprise resource planningProjective planeModule (mathematics)Intrusion detection systemPlanningCuboidMusical ensembleElectronic mailing listPhysical systemBitMessage passingOcean currentInheritance (object-oriented programming)Position operatorDefault (computer science)Representational state transferCompilerMaschinelle ÜbersetzungMereologyStreaming mediaLocal ringExtension (kinesiology)Revision controlDifferent (Kate Ryan album)Type theoryGraphical user interfaceLink (knot theory)Orientation (vector space)CASE <Informatik>Drop (liquid)Intelligent NetworkWordClassical physicsLibrary catalogDrag (physics)Event horizonElectronic visual displayFormal languageEntropie <Informationstheorie>Alpha (investment)Semantics (computer science)Cartesian coordinate systemMetadataProbability density function2 (number)Connectivity (graph theory)SurfaceCloningComa BerenicesAtomic nucleusLatent heatArmNuclear spaceCategory of beingDomain nameConnected spaceBoss CorporationWeb browserCodeSelf-organizationLevel (video gaming)Audio file formatDerivation (linguistics)Pattern recognitionVirtual machineFerry CorstenNumberScripting languageEmailPlastikkarteIdentifiabilityPresentation of a groupSet (mathematics)Power (physics)Communications protocolInformation securityRule of inferenceFreezingSequenceSpecial unitary groupComputing platformConfiguration spaceFocus (optics)Internet service providerComputer animation
02:06
Streaming mediaContent (media)Streaming mediaGoodness of fitMeeting/Interview
02:36
MereologySoftware developerComputer animation
03:04
Streaming mediaMusical ensemble2 (number)Meeting/Interview
03:36
NeuroinformatikInheritance (object-oriented programming)Multiplication signHand fanSoftwareMusical ensembleMeeting/Interview
04:31
Streaming mediaPoint (geometry)Information securityStreaming mediaArithmetic meanWeb 2.0Content (media)Computer animation
05:07
Web 2.0Band matrixStreaming mediaSystem callPermanentMeeting/Interview
05:50
Streaming mediaWeb 2.0Meeting/Interview
06:28
Arithmetic meanSpeech synthesisComputer animationMeeting/Interview
07:02
Process (computing)ScalabilityMeeting/Interview
07:32
ScalabilityStreaming mediaSequenceProcess (computing)Atomic nucleusFocus (optics)Computer animationMeeting/Interview
08:25
Inheritance (object-oriented programming)Streaming mediaComputer animation
08:54
Greatest elementWord2 (number)PlastikkarteIdentifiabilityProcess (computing)Lecture/ConferenceComputer animationMeeting/Interview
09:53
Domain nameNatural languageSubject indexingTheory of relativityLevel (video gaming)Arithmetic meanSemantics (computer science)Library catalogOcean currentMeeting/InterviewComputer animation
10:41
Content (media)Streaming mediaConnected spaceElectronic mailing listMeeting/InterviewProgram flowchart
11:11
BitStreaming mediaSubject indexingHome pageGUI widgetConfiguration spaceLecture/ConferenceComputer animation
11:57
OvalRandom numberStreaming mediaPlane (geometry)Finitary relationMenu (computing)Wide area networkStreaming mediaMereologySequence
12:32
Metropolitan area networkFreewareStreaming mediaMereologyBit
13:00
Quantum mechanicsSet (mathematics)Streaming mediaMeeting/Interview
13:43
Point cloudComputer fileScripting languageLink (knot theory)YouTubeLecture/ConferenceComputer animation
14:17
Web 2.0Subject indexingExtension (kinesiology)Graphical user interfaceMeeting/InterviewComputer animation
15:00
Link (knot theory)YouTubeWeb pageBitComputer animationProgram flowchart
15:40
Gamma functionStreaming mediaQuantum mechanicsMaxima and minimaYouTubeElectronic mailing listStreaming mediaCuboidDifferent (Kate Ryan album)Orientation (vector space)Computer animation
16:27
Game theoryStreaming mediaArithmetic meanComputer animationLecture/Conference
17:10
Plot (narrative)Physical systemArithmetic meanSelf-organizationLecture/Conference
17:46
Formal languagePhysical systemStreaming mediaMeeting/Interview
18:20
Uniformer RaumMereologyPhysical systemFocus (optics)Domain nameLatent heatCategory of beingLecture/ConferenceMeeting/InterviewComputer animation
18:50
Point cloudCommunications protocolCategory of beingPhysical systemStreaming mediaPresentation of a groupLecture/Conference
19:27
Form (programming)Block (periodic table)MereologyDerivation (linguistics)Term (mathematics)Virtual machineFuzzy logicResultantComputer animation
20:12
Arithmetic meanResultantMereologyFormal languageLecture/ConferenceMeeting/Interview
20:45
CompilerTranslation (relic)Computer animation
21:17
Point cloudExtension (kinesiology)Graphical user interfaceDrop (liquid)Drag (physics)Computer fileFormal languageRepresentational state transferComputer animation
21:51
Inheritance (object-oriented programming)WebsiteLink (knot theory)Computer animation
22:30
Installation artPlane (geometry)Right angleComputer animationSource code
23:05
Streaming mediaNormed vector spaceYouTubeLink (knot theory)Computer fileLecture/Conference
23:39
Streaming mediaLink (knot theory)Uniform resource locatorUniformer RaumDemo (music)Normed vector spaceElectronic mailing listPhysical systemLink (knot theory)Multiplication sign2 (number)CuboidComputer animation
24:45
Streaming mediaMenu (computing)Demo (music)Subject indexingGUI widgetStreaming mediaMetadataHome pageComputer animation
25:41
Maxima and minimaComputer animation
26:24
Computer clusterAlpha (investment)WebsiteSubject indexingMultiplication signDemo (music)CodeSearch engine (computing)Lecture/ConferenceComputer animation
26:56
ResultantSearch engine (computing)Electronic mailing listBitHome pageEnterprise resource planningComputer animationMeeting/Interview
27:46
Home pageMultiplication signResultantSoftware developerElectronic visual displayEntropie <Informationstheorie>Computer animation
28:44
ResultantContent (media)Canadian Mathematical SocietyClassical physicsEvent horizonSearch engine (computing)Electronic visual displayOcean currentComputer animation
29:43
Online helpCASE <Informatik>Content (media)Meeting/Interview
30:25
Electronic mailing listResultantSearch engine (computing)Natural languageProcess (computing)1 (number)Lecture/ConferenceComputer animation
31:03
NeuroinformatikPosition operatorResultantInheritance (object-oriented programming)Right angleElectronic mailing list
31:54
Gamma functionGame theoryWebsiteHome pagePoint cloudComputer fileSearch engine (computing)Game theoryResultantComputer animation
32:25
GUI widgetPhysical systemRight angleMultiplication signMessage passingComputer animation
32:53
Artificial neural networkPerfect groupProjective planeGUI widgetComputer fileComputer animationLecture/Conference
33:33
Home pageYouTubeInheritance (object-oriented programming)Real numberMultiplication sign
34:06
GUI widgetWebsiteMereologyElectronic mailing listContent (media)Type theoryConnectivity (graph theory)Web 2.0Meeting/InterviewLecture/Conference
34:46
Streaming mediaWordLibrary catalogCartesian coordinate system
35:27
Flow separationDifferent (Kate Ryan album)Multiplication sign
35:55
Turtle graphicsStreaming mediaComputer animation
Transcript: English(auto-generated)
02:05
Okay, so this talk is presented by Eric Breu. Eric is front-end developer, he has been working with Angular for years and he fell in love with Svelte two years ago. Today, the subject of his talk is about searching video contents in Plone.
02:35
Thank you. So, hi, good morning everybody. Just have been said, I used to be a front-end developer, not anymore that much, still part
02:45
of the community though, because I love you. And I'm a front-end developer working at Nuclea. So if you're old enough, and actually I have a feeling I'm starting a lot of talk
03:01
that way, like if you're old enough, I don't know what to think about that. Anyway, if you're old enough, you might know this song, Video Killed the Radio Star. Yeah, let's just play it for a second. Oh shit, it's not connected. Anyway, you got it.
03:21
You might know that one, it was a huge hit by the Buggers at the time. And interestingly enough, that was the very first music video that was aired on MTV in 1981, when MTV started, right? And well, at the time I was seven, I think, and I didn't add a TV set, because my parents
03:46
were hippies. But I had a computer though, because my parents were super cool. So anyway, I didn't add a TV set, I do not remember this video at all. And well, do you know what else Buggers had sung?
04:03
Yeah, me neither. So maybe they were just Radio Star. Anyway, one thing you might know, I guess everybody knows, right? Plone has been named after a rock band, right? The two co-founders were a fan of a music band named Plone.
04:20
And that's why we ended up with this Plone software thing. And well, when you think about that, you might think we are lucky, because imagine if they were a fan of the Buggles. Hey, welcome to the Buggle conference. Buggle is perfect, Buggle security is flawless, like Buggle has no bug, it would be weird for a software, I guess.
04:41
Anyway, I think the Buggles had a very valid point. Sorry. Come on. Yes. So, video killed the full text search. What do I mean by that? The web used to be about text content.
05:03
If you think about it, T in HTTP is the first one, mean text, and in HTML, T mean text as well. So that's about text. And on Mosaic, yeah, another if you're old enough moment, I'm afraid. On Mosaic, the first web browser, you could not see images unless you
05:21
declare X-V, an external software, to render images. So that's where we were at the beginning of web. But as the bandwidths grow, very rapidly, the web was full of images. And soon after, full of videos. You have video for everything. We are producing video permanently.
05:41
If you have a conf call with your team, that's a video. I don't know, if you talk at a conference just like now, that's a video. If you're a spacecraft launched by NASA to deflect an asteroid in middle of space, boom, that's a video too. So you have video everywhere, and video is super cool.
06:02
It's super cool. There are some problems though. First, we saw that yesterday, video has a carbon footprint, which is not that good. That's one thing. That's not my topic. The second problem is that they are not text. So it means that the full web stack that had been imaging originally, does not process well.
06:22
Does not work well with videos. So, the idea is what? Making video searchable. That's what you want. You want it to be as accessible as text, and accessible by all the different meaning you can put on this word, right? You want them accessible. So first thing to do, you need to extract the text.
06:42
So turn speech into text. Speech to text. That's a common feature. And actually, Brown community has been the very first one to come up with an efficient speech to text solution. It is called Moritz. Moritz can turn a live speech into text and publish it online as soon as the talk is finished.
07:06
And that's super cool. And I don't know if Moritz is here, but you can play Inception with the process. He's currently writing, I am saying, he's writing what I'm saying.
07:23
That's cool, right? That's super cool. But unfortunately, Moritz is not scalable. So, facing this problem, my first thought, my first approach was to make Moritz scalable. But Ramon, who's there, my colleague, and boss, and friend, who is probably a smarter engineer than I am,
07:45
created the Nuclei API to address this problem. Well, I guess that's the proper way. Still, I love my idea to have a scalable Moritz thing involving genetic cloning and stuff like that. It would have been cool, of course, ethical issues and so on.
08:01
But yeah, let's focus on Nuclei. Let's see how it process videos. So, you take a video. What is that? Yeah. So, I'm sorry, you might not hear it properly. I will try to turn on the sound as much as you can. It's from the Monty Python and the Holy Grail. And this sequence is called The Insulting French Man, which is one of my favorites, as you can imagine.
08:35
It's too bad because it's super funny. But anyway, so you have this video with an audio stream, right?
08:42
And obviously no caption, no transcript, nothing. You want to start from there. So, you would try the text. Okay, you get this.
09:00
Interesting, but probably not quite good enough for now. It's not making any sense. So, second step, you will gather the words into sentences and sentences into paragraph. And now it's starting making sense. That's the second step in the process of transcripting stuff. Then, Nuclei API goes one step further.
09:23
It will, from the different paragraph, it will extract key concepts. So, whatever the people are talking about. It's going to be mention of animals, of, I don't know, nationalities, persons, companies, countries. So, in this case, it's not a lot. But depending on the kind of document you might have, you might identify emails, credit card numbers, dates, financial amounts.
09:49
This kind of stuff is going to be extracted and identified as meaningful entities. In the domain of natural language processing, we call it Named Entity Recognition, NER, for short.
10:02
So, okay, we have all of those data. And now we're going to index it on various ways. So, we have the text, we have the sentences, we have the paragraph, and we have the entities. So, the key concept, let's say. Then we'll go into different index. We're going to, of course, provide full text search.
10:21
So, we index all the text. That's exactly what the current, your current Z catalog is doing, right? We also index the sentence for semantic search. That means we are extracting the meaning of the sentences. We are also indexing the paragraph to provide full search and the entities to build a relation map.
10:42
I mean, you can find connection between documents, between video resources or whatever content you have, because they are mentioning the same person or mentioning the same company or mentioning the same whatever, right? Connection like that. And from the semantic, you can start building answers,
11:04
because we are working at the meaning, on the meaning of stuff. So, you have not a list of keywords, you have a question, and you find something somewhere in your index which is talking about that, having the same meaning,
11:21
not just matching keywords, right? So, let's play a bit with the PlantConf video. So, we have our widget, our search widgets have been put on the homepage of the PlantConf. Maybe you noticed it, and I will try to show you what it does.
11:42
So, if I search for, let's say, configure a vocabulary, what it does, it will find, so that's the videos from last year and the year before, all the PlantConf videos have been indexed.
12:01
And what it does, it will find all the paragraphs talking about that topic, talking about configuring a vocabulary. And as you can see, it's a lot about Philippe. Philippe is really the guy to go to if you have a question about vocabularies. So, what's nice is if you click on any of those links, you will directly jump to this sequence of the video where Philippe is explaining,
12:24
so you cannot hear it, but you are directly going to this part of the video where he explains how to configure vocabularies. And you can do that with whatever you want, like, I don't know,
12:42
diazo rules, and it's a bit slow, I don't know. And same thing, you get a bunch of people talking about diazo rules, and you can jump directly to this part of the video. It's super powerful because instead of just guessing that such video might be about this topic
13:02
and then watching it entirely, unless you were there at the conference, so you know, yes, I remember ASCO was talking about this, I was about at the middle of his talk, so I will find it back myself. But if you don't, and most people won't, because they are just discovering this set of video, well, this is very helpful, because this is much more than just a title,
13:24
and then, well, play video and find out what you can find. That's much better. So, now I'm going to show you how you do that, this kind of stuff. Well, sorry.
13:41
Where is my mouse? Yes, it's here. Well, it's an API, so you can just push a file with cURL or Postman or whatever script you want to run. You just call an endpoint, and you push the file. So, just the file the way it is.
14:01
You don't have to analyze it, convert it into anything. It's not like Elasticsearch, right? Elasticsearch will only get text. So, if you have just a file, you need to convert it to text first before it is indexed. Here, you just take your MP3, your MP4, whatever it is. It could be a link to a webpage, a link to your YouTube page,
14:20
and you're going to index the video, index the web content, whatever it is. You push it the way it is, and that's unstructured data. So, we don't have to declare a schema or whatever. It takes the data, gets the content, gets the meaning, index it. So, that's the way to do it with the API, but we have other ways. So, sorry.
14:40
Let me show you, for example, I made a very simple Chrome extension. If you have any topic like, I don't know, this one, I'm going to right-click, and I cannot see more. Yeah, I can import it to nuclear. I upload, and, yeah, okay, I'm not connected, but anyway.
15:14
So, you can just find a webpage of interest and right-click the link and upload it. You can also go to a YouTube playlist, so the Plone Newsroom, for example,
15:25
and same here, you can import to nuclear. That was it. I'm a bit blind from here. Upload to nuclear, yes.
15:41
And it automatically gets the list of all the video from the playlist. You can select and select and upload. So, that's basically how I did it for the Plone conference. I went to the Plone channel, the video channel on YouTube for the different conference and just selected everything and pushed. So, that's just an handy way to go, but we have all the toolings, of course.
16:03
So, we have this dashboard where you can manage everything. Maybe I'm going to switch to the mic, please. Can I get the mic so I can see because I'm not in the right orientation. Maybe I should stop mirroring. Yeah, I don't know.
16:20
Anyway, so, yeah, here you can go to your different knowledge boxes. The knowledge box is basically the folder where you're going to put everything which is making sense together, that will be indexed together. So, here I think that's the one where we have all the video from Plone.
16:40
Yeah, all of them are there. If I just show you one thing about it. There's this one about the pandemic from Poland. Of course, it got transcripted. We got all the text. I'm sorry it's in French because it's taking my locals.
17:03
So, the UI is in French, but you'll get the meaning. Here are also what we call the insights. So, basically the entities that have been recognized. We have the dates. We have amounts, money amounts that have been identified. Nationalities. So, it was about China. It was about Indonesia, Portugal.
17:22
Organization has been identified too. Clean clothes campaign, for example. And all of that was obviously unknown from the system initially, right? We haven't trained a system to say, OK, clean clothes campaign is an organization. It has been identified as being an organization because of the meaning of the sentence where it was used.
17:42
So, it's not a system where you need to pre-train with a lot of concepts or label everything manually because you want the system then to know. No, it's just a modern language which understands what it is talking about and then will identify, OK, in this sentence I understand this is a person
18:01
and this is a date. OK? That's how it works. And you get all of that and it's indexed and you can then have connections. So, everywhere where clean clothes campaign is mentioned, you can go. You can find all the video with that, right? So, that's super powerful and super interesting. Of course, some concepts are going under the radar
18:22
because you might have some focus on a given domain, for example, and you want actually to annotate the system by yourself. So, everything that has been identified as being generic entities, you can also complete it by selecting any part of the text. So, I'm totally not seeing what I'm highlighting right now, but anyway,
18:41
you right-click it and you say, OK, this is this kind of category and you can create your arm. So, for example, if you're, I don't know, working on a specific domain like technology and you want to have all the protocol to be identified as being protocol, you're going to create a protocol category and then by yourself select, OK, HTTP, that's a protocol.
19:03
It might be a protocol and then the system will know and identify those entities on the next video you're going to index, right? So, that's what it does. I'm confused with my presentation for a bit.
19:23
OK. So, yeah, something I haven't shown is, but actually Ramon did it yesterday. I'm going to show a similar example. If you search for, I'm sorry, I'm not smart with this.
19:48
OK, I'm going to search solution for citizens and what I get, interestingly, is, I mean, I hope, I cannot read from here.
20:04
Yeah, that's the first part of the results. So, only the fuzzy search machine. So, only matching stuff mentioning citizens and solutions, right? Or closed term of it, derivative. But here we have the part where we have the semantic result. That's where we are matching the meaning of it
20:20
and what you can see here, it's not in English because we are matching meanings. So, whatever the sentence is written on, whatever language you're going to be, if it's in French or Spanish or Dutch, the meaning is the same. So, you can ask in any language. Solution for citizen is in English and it will match French text.
20:44
It will match, I think there is a Portuguese talk as well. It has been matched because it talks about that. So, it has nothing to do with the keyword itself. Citizen is not there because it's not a Portuguese name, OK?
21:01
And we are not translating anything. We are just matching the meaning. It's not a translation system, right? Just semantic analysis. So, that's basically what it does. Now, as I mentioned, it's an API. You can use the tooling we've developed.
21:23
If you are just totally not a developer, drag and drop files from the dashboard. In the dashboard, you can import by drag and drop and stuff like this. It's easy. There is this Chrome extension as well, but firstly, it's an API. So, it's documented obviously. We provide some SDK in JavaScript, supporting TypeScript, in Python, in PHP,
21:41
and probably more in the future. And anyway, it's just a simple REST API. So, there is not a lot of endpoints, so you can develop with whatever language you want. You are always able to do an HTTP request, right? It's super simple to use. But, obviously, I wanted to have something better for Plone. So, I created nuclear.plone, which is an add-on that you can install.
22:05
And from there, any content, any file, or any link you publish on a Plone site gets indexed on your knowledge box, and then you can benefit from the search of it. So, let's see what it does. And here, I'm very, very lost.
22:25
Yeah, it's probably not here.
22:46
Oh, is that the right one? Yes. Not logged in. That's a mistake. Sorry. Ten minutes? That's good.
23:06
So, yeah, I have here... Don't bother me, please. Yeah, I love security. So, here is my video folder.
23:21
Where I have created two things. Well, one of them is a link. It's a link to a YouTube video about Ada Lovelace. And the other one is a file about IdLamar. So, two very brilliant women who should all admire.
23:40
So, if you go in there, you'll see I have all a list of keywords that have been extracted from the system. I'll show you how it works. If I go there, and I add a new one. Oh, I'm going to be challenging.
24:01
This is add. So, I add a link.
24:22
Link is external. So, this is perfect. And you save if you publish. So, I don't know what publication is. Is that publish? Thank you. And I'm like blind, right?
24:41
So, then it goes to my knowledge box. It gets indexed. And of course, it takes a few minutes or seconds depending on the time. But what you get then is indexation of it. You can go to search. Anyway, you have a search. I will pass that. You have a search widget that you can run in there.
25:00
What I would like to show to you is if you go there on one of those documents and you have the actions, you can extract text. You get the transcript from the video, from the videos that have been generated. This transcript has been generated by Nuclea.
25:20
And you get it back in the page on your website. So, it means you can provide accessibility to the video you are publishing. What you can do as well is to get all the metadata. So, typically, here I want to extract the keywords.
25:43
So, that's the entities that have been identified on this video. And, I'm sorry, I'm very, very bad at this. Extract.
26:00
We have extra keywords somewhere? This one? Thank you. So, no, it's not working. Anyway, what you get, I'm sorry. It's downloading. It's downloading? It's not supposed to download anything. What you get is this. You get all the subjects, the planned subjects that are basically filled in by all the entities
26:21
that have been identified on the content, right? So, that's what it does. It's a super alpha version. It's not doing much for now. For example, it's not able to run over an existing website and index all the existing content, but that's some stuff we can do quite easily. Also, I'm planning to support Volto,
26:40
but I could not make it on time. But that's basically what, it's super simple. There's not a lot of code at all. It's super, super simple. So, that's the demo I was talking about. Something I haven't done, though, is to integrate it with the search engine of Plone. I could do that.
27:00
Maybe I will, but it's a bit of a risk because the search engine of Plone is expecting a list of results. And what we are providing here is more answers, like some paragraphs from anywhere, right? And it's not matching very well. We did a Drupal module as well, not ourselves, but still I was trying to interact with the team working on that.
27:22
And I realized, I saw that the current tool we have, like CMSs and stuff like this, ERPs and so on, are not built to match what the modern search engine can do. It's kind of challenging, and we've discovered several interesting stuff. First, pagination.
27:41
Who needs pagination? That's a crazy thing. As a user, we never go to the Google search page of results, right? Like, never. Sometimes you go to the second page of results. Like, maybe sometimes you do that. I do not remember personally when is the last time I went to the second page. But, yeah, we all know that, right?
28:01
We all do that. It's totally obvious to everyone. That's as users. But when suddenly we are developers. So we used to be a user one second ago. Now I'm a developer. And then all of a sudden we're like, oh, I have 2,000 results. Let's display them. User will love that, right? That's a typical developer dissociative disorder.
28:23
You know you won't use it. You know the user won't use it. Everybody just wants the 10 first best result. But, yeah, I have 2,000 results. What do you want me to do? Like, ignore them? You're crazy or what? No, I want to display them. So I have pagination like you go to the 15th page or whatever.
28:43
It's totally crazy. It does not serve anything. Same for sorting. Sorting by date or sorting alphabetically. What's the point? I mean, a search feature should always retrieve the best result. And when you have the best result, maybe you want to sort them by date.
29:01
Why not? I mean, it's okay. But sorting by date instead of sorting by relevance, that's crazy, right? It's actually assuming that relevance is not highly relevant. And that's actually not false if you consider the current search engines. They're not good.
29:21
And, of course, being able to display the most recent article or display events by date is important in a CMS. But that's where a global index, a catalog, whatever you call it, and a search engine are two different things. So be careful with that. Classical search feature is more about finding
29:41
a content you know about. You know it exists. You just don't remember where is it exactly, and search will find it for you. That's what it does. In that case, okay, sorting alphabetically or by date might help because you might have some clue. Okay, I think it starts by this word, or I think it was about two months ago
30:00
or something like that. So you have some hints that allow you to find it back, and those kind of sorting will make sense in this case. Just like search as you type, it seems to be an interesting feature. But it just assumes that user will instantaneously recognize the right content by seeing its title. It means he knows the content.
30:21
We are assuming they know the content that they are searching for. So to me, it's more navigation help than actual search, right? And the thing is users have been trained for years to use bad search engines. Users are super good at scanning a list of results and very rapidly identifying the bad ones
30:43
and the potentially good ones. Users, they do that without defaults, and they accept that the search engine might retrieve very bad results among others. It's okay, it's like that. So basically, users are the NLP layer of your search feature.
31:01
And yeah, that's a fact. Users are actually very good at natural language processing. So why not, right? Well, I think it's not fair. First, you are just relying on user to perform the feature you should provide by yourself. And also, we are just assuming users' abilities are good enough to scan results and find the good ones
31:23
because you're not able to do that by computation. But some people cannot do that. If you consider a visually impaired person, scanning a list of results is super painful because they will use an audio reader. And if you have 50 results before finding the right one, it's super painful.
31:40
So that's not okay. That's not okay. We should provide the best results in first position. And just that, that's what we should do. How many times? Okay. And so something super important as well, website is not just a bunch of pages anymore. You have video, you have audio files,
32:00
you have files on the cloud system, you have a lot of things that you cannot just manage with your current search engine. So it's changing the thing. And NLP is a game changer here because, well, people always needed an answer, not a result list. But we could only provide a result list. Well, that's not good enough now.
32:20
Now we have the tooling to provide better answering to questions. So what we need is to rethink the usage, rethink the UX, rethink everything about search. And it takes time because, I mean, we do have an API to provide that. We are building a widget which is trying to implement the right UX for that.
32:42
But a lot of system where we want to integrate, they will not fit in properly with that. So it's an effort, but we need to go to this next step. So my last message is just to try it. You can go to nuclea.com and register. It's free. With a free account, you can do a lot already, like a small project will fit in perfectly.
33:03
So it's just free, right? And if it's not fitting in because you have, let's say, several thousand of documents, then it's based on consumption. So it's not expensive at all. So just try it. And if you have ideas, if you have project or question, you just ask me and we can find a way to try it on.
33:21
I mean, it's extremely simple to try. You create an account. You have this dashboard. I demo you. You can just drag and drop a bunch of files from your customer and then already you have a widget. I haven't shown you how to generate a widget, but it's just a snippet. Just like when you embed a YouTube video, you go to a certain page on the dashboard and you have a snippet which is generated.
33:41
You copy past and put it somewhere. It's extremely simple. So if you want to try that with a real thing, it's super approachable. And yeah, thank you. Thank you very much.
34:01
I don't know if we have time for any questions. So is there just one question? Okay. You've shown a listing on the Plone.org website
34:22
and was that part of the nuclear widget or was it built in Volto? No, the widget is doing all of that. The widget is a web component totally isolated from the rest. We will not pollute CSS or anything. It's skinnable, though,
34:41
and it will show the results, show the preview, show everything. It manages everything. And what type of content can you preview? Because you have a video player. You can preview PDF, images, videos, text of any kind, and a Word document or whatever. All of that.
35:01
I have another question because I am building a somewhat similar application. It is a content catalog. And you were mentioning that search and catalog are different. Yes. And I agree, but usually catalogs also require search. So I understand your thinking,
35:23
but that would kind of separate the... It's difficult. Actually, the Drupal API was interesting because they are approaching that in a totally different way than Plone. And we can discuss about that later if you want. But, yeah, in Plone, it's not that easy to make the separation. And I'm thinking about some ways.
35:41
I don't have the perfect solution for now. Okay. Thank you. Okay, thank you, Eric. No more questions because time is here.