Запрос викиданных на предмет ограничения свойства

TL; DR
Как запросить (sparql) о свойствах собственности?

Или ..
Итак, в рамках моего проекта мне нужно найти свойства в викиданных, которые имеют какие-либо временные ограничения, а именно «время начала» и «время окончания». Я пробовал этот запрос:

SELECT DISTINCT ?prop WHERE {
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
  ?person wdt:P31 wd:Q5.
  ?person ?prop ?statement.
  ?statement pq:P580 ?starttime.
  ?statement pq:P582 ?endtime.
}
LIMIT 200

** да, свойства должны быть связаны с людьми. В любом случае, я получаю хорошие результаты, например:
http://www.wikidata.org/prop/P26
http://www.wikidata.org/prop/P39
Но я также обнаружил некоторые другие свойства, которые определенно неверны.

Итак, в основном то, что я пытаюсь сделать, - это получить список свойств, которые имеют ограничение свойства (P2302) из-за ограничения допустимых квалификаторов (Q21510851) с временем начала (P580) и временем окончания (P582), что даже возможно: Я пробовал такие запросы, как:

SELECT DISTINCT ?property ?propertyLabel ?propertyDescription ?subpTypeOf ?subpTypeOfLabel 
WHERE
{
    ?property rdf:type wikibase:Property .

    ?property wdt:P2302  ?subpTypeOf.
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }   
}

но не получил желаемых результатов. возможно ли вообще запросить такой материал?

Спасибо


person Omri Myers    schedule 09.02.2018    source источник


Ответы (1)


Квалификаторы также используются на страницах свойств. Ваш второй запрос должен быть:

SELECT DISTINCT ?prop ?propLabel {
  ?prop p:P2302 [ ps:P2302 wd:Q21510851 ; pq:P2306 wd:P580, wd:P582 ] ;
        p:P2302 [ ps:P2302 wd:Q21503250 ; pq:P2308 wd:Q5 ; pq:P2309 wd:Q21503252 ] .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }   
} ORDER BY ASC(xsd:integer(strafter(str(?prop), concat(str(wd:), "P"))))

Попробуйте!

Ваш первый запрос верен, но обратите внимание, что это запрос «как есть». Например, wd: P410 не имеет соответствующих ограничений, но посмотрите на wd: Q83855.

person Stanislav Kralin    schedule 10.02.2018
comment
Отлично, спасибо вам большое! Не могли бы вы подробнее рассказать о различиях между p: P2302, ps: P2302 и о том, когда следует использовать каждый префикс. - person Omri Myers; 10.02.2018
comment
@OmriMyers, эти префиксы описаны здесь: mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump #Data_model. - person Stanislav Kralin; 10.02.2018