Search code examples
semanticsowlontologyprotegeowl-api

Does OWL punning treats class and individual with same name as SAME semantically?


According to the original OWL definition of OWL DL, we can't give the same name to a class and an individual (which is a clear difference between OWL DL and OWL Full). "Punning" is introduced in OWL 2 and removes this restriction. So I can give same name to a class and an individual (and a property too).

Does OWL treat them as semantically the same or different? (Both have the same name, so they're syntactically the same.) Are these entities (having the same IRI) one and the same? [As in OWL everything is related to IRI only]


Solution

  • Does OWL treats them as semantically same or different ? (both are having same IRI so syntactically same). In simple, do these entities (having same IRI) one and the same ? [As in OWL everything is related to IRI only]

    From the documentation that you linked to (emphasis added):

    2.4.1 F12: Punning

    OWL 1 DL required a strict separation between the names of, e.g., classes and individuals. OWL 2 DL relaxes this separation somewhat to allow different uses of the same term, e.g., Eagle, to be used for both a class, the class of all Eagles, and an individual, the individual representing the species Eagle belonging to the (meta)class of all plant and animal species. However, OWL 2 DL still imposes certain restrictions: it requires that a name cannot be used for both a class and a datatype and that a name can only be used for one kind of property. The OWL 2 Direct Semantics treats the different uses of the same name as completely separate, as is required in DL reasoners.

    When punning, you get to use the same name to refer to more than one thing; the IRI is the same, but that's it; the things are still different. If you use the same IRI as an identifier for a class, and for an individuals, that's all you've done. There's a class that's named by that IRI, and there's an individuals that's named by that IRI; they're not the same thing, and can't be the same thing, because classes and individuals are different kinds of things.

    For instance, if you have a class called x and an individual called x, then you can say things like

        (the individual) x is related to individual y by object property p

    or

        the individual y is an element of (the class x)

    You can't say, though,

        the individual y is an element of (the individual) x [because individuals don't have elements, classes do]

    or that

        (the class) x is related to individual y by object property p [because object properties don't relate classes to individuals, they relate individuals to individuals]

    IRIs are really just names in OWL, they're not entities in and of themselves. Punning in OWL lets you use the same name for multiple things when there's no confusion of mixing those things up. In the case of classes and individuals, they're different kinds of things, so you can reuse names, because the context will always make it clear which one you meant.