【问题标题】:SPARQL-DL query with owl-api使用 owl-api 的 SPARQL-DL 查询
【发布时间】:2013-07-10 16:24:36
【问题描述】:

我正在使用 OWL-API 和 Hermit Reasoner 编写应用程序。我想通过提交查询来使用 SPARQL-DL 查询数据:

PREFIX wine: <http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#>
SELECT ?i
 WHERE { Type(?i, wine:PinotBlanc) }
 OR WHERE { Type(?i, wine:DryRedWine) }

我可以直接使用 owl-api 执行此操作,还是应该使用外部库 (http://www.derivo.de/en/resources/sparql-dl-api/)? (我需要类似的东西 queryEngine.query(my_query);)

【问题讨论】:

    标签: sparql semantic-web owl owl-api


    【解决方案1】:

    与 2013 年 7 月一样,OWL-API 本身不支持 SPARQL-DL。您需要插入第三方库才能使其工作。

    我知道两种实现方式(可能还有更多):一种来自 Derivo(您的链接),另一种来自 Pellet

    【讨论】:

    • 是的,我什至找到了 OWL2QueryTab。
    【解决方案2】:

    我将 OWL-API 与 Hermit 和 Pellet 一起使用;两者都工作得很好。 Pellet 相对于 Hermit 的优势在于它支持内置。

    即在 Pellet 中,对于某些类 Teenager,您可以使用以下查询获得 17 岁的人:

    Person and (hasAge value "17.0"^^double) 
    

    如果您(或其他人)仍有兴趣,我可以提供 Java 类。

    【讨论】:

      【解决方案3】:

      纯 OWL-API-impl 不能提供非解决方法来支持 SPARQL,因为它不是基于图形的解决方案。 现在,从 v5 开始,ONT-API 是基于耶拿的 OWL-API 实现。

      【讨论】:

      • 但是查询时可以使用推理器吗?
      • 是的,为什么不呢?这里与 OWL-API-impl 没有区别。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      相关资源
      最近更新 更多