Примеры и подклассы викиданных

#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} } — тем не менее, это всего лишь пример запроса, я не думаю, что автор думал о полноте при написании запроса соответственно. при описании запроса одной фразой.