【问题标题】:Understanding the difference between SPARQL and semantic reasoning using Pellet使用 Pellet 了解 SPARQL 和语义推理之间的区别
【发布时间】:2016-08-17 00:30:32
【问题描述】:

我有一个比萨本体,它定义了不同类型的比萨、配料和它们之间的关系。 我只是想了解几个基本的东西:

  1. 如果我想在不获取信息的情况下应用 SPARQL 是否正确? 推理?例如。哪些比萨饼含有洋葱?
  2. SPARQL 和推理算法有什么区别 喜欢佩莱? SPARQL 不能回答哪些查询,而可以 由佩莱回答?披萨本体的一些查询示例(类似问题)会有所帮助。
  3. 据我了解,将 Java 中的 SPARQL 与 Jena 一起使用,我 应该以 RDF/XML 格式保存我的本体。但是,要使用 Pellet 使用 Jena,我需要选择哪种格式? Pellet 使用 OWL2...

【问题讨论】:

    标签: sparql rdf semantics owl ontology


    【解决方案1】:

    SPARQL 是一种查询语言,即一种用于制定问题的语言。另一方面,推理是过程从现有数据中获取新信息。这是两个不同的互补过程。

    1. 要从您的本体中检索信息,您可以使用 SPARQL,是的。您可以在没有推理的情况下执行此操作,也可以与推理器结合使用。如果您有一个激活的推理器,则意味着您的查询可以更简单,并且在某些情况下,推理器可以导出根本无法通过只是一个查询来检索的信息。

    2. 像 Pellet 这样的推理者并不真正回答查询,他们只是推理:他们找出可以从原始事实中得出哪些隐含信息,并且可以做一些事情,例如验证事情是否一致(即没有数据中的逻辑矛盾)。 Pellet 可以计算出,如果您拥有一辆属于 Car 类型的 Toyota,那么您就拥有了 Vehicle(因为 Car 是 Vehicle 的一种)。或者它可以计算出,如果您将披萨定义为具有“帕尔马干酪”成分,那么您将拥有“芝士”类型的披萨(因为它知道帕尔马干酪是一种芝士)。所以你使用像 Pellet 这样的推理器来推导这种隐含信息,然后使用像 SPARQL 这样的查询语言来实际询问:“好的,给我一个关于所有也有凤尾鱼的 Cheesy Pizza 的概述”。

    3. 像 Jena 这样的 API 是将 RDF 视为抽象模型的工具包。保存文件的语法格式无关紧要,它几乎可以读取任何 RDF 语法。一旦您在 Jena 模型中读取它,您就可以在其上执行 Pellet 推理器 - 原始文件的语法无关紧要。有关如何执行此操作的详细信息可以在 Jena 文档中找到。

    【讨论】:

    • 感谢您的精彩回答。顺便说一句,本体概念之间相似性的计算与推理过程有关吗?例如。比萨 A 与比萨 B 有 30% 的相似度,因为这两种比萨都含有“帕尔马干酪”和“洋葱”成分。
    猜你喜欢
    • 1970-01-01
    • 2021-03-11
    • 2023-01-02
    • 2020-04-09
    • 1970-01-01
    • 2019-10-30
    • 2011-10-26
    • 2011-05-16
    • 1970-01-01
    相关资源
    最近更新 更多