使用 Wine ontology,我想创建SPARQL查询,以便我可以检索所有葡萄酒及其属性,如下表 – 考虑我不知道属性的名称先验. vin | rdf:type | vin:hasMaker | vin:hasSugar | ...========================================
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.任何提示?
你不能.您需要事先知道查询结果中需要哪些列.列出葡萄酒的所有属性当然不是很难:
SELECT DISTINCT ?property WHERE { ?wine a vin:Wine . ?wine ?property ?value . }
然后,您需要编写一些代码,从结果列表中创建最终的SPARQL查询.