Skip to content

Instantly share code, notes, and snippets.

@navicore
Created December 25, 2025 16:38
Show Gist options
  • Select an option

  • Save navicore/6cc18525dfe8b77ddf13d6ffc4b83c69 to your computer and use it in GitHub Desktop.

Select an option

Save navicore/6cc18525dfe8b77ddf13d6ffc4b83c69 to your computer and use it in GitHub Desktop.
An Ontology for ARC42 as RDF

core-ontology.ttl

Minimal, pragmatic ontology for an RDF-first, file-based

system knowledge graph suitable for arc42 generation

and operational reasoning in a Flux + EKS SaaS.

@prefix ex: https://navicore.tech/ops# . @prefix k8s: https://navicore.tech/k8s# . @prefix flux: https://navicore.tech/flux# . @prefix scm: https://navicore.tech/scm# . @prefix obs: https://navicore.tech/obs# . @prefix org: https://navicore.tech/org# . @prefix prov: http://www.w3.org/ns/prov# . @prefix rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# . @prefix rdfs: http://www.w3.org/2000/01/rdf-schema# . @prefix xsd: http://www.w3.org/2001/XMLSchema# .

########################

Core architectural concepts

########################

ex:System a rdfs:Class ; rdfs:comment "A logical system boundary (e.g. the SaaS product as a whole)." .

ex:Service a rdfs:Class ; rdfs:comment "A runtime-operable service that can be owned, deployed, alerted on, and reasoned about." .

ex:Component a rdfs:Class ; rdfs:comment "A deployable or buildable unit; optional abstraction if you want to distinguish from Service." .

ex:Tenant a rdfs:Class ; rdfs:comment "A first-class tenant at the application or security boundary." .

ex:Environment a rdfs:Class ; rdfs:comment "An environment such as prod, stage, dev." .

########################

Kubernetes / runtime model

########################

k8s:Cluster a rdfs:Class ; rdfs:comment "A Kubernetes cluster (e.g. an EKS cluster)." .

k8s:Namespace a rdfs:Class ; rdfs:comment "A Kubernetes namespace." .

k8s:Workload a rdfs:Class ; rdfs:comment "A Kubernetes workload abstraction." .

k8s:Deployment a rdfs:Class ; rdfs:subClassOf k8s:Workload . k8s:StatefulSet a rdfs:Class ; rdfs:subClassOf k8s:Workload . k8s:DaemonSet a rdfs:Class ; rdfs:subClassOf k8s:Workload . k8s:Job a rdfs:Class ; rdfs:subClassOf k8s:Workload . k8s:CronJob a rdfs:Class ; rdfs:subClassOf k8s:Workload .

k8s:ServiceObj a rdfs:Class ; rdfs:comment "A Kubernetes Service object (named to avoid clash with ex:Service)." .

k8s:Ingress a rdfs:Class .

k8s:HelmChart a rdfs:Class ; rdfs:comment "A Helm chart (internal or external)." .

k8s:Config a rdfs:Class ; rdfs:comment "A configuration object such as ConfigMap or Secret." .

########################

Flux / GitOps model

########################

flux:Kustomization a rdfs:Class ; rdfs:comment "A Flux Kustomization object." .

flux:HelmRelease a rdfs:Class ; rdfs:comment "A Flux HelmRelease object." .

########################

Source control model

########################

scm:Repo a rdfs:Class ; rdfs:comment "A source code repository." .

scm:Commit a rdfs:Class ; rdfs:comment "A specific source control commit." .

########################

Organization / ownership

########################

org:Team a rdfs:Class ; rdfs:comment "A team responsible for owning and operating services." .

org:Person a rdfs:Class .

org:OnCall a rdfs:Class ; rdfs:comment "An on-call rotation or escalation policy." .

########################

Observability / operations

########################

obs:Dashboard a rdfs:Class ; rdfs:comment "An observability dashboard (Datadog, Grafana, etc.)." .

obs:Monitor a rdfs:Class ; rdfs:comment "An alert or monitor." .

obs:SLO a rdfs:Class ; rdfs:comment "A service-level objective." .

########################

Core relationships

########################

System composition

ex:hasComponent a rdf:Property ; rdfs:domain ex:System ; rdfs:range ex:Component .

Runtime mapping

ex:runsAs a rdf:Property ; rdfs:domain ex:Service ; rdfs:range k8s:Workload .

ex:exposes a rdf:Property ; rdfs:domain ex:Service ; rdfs:range k8s:ServiceObj .

ex:ingressedBy a rdf:Property ; rdfs:domain ex:Service ; rdfs:range k8s:Ingress .

Dependency & structure

ex:dependsOn a rdf:Property ; rdfs:domain ex:Service ; rdfs:range rdfs:Resource ; rdfs:comment "Service-to-service or service-to-infrastructure dependency." .

Ownership & org

ex:ownedBy a rdf:Property ; rdfs:domain ex:Service ; rdfs:range org:Team .

ex:onCall a rdf:Property ; rdfs:domain ex:Service ; rdfs:range org:OnCall .

Tenancy

ex:hasTenant a rdf:Property ; rdfs:domain ex:Service ; rdfs:range ex:Tenant .

ex:tenantType a rdf:Property ; rdfs:domain ex:Tenant ; rdfs:range xsd:string ; rdfs:comment "Examples: app, security." .

Environment

ex:inEnv a rdf:Property ; rdfs:domain ex:Service ; rdfs:range ex:Environment .

Kubernetes placement

k8s:inNamespace a rdf:Property ; rdfs:domain k8s:Workload ; rdfs:range k8s:Namespace .

k8s:inCluster a rdf:Property ; rdfs:domain k8s:Namespace ; rdfs:range k8s:Cluster .

k8s:labels a rdf:Property ; rdfs:comment "Key/value labels; representation left to implementation." .

Flux relationships

flux:manages a rdf:Property ; rdfs:domain flux:Kustomization ; rdfs:range flux:HelmRelease .

flux:releases a rdf:Property ; rdfs:domain flux:HelmRelease ; rdfs:range k8s:HelmChart .

flux:valuesFrom a rdf:Property ; rdfs:domain flux:HelmRelease ; rdfs:range k8s:Config .

Source control links

scm:sourceRepo a rdf:Property ; rdfs:domain ex:Service ; rdfs:range scm:Repo .

scm:deployCommit a rdf:Property ; rdfs:domain flux:HelmRelease ; rdfs:range scm:Commit .

Observability links

obs:hasDashboard a rdf:Property ; rdfs:domain ex:Service ; rdfs:range obs:Dashboard .

obs:hasMonitor a rdf:Property ; rdfs:domain ex:Service ; rdfs:range obs:Monitor .

obs:hasSLO a rdf:Property ; rdfs:domain ex:Service ; rdfs:range obs:SLO .

obs:logsQuery a rdf:Property ; rdfs:comment "A parameterized log query template." .

obs:metricsQuery a rdf:Property ; rdfs:comment "A parameterized metrics query template." .

########################

Provenance (recommended)

########################

prov:wasDerivedFrom a rdf:Property . prov:generatedAtTime a rdf:Property . prov:confidence a rdf:Property ; rdfs:range xsd:decimal .

End of core ontology

@navicore
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment