Hi!

> There is a performance issue with the labelling service. Using labels
> makes even simple queries time out. For example this one:
> 
> SELECT $p $pLabel
> WHERE {
>    $p wdt:P31 _:bnode .
>    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
> } LIMIT 11

I suspect the issue here can be that it tries to calculate the full set
of values before applying service. Which may make sense if the service
is external, but if it is internal and result set is huge it obviously
is not working.

Other alternative can be, since you are just looking for English labels,
to use direct query approach:

SELECT $p $pLabel
WHERE {
   $p wdt:P31 _:bnode .
   OPTIONAL {
   $p rdfs:label $pLabel .
   FILTER(lang($pLabel) = "en")
   }
} LIMIT 11


This seems to work just fine. You lose a bit of added value on the
service (nicer no-label labels) but you gain a lot of speed.

In any case, I'll raise this issue with Blazegraph and it also may be
worth to submit Phabricator issue about it.
-- 
Stas Malyshev
smalys...@wikimedia.org

_______________________________________________
Wikidata mailing list
Wikidata@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikidata

Reply via email to