summaryrefslogtreecommitdiff
path: root/schema/baserock-owl-schema.turtle
diff options
context:
space:
mode:
Diffstat (limited to 'schema/baserock-owl-schema.turtle')
-rw-r--r--schema/baserock-owl-schema.turtle77
1 files changed, 50 insertions, 27 deletions
diff --git a/schema/baserock-owl-schema.turtle b/schema/baserock-owl-schema.turtle
index 20d473d8..f4dadb61 100644
--- a/schema/baserock-owl-schema.turtle
+++ b/schema/baserock-owl-schema.turtle
@@ -44,44 +44,53 @@
# Source definitions
-:Morphology a owl:Class .
+:Morphology a owl:Class ;
+ rdfs:comment "A definition file." .
:Cluster a owl:Class ;
- rdfs:subClassOf :Morphology .
+ rdfs:subClassOf :Morphology ;
+ rdfs:comment "Instructions for deploying one or systems." .
:System a owl:Class ;
- rdfs:subClassOf :Morphology .
+ rdfs:subClassOf :Morphology ;
+ rdfs:comment "A collection of strata in a form that can be executed." .
:Stratum a owl:Class ;
- rdfs:subClassOf :Morphology .
+ rdfs:subClassOf :Morphology ;
+ rdfs:comment "A set of related chunks." .
:Chunk a owl:Class ;
- rdfs:subClassOf :morphology .
+ rdfs:subClassOf :Morphology ;
+ rdfs:comment "An individual component, that can be built from a Git repository." .
# Container contents
-:SystemDeployment a owl:Class .
+:SystemDeployment a owl:Class ;
+ rdfs:comment "Information for deploying one system of a cluster." .
-:ChunkReference a owl:Class .
+:ChunkReference a owl:Class ;
+ rdfs:comment "An instance of a chunk within a stratum." .
# Products (for artifact split rules).
-:Artifact a owl:Class .
+:Artifact a owl:Class ;
+ rdfs:comment "One part of the result of building a morphology. The output of a build is split according to patterns, so there are multiple artifacts produced for a given source." .
:StratumArtifact a owl:Class ;
- rdfs:subClassOf :Artifact .
+ rdfs:subClassOf :Artifact ;
+ rdfs:comment "Part of the result of building a stratum." .
:ChunkArtifact a owl:Class ;
- rdfs:subClassOf :Artifact .
+ rdfs:subClassOf :Artifact ;
+ rdfs:comment "Part of the result of building a chunk." .
## Shared properties
-:hasName a owl:DatatypeProperty , owl:FunctionalProperty ;
- rdfs:domain :Morphology ;
- rdfs:range xsd:string .
+# 'name' is converted to a URL at load time.
-# use dc:description for description, see: http://dublincore.org/documents/2012/06/14/dcmi-terms/?v=terms#terms-description
+# use dc:description for 'description', see:
+# http://dublincore.org/documents/2012/06/14/dcmi-terms/?v=terms#terms-description
## Cluster-specific properties
@@ -104,16 +113,19 @@
:hasType a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain :SystemDeployment ;
- rdfs:range xsd:string .
+ rdfs:range xsd:string ;
+ rdfs:comment "The .write extension used to perform the deployment." .
:hasLocation a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain :SystemDeployment ;
- rdfs:range xsd:string .
+ rdfs:range xsd:string ;
+ rdfs:comment "Deployment location. This is passed to the selected .write extension" .
-# FIXME: this is actually a key-value mapping, how do you do that?
+# FIXME: this is actually a key-value mapping, how do you do that in RDF properly?
:hasConfigurationSetting a owl:DatatypeProperty ;
rdfs:domain :SystemDeployment ;
- rdfs:range xsd:string .
+ rdfs:range xsd:string ;
+ rdfs:comment "Arbitrary key=value pair that is set in the environment of the .configure and .write extensions during deployment." .
## System-specific properties
@@ -123,20 +135,24 @@
rdfs:range :StratumArtifact ;
owl:minCardinality 1 .
+# A build tool will only understand a certain set of architectures, but I think
+# that should not be part of the data model.
:hasArchitecture a owl:DatatypeProperty, owl:FunctionalProperty ;
rdfs:domain :System ;
rdfs:range xsd:string .
:hasConfigurationExtension a owl:DatatypeProperty ;
rdfs:domain :System ;
- rdfs:range xsd:string .
+ rdfs:range xsd:string ;
+ rdfs:comment "A .configure extension to be run when with system is deployed." .
## Stratum-specific properties
:produces a owl:ObjectProperty , rdf:Seq ;
rdfs:domain :Stratum ;
- rdfs:range :StratumArtifact .
+ rdfs:range :StratumArtifact ;
+ rdfs:comment "Describes how this artifact is split once all chunks are built." .
:hasStratumBuildDependency a owl:ObjectProperty ;
rdfs:domain :Stratum ;
@@ -156,15 +172,18 @@
:repo a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain :ChunkReference ;
- rdfs:range xsd:string .
+ rdfs:range xsd:string ;
+ rdfs:comment "Git repo that this chunk's build instructions should be run in. Can be a keyed URL according to the repo-alias mapping, which isn't currently defined in this data model." .
:ref a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain :ChunkReference ;
- rdfs:range xsd:string .
+ rdfs:range xsd:string ;
+ rdfs:comment "Ref of the Git repo that should be checked out before building. Usually a SHA1." .
:unpetrifyRef a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain :ChunkReference ;
- rdfs:range xsd:string .
+ rdfs:range xsd:string ;
+ rdfs:comment "Name of the ref that should be checked out (useful when 'ref' is a SHA1 to keep track of the actual branch/tag name)." .
:hasChunkBuildDependency a owl:ObjectProperty ;
rdfs:domain :ChunkReference ;
@@ -172,9 +191,11 @@
:prefix a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain :ChunkReference ;
- rdfs:range xsd:string .
+ rdfs:range xsd:string ;
+ rdfs:comment "Value of the PREFIX environment variable in the build environment (defaults to /usr)" .
-# FIXME: actually only 'bootstrap' and 'normal' are valid values.
+# FIXME: it's possible to specify in OWL that 'bootstrap' and 'normal' are the
+# only valid values.
:buildMode a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain :ChunkReference ;
rdfs:range xsd:string .
@@ -191,7 +212,8 @@
:produces a owl:ObjectProperty , rdf:Seq ;
rdfs:domain :Chunk ;
- rdfs:range :ChunkArtifact .
+ rdfs:range :ChunkArtifact ;
+ rdfs:comment "Describes how this artifact is split once built." .
:preConfigureCommands a owl:DatatypeProperty , rdf:Seq ;
rdfs:domain :Chunk ;
@@ -234,4 +256,5 @@
:includes a owl:DatatypeProperty, rdf:Seq ;
rdfs:domain :Artifact ;
- rdfs:range xsd:string .
+ rdfs:range xsd:string ;
+ rdfs:comment "A regular expression pattern. The results of a build are matched against this pattern and any that match will be included in that artifact." .