链接数据 SPARQL 端点的推理

Inference over linked data SPARQL endpoints

当通过 SPARQL 查询查询某些链接数据 SPARQL 端点时,提供的推理类型是什么(如果有)?

例如,DBpedia SNORQL endpoint doesn't even provide the basic subclass inference (if A subClassOf B and B subClassOf C, then A subClassOf C). While FactForge SPARQL endpoint提供了一些推理(虽然不清楚它是什么类型的推理),并提供了打开和关闭该推理的可能性。

我的问题: 如何确定所应用的推理类型?如果推理支持有限,是否可以仅使用端点进行扩展?

推理控制会因引擎和端点而异。

public DBpedia SPARQL endpoint (powered by Virtuoso, from my employer, OpenLink Software) does provide various inference rules (accessible through the "Inference rules" link at the top right corner of the SPARQL endpoint query form page) which are controlled by pragmas in your SPARQL (not SNORQL, to which form you linked),如--

DEFINE  input:inference  'urn:rules.skos'

您可以通过 SPARQL 查看任何预定义规则集的内容 -- 对于上述内容

SELECT  * 
  FROM  <urn:rules.skos> 
 WHERE  { ?s ?p ?o }

你可以看到直播query and results

看到这个 tutorial containing many examples

虽然 SPARQL 端点不普遍支持推理,但 SPARQL 本身支持 RDFS、RSFS+ 和 OWL2 RL 配置文件支持的大多数推理。例如,SPARQL 属性 paths:

可以支持使用 subClassOf 蕴涵查询 :A 的实例
SELECT ?inst 
WHERE {
   ?cls rdfs:subClassOf* :A .
   ?inst a ?cls .
}

第一个三元组模式获取 :A 的所有子 类,包括 :A(如果您只想要子[,请使用 + 而不是 * =33=] of :A),第二个三元组找到所有这些 类 的所有实例。

要了解如何使用 SPARQL 实现 OWL 2 的大部分内容,请参阅 Reasoning in OWL 2 RL and RDF Graphs using Rules。除了几个例外,所有这些都可以在 SPARQL 中实现(事实上,您可能不需要其中的一些,例如 eq-ref,(这对于逻辑学家可能会嘲笑的计算大声笑很好) ).

除了繁重的分类问题,很少有用例无法用 OWL 2 RL 规则的子集解决。

所以,最后,一个建议是了解你需要什么蕴含。很可能 OWL 完全忽略了这个问题,您可以接受一些 SPARQL 模式。然后您可以访问 SPARQL 端点,而不必担心是否支持特定的推理配置文件。