OwlReadyInconsistentOntologyError while 运行 Hermit resoner with OWLReady library
OwlReadyInconsistentOntologyError while running Hermit resoner with OWLReady library
我有一个使用 python 和 OWLReady 创建的简单 ontology 文件,当我尝试与
下面的代码显示
OwlReadyInconsistentOntologyError:
C:\ProgramData\Anaconda3\lib\site-packages\owlready2\reasoning.py in sync_reasoner_hermit(x, infer_property_values, debug, keep_tmp_file)
134 except subprocess.CalledProcessError as e:
135 if (e.returncode == 1) and (b"Inconsistent ontology" in (e.output or b"")):
--> 136 raise OwlReadyInconsistentOntologyError()
137 else:
138 raise OwlReadyJavaError("Java error message is:\n%s" % (e.stderr or e.output or b"").decode("utf8"))
OwlReadyInconsistentOntologyError:
这是 ontology 我试过的文件
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xml:base="http://elearn.org/onto.owl"
xmlns="http://elearn.org/onto.owl#">
<owl:Ontology rdf:about="http://elearn.org/onto.owl"/>
<owl:DatatypeProperty rdf:about="#Age">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Name">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Gender">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Qualification">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Branch">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Background_Knowledge">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Active_Reflective">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#AR_Value">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Sensitive_Intutive">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#S_I_Value">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Visual_Verbal">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#V_V_Value">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Global_Sequential">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#G_S_Value">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:Class rdf:about="#Learner">
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
</owl:Class>
<Learner rdf:about="#L1">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#NamedIndividual"/>
<Age rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">18</Age>
<Name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">L1</Name>
<Gender rdf:datatype="http://www.w3.org/2001/XMLSchema#string">M</Gender>
<Qualification rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</Qualification>
<Branch rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Mathematics with Computer</Branch>
<Background_Knowledge rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</Background_Knowledge>
<Active_Reflective rdf:datatype="http://www.w3.org/2001/XMLSchema#string">1</Active_Reflective>
<AR_Value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">70</AR_Value>
<Sensitive_Intutive rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0</Sensitive_Intutive>
<S_I_Value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">40</S_I_Value>
<Visual_Verbal rdf:datatype="http://www.w3.org/2001/XMLSchema#string">1</Visual_Verbal>
<V_V_Value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">60</V_V_Value>
<Global_Sequential rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0</Global_Sequential>
<G_S_Value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">50</G_S_Value>
</Learner>
</rdf:RDF>
这是python代码
from owlready2 import *
from rdflib.graph import Graph
world = World()
world.get_ontology("sample_ont.owl").load()
sync_reasoner(world)
graph = world.as_rdflib_graph()
我用同样的代码打开了另一个我使用 Jena API 创建的文件(不一样 ontology),没有错误
什么是 OwlReadyInconsistentOntologyError ?
我该如何解决这个问题?
它给你这个错误是因为 Hermit reasoner 发现你的 ontology 不一致。这使用基于描述逻辑的人工智能推理程序来查找 ontology 语句中的逻辑错误。你的另一个ontology没有报错,因为它没有发现任何逻辑上的不一致。您可以使用可以下载 here 的 Protege 自行检查。
如果您在 Protege 中打开您的 ontology 并在 Hermit 推理器中打开 运行,它会指出您的 ontology 不一致,并提供不一致的原因。这是 Protege 中显示的不一致的屏幕截图:
查看它指出的第一个不一致之处
Global_Sequential Range: xsd:integer
L1 Global_Sequential "0" ^^xsd:string
第一行指出 Global_Sequential
数据 属性 的范围是 xsd:integer
。这意味着只要通过 Global_Sequential
数据 属性 将个人链接到一个值,该值就应该是一个整数。
第二行指出个体 L1
通过 Global_Sequential
数据 属性 链接到 xsd:string
。这就是 ontology 不一致的原因。那是针对个人 Li
你应该提供一个整数值, 而不是 一个字符串值。
对于个人 L1
,数据属性 Active_Refelective
、Visual_Verbal
和 Age
也犯了类似的错误。在 Sensitive_Intuitive
的情况下,数据 属性 需要一个字符串,但提供了一个整数。
为 L1
个人修正所有这些值将使您的 ontology 保持一致。
我有一个使用 python 和 OWLReady 创建的简单 ontology 文件,当我尝试与 下面的代码显示
OwlReadyInconsistentOntologyError:
C:\ProgramData\Anaconda3\lib\site-packages\owlready2\reasoning.py in sync_reasoner_hermit(x, infer_property_values, debug, keep_tmp_file)
134 except subprocess.CalledProcessError as e:
135 if (e.returncode == 1) and (b"Inconsistent ontology" in (e.output or b"")):
--> 136 raise OwlReadyInconsistentOntologyError()
137 else:
138 raise OwlReadyJavaError("Java error message is:\n%s" % (e.stderr or e.output or b"").decode("utf8"))
OwlReadyInconsistentOntologyError:
这是 ontology 我试过的文件
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xml:base="http://elearn.org/onto.owl"
xmlns="http://elearn.org/onto.owl#">
<owl:Ontology rdf:about="http://elearn.org/onto.owl"/>
<owl:DatatypeProperty rdf:about="#Age">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Name">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Gender">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Qualification">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Branch">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Background_Knowledge">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Active_Reflective">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#AR_Value">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Sensitive_Intutive">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#S_I_Value">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Visual_Verbal">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#V_V_Value">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#Global_Sequential">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#G_S_Value">
<rdfs:domain rdf:resource="#Learner"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:DatatypeProperty>
<owl:Class rdf:about="#Learner">
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
</owl:Class>
<Learner rdf:about="#L1">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#NamedIndividual"/>
<Age rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">18</Age>
<Name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">L1</Name>
<Gender rdf:datatype="http://www.w3.org/2001/XMLSchema#string">M</Gender>
<Qualification rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</Qualification>
<Branch rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Mathematics with Computer</Branch>
<Background_Knowledge rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</Background_Knowledge>
<Active_Reflective rdf:datatype="http://www.w3.org/2001/XMLSchema#string">1</Active_Reflective>
<AR_Value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">70</AR_Value>
<Sensitive_Intutive rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0</Sensitive_Intutive>
<S_I_Value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">40</S_I_Value>
<Visual_Verbal rdf:datatype="http://www.w3.org/2001/XMLSchema#string">1</Visual_Verbal>
<V_V_Value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">60</V_V_Value>
<Global_Sequential rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0</Global_Sequential>
<G_S_Value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">50</G_S_Value>
</Learner>
</rdf:RDF>
这是python代码
from owlready2 import *
from rdflib.graph import Graph
world = World()
world.get_ontology("sample_ont.owl").load()
sync_reasoner(world)
graph = world.as_rdflib_graph()
我用同样的代码打开了另一个我使用 Jena API 创建的文件(不一样 ontology),没有错误 什么是 OwlReadyInconsistentOntologyError ? 我该如何解决这个问题?
它给你这个错误是因为 Hermit reasoner 发现你的 ontology 不一致。这使用基于描述逻辑的人工智能推理程序来查找 ontology 语句中的逻辑错误。你的另一个ontology没有报错,因为它没有发现任何逻辑上的不一致。您可以使用可以下载 here 的 Protege 自行检查。
如果您在 Protege 中打开您的 ontology 并在 Hermit 推理器中打开 运行,它会指出您的 ontology 不一致,并提供不一致的原因。这是 Protege 中显示的不一致的屏幕截图:
查看它指出的第一个不一致之处
Global_Sequential Range: xsd:integer
L1 Global_Sequential "0" ^^xsd:string
第一行指出 Global_Sequential
数据 属性 的范围是 xsd:integer
。这意味着只要通过 Global_Sequential
数据 属性 将个人链接到一个值,该值就应该是一个整数。
第二行指出个体 L1
通过 Global_Sequential
数据 属性 链接到 xsd:string
。这就是 ontology 不一致的原因。那是针对个人 Li
你应该提供一个整数值, 而不是 一个字符串值。
对于个人 L1
,数据属性 Active_Refelective
、Visual_Verbal
和 Age
也犯了类似的错误。在 Sensitive_Intuitive
的情况下,数据 属性 需要一个字符串,但提供了一个整数。
为 L1
个人修正所有这些值将使您的 ontology 保持一致。