Weak entity classes and the part-of association

As discussed in [1]:

"
Embedded resources result from either the part-of association – one of 
the fundamental concepts in object-oriented modeling – or the theorem of 
weak entity classes in database management. In UML class diagrams, for 
example, associations having a diamond on one side indicate that the 
class on that side represents composite objects having instances of the 
class on the other side as their parts. They go even further and say 
that if the diamond is darkened, then the instances of the class on the 
other side may never exist independently from instances of the class on 
the side of the diamond – quite similar to the concept of weak entity 
classes in database management.
However, there is currently no standard way to specify part-of 
associations as such in RDF schema or OWL. CC/PP [8], as an RDF-based 
approach for articulation and exchange of contextual knowledge in 
profiles, has proposed the concept of components that can be seen as a 
solution for this problem. It was not consistent enough, though. It 
seems that the understanding of profiles in CC/PP is something like the 
old ".ini"-files in Windows(TM); i.e. all attributes must appear in some 
component and no attributes within components may have another component 
as value. None of these restrictions matched our requirements. This 
approach ignores the evolution of such config-files into tree structures 
like Windows(TM) registry.
"

To improve OWL in this regard, I suggest to add the following concepts:

hasComponent|hasPart        rdf:type        TransitiveProperty
componentOf|partOf          rdf:type        TransitiveProperty
componentOf|partOf          inverseOf       hasComponent|hasPart
WeakClass|WeakEntity        rdfs:subClassOf Class
hasContainerClass|dependsOn rdf:type        TransitiveProperty
hasContainerClass|dependsOn rdfs:domain     WeakClass|WeakEntity
hasContainerClass|dependsOn rdfs:range      Class

Other statements may also be added, e.g. about the cardinality of 
'hasContainerClass' for instances of 'WeakClass' (it must be greater 
than 0).

Of course, 'hasComponent' and 'componentOf' should be used in the 
descriptions of instances only when no additional semantics of the 
corresponding relation is known.  Usually, however, one should introduce 
appropriate sub-properties of them and use the sub-properties in order 
to imply the additional semantics.

Regards,

-- Saied

[1] Tazari, M.R.  A Context-Oriented RDF Database.  Semantic Web
     and Databases, Berlin (Germany), September 2003.
     http://www.zgdv.de/~stazari/publications/SWDB03.pdf

Received on Friday, 21 November 2003 07:01:58 UTC