« Back to CIDOC-CRM Project

Multiple Inheritance and Realization Approaches

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Multiple Inheritance and Realization Approaches
community class relation documentation
Answer
3/27/14 11:12 AM
As ADOxx does not support direct multiple inheritance, this situation requires alternative implementation. The following realization proposal stem from the CIDOC-CRM project and are related to the implementation work done within the scope of the project.

The attached graphic describes the challenge of multiple inheritance from the ADOxx perspective.
Attachment

Attachments: MultipleInheritancec_Challenge.png (59.4k)

Implementation Proposal 1: Abstract Class as intermediate layer
Answer
7/26/13 10:38 AM as a reply to Wilfrid Utz.
The following realization proposal builds on adding an abstract class as an intermediate layer. Consider the following descibed steps, shown also graphically in the image attached. In addition a sample implementation is available in the attached package.

Sample Realisation of Solution 1: as attachment to this post


a) Abstract class is introduced to define all attributes necessary for the sub-class.
b) E has aRx and bR‘y, so it can be modelled. As bRy is semantically not the same as bR‘y, queries need to consider both (e.g. a union of bRy and bR‘y)
Attachment

Attachments: CIDOC_MultipleInheritance_Implementation-1_FINAL.zip (214.9k), MultipleInheritancec_Implementation1.png (55.5k)

ImplementationProposal 2a: Pointers as Relations
Answer
7/26/13 10:38 AM as a reply to Wilfrid Utz.
The following realization proposal builds on pointers as relations. Consider the following descibed steps, shown also graphically in the image attached. In addition a sample implementation is available in the attached package.

Sample Realisation of Solution 2a: as attachment to this post


a) Abstract class is introduced to define all attributes necessary for the sub-class.
b) E has aPx and bPy, so it can be modelled as pointer and can be queried by pointer name. For visual represenation of the pointer, additional drawing of generic relation is necessary. As pointers are instance attributes, the search needs to consider the query of instance attributes.
Attachment

Attachments: CIDOC_MultipleInheritance_Implementation-2a_FINAL.zip (219.8k), MultipleInheritancec_Implementation2a__.png (103.9k)

Implementation Proposal 2b: Pointers as Relations
Answer
7/26/13 10:38 AM as a reply to Wilfrid Utz.
The following realization proposal builds on pointers as relations. Consider the following descibed steps, shown also graphically in the image attached. In addition a sample implementation is available in the attached package.

Sample Realisation of solution 2b - Version 1: as attachment to this post
Sample Realisation of solution 2b - Version 2: as attachment to this post

a) Abstract class is introduced to define all attributes necessary for the sub-class.
b) New additional pointer is introduced.
c) E has aPx, bPy and ePy, so it can be modelled as pointer and can be queried by pointer name. For visual represenation of the pointer, additional drawing of generic relation is necessary. As pointers are instance attributes, the search needs to consider the query of instance attributes.
Attachment

Attachments: CIDOC_MultipleInheritance_Implementation-2b_1.1_FINAL.zip (223.8k), CIDOC_MultipleInheritance_Implementation-2b_FINAL.zip (221.7k), MultipleInheritancec_Implementation2b__.png (106.9k)

Implementation Proposal 3: Relation Type based resolution
Answer
7/26/13 10:38 AM as a reply to Wilfrid Utz.
The following realization proposal builds on relation type based resolution. Consider the sample implementation is available in the attached package.

Sample Realisation of Solution 3: as attachment to this post
Attachment

Attachments: CIDOC_MultipleInheritance_Implementation-3_FINAL.zip (215.1k), MultipleInheritancec_Implementation3_.png (69.2k)

Implementation Proposal 4: Script based resolution
Answer
7/26/13 10:39 AM as a reply to Wilfrid Utz.
The following realization proposal builds on a script-based resolution approach. Consider thesample implementation as available in the attached package.

Sample Realisation of Solution 4: as attachment to this post
Attachment

Attachments: CIDOC_MultipleInheritance_Implementation-4_FINAL.zip (231.2k), MultipleInheritancec_Implementation4_.png (103.3k)