简体   繁体   中英

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

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.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM