Hi, I just released Nepoogle v0.7 and I think that it's time to call for some feedback, actually I only received feedback from my couple and opinions from only one person is not the best scenery to develop a good application. If you do not know Nepoogle will simply say that is an application to perform advanced searches in the Nepomuk database.
0.7 version has achieved a milestone because for first time Nepoogle supports Nepomuk query engine, not the full one but Nepomuk::Query::QueryParser(). This engine is very simple but is part of Nepomuk API and is relevant because now Nepoogle supports two search engines, internal and QueryParser, and two interfaces, console and gui. Since my first efforts I learn some things about SPARQL and I'm know how to build fast SPARQL queries so I'm ready to begin the second version of my query engine, with parenthesis support, and I would like so much some feedback about query language syntax. I think that I achieved some flexibility but I'm not sure if I'm forgetting something. With shortcuts you don't need to know about ontologies but If you have this knowledge you can use it to build powerful queries. For example, even there isn't exif shortcuts is easy search in exif data if you known proper ontologies (you can view ontologies names in resource viewer tooltips): *nexif:model:"GT-i5700" nexif:make:samsung* and all photos taken with my old mobile are displayed or, if I'm looking for all photos taken without flash using the Nikon D5000, I can use: *nexif:make:"nikon" nexif:model:"D5000" nexif:flash:0* and even simple relations could be expressed: *nmm:director->nco:fullname:Ford* will search for movies with a director who's full name contains the word "Ford". Obviously this is not as easy as using shortcuts, in this case shorcut is available so you can simply write "*director:Ford*", but at least Nepoogle it's not restricted to the ontologies I implemented. If you know the ontology you can search using it. So before I begin to write the second version of my query engine some query language feedback are welcome. If you are interested actual syntax, extracted from Nepoogle's help, is the next one: query :== item [[logop] item]... | command | uri item :== [ontology:][op]text logop :== and | or op :== + | - | < | <= | > | >= ontology :== [ontitem=]ontitem[->[ontitem=]ontitem]]... ontitem :== shortcutontology | shortontology | fullontology shortcutontology :== actor | album | albums | altlabel | composer | contact | contacts | creator | description | director | discnumber | episode | fullname | genre | hastag | height | mimetype | musicpieces | movies | name | numericrating | performer | producer | playcount | preflabel | rating | season | setnumber | tag | title | tracknumber | tvserie | tvseries | tvshow | type | url | usagecount | width | writer shortontology :== prefix:name fullontology :== http://url text :== string | number string :== chars | "chars" | 'chars' number :== 0..9 chars :== any number of utf-8 characters command :== instruction[:string] instruction :== --actors | --albums | --audios | --composers | --contacts | --creators | --directors | --genres | --help | --images | --movies | --musicpieces | --performers | --producers | --quit | --tags | --tvseries | --tvshows | --videos | --writers On the other side there is the gui that is not integrated with KDE, because I lack of knowledge and time, but is quite flexible. In v0.7 I added support to templates, for example this is the template used to display movies information: "<b>Title</b>: {nie:title|l|of|ol}[<br /><b>Rating</b>: {nao:numericRating}]<br /><b>Actors</b>: {SPARQL}SELECT DISTINCT ?uri ?value WHERE { <%(uri)s> nmm:actor ?uri . ?uri nco:fullname ?value . } ORDER BY ?value|l|s:actor{/SPARQL}[<br /><b>Description</b>: {nie:description}]" so customize or add new visualization formats is really easy, and even SPARQL is supported. Sadly external configuration file is not available yet but I will add this feature soon and, if I have time, even I will add support to templates in the resource viewer. I think that the best solution for Nepoogle's gui is a kio but actually I'm more interested in queries than in interface and write a kio seems complicated. If there is other alternatives I can't see it so suggestions are welcome. Thanks for reading :). * * -- Best wishes, Ignacio
_______________________________________________ Nepomuk mailing list [email protected] https://mail.kde.org/mailman/listinfo/nepomuk
