检索所有对象和属性的SPARQL查询 使用,我想创建SPARQL查询,这样我就可以检索所有的葡萄酒和它们的属性,如下面的表格——考虑到我不知道属性的名字。

检索所有对象和属性的SPARQL查询 使用,我想创建SPARQL查询,这样我就可以检索所有的葡萄酒和它们的属性,如下面的表格——考虑到我不知道属性的名字。,sparql,ontology,sesame,Sparql,Ontology,Sesame,有人能给我一个提示吗 -编辑 查询结果不可能采用我提到的格式,但我可以采用以下方式: vin | property | value ================================================= GaryFarrellMerlot | rdf:type | vin:Merlot ------------------------------------------------- GaryFarrellM

有人能给我一个提示吗

-编辑

查询结果不可能采用我提到的格式,但我可以采用以下方式:

vin                |   property     |  value
=================================================
GaryFarrellMerlot  |   rdf:type     |  vin:Merlot
-------------------------------------------------
GaryFarrellMerlot  |   rdf:hasMaker |  vin:Elyse
-------------------------------------------------
...
有了这个选择,谢谢:


这将采用葡萄酒,而不是美乐->加里法瑞尔美乐的葡萄酒类型。唯一的问题是它需要葡萄酒,但也需要酒厂、地区、风味等,我只想要葡萄酒及其特性。此外,没有这样的属性vin:Merlot rdfs:vin:Wine的子类。有什么提示吗?

你不能。您需要事先知道查询结果中需要哪些列

列出葡萄酒的所有特性当然并不难:

SELECT DISTINCT ?property
WHERE { 
    ?wine a vin:Wine .
    ?wine ?property ?value .
}

然后,您需要编写一些代码,从结果列表中创建最终的SPARQL查询。

嗯,wine本体不是一个简单的RDF模型,而是一个复杂的OWL本体。所以要做更复杂的事情,比如推断梅洛是葡萄酒的一个子类,你需要一个猫头鹰推理器,或者可能需要一个支持猫头鹰的三重存储。
SELECT DISTINCT ?wine ?property ?value
WHERE { 
       ?o1 a ?class .
       ?wine a ?o1 .
       ?wine ?property ?value .
}
SELECT DISTINCT ?property
WHERE { 
    ?wine a vin:Wine .
    ?wine ?property ?value .
}