首页 文章

芝麻没有推理owl:sameAs

提问于
浏览
-1

我在芝麻三联商店里有一些关于疫苗的数据 . 在同一家商店,我从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 回答

  • 1

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

    Sesame还支持在内存或本机存储之上的自定义图形查询推理器 . 此自定义推理器可以使用您自己的推理规则进行配置,该规则是两个SPARQL CONSTRUCT 查询的组合:表示实际推理规则的'rule'查询,以及用于在存储为时对推断语句进行维护的'match'查询更新 . 关于如何设置它的更多解释可以在Programming with Sesame中的存储库创建一节中找到 . Workbench中的选项是"Memory/Native store Custom Graph Query Inference" .

    owl:sameAs 的情况下,支持它的自定义规则看起来大致如下:

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

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

  • 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推理随后开始工作,问题中的查询已成功执行 .

相关问题