Associations (Compositions)

Get the composition associations in the DEXPI Information Model.

Each composition association has the following form:

../_images/generic_composition.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.
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.
description

Optional. A description of the association.

Note

Descriptions may contain markup that is used to build the official PDF version of the DEXPI Specification. In the cached HTML, CSV, and Excel results below, this markup has been removed for better readability. For example, a description such as The \labeledref[class:]{ControlledActuator} of the <owner> will be shown as The ControlledActuator of the ActuatingSystem.

is_proteus_child
A boolean indicating if the association is implemented in Proteus Schema by placing the XML element(s) for the components (type_of_member_end_1) as child(ren) in the XML element for the composite (type_of_member_end_2).

SPARQL Query

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

SELECT ?type_of_member_end_2 ?name_of_member_end_1 ?type_of_member_end_1 ?upper_of_member_end_1 ?description ?is_proteus_child
WHERE
{
    [] a meta:ModelClass;
        meta:simpleLabel ?type_of_member_end_2;
        meta:hasDeclaration ?decl.

    ?decl a meta:ComponentDeclaration;
        meta:simpleLabel ?name_of_member_end_1;
        meta:hasTargetType ?target_class;
        meta:hasCardinality ?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. }
        }
    }

    OPTIONAL
    {
        ?decl meta:description ?description.
    }

    BIND(
        EXISTS
        {
            ?decl meta:proteusImplementation [
                a meta:ChildComponent]
        }
        AS ?is_proteus_child)
}
ORDER BY ?type_of_member_end_2 ?name_of_member_end_2

Partial SPARQL Results

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

type_of_member_end_2 name_of_member_end_1 type_of_member_end_1 upper_of_member_end_1 description is_proteus_child
ActuatingSystem ControlledActuator ControlledActuator 1 The ControlledActuator of the ActuatingSystem. true
ActuatingSystem Positioner Positioner 1 The Positioner of the ActuatingSystem. true
ActuatingSystem ShutOffValveReference ShutOffValveReference 1 The ShutOffValveReference of the ActuatingSystem. true
Agitator Rotor AgitatorRotor 1 The rotor of the Agitator. true
AirCoolingSystem Rotor HeatExchangerRotor 1 The rotor of the AirCoolingSystem. true
... ... ... ... ... ...

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: