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