SAL Module TTL Spec
This page contains the TTL file for the SAL module ontology, which is used to generate the reference page here
@prefix : <https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#> .@prefix dc: <http://purl.org/dc/elements/1.1/> .@prefix sh: <http://www.w3.org/ns/shacl#> .@prefix owl: <http://www.w3.org/2002/07/owl#> .@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix xml: <http://www.w3.org/XML/1998/namespace> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .@prefix skos: <http://www.w3.org/2004/02/skos/core#> .@prefix schema: <https://schema.org/> .@prefix salmodule: <https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#> .@base <https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#> .
<https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#> a owl:Ontology ; dc:creator "Andrew Padilla" ; dc:date "2024-06-01"^^xsd:date ; dc:description "This is the SAL Module vocabulary for implementing the SAL Module protocol in containerized application logic orchestrated within SAL projects"@en ; dc:title "The Semantic Accessibility Layer (SAL) Module Ontology"@en ; rdfs:label "SAL Module"@en ; owl:versionInfo "0.0.1" ; salmodule:baseCommand "salmodule" ; salmodule:ontologyCommand "ontology" , "vocab" , "vocabulary" ; salmodule:protocolScheme "salmodule" ; salmodule:runCommand "run" ; salmodule:taskInstanceEnvVar "SALMODULE_TASK_INSTANCE" .
################################################################## Ontology properties#################################################################
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#baseCommandsalmodule:baseCommand a owl:OntologyProperty ; rdfs:comment "The base command for all containerized applications that adhere to the SAL Module protocol"@en ; rdfs:label "Base Command"@en ; skos:example "docker run SAL_MODULE_IMAGE <salmodule:baseCommand> <salmodule:ontologyCommand|salmodule:runCommand>" .
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#ontologyCommandsalmodule:ontologyCommand a owl:OntologyProperty ; rdfs:comment "Subcommand of <salmodule:baseCommand> used to invoke printing of a SAL Module's ontology to stdout in JSON-LD format."@en ; rdfs:label "Ontology Command"@en ; rdfs:seeAlso salmodule:baseCommand , salmodule:protocolScheme ; skos:example "docker run SAL_MODULE_IMAGE <salmodule:baseCommand> <salmodule:ontologyCommand>" ; skos:note "invoked when user requests (dereferences) SAL Module ontology via the salmodule protocol scheme."@en .
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#protocolSchemesalmodule:protocolScheme a owl:OntologyProperty ; rdfs:comment "The protocol scheme used to identify SAL Module resources."@en ; rdfs:label "Protocol Scheme"@en ; rdfs:seeAlso salmodule:ontologyCommand ; skos:example "salmodule://github.com/owner/repository" ; skos:note """Dereferencing an ontology with a SAL protocol scheme involves using 1) the github based protocol to clone the remote git repository 2) build the container image using the Dockerfile located in the base repository directory and 3) run the container using the salmodule:ontologyCommand subcommand."""@en .
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#runCommandsalmodule:runCommand a owl:OntologyProperty ; rdfs:comment "Subcommand of <salmodule:baseCommand>. Invokes the salmodule:Task subclass instance identified by the environment variable <salmodule:taskInstanceEnvVar>."@en ; rdfs:label "Run Command"@en ; rdfs:seeAlso salmodule:Task , salmodule:baseCommand , salmodule:taskInstanceEnvVar ; skos:example "<salmodule:taskInstanceEnvVar>=\"<JSON-LD object representation of salmodule:Task> instance\" docker run SAL_MODULE_IMAGE <salmodule:runCommand>" ; skos:note "The environment variable <salmodule:taskInstanceEnvVar> must be set to a JSON-LD representation of the salmodule:Task subclass instance to be invoked."@en .
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#taskInstanceEnvVarsalmodule:taskInstanceEnvVar a owl:OntologyProperty ; rdfs:comment "Environment variable that identifies the instance of a salmodule:Task subclass defined in the SAL Module ontology to be invoked by the salmodule:runCommand."@en ; rdfs:label "Task Instance Environment Variable"@en ; skos:example "<salmodule:taskInstanceEnvVar>=\"<JSON object representation of salmodule:Task instance>\"" ; skos:note "Environment variable <salmodule:taskInstanceEnvVar> must be set to a JSON representation of the SAL Module's salmodule:Task subclass instance to be invoked."@en ; skos:note "Environment variable's assigned JSON object will be converted to RDF statements by the SAL Module ontology @context." .
################################################################## Datatypes#################################################################
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#inboundListenersalmodule:inboundListener a rdfs:Datatype ; rdfs:comment "Literal representing a [host:]<port> describing a desired inbound connection to the SAL Module" ; rdfs:label "Inbound Listener"@en ; skos:example "8080" , "example.com:8080" ; skos:note "Use this datatype on literals that describe desired inbound connections to the SAL Module."@en .
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#outboundEndpointsalmodule:outboundEndpoint a rdfs:Datatype ; rdfs:comment "Literal representing a URL or <host>:<port> format describing a desired outbound connection from the SAL Module" ; rdfs:label "Outbound Endpoint"@en ; skos:example "example.com:8080" , "http://example.com:8080" ; skos:note "Use this datatype on literals that describe desired outbound connections from the SAL Module."@en .
################################################################## Annotation Properties#################################################################
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#inputsalmodule:input a owl:AnnotationProperty ; rdfs:range sh:NodeShape ; rdfs:comment "A property representing the required SHACL sh:NodeShape(s) of the newline delimited JSON node input stream from stdin to a salmodule:Task within a SAL Module containerized application."@en ; rdfs:label "JSON(-LD) Node Input"@en ; skos:note "It is the responsibility of the salmodule:Task subclass implementation to inject its ontology's JSON-LD @context into the JSON input node to resolve to its vocabulary."@en , "The input stream accepts newline delimited JSON objects (not JSON-LD)."@en .
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#outputsalmodule:output a owl:AnnotationProperty ; rdfs:range sh:NodeShape ; rdfs:comment "A property representing the required SHACL sh:NodeShape(s) of the newline delimited JSON node output stream to stdout from a salmodule:Task subclass instance within a SAL Module containerized application."@en ; rdfs:label "JSON(-LD) Node Output"@en ; skos:note "The output stream must produce newline delimited JSON nodes that conform to the specified sh:NodeShape(s) when injected with the JSON-LD @context object defined within the salmodule's ontology."@en .
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#selfsalmodule:self a owl:AnnotationProperty ; rdfs:range sh:NodeShape ; rdfs:comment "A property representing the required shape of the salmodule:Task subclass instance itself."@en ; rdfs:label "Self"@en .
################################################################## Classes#################################################################
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#Tasksalmodule:Task a owl:Class ; rdfs:comment "A class representing an operational task within a SAL Module containerized application."@en ; rdfs:label "Task"@en ; skos:note "SAL Module implementers create subclasses of salmodule:Task to define specific operational tasks within the containerized application."@en ; rdfs:seeAlso salmodule:taskInstanceEnvVar, salmodule:runCommand; salmodule:output [ a sh:NodeShape ; sh:property [ sh:message "An rdfs:comment (message) is required for salmodule:Error instances"@en ; sh:minCount 1 ; sh:path rdfs:comment ] , [ sh:message "An rdfs:label is optional for salmodule:Error instances and can be used for display purposes"@en ; sh:path rdfs:label ] ; sh:targetClass salmodule:Error ] .
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#Errorsalmodule:Error a owl:Class ; rdfs:comment "A class representing an error condition within a salmodule:Task at runtime."@en ; rdfs:label "Error"@en ; rdfs:seeAlso salmodule:Task , salmodule:runCommand ; skos:note "Instances of salmodule:Error represent error conditions that occur during the execution of a salmodule:Task within a SAL Module containerized application."@en .
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#NodeConsumersalmodule:NodeConsumer a owl:Class ; owl:equivalentClass [ owl:intersectionOf ( salmodule:Task [ a owl:Restriction ; owl:onProperty salmodule:input ; owl:someValuesFrom sh:NodeShape ] ) ; a owl:Class ] ; rdfs:comment "An inferred class representing an entity that consumes JSON(-LD) newline delimited JSON node stream from stdin within a SAL Module containerized application."@en ; rdfs:label "Node Consumer"@en .
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#NodeProcessorsalmodule:NodeProcessor a owl:Class ; owl:equivalentClass [ owl:intersectionOf ( salmodule:Task [ a owl:Restriction ; owl:onProperty salmodule:input ; owl:someValuesFrom sh:NodeShape ] [ a owl:Restriction ; owl:onProperty salmodule:output ; owl:someValuesFrom sh:NodeShape ] ) ; a owl:Class ] ; rdfs:comment "An inferred class representing an entity that processes newline delimited JSON node streams via stdin/stdout within a SAL Module containerized application."@en ; rdfs:label "Node Processor"@en .
### https://w3id.org/sal/cgs-earth/sal-module-spec/salmodule#NodeProducersalmodule:NodeProducer a owl:Class ; owl:equivalentClass [ owl:intersectionOf ( salmodule:Task [ a owl:Restriction ; owl:onProperty salmodule:output ; owl:someValuesFrom sh:NodeShape ] ) ; a owl:Class ] ; rdfs:comment "An inferred class representing an entity that produces a newline delimited JSON node stream to stdout within a SAL Module containerized application."@en ; rdfs:label "Node Producer"@en .