1
votes

I am trying to run reasoners on an ontology. Hermit shows the following error:

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)

I need help to rectify the error. I looked for the url http://www.w3.org/2001/XMLSchema#minInclusive as well as 0.5 by opening the ontology in a text editor but found neither.

What is causing the error and how can I rectify it?

With Pellet, I get a Reasoner: Initialization in Progress message for a long time but nothing happens. Snorocket gets executed but doesn't infer the output of axioms, only subclass information based on class equivalence.

UPDATE1

The issue is with one of the imported ontologies. I imported each one individually to determine the root of the error.

UPDATE2

Here is the URL to the ontology:

http://ovae.googlecode.com/svn/trunk/src/ontology/ovae.owl

Please check if you get the same error

1

1 Answers

2
votes

The problem is that the "0.5" is typed as double, but the supported facets (in the specs) must be decimal or rational types, not doubles. The '0.5' itself is fine, the type needs to change.

In your main ontology, you have this fragment:

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

You need the minExclusive value to be typed as &xsd;decimal