芝麻没有推理owl:sameAs

时间:2015-07-07 19:53:54

标签: sparql semantic-web owl sesame linked-data

我在芝麻三联商店有一些关于疫苗的数据。在同一家商店,我从DBpedia添加了有关疫苗的其他数据。

<http://dbpedia.org/resource/Rotavirus_vaccine>     
dbpedia2:routesOfAdministration "oral"@en

要指定我的原生数据中的特定疫苗与来自DBpedia的导入数据的主题是同一个实体,我插入了一个连接这两个实体的owl:sameAs语句。

my_ns:Rota owl:sameAs <http://dbpedia.org/resource/Rotavirus_vaccine> .

虽然添加了单个三元组,但我找不到其他推理。例如,我希望这个查询通过在DBpedia中推断疫苗实体的属性,在我的原生数据中给出疫苗的管理途径:

PREFIX : <http://dbpedia.org/resource/>
PREFIX dbpedia2: <http://dbpedia.org/property/>
PREFIX my_ns: <http://purl.org/net/ontology/my_ns/>
select ?roa where 
{my_ns:Rota dbpedia2:routesOfAdministration ?roa}

目前,执行查询并不会产生任何结果。我希望系统推断以下内容作为上述查询的输出:

my_ns:Rota dbpedia2:routesOfAdministration "oral"@en .

我通过替换war文件安装了GraphDB-Lite(OWLIM),并通过在DBpedia上执行查询来验证owl:sameAs的工作原理。

2 个答案:

答案 0 :(得分:1)

Sesame内存和本机商店不支持开箱即用的OWL推理。它们提供(可选)支持RDFS推理(因此理解rdfs:subClassOf等),这可以在创建存储库时启用(在工作台中,这是下拉选项'Memory / Native Store RDF Schema')。但是,owl:sameAs当然不是RDFS推理的一部分。

Sesame还支持在内存或本机商店之上的自定义图形查询推理器。此自定义推理器可以使用您自己的推理规则进行配置,该规则是两个SPARQL CONSTRUCT查询的组合:表示实际推理规则的“规则”查询,以及用于执行维护的“匹配”查询更新商店时的推断语句。关于如何设置它的更多解释可以在Programming with Sesame中的存储库创建一节中找到。 Workbench中的选项是“内存/本机存储自定义图形查询推断”。

对于owl:sameAs,支持它的自定义规则大致如下:

CONSTRUCT { ?s1 ?p1 ?o1 . ?o1 ?p2 ?o3 } 
WHERE { 
    ?o1 owl:sameAs ?o2 .
    OPTIONAL { ?s1 ?p1 ?o2 . }
    OPTIONAL { ?o2 ?p2 ?o3 . }
}

如果您的目标纯粹是owl:sameAs推理,那么这可能是启用它的简单方法。但是,对于更全面的OWL推理支持,自定义推理器功能不够强大或不具备可扩展性。相反,您应该使用内置支持它的Sesame后端存储,例如Ontotext GraphDB(以前称为OWLIM)。

答案 1 :(得分:1)

解决了这个问题。问题是没有GraphDB-Lite(以前的OWLIM-Lite)。通过替换.war文件,我得到了安装的印象。但是,在创建新存储库时,下拉列表中缺少OWLIM-Lite选项表明它尚未安装。

当我最初检查owl:sameAs查询在哪里工作时,我使用SPARQL中的SERVICE子句来查询DBpedia。当我查询DBpedia(支持owl:sameAs)时,查询正在执行,因为我实际上是在芝麻之外查询。

我通过在Tomcat中删除旧的.war文件及其相应的文件夹,并从GraphDB分发中复制.war文件来解决了这个问题。复制文件后第一次运行服务器时,会自动生成相应的文件夹(openrdf-sesame和openrdf-workbench)。在创建存储库时,可以使用OWLIM-Lite选项。

我创建了一个OWLIM-Lite存储库并在那里添加了三元组。 owl:sameAs推理随后开始工作,问题中的查询已成功执行。