我正试图在本体上运行reasoners。隐士显示以下错误:
Error 1 Logged at Tue Apr 12 22:20:40 EDT 2016
UnsupportedFacetException: The facet with URI 'http://www.w3.org/2001/XMLSchema#minInclusive' does not support '"0.5"^^xsd:double' as value. The value should be an integer, a decimal, or a rational, but this seems not to be the case in the datatype restriction org.semanticweb.HermiT.datatypes.owlreal.OWLRealDatatypeHandler@1fc700c
org.semanticweb.HermiT.datatypes.owlreal.OWLRealDatatypeHandler.validateDatatypeRestriction(OWLRealDatatypeHandler.java:139)
org.semanticweb.HermiT.datatypes.DatatypeRegistry.validateDatatypeRestriction(DatatypeRegistry.java:101)
org.semanticweb.HermiT.structural.OWLClausification$DataRangeConverter.visit(OWLClausification.java:819)
uk.ac.manchester.cs.owl.owlapi.OWLDatatypeRestrictionImpl.accept(OWLDatatypeRestrictionImpl.java:139)
org.semanticweb.HermiT.structural.OWLClausification$DataRangeConverter.convertDataRange(OWLClausification.java:763)
org.semanticweb.HermiT.structural.OWLClausification$NormalizedAxiomClausifier.visit(OWLClausification.java:601)
uk.ac.manchester.cs.owl.owlapi.OWLDataSomeValuesFromImpl.accept(OWLDataSomeValuesFromImpl.java:95)
org.semanticweb.HermiT.structural.OWLClausification.clausify(OWLClausification.java:216)
org.semanticweb.HermiT.structural.OWLClausification.preprocessAndClausify(OWLClausification.java:154)
org.semanticweb.HermiT.Reasoner.loadOntology(Reasoner.java:221)
org.semanticweb.HermiT.Reasoner.<init>(Reasoner.java:212)
org.semanticweb.HermiT.Reasoner.<init>(Reasoner.java:187)
org.semanticweb.HermiT.Reasoner$ReasonerFactory.createHermiTOWLReasoner(Reasoner.java:2359)
org.semanticweb.HermiT.Reasoner$ReasonerFactory.createReasoner(Reasoner.java:2329)
org.protege.editor.owl.model.inference.ReasonerUtilities.createReasoner(ReasonerUtilities.java:21)
org.protege.editor.owl.model.inference.OWLReasonerManagerImpl$ClassificationRunner.ensureRunningReasonerInitialized(OWLReasonerManagerImpl.java:398)
org.protege.editor.owl.model.inference.OWLReasonerManagerImpl$ClassificationRunner.run(OWLReasonerManagerImpl.java:354)
java.lang.Thread.run(Unknown Source)
我需要帮助来纠正错误。我通过在文本编辑器中打开本体来查找了网址http://www.w3.org/2001/XMLSchema#minInclusive
以及0.5
但未找到。
导致错误的原因是什么?如何纠正?
使用Pellet
,我很长时间收到Reasoner: Initialization in Progress
消息,但没有任何反应。 Snorocket
被执行但不推断公理的输出,只推断基于类等价的子类信息。
UPDATE1
问题在于其中一个导入的本体。我分别导入了每一个以确定错误的根源。
UPDATE2
以下是本体的URL:
http://ovae.googlecode.com/svn/trunk/src/ontology/ovae.owl
请检查是否收到同样的错误
答案 0 :(得分:2)
问题在于&#34; 0.5&#34;键入为double
,但支持的构面(在规范中)必须是十进制或有理类型,而不是双精度。 &#39; 0.5&#39;本身很好,类型需要改变。
在你的主要本体论中,你有这个片段:
<rdfs:Datatype>
<owl:onDatatype rdf:resource="&xsd;decimal"/>
<owl:withRestrictions rdf:parseType="Collection">
<rdf:Description>
<xsd:minExclusive rdf:datatype="&xsd;double">0.5</xsd:minExclusive>
</rdf:Description>
</owl:withRestrictions>
</rdfs:Datatype>
您需要将minExclusive
值输入为&xsd;decimal