sparql - 使用 Pellet 了解 SPARQL 和语义推理之间的区别

标签 sparql rdf semantics owl ontology

我有一个披萨本体,它定义了不同类型的披萨、成分以及它们之间的关系。 我只是想了解几个基本的事情:

  1. 如果我想在不使用 SPARQL 的情况下获取信息,我应该应用 SPARQL 是否正确? 推理?例如。哪些披萨含有洋葱?
  2. SPARQL 和推理算法有什么区别 像佩莱那样?哪些查询不能由 SPARQL 回答,而可以 佩莱会回答吗?一些关于披萨本体的查询(类似问题)的例子会很有帮助。
  3. 据我了解,如何将 Java 中的 SPARQL 与 Jena 结合使用,我 应该以 RDF/XML 格式保存我的本体。然而,使用颗粒 对于耶拿,我需要选择哪种格式? Pellet 使用 OWL2...

最佳答案

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

  1. 要从本体检索信息,您可以使用 SPARQL,是的。您可以在不推理的情况下完成此操作,也可以与推理器结合使用。如果您有一个处于事件状态的推理器,则意味着您的查询可以更简单,并且在某些情况下,推理器可以导出仅通过查询根本无法检索的信息。

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

  3. 像 Jena 这样的 API 是将 RDF 视为抽象模型的工具包。您保存文​​件的语法格式并不重要,它几乎可以读取任何 RDF 语法。一旦您在 Jena 模型中读取该文件,您就可以对其执行 Pellet 推理机 - 无论您的原始文件采用哪种语法都没有关系。有关如何执行此操作的详细信息可以在 Jena 文档中找到。

关于sparql - 使用 Pellet 了解 SPARQL 和语义推理之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36809691/

相关文章:

sparql - 在 CONSTRUCT 中跨多个解决方案生成相同的空白节点

java - 带有正则表达式的 Java 字符串中的 SPARQL 请求

python-3.x - Python,读取 RDF 文件,抓取古腾堡书籍

odata - OData与语义Web/链接数据的比较

c - 为什么 printf 语句不继续下一行?

sparql - 从 stats.gov.scot 获取可用层次结构的列表

sparql - Fuseki “Can' t 找到要运行的 jarfile”

rdf - 在 OWL 中使用排除依据

c++ - c/c++程序中的print(而不是printf())是由编译器的哪一部分检测的