Torx
Torx

Reputation: 138

OWL: abstract class implementation with ObjectUnionOf seems failing hermiT, protégé

Assuming GeographicArea as union of Planet, Continent and Region:

<EquivalentClasses>
    <Class IRI="#GeographicArea"/>
    <ObjectUnionOf>
        <Class IRI="#Continent"/>
        <Class IRI="#Planet"/>
        <Class IRI="#Region"/>
    </ObjectUnionOf>
</EquivalentClasses>

then there should not be any individual of class GeopgraphicArea

<ClassAssertion>
    <Class IRI="#GeographicArea"/>
    <NamedIndividual IRI="#Bad"/>
</ClassAssertion>

Bad is obviously NOT a continent, planet or region.

nevertheless hermiT reasoner n Protégé does not report an error.

Why? How could I restrict that no individual could be stated as "GeographicArea" only?

See sample in: http://www.arcdev.hu/test/helloworld.owl

Upvotes: 1

Views: 526

Answers (2)

Jeen Broekstra
Jeen Broekstra

Reputation: 22053

How could I restrict that no individual could be stated as "GeographicArea" only?

You can't, and it doesn't really make sense to do this in a logical environment (which OWL is, after all). OWL reasoning is about logical inference, not about type-checking.

If you require this kind of functionality, you'll have use some custom validation mechanism of your own (I imagine you could do something like this using some clever SPARQL queries or SPIN rules).

Upvotes: 1

Gerrit
Gerrit

Reputation: 852

OWL uses the Open World Assumption, which means that just because Bad is not yet defined as a continent, planet or region, doesn't mean that it won't be in future. For the reasoner to report an error, you would have to define Bad as an instance of a class that is disjoint with the other classes.

Upvotes: 2

Related Questions