【问题标题】:SPARQL Query OWL Wine OntologySPARQL 查询 OWL Wine Ontology
【发布时间】:2014-10-24 09:29:45
【问题描述】:

我试图在 Wine 本体中进行 SPARQL 查询,并通过给定的葡萄酒名称查找其所有属性(hasMaker、locatedIn、hasBody 等)。

这可能吗?我真的不知道如何形成查询。

葡萄酒本体:www.w3.org/TR/owl-guide/wine.rdf

【问题讨论】:

    标签: sparql owl ontology


    【解决方案1】:

    如果我正确理解你的问题,那就很容易了。

    这里是一个如何做的例子(没有前缀)。这里我假设你有酒的 URI。

    select distinct ?p where {
        vin:MountadamChardonnay ?p ?a .
    }
    

    在这里,您返回您的葡萄酒的所有属性。

    如果您没有葡萄酒 URI,您可以在获取其余属性之前添加对葡萄酒标签或名称的检查。下面是一个例子。 (如果有另一个名称属性,只需使用 rdfs:label、rdf:id 等进行更改)。如果您在每个葡萄酒资源中都有任何其他标识符,则此示例更相关。

    select distinct ?p where {
        ?wine rdfs:label <wine name> .
        ?wine ?p ?a .
    }
    

    【讨论】:

    • 当酒名是 rdf:id 时这可能吗? (一个节点而不是一个属性)
    • @andweas 我看了你的本体。如果 ID 是唯一的,它应该可以工作。我没有全部检查,所以我不知道 rdf:id 在你的本体中是否是唯一的,但是如果正确使用 rdf:id 每个 rdf:id 应该是唯一的。我已将答案更改为使用 rdf:id 而不是 rdfs:label
    • @andweas 好的。仔细研究了葡萄酒本体。使用 rdf:id 将名称添加到 wine uri。这意味着您可以使用示例一中的 SPARQL 查询来进行测试。您只需要使用基本 URI (w3.org/TR/2003/PR-owl-guide-20031209/wine#) + 酒的名称(id)来询问酒。
    • 谢谢!我现在开始工作了。出于某种原因,我很难掌握 sparql 查询。
    • @andweas 需要注意的一点是,RDF/XML 是 RDF 最不可读的语法之一。 RDF 本身没有任何 rdf:resource 或 rdf:id 的概念;这些只是用于 RDF 的 XML 序列化。看Turtle/N3 serialization of the wine ontology;它更像是 SPARQL 语法。重要的是要意识到 RDF 是基于 graph 的数据表示,而 SPARQL 用于编写基于 graph 的模式。
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 2023-03-20
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    相关资源
    最近更新 更多