通过SPARQL查询查询某些链接数据SPARQL端点时,提供的推理类型(如果有)是什么?
例如,DBpedia SNORQL endpoint甚至不提供基本的子类推断(如果A subClassOf B
和B subClassOf C
,则A subClassOf C
)。虽然FactForge SPARQL endpoint提供了一些推论(虽然不清楚它是什么类型的推断),并提供了打开和关闭推理的可能性。
我的问题: 如何识别所应用的推理类型?如果推理支持有限,是否可以仅使用端点进行扩展?
答案 0 :(得分:4)
推理控制因引擎和端点而异。
来自我的雇主的public DBpedia SPARQL endpoint(由Virtuoso提供支持,OpenLink Software) 提供各种inference rules(可通过“推理规则”访问) “SPARQL端点查询表单页面右上角的链接”由pragmas in your SPARQL(不是SNORQL,form you linked)控制,例如 -
DEFINE input:inference 'urn:rules.skos'
您可以通过SPARQL查看任何预定义规则集的内容 - 对于上述
SELECT *
FROM <urn:rules.skos>
WHERE { ?s ?p ?o }
答案 1 :(得分:2)
虽然SPARQL端点并不普遍支持推理,但RDARQL本身支持RDFS,RSFS +和OWL 2 RL配置文件支持的大多数推断。例如,使用SPARQL属性路径可以支持使用subClassOf蕴涵查询:A
的实例:
SELECT ?inst
WHERE {
?cls rdfs:subClassOf* :A .
?inst a ?cls .
}
第一个三元模式获取:A
的所有子类,包括:A
(如果您只想要+
的子类,则使用*
而不是:A
,第二个三元组查找所有这些类的所有实例。
要了解如何使用SPARQL实现大多数OWL 2,请参阅Reasoning in OWL 2 RL and RDF Graphs using Rules。除了几个例外,所有这些都可以在SPARQL中实现(实际上你可能不会需要它们中的一些,例如eq-ref
,(这对于逻辑学家可能嘲笑的计算lol是好的)在))。
除了繁重的分类问题之外,很少有用例可以通过OWL 2 RL规则的子集来解决。
因此,最后,建议是了解您需要的蕴涵。有可能OWL完全推翻了这个问题,你可以使用一些SPARQL模式。然后,您可以访问SPARQL端点,而无需担心是否支持特定的推理配置文件。