diff --git a/.github/emmocheck_conf.yml b/.github/emmocheck_conf.yml new file mode 100644 index 0000000..83b916d --- /dev/null +++ b/.github/emmocheck_conf.yml @@ -0,0 +1,11 @@ +# Configurations used when running emmocheck from the ci_emmocheck workflow +skip: + - test_description + +test_number_of_labels: + exceptions: + - 0.1.Person # foaf:Person + - 0.1.mbox # foaf:mbox + - 22-rdf-syntax-ns.Statement # rdf:Statement + - dcat.Distribution + - dcat.Dataset diff --git a/.github/workflows/cd_publish.yml b/.github/workflows/cd_publish.yml index 5a580d4..6f7fcb8 100644 --- a/.github/workflows/cd_publish.yml +++ b/.github/workflows/cd_publish.yml @@ -2,13 +2,9 @@ name: CD_publish on: push: + branches: + - master -#on: -# push: -# branches: -# - '[0-9]+.[0-9]+.[0-9]+' -# - '[0-9]+.[0-9]+.[0-9]+-*' -# # Allows you to run this workflow manually from the Actions tab workflow_dispatch: @@ -24,37 +20,70 @@ jobs: with: python-version: 3.11 - - name: Install EMMOntoPy and pyvode + - name: Install ROBOT + run: | + mkdir bin + wget -nv https://github.com/ontodev/robot/releases/download/v1.9.6/robot.jar + mv robot.jar bin/. + curl https://raw.githubusercontent.com/ontodev/robot/master/bin/robot > bin/robot + chmod +x bin/robot + ls -l bin/ + + - name: Install EMMOntoPy and Sphinx run: | pip install --upgrade pip - pip install pylode==2.13.2 git+https://github.com/EMMO-REPO/EMMOntoPy.git - - - name: Create build directory - run: mkdir build - - - name: Copy json-ld context - run: cp -r context build/. - - - name: Generate squashed ontology - run: ontoconvert -saw - -c 'http://www.w3.org/2004/02/skos/core#prefLabel-->http://www.w3.org/2000/01/rdf-schema#label' - -c 'elucidation-->http://www.w3.org/2000/01/rdf-schema#comment' - -c 'definition-->http://www.w3.org/2000/01/rdf-schema#comment' - oteio.ttl build/oteio.ttl - #-c 'comment-->http://www.w3.org/2000/01/rdf-schema#comment' - - - name: Generate inferred ontology - run: ontoconvert -saw --reasoner=HermiT - -c 'http://www.w3.org/2004/02/skos/core#prefLabel-->http://www.w3.org/2000/01/rdf-schema#label' - -c 'elucidation-->http://www.w3.org/2000/01/rdf-schema#comment' - -c 'definition-->http://www.w3.org/2000/01/rdf-schema#comment' - oteio.ttl build/oteio-inferred.ttl - #-c 'comment-->http://www.w3.org/2000/01/rdf-schema#comment' - - - name: Generate documentation - run: pylode -i build/oteio-inferred.ttl -o build/oteio.html -p ontdoc - - - name: Deploy - uses: JamesIves/github-pages-deploy-action@v4 - with: - folder: build # The folder the action should deploy. + #pip install pylode==2.13.2 git+https://github.com/EMMO-REPO/EMMOntoPy.git + pip install sphinx sphinxcontrib-globalsubs sphinx_design nbsphinx pydata-sphinx-theme + pip install git+https://github.com/emmo-repo/EMMOntoPy.git@master + #pip install git+https://github.com/emmo-repo/EMMOntoPy.git@fix-rename-iris + + - name: Create and prepare build and public directories + run: | + mkdir -p build public + if [ -d doc/_static ]; then cp -rf doc/_static/* build/. ; fi + + - name: Create ontologies for publishing + run: | + ontoconvert -sawe --base-iri="https://w3id.org/emmo/domain/oteio#" --iri=https://w3id.org/emmo/domain/oteio oteio.ttl public/oteio.ttl + #ontoconvert -sawe --base-iri="https://w3id.org/emmo/domain/oteio#" --iri=https://w3id.org/emmo/domain/oteio --reasoner=HermiT public/oteio.ttl public/oteio-inferred.ttl + bin/robot reason --reasoner HermiT --input public/oteio.ttl --output public/oteio-inferred.ttl + + - name: Generate html documentation (based on emmo-full) + run: | + ontodoc --iri-regex='.*/oteio.*' oteio.ttl build/oteio.rst + sphinx-build "build/" "public/" + + + + + +# - name: Create build directory +# run: mkdir build +# +# - name: Copy json-ld context +# run: cp -r context build/. +# +# - name: Generate squashed ontology +# run: ontoconvert -saw +# -c 'http://www.w3.org/2004/02/skos/core#prefLabel-->http://www.w3.org/2000/01/rdf-schema#label' +# -c 'elucidation-->http://www.w3.org/2000/01/rdf-schema#comment' +# -c 'definition-->http://www.w3.org/2000/01/rdf-schema#comment' +# oteio.ttl build/oteio.ttl +# #-c 'comment-->http://www.w3.org/2000/01/rdf-schema#comment' +# +# - name: Generate inferred ontology +# run: ontoconvert -saw --reasoner=HermiT +# -c 'http://www.w3.org/2004/02/skos/core#prefLabel-->http://www.w3.org/2000/01/rdf-schema#label' +# -c 'elucidation-->http://www.w3.org/2000/01/rdf-schema#comment' +# -c 'definition-->http://www.w3.org/2000/01/rdf-schema#comment' +# oteio.ttl build/oteio-inferred.ttl +# #-c 'comment-->http://www.w3.org/2000/01/rdf-schema#comment' +# +# - name: Generate documentation +# run: pylode -i build/oteio-inferred.ttl -o build/oteio.html -p ontdoc +# +# - name: Deploy +# uses: JamesIves/github-pages-deploy-action@v4 +# with: +# folder: build # The folder the action should deploy. +# diff --git a/.github/workflows/ci_emmocheck.yml b/.github/workflows/ci_emmocheck.yml new file mode 100644 index 0000000..7e18d68 --- /dev/null +++ b/.github/workflows/ci_emmocheck.yml @@ -0,0 +1,30 @@ +name: Check conventions +on: [push] + +jobs: + + build: + runs-on: ubuntu-latest + strategy: + max-parallel: 1 + matrix: + python-version: [3.11] + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install EMMOntoPy + run: | + pip install --upgrade pip + #pip install EMMOntoPy + pip install git+https://github.com/emmo-repo/EMMOntoPy.git@master + + - name: Check ontology + run: | + emmocheck --local --url-from-catalog --verbose --check-imported \ + --configfile=.github/emmocheck_conf.yml oteio.ttl diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c46e10 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +build/ +public/ + +pylode.log diff --git a/context/context.json b/context/context.json deleted file mode 100644 index bb1655d..0000000 --- a/context/context.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "@version": 1.1, - - "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", - "dcterms": "http://purl.org/dc/terms/", - "dcat": "http://www.w3.org/ns/dcat#", - "oteio": "https://w3id.org/emmo/domain/oteio#", - - "resources": "@nest", - "configuration": { - "@id": "oteio:configuration", - "@type": "@json" - }, - - "dataresource": { - "@id": "oteio:dataresource", - "@type": "oteio:DataResource", - "@nest": "resources" - }, - "downloadURL": "dcat:downloadURL", - "mediaType": "dcat:mediaType", - "license": "dcterms:license", - - "parse": { - "@id": "oteio:parse", - "@type": "oteio:Parse", - "@nest": "resources" - }, - "parserType": "oteio:parserType", - "datamodel": "oteio:datamodel", - - "mapping": { - "@id": "oteio:mapping", - "@type": "oteio:Mapping", - "@nest": "resources" - }, - "mappingType": "oteio:mappingType", - "prefixes": "oteio:prefixes", - "triples": "oteio:triples", - -} diff --git a/doc/_static/conf.py b/doc/_static/conf.py new file mode 100644 index 0000000..664b470 --- /dev/null +++ b/doc/_static/conf.py @@ -0,0 +1,75 @@ + +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'OTEIO' +copyright = '2025, EMMC' +author = 'J. Friis, F.L. Bleken' +release = '0.4.0' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +autoclass_content = 'both' +autodoc_member_order = 'bysource' + +extensions = ['sphinxcontrib.globalsubs', + 'sphinx.ext.intersphinx', + 'sphinx.ext.autosectionlabel', + 'sphinx_design', + 'nbsphinx'] + +autosectionlabel_prefix_document = True + +global_substitutions = { +} + + +templates_path = ['_templates'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +#html_theme = 'alabaster' +html_theme = 'pydata_sphinx_theme' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +html_theme_options = { + # "show_nav_level": 4 +} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['../doc/_static'] +html_css_files = ['custom.css'] + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = '../doc/emmo-logo.png' + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_flavicon = '../doc/figs/emmo-logo.ico' diff --git a/doc/_static/custom.css b/doc/_static/custom.css new file mode 100644 index 0000000..c6d2b5d --- /dev/null +++ b/doc/_static/custom.css @@ -0,0 +1,39 @@ +td.element-table-key, td.element-table-value { + vertical-align: top; +} + +td.element-table-key { + text-align: right; + padding-right: 2mm; + width: 20%; +} + +span.element-table-key { + font-weight: bold; +} + +table.element-table { + width: 100%; + text-align: left; +} + +html table.element-table tr:nth-child(odd) td{ + background-color: Gainsboro; +} + +table.element-table tr:nth-child(even) td{ + background-color: GhostWhite; +} + +html[data-theme=dark] table.element-table tr:nth-child(odd) td{ + background-color: black; +} + +html[data-theme=dark] table.element-table tr:nth-child(even) td{ + background-color: black; +} +/* this fixes darkmode within the json-ld playground iframe +by inverting all colors if darkmode is active */ +html[data-theme="dark"] iframe[src*="json-ld.org/playground"] { + filter: invert(0.9); +} \ No newline at end of file diff --git a/doc/_static/index.rst b/doc/_static/index.rst new file mode 100644 index 0000000..f16db30 --- /dev/null +++ b/doc/_static/index.rst @@ -0,0 +1,6 @@ + +.. toctree:: + :includehidden: + :hidden: + + Reference Index diff --git a/oteapi.ttl b/oteapi.ttl index 7b74603..ab6dbdd 100644 --- a/oteapi.ttl +++ b/oteapi.ttl @@ -1,21 +1,24 @@ -@prefix : . +@prefix : . @prefix owl: . @prefix rdf: . @prefix xml: . @prefix xsd: . -@prefix dcat: . @prefix rdfs: . @prefix skos: . @prefix dcterms: . -@base . - - rdf:type owl:Ontology ; - owl:versionIRI ; - dcterms:creator "Daniel Marchand, SINTEF" , - "Jesper Friis, SINTEF" , - "Thomas F. Hagelien, SINTEF" , - "Treesa Rose Joseph, SINTEF" ; - owl:versionInfo "0.3.0" . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + owl:imports , + , + ; + dcterms:abstract "An EMMO-based ontology providing a semantic descriptions of OTEAPI data models." ; + dcterms:author "Jesper Friis, SINTEF" , + "Treesa Rose Joseph, SINTEF" ; + dcterms:title "OTEAPI Datamodel Ontology" ; + owl:versionInfo "0.4.0" . + ################################################################# # Annotation properties diff --git a/oteio.ttl b/oteio.ttl index 507d2bb..5feb60c 100644 --- a/oteio.ttl +++ b/oteio.ttl @@ -1,4 +1,4 @@ -@prefix : . +@prefix : . @prefix owl: . @prefix rdf: . @prefix xml: . @@ -6,17 +6,204 @@ @prefix rdfs: . @prefix skos: . @prefix dcterms: . -@prefix dcat: . -@base . - - rdf:type owl:Ontology ; - owl:versionIRI ; - owl:imports , - ; - dcterms:creator "Francesca Lønstad Bleken, SINTEF" , - "Treesa Rose Joseph, SINTEF" , - "Jesper Friis, SINTEF" , - "Thomas F. Hagelien, SINTEF" ; - owl:versionInfo "0.3.0" . - -### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + owl:imports , + , + ; + dcterms:abstract "An EMMO-based ontology providing a semantic descriptions for the OTE interfaces developed in the OntoTrans project." ; + dcterms:author "Francesca L. Bleken, SINTEF" , + "Jesper Friis, SINTEF" ; + dcterms:title "Open Translation Environment Interface Ontology (OTEIO)" ; + owl:versionInfo "0.4.0" . + +################################################################# +# Annotation properties +################################################################# + +### http://purl.org/dc/terms/author +dcterms:author rdf:type owl:AnnotationProperty . + + +################################################################# +# Object Properties +################################################################# + +### http://w3id.org/emmo/domain/oteio#generator +:generator rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf ; + rdfs:domain :Distribution ; + rdfs:range :Generator ; + skos:prefLabel "generator"@en ; + "Relates a distribution to a generator that it can be generated from."@en . + + +### http://w3id.org/emmo/domain/oteio#parser +:parser rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf ; + rdfs:domain :Distribution ; + rdfs:range :Generator ; + skos:prefLabel "parser"@en ; + "Relates a distribution to a parser that it can be parsed with."@en . + + +################################################################# +# Data properties +################################################################# + +### http://w3id.org/emmo/domain/oteio#configuration +:configuration rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf ; + rdfs:range rdf:JSON ; + skos:prefLabel "configuration"@en ; + "The owl:dataProperty for representing an OTE interface configuration in JSON."@en . + + +### http://w3id.org/emmo/domain/oteio#datamodelStorage +:datamodelStorage rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf ; + rdfs:domain :Dataset ; + rdfs:range xsd:anyURI ; + skos:prefLabel "datamodelStorage"@en ; + "URL to DLite storage plugin where the datamodel is stored."@en . + + +### http://w3id.org/emmo/domain/oteio#generatorType +:generatorType rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf ; + skos:example "application/vnd.dlite-generate" ; + skos:prefLabel "generatorType"@en ; + "Generator type, typically represented as a IANA media type."@en . + + +### http://w3id.org/emmo/domain/oteio#hasDatamodel +:hasDatamodel rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf ; + rdfs:domain :Dataset ; + rdfs:range xsd:anyURI ; + skos:prefLabel "hasDatamodel"@en ; + "Relate a dataset to a DLite datamodel URI."@en . + + +### http://w3id.org/emmo/domain/oteio#mapping +:mapping rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf :statement ; + rdfs:domain :Mapping ; + rdfs:range rdf:JSON ; + skos:prefLabel "mapping"@en ; + "A set of subject-predicate-object triples mapping a datamodel to ontological concepts."@en . + + +### http://w3id.org/emmo/domain/oteio#mappingFormat +:mappingFormat rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf ; + rdfs:domain :Dataset ; + rdfs:range xsd:string ; + skos:prefLabel "mappingFormat"@en ; + "File format of a resource referred to by a `mappingURL`."@en . + + +### http://w3id.org/emmo/domain/oteio#mappingURL +:mappingURL rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf ; + rdfs:domain :Dataset ; + rdfs:range xsd:anyURI ; + skos:prefLabel "mappingURL"@en ; + "URL to a document defining the mappings of the datamodel."@en . + + +### http://w3id.org/emmo/domain/oteio#parserType +:parserType rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf ; + skos:example "Parser type, typically represented as a IANA media type."@en ; + skos:prefLabel "parserType"@en . + + +### http://w3id.org/emmo/domain/oteio#statement +:statement rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf ; + rdfs:domain :Statement ; + rdfs:range rdf:JSON ; + skos:prefLabel "statement"@en ; + "A set of subject-predicate-object triples with RDF statements documenting the resource."@en . + + +################################################################# +# Classes +################################################################# + +### http://w3id.org/emmo/domain/oteio#Configuration +:Configuration rdf:type owl:Class ; + rdfs:subClassOf , + ; + skos:prefLabel "Configuration"@en ; + "OTE Interface configuration. Represented as a JSON in the knowledge base."@en . + + +### http://w3id.org/emmo/domain/oteio#DataModel +:DataModel rdf:type owl:Class ; + rdfs:subClassOf ; + skos:prefLabel "DataModel"@en ; + "DLite datamodel for the dataset."@en . + + +### http://w3id.org/emmo/domain/oteio#Dataset +:Dataset rdf:type owl:Class ; + rdfs:subClassOf , + ; + skos:prefLabel "Dataset"@en ; + "The combined subclass of both emmo:DataSet and dcat:Dataset."@en . + + +### http://w3id.org/emmo/domain/oteio#Distribution +:Distribution rdf:type owl:Class ; + rdfs:subClassOf , + ; + skos:prefLabel "Distribution"@en ; + "The combined subclass of both emmo:DiscreteData and dcat:Distribution."@en . + + +### http://w3id.org/emmo/domain/oteio#Generator +:Generator rdf:type owl:Class ; + rdfs:subClassOf ; + skos:prefLabel "Generator"@en ; + "A program that can generate a serialised representation of a data model."@en . + + +### http://w3id.org/emmo/domain/oteio#Mapping +:Mapping rdf:type owl:Class ; + rdfs:subClassOf :Statement ; + skos:prefLabel "Mapping"@en ; + "RDF statements providing semantic documentation of a datamodel by mapping it to ontological concepts."@en . + + +### http://w3id.org/emmo/domain/oteio#Parser +:Parser rdf:type owl:Class ; + rdfs:subClassOf ; + skos:prefLabel "Parser"@en ; + "A program that can parse a serialised representation of a data model and instantiate it."@en . + + +### http://w3id.org/emmo/domain/oteio#Statement +:Statement rdf:type owl:Class ; + rdfs:subClassOf rdf:Statement , + ; + skos:prefLabel "Statement"@en ; + "A set of RDF subject-predicate-object statements describing a resource."@en . + + +### http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement +rdf:Statement rdf:type owl:Class . + + +### http://www.w3.org/ns/dcat#Dataset + rdf:type owl:Class . + + +### http://www.w3.org/ns/dcat#Distribution + rdf:type owl:Class . + + +### Generated by the OWL API (version 4.5.29.2024-05-13T12:11:03Z) https://github.com/owlcs/owlapi diff --git a/pipeline.ttl b/pipeline.ttl index 21bff59..11e7b42 100644 --- a/pipeline.ttl +++ b/pipeline.ttl @@ -1,4 +1,4 @@ -@prefix : . +@prefix : . @prefix owl: . @prefix rdf: . @prefix xml: . @@ -6,19 +6,20 @@ @prefix rdfs: . @prefix skos: . @prefix dcterms: . -@base . - - rdf:type owl:Ontology ; - owl:versionIRI ; - owl:imports , - , - ; +@prefix emmo: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + owl:imports , + , + , + ; dcterms:abstract "An EMMO-based ontology providing a semantic description of OTEAPI pipelines." ; dcterms:author "Jesper Friis, SINTEF" , - "Thomas F. Hagelien, SINTEF" , "Treesa Rose Joseph, SINTEF" ; dcterms:title "Pipeline Application Ontology" ; - owl:versionInfo "0.3.0" . + owl:versionInfo "0.4.0" . ################################################################# # Annotation properties @@ -36,71 +37,68 @@ skos:prefLabel rdf:type owl:AnnotationProperty . # Object Properties ################################################################# -### http://emmo.info/emmo/perspectives/manufacturing#EMMO_36e69413_8c59_4799_946c_10b05d266e22 - rdf:type owl:ObjectProperty . - ### http://emmo.info/oteio#hasDictionaryKey :hasDictionaryKey rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf ; + rdfs:subPropertyOf ; rdfs:domain :KeyValuePair ; rdfs:range :DictionaryKey ; - "Relates a configuration key-value pair to its key."@en ; + "Relates a configuration key-value pair to its key."@en ; skos:prefLabel "hasDictionaryKey"@en . ### http://emmo.info/oteio#hasDictionaryValue :hasDictionaryValue rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf ; + rdfs:subPropertyOf ; rdfs:domain :KeyValuePair ; rdfs:range :DictionaryValue ; - "Relates a configuration key-value pair to its value."@en ; + "Relates a configuration key-value pair to its value."@en ; skos:prefLabel "hasDictionaryValue"@en . ### http://emmo.info/oteio#hasFilter :hasFilter rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf ; - "Relates a pipeline to its filters"@en ; + rdfs:subPropertyOf ; + "Relates a pipeline to its filters"@en ; skos:prefLabel "hasFilter"@en . ### http://emmo.info/oteio#hasFirstFilter :hasFirstFilter rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf ; - "The first executed filter in a pipeline."@en ; + rdfs:subPropertyOf ; + "The first executed filter in a pipeline."@en ; skos:prefLabel "hasBeginFilter"@en . ### http://emmo.info/oteio#hasImplementation :hasImplementation rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf ; - rdfs:domain ; - rdfs:range ; - "An implementation of a task."@en ; + rdfs:subPropertyOf ; + rdfs:domain ; + rdfs:range ; + "An implementation of a task."@en ; skos:prefLabel "hasImplementation"@en . ### http://emmo.info/oteio#hasKeyValuePair :hasKeyValuePair rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf ; + rdfs:subPropertyOf ; rdfs:domain :Dictionary ; rdfs:range :KeyValuePair ; - "Relates a configuration to one of its underlying key-value pairs."@en ; + "Relates a configuration to one of its underlying key-value pairs."@en ; skos:prefLabel "hasKeyValuePair"@en . ### http://emmo.info/oteio#hasLastFilter :hasLastFilter rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf ; - "The last executed filter in a pipeline."@en ; + rdfs:subPropertyOf ; + "The last executed filter in a pipeline."@en ; skos:prefLabel "hasEndFilter"@en . ### http://emmo.info/oteio#hasNextFilter :hasNextFilter rdf:type owl:ObjectProperty ; - rdfs:subPropertyOf ; - "The subsequent filter to be executed in the pipeline."@en ; + rdfs:subPropertyOf ; + "The subsequent filter to be executed in the pipeline."@en ; skos:prefLabel "hasNextFilter"@en . @@ -110,16 +108,16 @@ skos:prefLabel rdf:type owl:AnnotationProperty . ### http://emmo.info/oteio#hasFilterConfigurationData :hasFilterConfigurationData rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf ; + rdfs:subPropertyOf ; rdfs:domain :Configuration ; - "Assigns configuration data of filter"@en ; + "Assigns configuration data of filter"@en ; skos:prefLabel "hasFilterConfigurationData"@en . ### http://emmo.info/oteio#hasId :hasId rdf:type owl:DatatypeProperty ; - rdfs:subPropertyOf ; - "Assigns an searchable id to a concept."@en ; + rdfs:subPropertyOf ; + "Assigns an searchable id to a concept."@en ; skos:prefLabel "hasId"@en . @@ -130,7 +128,7 @@ skos:prefLabel rdf:type owl:AnnotationProperty . ### http://emmo.info/oteio#Configuration :Configuration rdf:type owl:Class ; rdfs:subClassOf :Dictionary ; - "A dictionary that configures a filter."@en ; + "A dictionary that configures a filter."@en ; skos:prefLabel "Configuration"@en . @@ -142,28 +140,28 @@ skos:prefLabel rdf:type owl:AnnotationProperty . ### http://emmo.info/oteio#DictionaryKey :DictionaryKey rdf:type owl:Class ; - rdfs:subClassOf , - ; - "The key in a configuration key-value pair."@en ; + rdfs:subClassOf , + ; + "The key in a configuration key-value pair."@en ; skos:prefLabel "DictionaryKey"@en . ### http://emmo.info/oteio#DictionaryValue :DictionaryValue rdf:type owl:Class ; - rdfs:subClassOf ; - "The value in a configuration key-value pair."@en ; + rdfs:subClassOf ; + "The value in a configuration key-value pair."@en ; skos:prefLabel "DictionaryValue"@en . ### http://emmo.info/oteio#Filter :Filter rdf:type owl:Class ; - rdfs:subClassOf , + rdfs:subClassOf , [ rdf:type owl:Restriction ; - owl:onProperty ; + owl:onProperty ; owl:someValuesFrom :SessionUpdate ] , [ rdf:type owl:Restriction ; - owl:onProperty ; + owl:onProperty ; owl:someValuesFrom :Configuration ] , [ rdf:type owl:Restriction ; @@ -171,11 +169,11 @@ skos:prefLabel rdf:type owl:AnnotationProperty . owl:someValuesFrom :Strategy ] , [ rdf:type owl:Restriction ; - owl:onProperty [ owl:inverseOf + owl:onProperty [ owl:inverseOf ] ; owl:someValuesFrom :Pipeline ] ; - "A step in a pipeline."@en ; + "A step in a pipeline."@en ; skos:prefLabel "Filter"@en . @@ -193,7 +191,7 @@ skos:prefLabel rdf:type owl:AnnotationProperty . ### http://emmo.info/oteio#KeyValuePair :KeyValuePair rdf:type owl:Class ; - rdfs:subClassOf , + rdfs:subClassOf , [ rdf:type owl:Restriction ; owl:onProperty :hasDictionaryKey ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; @@ -204,7 +202,7 @@ skos:prefLabel rdf:type owl:AnnotationProperty . owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :DictionaryValue ] ; - "A key-value pair in a configuration."@en ; + "A key-value pair in a configuration."@en ; skos:prefLabel "KeyValuePair"@en . @@ -216,7 +214,7 @@ skos:prefLabel rdf:type owl:AnnotationProperty . ### http://emmo.info/oteio#Pipeline :Pipeline rdf:type owl:Class ; - rdfs:subClassOf , + rdfs:subClassOf , [ rdf:type owl:Restriction ; owl:onProperty :hasFilter ; owl:someValuesFrom :Filter @@ -231,20 +229,20 @@ skos:prefLabel rdf:type owl:AnnotationProperty . owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :Filter ] ; - "An OTEAPI pipeline consisting of a set of strategies sharing."@en ; - "The aim of a pipeline is to connect a data consumer with data sources."@en ; + "An OTEAPI pipeline consisting of a set of strategies sharing."@en ; + "The aim of a pipeline is to connect a data consumer with data sources."@en ; skos:prefLabel "Pipeline"@en . ### http://emmo.info/oteio#SessionUpdate :SessionUpdate rdf:type owl:Class ; - rdfs:subClassOf . + rdfs:subClassOf . ### http://emmo.info/oteio#Strategy :Strategy rdf:type owl:Class ; - rdfs:subClassOf ; - "Implementation of a filter."@en ; + rdfs:subClassOf ; + "Implementation of a filter."@en ; skos:prefLabel "Strategy"@en . @@ -256,12 +254,12 @@ skos:prefLabel rdf:type owl:AnnotationProperty . ### http://emmo.info/oteio/pipeline#Dictionary :Dictionary rdf:type owl:Class ; - rdfs:subClassOf , + rdfs:subClassOf , [ rdf:type owl:Restriction ; owl:onProperty :hasKeyValuePair ; owl:someValuesFrom :KeyValuePair ] ; - "A dataset that is built up of key-value pairs."@en ; + "A dataset that is built up of key-value pairs."@en ; skos:prefLabel "Dictionary"@en .