diff options
Diffstat (limited to 'schema/baserock-owl-schema.turtle')
-rw-r--r-- | schema/baserock-owl-schema.turtle | 77 |
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." . |