Запрос SPARQL для получения всех объектов и свойств
С помощью вино онтологии, Я хочу создать запрос SPARQL, чтобы я мог получить все вина и свойства как в таблице ниже - считайте, что я не знаю имен свойств'априори.
vin | rdf:type | vin:hasMaker | vin:hasSugar | ...
========================================================================== ...
GaryFarrellMerlot | vin:Merlot | vin:Elyse | vin:Dry | ...
--------------------------------------------------------------------------
ElyseZinfandel | vin:Elyse | vin:GaryFarrell | vin:Dry | ...
...
может кто-нибудь дать мне подсказку?
-- редактировать
невозможно получить результат запроса в формате, который я упомянул, но я могу иметь это путь:
vin | property | value
=================================================
GaryFarrellMerlot | rdf:type | vin:Merlot
-------------------------------------------------
GaryFarrellMerlot | rdf:hasMaker | vin:Elyse
-------------------------------------------------
...
С выбираем (спасибо cygri):
SELECT DISTINCT ?wine ?property ?value
WHERE {
?o1 a ?class .
?wine a ?o1 .
?wine ?property ?value .
}
Это будет принимать вина вместо типа вин (Мерло - > GaryFarrellMerlot). Единственная проблема-это вино, но также винодельня, регионы, ароматы и т. д., И я хотел только вина и его свойства. Кроме того, есть нет такого атрибута vin: Merlot rdfs: подкласс vin: вино. любой намек?
1 ответов
вы не можете. Вы должны заранее знать, какие столбцы вы хотите получить в результате запроса.
перечисление всех свойств вин не очень сложно, конечно:
SELECT DISTINCT ?property
WHERE {
?wine a vin:Wine .
?wine ?property ?value .
}
затем вам нужно написать код, который создает окончательный запрос SPARQL из списка результатов.