【问题标题】:SPARQL query results in Protege does not recognize transitive propertyProtege 中的 SPARQL 查询结果无法识别传递属性
【发布时间】:2012-08-23 11:12:51
【问题描述】:

我在这个问题中表达了几乎相同的要求:Get all nodes in a transitive relation

我正在使用 Protege 3.4.8。这是一个 Owl-Lite 项目。 我有一个传递属性“包含”,它被定义为节点类型的对象属性 节点具有 A、B 和 C 类型的后代

我有个人通过包含这样的属性相互链接:

A 包含 B 包含 C

当我运行以下 SPARQL 查询时:

SELECT ?A ?B
WHERE
{
    ?A :contains ?B         
}

我明白了:

A1 B1
B1 C1

由于包含的传递性,我希望得到

A1 C1 

也是。 我在这里做错了什么?我链接到的问题在答案中包括 Jena,在 Jena 模型上执行此操作会有所不同吗?

【问题讨论】:

    标签: rdf sparql owl protege


    【解决方案1】:

    好的,

    进一步搜索将我带到此页面:http://opentox.org/data/documents/development/RDF%20files/JavaOnly/query-reasoning-with-jena-and-sparql

    此页面的以下引用(可能)解释了我所看到的行为背后的原因:

    “出于我们的目的,SPARQL 查询可以直接执行 通过 Protege 中的 SPARQL 查询面板或从 JAVA 内部 使用专门的 Jena 库方法的应用程序。两个都 方法能够处理有关显式对象的查询和 财产关系,但耶拿图书馆的优势在于使用 推理者。因此使用 Jena 库方法执行的查询可以返回 结果还考虑了传递关系和推断关系。”

    【讨论】:

      【解决方案2】:

      SPARQL 是一种 RDF 查询语言,因此并非所有 SPARQL 引擎都应该实现 OWL 蕴涵(即,使用 OWL 语义来评估查询)。更多详情http://www.w3.org/TR/sparql11-entailment/

      不确定哪个实现实际上在后台使用 Protege...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-24
        相关资源
        最近更新 更多