Запрос 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 из списка результатов.