Hello
I understand the wikidata SPARQL label service only fetches the labels, but does not allow to search/filter on them; labels are also available in regulare rdfs:label on which a FILTER can be made. However I would like to do full-text search over labels, to e.g. feed an autocomplete search field, actually just like the usual top-right wikidata search field does. I would also be interested to combine this with a criteria on "instance of", to search only on instances of a given class.
Can I do that efficiently using the Wikidata SPARQL service ? or is there a separate API I could use ? (exemple welcome)
Thanks Thomas
Hello Thomas,
You can perform a full text search with the API, but not yet with SPARQL AFAIK. However, it is possible to call the API in a SPARQL query. For example, here is a query https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fperson%20%3FpersonLabel%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Amwapi%20%7B%0A%20%20%20%20%20%20bd%3AserviceParam%20wikibase%3Aapi%20%22EntitySearch%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20wikibase%3Aendpoint%20%22www.wikidata.org%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20mwapi%3Asearch%20%22einst%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20mwapi%3Alanguage%20%22en%22%20.%0A%20%20%20%20%20%20%3Fperson%20wikibase%3AapiOutputItem%20mwapi%3Aitem%20.%0A%20%20%7D%0A%20%20%3Fperson%20wdt%3AP31%20wd%3AQ5.%0A%20%20%0A%20%20%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%20%20%0A%20%20%0A%7D%20ORDER%20BY%20DESC(%3Fperson)%20LIMIT%2020 that looks for "human (Q5)" whose label contains the string "einst".
Hope this helps,
Ettore Rizza
On Fri, 4 Oct 2019 at 09:58, Thomas Francart thomas.francart@sparna.fr wrote:
Hello
I understand the wikidata SPARQL label service only fetches the labels, but does not allow to search/filter on them; labels are also available in regulare rdfs:label on which a FILTER can be made. However I would like to do full-text search over labels, to e.g. feed an autocomplete search field, actually just like the usual top-right wikidata search field does. I would also be interested to combine this with a criteria on "instance of", to search only on instances of a given class.
Can I do that efficiently using the Wikidata SPARQL service ? or is there a separate API I could use ? (exemple welcome)
Thanks Thomas
--
*Thomas Francart* -* SPARNA* Web de *données* | Architecture de l'*information* | Accès aux *connaissances* blog : blog.sparna.fr, site : sparna.fr, linkedin : fr.linkedin.com/in/thomasfrancart tel : +33 (0)6.71.11.25.97, skype : francartthomas _______________________________________________ Wikidata mailing list Wikidata@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata
Forgot to mention: you can do the same search using the API only: https://www.wikidata.org/w/api.php?action=wbsearchentities&search=einst&...
But not sure you can easily filter the results by "instance of".
Ettore Rizza
On Fri, 4 Oct 2019 at 10:15, Ettore RIZZA ettorerizza@gmail.com wrote:
Hello Thomas,
You can perform a full text search with the API, but not yet with SPARQL AFAIK. However, it is possible to call the API in a SPARQL query. For example, here is a query https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fperson%20%3FpersonLabel%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Amwapi%20%7B%0A%20%20%20%20%20%20bd%3AserviceParam%20wikibase%3Aapi%20%22EntitySearch%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20wikibase%3Aendpoint%20%22www.wikidata.org%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20mwapi%3Asearch%20%22einst%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20mwapi%3Alanguage%20%22en%22%20.%0A%20%20%20%20%20%20%3Fperson%20wikibase%3AapiOutputItem%20mwapi%3Aitem%20.%0A%20%20%7D%0A%20%20%3Fperson%20wdt%3AP31%20wd%3AQ5.%0A%20%20%0A%20%20%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%20%20%0A%20%20%0A%7D%20ORDER%20BY%20DESC(%3Fperson)%20LIMIT%2020 that looks for "human (Q5)" whose label contains the string "einst".
Hope this helps,
Ettore Rizza
On Fri, 4 Oct 2019 at 09:58, Thomas Francart thomas.francart@sparna.fr wrote:
Hello
I understand the wikidata SPARQL label service only fetches the labels, but does not allow to search/filter on them; labels are also available in regulare rdfs:label on which a FILTER can be made. However I would like to do full-text search over labels, to e.g. feed an autocomplete search field, actually just like the usual top-right wikidata search field does. I would also be interested to combine this with a criteria on "instance of", to search only on instances of a given class.
Can I do that efficiently using the Wikidata SPARQL service ? or is there a separate API I could use ? (exemple welcome)
Thanks Thomas
--
*Thomas Francart* -* SPARNA* Web de *données* | Architecture de l'*information* | Accès aux *connaissances* blog : blog.sparna.fr, site : sparna.fr, linkedin : fr.linkedin.com/in/thomasfrancart tel : +33 (0)6.71.11.25.97, skype : francartthomas _______________________________________________ Wikidata mailing list Wikidata@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata
Hello all,
Le ven. 4 oct. 2019 à 09:58, Thomas Francart thomas.francart@sparna.fr a écrit :
Hello
I understand the wikidata SPARQL label service only fetches the labels, but does not allow to search/filter on them; labels are also available in regulare rdfs:label on which a FILTER can be made.
See Etorre Rizza answer about filtering.
However I would like to do full-text search over labels, to e.g. feed an autocomplete search field,
I understand what you want to do but that is not called "full-text search". FTS means "inside the text" or "all the text" that does not apply to concept search or wikification.
The most common term for this kind of search is called "fuzzy search" or "spell checking" or "autocomplete". The basic algorithm is to search terms using prefixes of the input query.
More on that later </teaser>
---
Amirouche ~ amz3 ~ https://hyper.dev
If you use regular search rather than entity search, you can use WikibaseCirrusSearch https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:WikibaseCirrusSearch search keywords like "haswbstatement:P31=Q5". Note that this uses a different kind of search, though – I think it only matches full words (after stemming and other transformations?), not prefixes. Query Link https://query.wikidata.org/#SELECT%20%3Fperson%20%3FpersonLabel%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Amwapi%20%7B%0A%20%20%20%20bd%3AserviceParam%20wikibase%3Aapi%20%22Search%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wikibase%3Aendpoint%20%22www.wikidata.org%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mwapi%3Asrsearch%20%22einst%20haswbstatement%3AP31%3DQ5%22.%0A%20%20%20%20%3Fperson%20wikibase%3AapiOutputItem%20mwapi%3Atitle.%0A%20%20%7D%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%7D
Cheers, Lucas
On 04.10.19 10:22, Ettore RIZZA wrote:
Forgot to mention: you can do the same search using the API only: https://www.wikidata.org/w/api.php?action=wbsearchentities&search=einst&...
But not sure you can easily filter the results by "instance of".
Ettore Rizza
On Fri, 4 Oct 2019 at 10:15, Ettore RIZZA <ettorerizza@gmail.com mailto:ettorerizza@gmail.com> wrote:
Hello Thomas, You can perform a full text search with the API, but not yet with SPARQL AFAIK. However, it is possible to call the API in a SPARQL query. For example, here is a query <https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fperson%20%3FpersonLabel%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Amwapi%20%7B%0A%20%20%20%20%20%20bd%3AserviceParam%20wikibase%3Aapi%20%22EntitySearch%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20wikibase%3Aendpoint%20%22www.wikidata.org%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20mwapi%3Asearch%20%22einst%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20mwapi%3Alanguage%20%22en%22%20.%0A%20%20%20%20%20%20%3Fperson%20wikibase%3AapiOutputItem%20mwapi%3Aitem%20.%0A%20%20%7D%0A%20%20%3Fperson%20wdt%3AP31%20wd%3AQ5.%0A%20%20%0A%20%20%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%20%20%0A%20%20%0A%7D%20ORDER%20BY%20DESC(%3Fperson)%20LIMIT%2020> that looks for "human (Q5)" whose label contains the string "einst". Hope this helps, Ettore Rizza On Fri, 4 Oct 2019 at 09:58, Thomas Francart <thomas.francart@sparna.fr <mailto:thomas.francart@sparna.fr>> wrote: Hello I understand the wikidata SPARQL label service only fetches the labels, but does not allow to search/filter on them; labels are also available in regulare rdfs:label on which a FILTER can be made. However I would like to do full-text search over labels, to e.g. feed an autocomplete search field, actually just like the usual top-right wikidata search field does. I would also be interested to combine this with a criteria on "instance of", to search only on instances of a given class. Can I do that efficiently using the Wikidata SPARQL service ? or is there a separate API I could use ? (exemple welcome) Thanks Thomas -- * * *Thomas Francart* -*SPARNA* Web de _données_ | Architecture de l'_information_ | Accès aux _connaissances_ blog : blog.sparna.fr <http://blog.sparna.fr>, site : sparna.fr <http://sparna.fr>, linkedin : fr.linkedin.com/in/thomasfrancart <https://fr.linkedin.com/in/thomasfrancart> tel : +33 (0)6.71.11.25.97, skype : francartthomas _______________________________________________ Wikidata mailing list Wikidata@lists.wikimedia.org <mailto:Wikidata@lists.wikimedia.org> https://lists.wikimedia.org/mailman/listinfo/wikidata
Wikidata mailing list Wikidata@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata
Ettore, Lucas, thanks a lof for your answers, that's what I was looking for. Searching for an entity based on a label + language (and optionally additionnal criteria like instance of) looks like a reasonable use-case, this could be "packaged" inside magic triples to make this feature directly available in SPARQL (as other triplestores with full-text/index-based search are doing).
Cheers Thomas
Le ven. 4 oct. 2019 à 14:55, Lucas Werkmeister mail@lucaswerkmeister.de a écrit :
If you use regular search rather than entity search, you can use WikibaseCirrusSearch https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:WikibaseCirrusSearch search keywords like "haswbstatement:P31=Q5". Note that this uses a different kind of search, though – I think it only matches full words (after stemming and other transformations?), not prefixes. Query Link https://query.wikidata.org/#SELECT%20%3Fperson%20%3FpersonLabel%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Amwapi%20%7B%0A%20%20%20%20bd%3AserviceParam%20wikibase%3Aapi%20%22Search%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wikibase%3Aendpoint%20%22www.wikidata.org%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mwapi%3Asrsearch%20%22einst%20haswbstatement%3AP31%3DQ5%22.%0A%20%20%20%20%3Fperson%20wikibase%3AapiOutputItem%20mwapi%3Atitle.%0A%20%20%7D%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%7D
Cheers, Lucas On 04.10.19 10:22, Ettore RIZZA wrote:
Forgot to mention: you can do the same search using the API only: https://www.wikidata.org/w/api.php?action=wbsearchentities&search=einst&...
But not sure you can easily filter the results by "instance of".
Ettore Rizza
On Fri, 4 Oct 2019 at 10:15, Ettore RIZZA ettorerizza@gmail.com wrote:
Hello Thomas,
You can perform a full text search with the API, but not yet with SPARQL AFAIK. However, it is possible to call the API in a SPARQL query. For example, here is a query https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fperson%20%3FpersonLabel%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Amwapi%20%7B%0A%20%20%20%20%20%20bd%3AserviceParam%20wikibase%3Aapi%20%22EntitySearch%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20wikibase%3Aendpoint%20%22www.wikidata.org%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20mwapi%3Asearch%20%22einst%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20mwapi%3Alanguage%20%22en%22%20.%0A%20%20%20%20%20%20%3Fperson%20wikibase%3AapiOutputItem%20mwapi%3Aitem%20.%0A%20%20%7D%0A%20%20%3Fperson%20wdt%3AP31%20wd%3AQ5.%0A%20%20%0A%20%20%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%20%20%0A%20%20%0A%7D%20ORDER%20BY%20DESC(%3Fperson)%20LIMIT%2020 that looks for "human (Q5)" whose label contains the string "einst".
Hope this helps,
Ettore Rizza
On Fri, 4 Oct 2019 at 09:58, Thomas Francart thomas.francart@sparna.fr wrote:
Hello
I understand the wikidata SPARQL label service only fetches the labels, but does not allow to search/filter on them; labels are also available in regulare rdfs:label on which a FILTER can be made. However I would like to do full-text search over labels, to e.g. feed an autocomplete search field, actually just like the usual top-right wikidata search field does. I would also be interested to combine this with a criteria on "instance of", to search only on instances of a given class.
Can I do that efficiently using the Wikidata SPARQL service ? or is there a separate API I could use ? (exemple welcome)
Thanks Thomas
--
*Thomas Francart* -* SPARNA* Web de *données* | Architecture de l'*information* | Accès aux *connaissances* blog : blog.sparna.fr, site : sparna.fr, linkedin : fr.linkedin.com/in/thomasfrancart tel : +33 (0)6.71.11.25.97, skype : francartthomas _______________________________________________ Wikidata mailing list Wikidata@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata
Wikidata mailing listWikidata@lists.wikimedia.orghttps://lists.wikimedia.org/mailman/listinfo/wikidata
Wikidata mailing list Wikidata@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata
Great to learn about these features/extensions. However, I'm confused by the results in Lucas's example query for WikibaseCirrusSearch. How is the string "einst" being matched here?
Thanks, Tim
-- Tim A. Thompson Discovery Metadata Librarian Yale University Library
On Fri, Oct 4, 2019 at 8:54 AM Lucas Werkmeister mail@lucaswerkmeister.de wrote:
If you use regular search rather than entity search, you can use WikibaseCirrusSearch https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:WikibaseCirrusSearch search keywords like "haswbstatement:P31=Q5". Note that this uses a different kind of search, though – I think it only matches full words (after stemming and other transformations?), not prefixes. Query Link https://query.wikidata.org/#SELECT%20%3Fperson%20%3FpersonLabel%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Amwapi%20%7B%0A%20%20%20%20bd%3AserviceParam%20wikibase%3Aapi%20%22Search%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wikibase%3Aendpoint%20%22www.wikidata.org%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mwapi%3Asrsearch%20%22einst%20haswbstatement%3AP31%3DQ5%22.%0A%20%20%20%20%3Fperson%20wikibase%3AapiOutputItem%20mwapi%3Atitle.%0A%20%20%7D%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%7D
Cheers, Lucas On 04.10.19 10:22, Ettore RIZZA wrote:
Forgot to mention: you can do the same search using the API only: https://www.wikidata.org/w/api.php?action=wbsearchentities&search=einst&...
But not sure you can easily filter the results by "instance of".
Ettore Rizza
On Fri, 4 Oct 2019 at 10:15, Ettore RIZZA ettorerizza@gmail.com wrote:
Hello Thomas,
You can perform a full text search with the API, but not yet with SPARQL AFAIK. However, it is possible to call the API in a SPARQL query. For example, here is a query https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fperson%20%3FpersonLabel%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Amwapi%20%7B%0A%20%20%20%20%20%20bd%3AserviceParam%20wikibase%3Aapi%20%22EntitySearch%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20wikibase%3Aendpoint%20%22www.wikidata.org%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20mwapi%3Asearch%20%22einst%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20mwapi%3Alanguage%20%22en%22%20.%0A%20%20%20%20%20%20%3Fperson%20wikibase%3AapiOutputItem%20mwapi%3Aitem%20.%0A%20%20%7D%0A%20%20%3Fperson%20wdt%3AP31%20wd%3AQ5.%0A%20%20%0A%20%20%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%20%20%0A%20%20%0A%7D%20ORDER%20BY%20DESC(%3Fperson)%20LIMIT%2020 that looks for "human (Q5)" whose label contains the string "einst".
Hope this helps,
Ettore Rizza
On Fri, 4 Oct 2019 at 09:58, Thomas Francart thomas.francart@sparna.fr wrote:
Hello
I understand the wikidata SPARQL label service only fetches the labels, but does not allow to search/filter on them; labels are also available in regulare rdfs:label on which a FILTER can be made. However I would like to do full-text search over labels, to e.g. feed an autocomplete search field, actually just like the usual top-right wikidata search field does. I would also be interested to combine this with a criteria on "instance of", to search only on instances of a given class.
Can I do that efficiently using the Wikidata SPARQL service ? or is there a separate API I could use ? (exemple welcome)
Thanks Thomas
--
*Thomas Francart* -* SPARNA* Web de *données* | Architecture de l'*information* | Accès aux *connaissances* blog : blog.sparna.fr, site : sparna.fr, linkedin : fr.linkedin.com/in/thomasfrancart tel : +33 (0)6.71.11.25.97, skype : francartthomas _______________________________________________ Wikidata mailing list Wikidata@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata
Wikidata mailing listWikidata@lists.wikimedia.orghttps://lists.wikimedia.org/mailman/listinfo/wikidata
Wikidata mailing list Wikidata@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata
On 10/4/19 3:58 AM, Thomas Francart wrote:
Hello
I understand the wikidata SPARQL label service only fetches the labels, but does not allow to search/filter on them; labels are also available in regulare rdfs:label on which a FILTER can be made. However I would like to do full-text search over labels, to e.g. feed an autocomplete search field, actually just like the usual top-right wikidata search field does. I would also be interested to combine this with a criteria on "instance of", to search only on instances of a given class.
Can I do that efficiently using the Wikidata SPARQL service ? or is there a separate API I could use ? (exemple welcome)
Thanks Thomas
--
*Thomas Francart* -*SPARNA* Web de _données_ | Architecture de l'_information_ | Accès aux _connaissances_ blog : blog.sparna.fr http://blog.sparna.fr, site : sparna.fr http://sparna.fr, linkedin : fr.linkedin.com/in/thomasfrancart https://fr.linkedin.com/in/thomasfrancart tel : +33 (0)6.71.11.25.97, skype : francartthomas
Hi Thomas,
Remember, we also publish a SPARQL Endpoint for Wikdata access [1]. You can repeat your tests there too.
Example (note that the retry loop indicates resources limits of this particular instance setup):
Search on "Paris"
http://wikidata.demo.openlinksw.com/fct/facet.vsp?qxml=%3C%3Fxml%20version%3... http://lod.openlinksw.com/fct/facet.vsp?qxml=%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20%3F%3E%3Cquery%20inference%3D%22%22%20same-as%3D%22%22%20view3%3D%22%22%20s-term%3D%22%22%20c-term%3D%22%22%3E%3Ctext%3EParis%3C%2Ftext%3E%3Cview%20type%3D%22text-d%22%20limit%3D%2220%22%20offset%3D%22%22%20%2F%3E%3C%2Fquery%3E
Config:
OpenLink Virtuoso version 08.03.3315 as of Sep 4 2019, on Linux (x86_64-generic-linux-glibc25), Single-Server Edition (378 GB total memory)
Same thing using the LOD Cloud cache instance, where data is a little out of date also:
http://lod.openlinksw.com/fct/facet.vsp?qxml=%3C%3Fxml%20version%3D%221.0%22...
Config:
OpenLink Virtuoso version 07.20.3224 as of Dec 19 2017, on Linux (i686-generic-linux-glibc212-64), Cluster Edition (4 server processes, 756 GB total memory)
Links
[1] http://wikidata.demo.openlinksw.com/fct
[2] http://wikidata.demo.openlinksw.com/sparql
On 10/4/19 10:57 AM, Kingsley Idehen wrote:
On 10/4/19 3:58 AM, Thomas Francart wrote:
Hello
I understand the wikidata SPARQL label service only fetches the labels, but does not allow to search/filter on them; labels are also available in regulare rdfs:label on which a FILTER can be made. However I would like to do full-text search over labels, to e.g. feed an autocomplete search field, actually just like the usual top-right wikidata search field does. I would also be interested to combine this with a criteria on "instance of", to search only on instances of a given class.
Can I do that efficiently using the Wikidata SPARQL service ? or is there a separate API I could use ? (exemple welcome)
Thanks Thomas
--
*Thomas Francart* -*SPARNA* Web de _données_ | Architecture de l'_information_ | Accès aux _connaissances_ blog : blog.sparna.fr http://blog.sparna.fr, site : sparna.fr http://sparna.fr, linkedin : fr.linkedin.com/in/thomasfrancart https://fr.linkedin.com/in/thomasfrancart tel : +33 (0)6.71.11.25.97, skype : francartthomas
Hi Thomas,
Remember, we also publish a SPARQL Endpoint for Wikdata access [1]. You can repeat your tests there too.
Example (note that the retry loop indicates resources limits of this particular instance setup):
Search on "Paris"
http://wikidata.demo.openlinksw.com/fct/facet.vsp?qxml=%3C%3Fxml%20version%3... http://lod.openlinksw.com/fct/facet.vsp?qxml=%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20%3F%3E%3Cquery%20inference%3D%22%22%20same-as%3D%22%22%20view3%3D%22%22%20s-term%3D%22%22%20c-term%3D%22%22%3E%3Ctext%3EParis%3C%2Ftext%3E%3Cview%20type%3D%22text-d%22%20limit%3D%2220%22%20offset%3D%22%22%20%2F%3E%3C%2Fquery%3E
Config:
OpenLink Virtuoso version 08.03.3315 as of Sep 4 2019, on Linux (x86_64-generic-linux-glibc25), Single-Server Edition (378 GB total memory)
Same thing using the LOD Cloud cache instance, where data is a little out of date also:
http://lod.openlinksw.com/fct/facet.vsp?qxml=%3C%3Fxml%20version%3D%221.0%22...
Config:
OpenLink Virtuoso version 07.20.3224 as of Dec 19 2017, on Linux (i686-generic-linux-glibc212-64), Cluster Edition (4 server processes, 756 GB total memory)
Links
[1] http://wikidata.demo.openlinksw.com/fct
[2] http://wikidata.demo.openlinksw.com/sparql
-- Regards,
Kingsley Idehen Founder & CEO OpenLink Software Home Page: http://www.openlinksw.com Community Support: https://community.openlinksw.com Weblogs (Blogs): Company Blog: https://medium.com/openlink-software-blog Virtuoso Blog: https://medium.com/virtuoso-blog Data Access Drivers Blog: https://medium.com/openlink-odbc-jdbc-ado-net-data-access-drivers
Personal Weblogs (Blogs): Medium Blog: https://medium.com/@kidehen Legacy Blogs: http://www.openlinksw.com/blog/~kidehen/ http://kidehen.blogspot.com
Profile Pages: Pinterest: https://www.pinterest.com/kidehen/ Quora: https://www.quora.com/profile/Kingsley-Uyi-Idehen Twitter: https://twitter.com/kidehen Google+: https://plus.google.com/+KingsleyIdehen/about LinkedIn: http://www.linkedin.com/in/kidehen
Web Identities (WebID): Personal: http://kingsley.idehen.net/public_home/kidehen/profile.ttl#i : http://id.myopenlink.net/DAV/home/KingsleyUyiIdehen/Public/kingsley.ttl#this
SPARQL Query variants:
Wikidata SPARQL Endpoint at http://wikidata.demo.openlinksw.com/sparql :
https://wikidata.demo.openlinksw.com/sparql?default-graph-uri=&query=%0D...
It matches the German descriptions (German „einst“ = English “once”, “formerly” – the results are described as having been civil rights activists in the GDR).
On 04.10.19 16:55, Tim Thompson wrote:
Great to learn about these features/extensions. However, I'm confused by the results in Lucas's example query for WikibaseCirrusSearch. How is the string "einst" being matched here?
Thanks, Tim
-- Tim A. Thompson Discovery Metadata Librarian Yale University Library
On Fri, Oct 4, 2019 at 8:54 AM Lucas Werkmeister <mail@lucaswerkmeister.de mailto:mail@lucaswerkmeister.de> wrote:
If you use regular search rather than entity search, you can use WikibaseCirrusSearch <https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:WikibaseCirrusSearch> search keywords like "haswbstatement:P31=Q5". Note that this uses a different kind of search, though – I think it only matches full words (after stemming and other transformations?), not prefixes. Query Link <https://query.wikidata.org/#SELECT%20%3Fperson%20%3FpersonLabel%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Amwapi%20%7B%0A%20%20%20%20bd%3AserviceParam%20wikibase%3Aapi%20%22Search%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wikibase%3Aendpoint%20%22www.wikidata.org%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mwapi%3Asrsearch%20%22einst%20haswbstatement%3AP31%3DQ5%22.%0A%20%20%20%20%3Fperson%20wikibase%3AapiOutputItem%20mwapi%3Atitle.%0A%20%20%7D%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%7D> Cheers, Lucas On 04.10.19 10:22, Ettore RIZZA wrote:
Forgot to mention: you can do the same search using the API only: https://www.wikidata.org/w/api.php?action=wbsearchentities&search=einst&language=en&format=json But not sure you can easily filter the results by "instance of". Ettore Rizza On Fri, 4 Oct 2019 at 10:15, Ettore RIZZA <ettorerizza@gmail.com <mailto:ettorerizza@gmail.com>> wrote: Hello Thomas, You can perform a full text search with the API, but not yet with SPARQL AFAIK. However, it is possible to call the API in a SPARQL query. For example, here is a query <https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fperson%20%3FpersonLabel%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Amwapi%20%7B%0A%20%20%20%20%20%20bd%3AserviceParam%20wikibase%3Aapi%20%22EntitySearch%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20wikibase%3Aendpoint%20%22www.wikidata.org%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20mwapi%3Asearch%20%22einst%22%20.%0A%20%20%20%20%20%20bd%3AserviceParam%20mwapi%3Alanguage%20%22en%22%20.%0A%20%20%20%20%20%20%3Fperson%20wikibase%3AapiOutputItem%20mwapi%3Aitem%20.%0A%20%20%7D%0A%20%20%3Fperson%20wdt%3AP31%20wd%3AQ5.%0A%20%20%0A%20%20%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%20%20%0A%20%20%0A%7D%20ORDER%20BY%20DESC(%3Fperson)%20LIMIT%2020> that looks for "human (Q5)" whose label contains the string "einst". Hope this helps, Ettore Rizza On Fri, 4 Oct 2019 at 09:58, Thomas Francart <thomas.francart@sparna.fr <mailto:thomas.francart@sparna.fr>> wrote: Hello I understand the wikidata SPARQL label service only fetches the labels, but does not allow to search/filter on them; labels are also available in regulare rdfs:label on which a FILTER can be made. However I would like to do full-text search over labels, to e.g. feed an autocomplete search field, actually just like the usual top-right wikidata search field does. I would also be interested to combine this with a criteria on "instance of", to search only on instances of a given class. Can I do that efficiently using the Wikidata SPARQL service ? or is there a separate API I could use ? (exemple welcome) Thanks Thomas -- * * *Thomas Francart* -*SPARNA* Web de _données_ | Architecture de l'_information_ | Accès aux _connaissances_ blog : blog.sparna.fr <http://blog.sparna.fr>, site : sparna.fr <http://sparna.fr>, linkedin : fr.linkedin.com/in/thomasfrancart <https://fr.linkedin.com/in/thomasfrancart> tel : +33 (0)6.71.11.25.97, skype : francartthomas _______________________________________________ Wikidata mailing list Wikidata@lists.wikimedia.org <mailto:Wikidata@lists.wikimedia.org> https://lists.wikimedia.org/mailman/listinfo/wikidata _______________________________________________ Wikidata mailing list Wikidata@lists.wikimedia.org <mailto:Wikidata@lists.wikimedia.org> https://lists.wikimedia.org/mailman/listinfo/wikidata
_______________________________________________ Wikidata mailing list Wikidata@lists.wikimedia.org <mailto:Wikidata@lists.wikimedia.org> https://lists.wikimedia.org/mailman/listinfo/wikidata
Wikidata mailing list Wikidata@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata