Vocabulary#

The IRIs and prefixes the queries are written against.

Shared IRI vocabulary for the KAPPS Semantic Middleware.

This module is the single source of truth for the ontology terms the middleware reads and writes. Every other module (registration, execution, connectors, tests, notebooks) imports its IRIs from here. The Python code and the published ontologies (Core cfc:, the project svc: module, and the domain mes: module) can never drift apart.

Four namespaces appear below: cfc:, svc:, mes:, and inf:.

cfc: is the published Circular Factory Core ontology (https://w3id.org/circularfactory/Core#). Term names below are verified against the 0.9.0 release.

svc: is this project’s own Service ontology module (https://w3id.org/circularfactory/Service#), defined in kapps_semantic_middleware/ontology/service.ttl.

mes: is the Manufacturing Execution System domain ontology (https://w3id.org/circularfactory/MES#), defined in kapps_semantic_middleware/ontology/mes.ttl. It is domain-facing. It covers possession and handover-ability vocabulary.

inf: is the interface vocabulary. It defines what makes a domain parameter reachable over a protocol. It is authored for now under the existing CrcInterfaces IRI, so scenario 3 stays vocabulary-compatible with the minimal example shared across kapps_triplestore_interface and kapps_ogm. CrcInterfaces is deprecated. A planned consolidation re-homes these terms under the inf: name it mints. Code must therefore reach these terms only through class INF, never inline at a use site. A rename is then one constant here, plus a find-and-replace.

class kapps_semantic_middleware.vocabulary.RDFS[source]#

Bases: object

The rdfs: terms this middleware writes into a query or reads out of one.

kapps_semantic_middleware.vocabulary.META_TYPE_NAMESPACES = ('http://www.w3.org/2002/07/owl#', 'http://www.w3.org/2000/01/rdf-schema#', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#')#

Namespaces of the types every individual carries that say nothing about what it is.

An OGM ClassSpec resolved against one of these fails outright, and owl:NamedIndividual in particular is asserted on everything the OGM writes. Anything starting with one of these is filtered out when the code asks the graph what an individual actually is.

class kapps_semantic_middleware.vocabulary.CFC[source]#

Bases: object

Terms from the Core ontology (cfc:) that the middleware references.

class kapps_semantic_middleware.vocabulary.SVC[source]#

Bases: object

Terms from this project Service ontology (svc:).

class kapps_semantic_middleware.vocabulary.MES[source]#

Bases: object

Terms from this project MES ontology (mes:), defined in ontology/mes.ttl.

Scope is now handover ability only. Possession itself is Core material-flow state (cfc:PossessionState / cfc:hasPossessor / cfc:hasPossessedWorkpiece, see class CFC). This module no longer mints its own possession vocabulary.

class kapps_semantic_middleware.vocabulary.INF[source]#

Bases: object

Terms from the interface vocabulary (inf:).

A parameter is one node hanging off a domain property. It carries the value together with everything needed to reach it over a protocol. The terms split into two layers. The split is load-bearing:

  • Northbound-safe — declared by the generic marker isInterfaceAccessibleParameter: accessMode, and the parameter own domain content. Safe to serve to a peer.

  • Southbound only — declared by a protocol marker such as isInterfaceAccessibleMQTTParameter: the connection metadata. A peer that learned the broker address and topics could drive the device directly. It would bypass the middleware. This must never reach a northbound payload.

The core never decides which terms are southbound by name. A binding descriptor declares its own connection_metadata. The registry takes the union.

class kapps_semantic_middleware.vocabulary.AccessMode[source]#

Bases: object

String values for inf:accessMode. Not IRIs / individuals.

Absent or unrecognised means read-only. A parameter is never writable by accident of omission by accident of omission.

class kapps_semantic_middleware.vocabulary.OperationStatus[source]#

Bases: object

String values for svc:operationStatus, in lifecycle order. Not IRIs / individuals.