SPARQL для охвата всех вложенных свойств свойства

#sparql #wikidata

#sparql #викиданные

Вопрос:

Я хочу, чтобы все элементы викиданных, которые закончились, поэтому я написал это:

 ?item wdt:P582 ?endtime.
  

Проблема: он не включает элементы, которые были «отменены».
отменено — это вложенное свойство конечного времени.

ВОПРОС: Как охватить все вложенные свойства?


Текущий запрос, который не включает вложенные свойства:

 SELECT
    ?item ?endtime
WHERE {
    ?item p:P31/ps:P31/wdt:P279* wd:Q3917681. # Embassies...
    ?item wdt:P582 ?endtime. # ... that have ended
}
  

Я мог бы выполнить ОБЪЕДИНЕНИЕ со всеми известными вложенными свойствами, но в будущем могут появиться новые вложенные свойства.

Комментарии:

1. ?p_ wdt:P1647* wd:P582 . ?p_ wikibase:directClaim ?p . ?item wdt:P31/wdt:P279* wd:Q3917681 . ?item ?p ?endtime . Вы также можете добавить DISTINCT .

Ответ №1:

Если Викиданные включают отношения вложенных свойств, вам просто нужно:

 ?p rdfs:subPropertyOf* wdt:P582 .
?item ?p ?endtime.
  

Комментарии:

1. Сэр, для меня большая честь отклонить ваш ответ! Нюанс заключается в том, что wdt:P1647 (что аналогично rdfs:subPropertyOf ) соединяет элементы свойства ( wd:P... ), а не истинные предикаты ( wdt:P... ) .

2. Вопрос @stanislavkralin OP включал ?item wdt:P582 ?endtime. и не указывал никаких объявлений префикса. Итак, является ли эта часть запроса OP правильной, тогда OP хотел бы использовать ее вложенные свойства. Даже если могут существовать веб-интерфейсы запросов, которые предопределяют определенные пространства имен, они, как известно, со временем меняются. Например, некоторые пространства имен, которые конечная точка DBpedia использовала для объявления, изменились. Также возможно, что OP указал нестандартный префикс.

3. конечно, префиксы являются обычными, но разницы между ними нет, так же как и разницы между объектами свойств и истинными предикатами в викиданных. mediawiki.org/wiki/Wikibase/Indexing/… Вот ?p wdt:P1647 wd:P582 почему работает, а ?p wdt:P1647 wdt:P582 не работает. .