SHACL Shapes
https://meta.linked.archi/archimate4/derivation#
SHACL Rules (sh:SPARQLRule) implementing ArchiMate 4.0 derivation rules. Derived relationships are annotated with confidence level via a custom property and provenance via PROV-O (prov:wasGeneratedBy, prov:wasDerivedFrom). Draft — the full derivation matrix needs validation against the ArchiMate 4.0 spec.
SELECT $this ?rel ?target WHERE {
$this ?rel ?target .
<<$this ?rel ?target>> :derivationCertainty ?cert .
{
$this rdf:type/rdfs:subClassOf* am4:CommonDomainElement .
} UNION {
$this rdf:type/rdfs:subClassOf* am4:BusinessDomainElement .
} UNION {
$this rdf:type/rdfs:subClassOf* am4:ApplicationDomainElement .
} UNION {
$this rdf:type/rdfs:subClassOf* am4:TechnologyDomainElement .
}
?target rdf:type/rdfs:subClassOf* am4:MotivationElement .
FILTER(?rel NOT IN (am4:influences, am4:associatedWith))
}
SELECT $this ?rel ?target WHERE {
$this ?rel ?target .
<<$this ?rel ?target>> :derivationCertainty ?cert .
?target rdf:type/rdfs:subClassOf* am4:MotivationElement .
FILTER(?rel NOT IN (am4:assignedTo, am4:realizes, am4:influences, am4:associatedWith))
}
SELECT $this ?rel ?target WHERE {
$this ?rel ?target .
<<$this ?rel ?target>> :derivationCertainty ?cert .
?target rdf:type/rdfs:subClassOf* am4:StrategyElement .
FILTER(?rel NOT IN (am4:associatedWith, am4:realizes))
}
SELECT $this ?rel ?target WHERE {
$this ?rel ?target .
<<$this ?rel ?target>> :derivationCertainty ?cert .
{
?target rdf:type/rdfs:subClassOf* am4:CommonDomainElement .
} UNION {
?target rdf:type/rdfs:subClassOf* am4:BusinessDomainElement .
} UNION {
?target rdf:type/rdfs:subClassOf* am4:ApplicationDomainElement .
} UNION {
?target rdf:type/rdfs:subClassOf* am4:TechnologyDomainElement .
} UNION {
?target rdf:type/rdfs:subClassOf* am4:StrategyElement .
}
FILTER(?rel != am4:associatedWith)
}
SELECT $this ?rel ?target WHERE {
$this ?rel ?target .
<<$this ?rel ?target>> :derivationCertainty ?cert .
{
?target rdf:type/rdfs:subClassOf* am4:CommonDomainElement .
} UNION {
?target rdf:type/rdfs:subClassOf* am4:BusinessDomainElement .
} UNION {
?target rdf:type/rdfs:subClassOf* am4:ApplicationDomainElement .
} UNION {
?target rdf:type/rdfs:subClassOf* am4:TechnologyDomainElement .
}
FILTER(?rel != am4:associatedWith)
}