Я новичок в викиданных. Я только что подумал, что викиданные очень сильно овеществляют.
Предположим, мы хотим получить всю доступную информацию для Обамы. Если мы собираемся сделать это из DBpedia, мы бы просто использовали простой запрос: select * where {<http://dbpedia.org/resource/Barack_Obama> ?p ?o .}
Это вернет все свойства и значения с Обамой в качестве субъекта. По сути, результат такой же, как на этой странице: http://dbpedia.org/page/Barack_Obama
, а результат запроса находится в нужном мне формате.
Мне интересно, как сделать то же самое с Викиданными. Это страница Викиданных Обамы: https://www.wikidata.org/wiki/Q76
. Допустим, мне нужны все утверждения на этой странице. Но почти все утверждения на этой странице овеществлены в том, что у них есть ранги, квалификаторы и т. Д. Например, для части «получил образование» здесь есть не только школа, но также «время начала» и «время окончания». и все школы считаются нормальными, поскольку Обамы больше нет в этих школах.
Я мог бы просто получить все школы, получив правдивые утверждения (используя https://query.wikidata.org):
SELECT ?school ?schoolLabel WHERE {
wd:Q76 wdt:P69 ?school .
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}
Вышеупомянутый запрос просто вернет все школы.
Если я хочу узнать время начала и окончания школы, мне нужно сделать следующее:
SELECT ?school ?schoolLabel ?start ?end WHERE {
wd:Q76 p:P69 ?school_statement .
?school_statement ps:P69 ?school .
?school_statement pq:P580 ?start .
?school_statement pq:P582 ?end .
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}
Но дело в том, не глядя на реальную страницу, как я могу узнать, что в? School_statement есть pq: P580 и pq: P582, а именно «время начала» и «время окончания»? И все сводится к вопросу: как мне получить всю информацию (включая реификацию) от https://www.wikidata.org/wiki/Q76
?
В конечном итоге я ожидал такой таблицы: ||predicate||object||objectLabel||qualifier1||qualifier1Value||qualifier2||qualifier2Value||...