#sparql #wikidata
#sparql #викиданные-служба запросов
Вопрос:
Примеры для подсчета экземпляров в query.wikidata.org (и в других местах) используйте wdt:P31/wdt:P279*
путь к свойству. Например, количество пользователей в Викиданных:
SELECT (COUNT(?item) AS ?count)
WHERE {
?item wdt:P31/wdt:P279* wd:Q5 .
}
таким образом, объекты, являющиеся подклассом human (я не думаю, что этот тип существует, но думаю, что «нобелевский лауреат» и т.д.), Включены. Но затем другие примеры, такие как «женщины с большинством дополнительных ссылок и без изображения, родившиеся в 1921 году или позже», которые здесь усечены:
SELECT ?s ?desc ?linkcount
WHERE
{
?s wdt:P31 wd:Q5 ; # human
wdt:P21 wd:Q6581072 ; # gender: female
wdt:P569 ?born .
FILTER (?born >= "1921-01-01T00:00:00Z"^^xsd:dateTime) .
...
не используйте wdt:P31/wdt:P279*
путь к свойству. Это вообще упущения (или, возможно, сделано для скорости?), или путь к свойству подкласса на самом деле не нужен в этих случаях, и я слишком разборчив, чтобы понять, почему?
Комментарии:
1. Что ж, вы абсолютно правы. Для 1) полноты и если 2) типы не материализованы, вам всегда придется использовать путь
wdt:P31/wdt:P279*
. Вы можете проверить, есть ли экземпляры, которые принадлежат неwd:Q5
напрямую, а одному из его подклассов черезSELECT ?s WHERE { ?s wdt:P31/wdt:P279 wd:Q5 filter not exists{?s wdt:P31 wd:Q5} }
— тем не менее, это всего лишь пример запроса, я не думаю, что автор думал о полноте при написании запроса соответственно. при описании запроса одной фразой.