Search code examples
rdfowlprotege

How to infer collection of individuals of a class as a constituent of some class in protege?


If i have a class "collection" and a class "part" with individuals bicycle, handle, tyre etc and until now i have achieved that bicycle is a collection of handle, tyre etc with Recursive object property in owl but now i am facing problem that this bicycle alongwith its constituent is a individual of ""collection" ?


Solution

  • In this case you are trying to treat a "collection" of individuals as an individual itself. However any collection of individuals is defined as a class in OWL. Therefore what you are essentially trying to do is treat an OWL class as an individual. Now this is possible, however, not in OWL DL. Using the owl:sameAs tag. To quote the owl specification directly

    In OWL Full, where a class can be treated as instances of (meta)classes, we can use the owl:sameAs construct to define class equality, thus indicating that two concepts have the same intensional meaning.

    This is all well and good however, from your question, you are trying to "infer" this type of collection. There is no direct way to do this, especially since OWL Full cannot be reasoned on.

    So we are left with the alternative, that is to model a class that has one or many object properties that connect an individual to all the individuals of a particular enumeration. This may not be as useful (or indeed accurate) on a semantic level, but it is better than nothing and some of the reasoning complexity can be offset in a program you create.