« Takaisin CIDOC-CRM Project

Multiple Inheritance and Realization Approaches

Yhdistelmä näkymä Sisentämätön näkymä Puunäkymä
Aiheet [ Edellinen | Seuraava ]
toggle
Multiple Inheritance and Realization Approaches
community class relation documentation
Vastaus
27.3.2014 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.
Liite

Liitteet: MultipleInheritancec_Challenge.png (59,4k)

Implementation Proposal 1: Abstract Class as intermediate layer
Vastaus
26.7.2013 10:38 vastauksena Wilfrid Utz:aan.
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)
Liite

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

ImplementationProposal 2a: Pointers as Relations
Vastaus
26.7.2013 10:38 vastauksena Wilfrid Utz:aan.
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.
Liite

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

Implementation Proposal 2b: Pointers as Relations
Vastaus
26.7.2013 10:38 vastauksena Wilfrid Utz:aan.
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.
Liite

Liitteet: 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
Vastaus
26.7.2013 10:38 vastauksena Wilfrid Utz:aan.
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
Liite

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

Implementation Proposal 4: Script based resolution
Vastaus
26.7.2013 10:39 vastauksena Wilfrid Utz:aan.
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
Liite

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