在OWLAPI中添加导入

问题描述 投票:0回答:2

我想用推理器检查一些三元组的一致性。有大约700k三元组要检查,所以对于每一个我创建了一个文件,其中包含三维及其主题和对象的直接类型。

我的问题是,如果我每次加载一个小文件时都不导入所有属性,则所有ObjectProperty语句都被视为AnnotationAxioms,它不允许发现任何不一致。如何只导入一次所有属性,并在每次加载时将它们添加到带有三元组的文件中?

提前致谢!

编辑我在这里添加一个我正在分析的小文件的示例。

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:wdt="http://www.wikidata.org/prop/direct/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="http://www.wikidata.org/entity/Q295376">
<rdf:type rdf:resource="http://www.wikidata.org/entity/Q5"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.wikidata.org/entity/Q21077119">
<rdf:type rdf:resource="http://www.wikidata.org/entity/Q17299750"/>
<wdt:P1346 rdf:resource="http://www.wikidata.org/entity/Q295376"/>
<rdf:type rdf:resource="http://www.wikidata.org/entity/Q4993329"/>
</rdf:Description>
</rdf:RDF>

以上几行不包括导入公理。谢谢!

owl ontology owl-api
2个回答
0
投票

不将三重写入磁盘会快得多。使用属性声明创建T形本体,然后添加要测试的公理。然后,您可以创建推理器,测试一致性,丢弃推理器并删除刚刚测试的公理。然后,本体可以与另一个公理和新推理一起使用。

但是,你要孤立地检查每个公理;虽然公理本身可能是一致的,但这并不能保证公理在一起做什么 - 假设它们在你完成测试后会出现在同一个本体中。


0
投票

具体关于如何将导入添加到本体,请参阅https://github.com/owlcs/owlapi/wiki/Add-an-import-directive-to-an-ontology上的OWLAPI文档

我不相信这是你的方案的最佳解决方案,但这是你问的问题:-)

© www.soinside.com 2019 - 2024. All rights reserved.