无法解决Hermit推理器的错误

时间:2016-04-13 02:53:09

标签: semantic-web owl protege linked-data

我正试图在本体上运行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

请检查是否收到同样的错误

1 个答案:

答案 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