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

时间:2016-04-23 10:38:51

标签: sparql rdf semantics owl ontology

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

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

1 个答案:

答案 0 :(得分:2)

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

  1. 要从您的本体检索信息,请使用SPARQL,是的。您可以无需推理或与推理器结合使用。如果您有一个激活的推理器,则意味着您的查询可以更简单,并且在某些情况下,reasoners可以使用 查询来获取根本无法检索的信息。

  2. 像Pellet这样的Reasoners并不真正回答查询,他们只是理由:他们弄清楚可以从原始事实中得出什么隐含信息,并且可以做一些事情,例如验证事情是否一致(即没有数据中的逻辑矛盾)。 Pellet可以弄清楚,如果你拥有一辆Car类型的丰田汽车,你拥有一辆汽车(因为汽车是一种类型的汽车)。或者它可以弄清楚,如果你定义一个比萨饼有“Parmesan”成分,你就会得到一个“Cheesy”类型的披萨(因为它知道Parmesan是一种奶酪)。因此,您使用像Pellet这样的推理器来获取这种隐含信息,然后您使用像SPARQL这样的查询语言来实际问:“好的,请给我一个概述所有也有凤尾鱼的Cheesy比萨饼”。

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