RDF-H - A Holonic Modeling Pattern Vocabulary
type: Ontology
comment: This vocabulary defines the core classes, properties, and SHACL constraint components for representing and validating holarchic structures in RDF.
version IRI: http://www.w3.org/ns/rdfh#1.0
creator: Stephane Fellah
  type: Person
  workplace homepage: https://geoknoesis.com

Holon
type: Class
subclass of: Resource
comment: A resource that acts as a context for other relationships, representing a 'whole' composed of 'parts'.

in holon
type: ObjectProperty
comment: An object property that links a reified triple (a relationship) to the holon it is a constituent part of.
domain: Statement
range: Holon

part of
type: ObjectProperty
type: TransitiveProperty
comment: The top-level, transitive super-property for all part-whole relations.

has part
type: ObjectProperty
type: TransitiveProperty
comment: The top-level, transitive super-property for all whole-part relations.
inverse of: part of

component of
type: ObjectProperty
comment: A non-transitive sub-property of h:partOf for functional or structural parts.
sub property of: part of

has component
type: ObjectProperty
comment: The inverse of h:componentOf.
sub property of: has part
inverse of: component of

member of
type: ObjectProperty
comment: A non-transitive sub-property of h:partOf for elements in a collection or group.
sub property of: part of

has member
type: ObjectProperty
comment: The inverse of h:memberOf.
sub property of: has part
inverse of: member of

substance of
type: ObjectProperty
type: TransitiveProperty
comment: A transitive sub-property of h:partOf for material composition.
sub property of: part of

has substance
type: ObjectProperty
type: TransitiveProperty
comment: The inverse of h:substanceOf.
sub property of: has part
inverse of: substance of

portion of
type: ObjectProperty
type: TransitiveProperty
comment: A transitive sub-property of h:partOf for segments of a continuous whole.
sub property of: part of

has portion
type: ObjectProperty
type: TransitiveProperty
comment: The inverse of h:portionOf.
sub property of: has part
inverse of: portion of

Acyclic Part Constraint Component
type: ConstraintComponent
comment: Validates that a holon is not part of a cycle in the part-of hierarchy.
validator: AcyclicPartValidator

AcyclicPartValidator
type: SPARQLValidator
message: The focus node participates in a part-of cycle.
select: PREFIX h: <http://www.w3.org/ns/rdfh#> SELECT $this WHERE { $this h:partOf+ $this . }

Holon Integrity Constraint Component
type: ConstraintComponent
comment: Validates that a resource used as a holon is explicitly typed as h:Holon.
validator: HolonIntegrityValidator

HolonIntegrityValidator
type: SPARQLValidator
message: The focus node is used as a holon (object of h:inHolon) but is not typed as h:Holon.
select: PREFIX h: <http://www.w3.org/ns/rdfh#> SELECT $this WHERE { ?s h:inHolon $this . FILTER NOT EXISTS { $this a h:Holon . } }