使用Wine ontology,我想创建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 .
}
这将采用葡萄酒代替葡萄酒(Merlot - > GaryFarrellMerlot)。唯一的问题是它需要葡萄酒,还有酒庄,地区,风味等,我只想要葡萄酒及其特性。此外,还有没有这样的属性 vin:Merlot rdfs:subClassOf vin:Wine。任何提示?
答案 0 :(得分:11)
你做不到。您需要事先知道查询结果中需要哪些列。
列出葡萄酒的所有属性当然不是很难:
SELECT DISTINCT ?property
WHERE {
?wine a vin:Wine .
?wine ?property ?value .
}
然后,您需要编写一些代码,从结果列表中创建最终的SPARQL查询。