Another update<br><br>I've pushed my changes into the feature/newIndexer branch. If someone could review it, it would be nice.<br><br>The current architecture consists of 2 queues - BasicIndexingQueue and FileIndexingQueues. <br>
<br>The BasicIndexing queues just extracts the mimetype, stat results and url. On my system, with the latest Soprano, I manage around 10 files per second. This queue is NOT throttled in any way, and make virtuoso peak around 70% of one cpu. I'm still working on reducing this. I would ideally like this part to not be noticeable. Even if it is working on full speed.<br>
<br>The FileIndexingQueue calls the 'nepomukindexer' process which extracts the actual metadata from the file. It only works when the system is IDLE. This is monitored using the KIdleTime, which is not that great, since I could have left a compiling job and during that time I don't want the file indexing to start. Ditto when watching an HD movie.<br>
<br>Here is what is left -<br><br>1. The Nepomuk Controller widget needs to be updated properly. I'm not sure if I should inform the controller about the basic indexing. Any opinions?<br><br>2. Event Monitoring - Pausing on battery and all. For now the old approach is being used that nothing gets indexed when on battery, but I'm not sure if that is a good idea. I think I'm going to change it to only pause the file indexing queue when on battery.<br>
<br>3. Separate Process - It is not required at all. I would however like to keep it for debugging purposes. If none has any problems, I'll stop the new process approach, but still keep the nepomukindexer executable.<br>
<br>4. Plugin Interface - They are currently called Extractors which is a lousy name, but I couldn't come up with anything better. We need a better name and a proper interface. I've just hacked together a plugin system without thinking about the future design too much. This can be a good thing and a bad thing.<br>
<br>We will have to release a public interface for 4.10. Specially, if we want other people to write plugins.<br><br>5. Plugins - They are only 5 plugins so far, and I have no plans of writing any more. They are extremely simple to write, and my time is better spent doing other things. I think this is an amazing place to get people interested. So, we need to finalize (4) so that I can blog about it and start talking about it.<br>
<br>6. Packagers - I talked to Will (Open Suse) about the new approach, and they would like the plugins to be in a separate tarball / repo. It's a lot easier for them to ship it that way. I have no problem with that. Does anyone have any opinions?<br>
<br>7. Needs a proper review - Someone (not just Sebastian) needs to review the code. The Nepomuk related part isn't that much, and it's not scary. So please review it. I'd like a proper "Ship it" before I merge it into master, and I would like to get it into master this month.<br>
<br>That's about it :)<br><br><div class="gmail_quote">On Wed, Sep 12, 2012 at 9:18 PM, Vishesh Handa <span dir="ltr"><<a href="mailto:me@vhanda.in" target="_blank">me@vhanda.in</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hey everyone<br><br>Quick update. We have analyzers for -<br><br>* taglib<br>* exiv2<br>* ffmpeg<br>* pdf<br>* plain text files<br><br>Documents are still a problem. I've contacted the Calligra team. I'll let you know what they say.<br>

<br>The analyzers work pretty well. I might just code an epub based analyzer today.<br><br>Tomorrow, I'll start working on a plugin based architecture, and adding two queues in the index scheduler. One which will immediately call the SimpleIndexer to just save the basic metadata, and the other one will only work when on idle. It'll do the proper indexing for the file.<br>

<br>The obvious problem to this approach is that we need a way of saying that this file has passed the first indexing level, and needs to go through the second level. Maybe a new property for that?<br><br><br><div class="gmail_quote">
<div class="im">
On Tue, Sep 11, 2012 at 8:18 PM, Sebastian Trüg <span dir="ltr"><<a href="mailto:sebastian@trueg.de" target="_blank">sebastian@trueg.de</a>></span> wrote:<br></div><div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

I like this.<br>
But I would vote for a plugin system nonetheless. A simple one though. A plugin can register for one or more mimetypes and then it simply gets the file path and returns a SimpleResourceGraph. You merge all and are done. Plugins should never deal with file size, mimetype, or any of those basic things the framework can handle.<br>


<br>
This means that the first sweep is done without plugins, the second one would call the plugins and the third one, well, that could be yet another plugin system which does use RDF types instead of mimetypes. For example: the TV show plugin handles nfo:Video. The framework thus calls the plugin, provides the path and a handle to the existing metadata. The plugin can then simply run its filename analysis and continue from there.<br>


<br>
OK, one issue we have here is the following: the tv show extractor for example works better when run on sets of video files, preferably a whole season. Then it only needs to get feedback from the user once or can even do its job automatically. This, however, means that third-sweep plugins would need an option "can-handle-more-than-one-<u></u>file-at-a-time".<br>


<br>
My 2cents.<div><div><br>
<br>
On 09/11/2012 04:06 PM, Alex Fiestas wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I think we've discussed this somewhere but I don't remember the outcome of the<br>
discussion xD<br>
<br>
I think that would be really interesting to have an indexer that does a 2pass<br>
strategy.<br>
<br>
First pass will index only basic data such a name, dates, mimetype.<br>
<br>
Second pass will index specific stuff, previews, texts, tags...<br>
<br>
Doing this, we can even add third party "information fetchers" as a 3 pass,<br>
for example to get information about tv shows and such.<br>
<br>
Let's put an example:<br>
<br>
-New file in my Downlaod folder detected<br>
-Quick super fast indexer indexs data, name, mimetype<br>
          From this point, this file is already usable in Nepomuk<br>
-Second pass, indexing tags, previews<br>
-Third pass (this can be onDemand via GUI) information from the internetz is<br>
fetched.<br>
<br>
I got this idea from spotlight (osx indexer metadata thing), the most obvious<br>
way of seeing this in osx is when a new external storage is plugged, files<br>
will get indexed super fast but all you will get if you perform a search is<br>
going ot be filenames, not even mimetypes !<br>
<br>
Cheerz.<br>
______________________________<u></u>_________________<br>
Nepomuk mailing list<br>
<a href="mailto:Nepomuk@kde.org" target="_blank">Nepomuk@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/nepomuk" target="_blank">https://mail.kde.org/mailman/<u></u>listinfo/nepomuk</a><br>
<br>
</blockquote>
______________________________<u></u>_________________<br>
Nepomuk mailing list<br>
<a href="mailto:Nepomuk@kde.org" target="_blank">Nepomuk@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/nepomuk" target="_blank">https://mail.kde.org/mailman/<u></u>listinfo/nepomuk</a><br>
</div></div></blockquote></div></div></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><br>-- <br><span style="color:rgb(192,192,192)">Vishesh Handa</span><br><br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br><span style="color:rgb(192,192,192)">Vishesh Handa</span><br><br>