Associations (Non-Compositions)

Get the non-composition associations in the DEXPI Information Model.

Each association that is not a composition has the following form:

../_images/generic_association.svg

The SPARQL query below yields the values for the symbols in italics.

Variables

type_of_member_end_2
The class that has an attribute name_of_member_end_1.
upper_of_member_end_2
The upper multiplicity of the second association end.
name_of_member_end_1
The name of the attribute of type_of_member_end_2.
type_of_member_end_1
The type of the attribute of type_of_member_end_2.
upper_of_member_end_1
The upper multiplicity of the attribute of type_of_member_end_2.
proteus_association_type_of_member_end_1

In case the association is implemented as a Proteus <Association>: the Proteus association type corresponding to member end 1.

Otherwise: empty

proteus_association_type_of_member_end_2

In case the association is implemented as a Proteus <Association>: the Proteus association type corresponding to member end 2.

Otherwise: empty

SPARQL Query

PREFIX meta: <http://sandbox.dexpi.org/meta/>

SELECT ?type_of_member_end_2 ?upper_of_member_end_2 ?name_of_member_end_1 ?type_of_member_end_1 ?upper_of_member_end_1 ?proteus_association_type_of_member_end_1 ?proteus_association_type_of_member_end_2
WHERE
{
    [] a meta:ModelClass;
        meta:simpleLabel ?type_of_member_end_2;
        meta:hasDeclaration ?decl.

    ?decl a meta:ModelReferenceDeclaration;
        meta:simpleLabel ?name_of_member_end_1;
        meta:hasTargetType ?target_class;
        meta:hasCardinality ?card;
        meta:hasSourceCardinality ?source_card.

    ?target_class a meta:ModelClass;
        meta:simpleLabel ?type_of_member_end_1.

    {
        {
            ?card meta:maxValues ?upper_of_member_end_1.
        }
        UNION
        {
            BIND("*" as ?upper_of_member_end_1).
            FILTER NOT EXISTS { ?card meta:maxValues ?any_value. }
        }
    }

    {
        {
            ?source_card meta:maxValues ?upper_of_member_end_2.
        }
        UNION
        {
            BIND("*" as ?upper_of_member_end_2).
            FILTER NOT EXISTS { ?source_card meta:maxValues ?any_value. }
        }
    }

    OPTIONAL
    {
        ?decl meta:proteusImplementation [
            a meta:AssociationModelReference;
            meta:sourceAssociation ?proteus_association_type_of_member_end_1;
            meta:targetAssociation ?proteus_association_type_of_member_end_2 ].
    }
}
ORDER BY ?type_of_member_end_2 ?name_of_member_end_2

Partial SPARQL Results

The full query result contains 36 rows. The first rows are as follows:

type_of_member_end_2 upper_of_member_end_2 name_of_member_end_1 type_of_member_end_1 upper_of_member_end_1 proteus_association_type_of_member_end_1 proteus_association_type_of_member_end_2
ActuatingFunction 1 ActuatingLocation PipingNetworkSegment 1 is located in is the location of
ActuatingFunction * Systems ActuatingSystem 1 is fulfilled by fulfills
AgitatorRotor * Chamber Chamber 1 is located in is the location of
AreaIsa95LocatedStructure * AreaIsa95 AreaIsa95 1 is located in is the location of
Displacer * Chamber Chamber 1 is located in is the location of
... ... ... ... ... ... ...

Full SPARQL Results

Cached

Note

The cached results below are guaranteed to correspond to DEXPI P&ID Specification 1.2.

Cached results:

Online

Note

Online results can change! There is no guarantee that these results correspond to DEXPI P&ID Specification 1.2.

Get results online from DEXPI SPARQL server at http://endpoint.dexpi.org: