« Tagasi CIDOC-CRM Project juurde

Multiple Inheritance and Realization Approaches

Kombineeritud vaade Flat View Puustruktuuri vaade
Teemad [ Eelmine | Järgmine ]
toggle
Multiple Inheritance and Realization Approaches
community class relation documentation
Vastus
27.03.14 11:12
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.
Manus

Manused: MultipleInheritancec_Challenge.png (59,4k)

Implementation Proposal 1: Abstract Class as intermediate layer
Vastus
26.07.13 10:38 Vastusena Wilfrid Utz'le.
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)
Manus

Manused: CIDOC_MultipleInheritance_Implementation-1_FINAL.zip (214,9k), MultipleInheritancec_Implementation1.png (55,5k)

ImplementationProposal 2a: Pointers as Relations
Vastus
26.07.13 10:38 Vastusena Wilfrid Utz'le.
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.
Manus

Manused: CIDOC_MultipleInheritance_Implementation-2a_FINAL.zip (219,8k), MultipleInheritancec_Implementation2a__.png (103,9k)

Implementation Proposal 2b: Pointers as Relations
Vastus
26.07.13 10:38 Vastusena Wilfrid Utz'le.
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.
Manus

Manused: 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
Vastus
26.07.13 10:38 Vastusena Wilfrid Utz'le.
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
Manus

Manused: CIDOC_MultipleInheritance_Implementation-3_FINAL.zip (215,1k), MultipleInheritancec_Implementation3_.png (69,2k)

Implementation Proposal 4: Script based resolution
Vastus
26.07.13 10:39 Vastusena Wilfrid Utz'le.
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
Manus

Manused: CIDOC_MultipleInheritance_Implementation-4_FINAL.zip (231,2k), MultipleInheritancec_Implementation4_.png (103,3k)