summaryrefslogtreecommitdiff
path: root/schemas/baserock.owl
diff options
context:
space:
mode:
Diffstat (limited to 'schemas/baserock.owl')
-rw-r--r--schemas/baserock.owl295
1 files changed, 0 insertions, 295 deletions
diff --git a/schemas/baserock.owl b/schemas/baserock.owl
deleted file mode 100644
index 33113d84..00000000
--- a/schemas/baserock.owl
+++ /dev/null
@@ -1,295 +0,0 @@
-# Copyright (C) 2015 Codethink Limited
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-# This schema describes the Baserock data model. It describes how the data
-# can be represented in computer memory, it doesn't specify anything about
-# how it should be stored on disk or transferred.
-#
-# Please see README.schemas, and http://wiki.baserock.org/definitions/current/
-# for more information.
-#
-# This is not a brilliant schema, in Linked Data terms, because it's using
-# Baserock-specific terminology and a rigid layout, instead of being a generic
-# vocabulary for describing how to assemble software. However, it maps closely
-# to the format that the existing Baserock reference system definitions use.
-# We hope to produce a simpler and more flexible 2.x version of this schema in
-# future.
-
-
-# Partial OWL and RDF Schema glossary:
-#
-# domain: the set of objects that a can have a property.
-# range: the set of possible values for a property.
-#
-# ObjectProperty:
-# a property whose value must be another resource.
-# DatatypeProperty:
-# a property whose value is one of the datatype defined by XML Schema ("xsd")
-# FunctionalProperty:
-# a property which can only have one value per resource
-# InverseFunctionalProperty:
-# a property which can only have one resource per value
-
-
-# Metadata
-
-@prefix : <http://baserock.org/definitions/example-schema#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-@prefix dc: <http://purl.org/dc/elements/1.1/> .
-
-: a owl:Ontology ;
- dc:title "Schema for Baserock data model" ;
- dc:creator "The Baserock Project" ;
- # Versioned according to Semantic Versioning http://www.semver.org/
- owl:versionInfo "0.9.0" .
-
-
-## Entities
-
-# Source definitions
-
-:Morphology a owl:Class ;
- rdfs:comment "A definition file." .
-
-:Cluster a owl:Class ;
- rdfs:subClassOf :Morphology ;
- rdfs:comment "Instructions for deploying one or systems." ;
- owl:disjointWith :System, :Stratum, :Chunk .
-
-:System a owl:Class ;
- rdfs:subClassOf :Morphology ;
- rdfs:comment "A collection of strata in a form that can be executed." ;
- owl:disjointWith :Cluster, :Stratum, :Chunk .
-
-:Stratum a owl:Class ;
- rdfs:subClassOf :Morphology ;
- rdfs:comment "A set of related chunks." ;
- owl:disjointWith :Cluster, :System, :Chunk .
-
-:Chunk a owl:Class ;
- rdfs:subClassOf :Morphology ;
- rdfs:comment "An individual component, that can be built from a Git repository." ;
- owl:disjointWith :Cluster, :System, :Stratum .
-
-# Container contents
-
-:SystemDeployment a owl:Class ;
- rdfs:comment "Information for deploying one system of a cluster." .
-
-:ChunkReference a owl:Class ;
- rdfs:comment "An instance of a chunk within a stratum." .
-
-# Products (for artifact split rules).
-
-: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:comment "Part of the result of building a stratum." ;
- owl:disjointWith :ChunkArtifact.
-
-:ChunkArtifact a owl:Class ;
- rdfs:subClassOf :Artifact ;
- rdfs:comment "Part of the result of building a chunk." ;
- owl:disjointWith :StratumArtifact.
-
-
-## Shared properties
-
-# 'name' becomes part of the URL when we import definition .morph files as RDF,
-# so it doesn't need a property.
-
-# Use dc:description for 'description', see:
-# http://dublincore.org/documents/2012/06/14/dcmi-terms/?v=terms#terms-description
-
-
-## Cluster-specific properties
-
-:containsSystemDeployment a owl:ObjectProperty ;
- rdfs:domain :Cluster ;
- rdfs:range :SystemDeployment ;
- owl:minCardinality 1 .
-
-
-## SystemDeployment-specific properties
-
-:deploysSystem a owl:ObjectProperty , owl:FunctionalProperty ;
- rdfs:domain :SystemDeployment ;
- rdfs:range :System .
-
-:hasLabel a owl:DatatypeProperty , owl:FunctionalProperty ;
- rdfs:domain :SystemDeployment ;
- rdfs:range xsd:string .
-
-:hasType a owl:DatatypeProperty , owl:FunctionalProperty ;
- rdfs:domain :SystemDeployment ;
- 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:comment "Deployment location. This is passed to the selected .write extension" .
-
-# 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:comment "Arbitrary key=value pair that is set in the environment of the .configure and .write extensions during deployment." .
-
-
-## System-specific properties
-
-:containsStratumArtifact a owl:ObjectProperty ;
- rdfs:domain :System ;
- 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:comment "A .configure extension to be run when with system is deployed." .
-
-
-## Stratum-specific properties
-
-:producesStratumArtifact a owl:ObjectProperty , rdf:Seq ;
- rdfs:domain :Stratum ;
- rdfs:range :StratumArtifact ;
- rdfs:comment "iDescribes how this artifact is split once all chunks are built." .
-
-:hasStratumBuildDependency a owl:ObjectProperty ;
- rdfs:domain :Stratum ;
- rdfs:range :Stratum .
-
-:containsChunkReference a owl:ObjectProperty ;
- rdfs:domain :Stratum ;
- rdfs:range :ChunkReference ;
- owl:minCardinality 1 .
-
-
-## ChunkReference-specific properties
-
-:refersToChunk a owl:ObjectProperty , owl:FunctionalProperty ;
- rdfs:domain :ChunkReference ;
- rdfs:range :Chunk .
-
-:repo a owl:DatatypeProperty , owl:FunctionalProperty ;
- rdfs:domain :ChunkReference ;
- 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: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: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 ;
- rdfs:range :Chunk .
-
-:prefix a owl:DatatypeProperty , owl:FunctionalProperty ;
- rdfs:domain :ChunkReference ;
- rdfs:range xsd:string ;
- rdfs:comment "Value of the PREFIX environment variable in the build environment (defaults to /usr)" .
-
-# 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 .
-
-
-## Chunk-specific properties
-
-# build-system isn't included here, as it overlaps with the *-commands
-# fields in an unfortunate way.
-
-# Note that representing lists of things in RDF is a bit of a pain.
-# http://smiy.sourceforge.net/olo/spec/orderedlistontology.html might
-# be worth investigating.
-
-:producesChunkArtifact a owl:ObjectProperty , rdf:Seq ;
- rdfs:domain :Chunk ;
- rdfs:range :ChunkArtifact ;
- rdfs:comment "Describes how this artifact is split once built." .
-
-:maxJobs a owl:FunctionalProperty ;
- rdfs:domain :Chunk ;
- rdfs:range xsd:integer ;
- rdfs:comment "Number of parallel jobs that can be run for this chunk. Only useful if set to 1, to mark components which have Makefiles that do not work with `make -j N`.".
-
-:CommandSequence a owl:Class ;
- rdfs:subClassOf rdf:Seq ;
- rdfs:comment "An ordered sequence of commands." .
-
-:preConfigureCommands a owl:ObjectProperty , owl:FunctionalProperty ;
- rdfs:domain :Chunk ;
- rdfs:range :CommandSequence .
-
-:configureCommands a owl:ObjectProperty , owl:FunctionalProperty ;
- rdfs:domain :Chunk ;
- rdfs:range :CommandSequence .
-
-:postConfigureCommands a owl:ObjectProperty , owl:FunctionalProperty ;
- rdfs:domain :Chunk ;
- rdfs:range :CommandSequence .
-
-:preBuildCommands a owl:ObjectProperty , owl:FunctionalProperty ;
- rdfs:domain :Chunk ;
- rdfs:range :CommandSequence .
-
-:buildCommands a owl:ObjectProperty , owl:FunctionalProperty ;
- rdfs:domain :Chunk ;
- rdfs:range :CommandSequence .
-
-:postBuildCommands a owl:ObjectProperty , owl:FunctionalProperty ;
- rdfs:domain :Chunk ;
- rdfs:range :CommandSequence .
-
-:preInstallCommands a owl:ObjectProperty , owl:FunctionalProperty ;
- rdfs:domain :Chunk ;
- rdfs:range :CommandSequence .
-
-:installCommands a owl:ObjectProperty , owl:FunctionalProperty ;
- rdfs:domain :Chunk ;
- rdfs:range :CommandSequence .
-
-:postInstallCommands a owl:ObjectProperty , owl:FunctionalProperty ;
- rdfs:domain :Chunk ;
- rdfs:range :CommandSequence .
-
-
-# Artifact properties
-
-:includes a owl:DatatypeProperty , rdf:Seq ;
- rdfs:domain :Artifact ;
- 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." .