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(a)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(a)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(a)lists.wikimedia.org <mailto:Wikidata@lists.wikimedia.org>
https://lists.wikimedia.org/mailman/listinfo/wikidata
_______________________________________________
Wikidata mailing list
Wikidata(a)lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikidata