diff --git a/.github/images/form_generator-low-qual.mp4 b/.github/images/form_generator-low-qual.mp4 new file mode 100644 index 0000000..5daf591 Binary files /dev/null and b/.github/images/form_generator-low-qual.mp4 differ diff --git a/.github/images/ontology_suggestion.mp4 b/.github/images/ontology_suggestion.mp4 new file mode 100644 index 0000000..35d08bf Binary files /dev/null and b/.github/images/ontology_suggestion.mp4 differ diff --git a/.github/images/terminology_metadata-00001.jpg b/.github/images/terminology_metadata-00001.jpg new file mode 100644 index 0000000..d498105 Binary files /dev/null and b/.github/images/terminology_metadata-00001.jpg differ diff --git a/.github/images/validate-metadata-low-qual.mp4 b/.github/images/validate-metadata-low-qual.mp4 new file mode 100644 index 0000000..5fbcd93 Binary files /dev/null and b/.github/images/validate-metadata-low-qual.mp4 differ diff --git a/.github/images/validate-metadata.mov b/.github/images/validate-metadata.mov new file mode 100644 index 0000000..43ab39c Binary files /dev/null and b/.github/images/validate-metadata.mov differ diff --git a/.github/images/validate-metadata.mp4 b/.github/images/validate-metadata.mp4 new file mode 100644 index 0000000..43ab39c Binary files /dev/null and b/.github/images/validate-metadata.mp4 differ diff --git a/DummyOntoFAILS.ttl b/DummyOntoFAILS.ttl index a64b082..3abe4d9 100644 --- a/DummyOntoFAILS.ttl +++ b/DummyOntoFAILS.ttl @@ -11,6 +11,7 @@ rdf:type owl:Ontology ; -dcterms:license . +dcterms:license ; +dcterms:creator "John Doe" . a owl:Class . \ No newline at end of file diff --git a/DummyOntoPASSES.ttl b/DummyOntoPASSES.ttl index 06251f8..0cec803 100644 --- a/DummyOntoPASSES.ttl +++ b/DummyOntoPASSES.ttl @@ -38,16 +38,18 @@ dcterms:contributor <0000-0000-0000-0000> ; #contact data missing - won't add schema:funder ; + schema:funding ; doap:audience "DummyOntoPASSES has been developed for ontology engineers to demonstrate ontology metadata recommendations by TIB Terminology Service. It can be used with the TIB Terminology Service Ontology Metadata Shape in SHACL validators and should trigger no violations or warnings."@en ; dcterms:subject ; schema:inLanguage ; mod:hasFormalityLevel "The DummyOntoPASSES aplies OWL2 EL (cf. https://www.w3.org/TR/2012/REC-owl2-profiles-20121211/#OWL_2_EL)"@en ; - ; + ; "active"@en ; doap:repository ; ; - ; + ; dcterms:isReferencedBy ; + dcterms:references ; dcterms:bibliographicCitation "TIB (2023): DummyOntoPASSES. An ontology demonstrating rich ontology metadata. PURL: https://www.purl.org/ontologymetadata/DummyOntoPASSES."@en ; pav:derivedFrom ; ; @@ -65,7 +67,6 @@ dcterms:type ; ; "[0-9]+" ; - dcterms:format ; ; dcterms:publisher , ; rdfs:comment "Some remark about the ontology."@en ; diff --git a/MetadataGuide.html b/MetadataGuide.html index bac2625..daaa1c4 100644 --- a/MetadataGuide.html +++ b/MetadataGuide.html @@ -367,7 +367,7 @@

Ontology metadata recommendations by TIB

Document status: DRAFT

-

Modification date: 2024-05-02

+

Modification date: 2025-01-31

Creators and contributors:

-

License: CC BY 4.0 Deed Attribution 4.0 International

+

License: CC BY 4.0 Deed Attribution 4.0 International

Zenodo archive: https://www.doi.org/10.5281/zenodo.11103071

Table of contents

@@ -392,7 +392,7 @@

Table of contents

  • How to read this document @@ -453,7 +453,7 @@

    Table of contents

  • 5.12 Example ontology class
  • 5.13 Ontology mailing list
  • 5.14 Ontology logo/ depictions/ related visualization
  • -
  • 5.15 Related identifiers
  • +
  • 5.15 Alternative identifiers of the ontology
  • 5.16 Development environment
  • 5.17 Alignments/ mappings
      @@ -486,7 +486,7 @@

      0. Executive summary

      In order to avoid these problems, metadata management should be part of the ontology engineering process: The metadata of an ontology should be part of the ontology's code base or the ontology itself. This would make the ontology resp. its code base the single source of truth for its own metadata.

      It is therefore mandatory that an ontology provides its own metadata with machine-understandable semantics and established terms from metadata ontologies and controlled vocabularies. The metadata need to be as or even more persistent than the ontology itself. Principle R1 of the FAIR principles [1] furthermore recommends to not just provide metadata that allow the discovery of an ontology (e.g. title, ontology prefix, authors), but to add metadata that richly describe the contents of the ontology and the conditions of its creation and use (cf. 1.2 Why ontology metadata?).

      With this document, TIB - Leibniz Information Centre for Science and Technology University Library provides a practical guide for metadata management of ontologies. It gives recommendations on required, recommended and optional metadata for ontologies. As there are currently several recommendations available (cf. [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23]), this guide will provide recommendations on ontology metadata that particularly adress the publishing of ontologies on the TIB Terminology Service.

      -

      In addition, we provide shapes for SHACL validators based on these recommendations (cf. 2.2 Metadata validation with SHACL).

      +

      In addition, we provide shapes for SHACL validators based on these recommendations (cf. 2.2 Metadata recommendations and SHACL).

      1 Ontology metadata

      1.1 How to provide ontology metadata?

      Ontology metadata must be provided in a machine-understandable format. We therefore recommend to provide them as a part of the ontology itself: The metadata should be statements about the ontology that use dedicated annotation, object or data properties, to guarantee a good level of granularity and distinguishability of the metadata.

      @@ -513,14 +513,27 @@

      2.1 Chapter structure and wording

    • recommend controlled vocabularies where appropriate
    • provide examples in text/turtle serialization
    • list alternative properties that may also be used to provide the metadatum
    • -
    • specify SHACL validation rules (cf. section 2.2 Metadata validation with SHACL)
    • +
    • specify SHACL validation rules (cf. section 2.2 Metadata recommendations and SHACL)

    Subproperties to any properties mentioned will not be implied, but explicitly listed in the "alternative properties" part of each section.

    -

    2.2 Metadata validation with SHACL

    -

    This guide is a human-readable specification. In addition, we also provide a SHACL specification of these recommendations that can be used for data validation.

    -

    The shape can be used with SHACL validators to test ontologies for any violations of required metadata at TIB Terminology Service and to get suggestions for recommended metadata. We recommend the online SHACL validators SHACL Playground, SHACL Playground by Zazuko or SHACL Play! for performing evaluations. Turtle or json-ld are common input format. SHACL Play! also allows to use IRIs for shapes and ontologies.

    -

    The shape is available in a single file at https://www.purl.org/ontologymetadata/shape.

    -

    The shape can also be used to evaluate metadata of instances of skos:ConceptScheme. The instances of skos:ConceptScheme need to be declared as instances of owl:Ontology to trigger the shapes (cf. also section 4.6.2. SKOS Concept Schemes and OWL Ontologies of the SKOS Reference document).

    +

    2.2 Metadata recommendations and SHACL

    +

    This guide is a human-readable specification. In addition, we also provide SHACL specifications of these recommendations that can be/are used for three different purposes.

    +
      +
    1. +

      Data validation
      +A shape for data validation can be retrieved from https://www.purl.org/ontologymetadata/shape and can be used with SHACL validators to test ontologies for any violations of required metadata by TIB Terminology Service and to get suggestions for recommended metadata. We recommend the online SHACL validators SHACL Playground, SHACL Playground by Zazuko or SHACL Play! for performing evaluations. Turtle or json-ld are common input format. SHACL Play! also allows to use IRIs for shapes and ontologies.
      +The shape can also be used to evaluate metadata of instances of skos:ConceptScheme. The instances of skos:ConceptScheme need to be declared as instances of owl:Ontology to trigger the shapes (cf. also section 4.6.2. SKOS Concept Schemes and OWL Ontologies of the SKOS Reference document). A video demonstration of how to use this is given at our GitHub repository: https://github.com/user-attachments/assets/c5d6be07-3bfb-44ab-ae65-e3f75b8e883a.

      +
    2. +
    3. +

      Data validation at TIB Terminology Service
      +The shape at https://www.purl.org/ontologymetadata/shape4ts is applied in the Ontology Suggestion Feature at TIB Terminology Service. The messages are adapted to the context of use and the particular use case: The person suggesting an ontology is not necessarily involved in its development. On TIB Terminology Service, they will be asked to provide metadata of the ontology if these are not present in the ontology, and if known to the user. These users are not required to provide the meatdata as code. A video demonstration on how this is applied is given at our GitHub repository: https://github.com/user-attachments/assets/847cfd39-0823-4a83-9c8a-0cf3d23d38a7

      +
    4. +
    5. +

      Data generation
      +A shape for form generators and code generation can be retrieved from https://www.purl.org/ontologymetadata/shape4forms. It can for example be used with the form generator tool by ULB Darmstadt which has a live demo instance. This shape is not as granular as the one for validation: All constraints are bundled in one shape in order to generate a form, that users can use to enter values. The user input is validated immediately for all criteria and the metadata code is generated. Only the recommended properties will be used to do so: This version of the recommendation does not make use of sh:alternativePath constructs, in order to generate valid RDF code with named properties, not anonymous/ blank nodes. A video demonstration on how to apply this is given at our GitHub repository: https://github.com/user-attachments/assets/55cdf44f-5289-4989-9014-5e670fd73418.

      +
    6. +
    +

    All three versions of the shape have the target class owl:Ontology, so that they can only be used to validate entities that declare themselves as an instance of owl:Ontology, and also code generated with these shapes, will declare entities as instances of owl:Ontology.

    2.3 Prefixes used in this document

    Code examples will usually provide full IRIs of statement subjects and objects. Properties will be presented in prefixed notation. The table provides the prefix definitions:

    @@ -691,6 +704,7 @@

    3.3 Ontology license

  • https://schema.org/license
  • http://creativecommons.org/ns#license
  • http://dbpedia.org/ontology/license
  • +
  • http://purl.org/dc/terms/licence (is a mis-spelled variant of http://purl.org/dc/terms/license)
  • SHACL validation rules:

      @@ -764,7 +778,7 @@

      3.6 Ontology creation date

    SHACL validation rules:

      -
    • sh:datatype xsd:dateTime
    • +
    • sh:xone ( [sh:datatype xsd:dateTime ;] [sh:datatype xsd:date ;] );
    • sh:maxCount 1
    • sh:minCount 1
    @@ -931,7 +945,7 @@

    4.5 Ontology subject(s)

  • sh:nodeKind sh:IRI
  • 4.6 Ontology annotation language(s)

    -

    If your ontology does not only provide formal semantics but also multi-lingual annotations for entities, you should provide information about the ontology annotation languages (e.g. for term labels, term definitions, etc.) in its metadata. At least one language should be provided, since at least one set of annotations is expected in a well-documented ontology. You should only claim that the ontology uses an annotation language, if all ontology elements or an extensive part of the ontology is annotaed in that languge.

    +

    If your ontology does not only provide formal semantics but also multi-lingual annotations for entities, you should provide information about the ontology annotation languages (e.g. for term labels, term definitions, etc.) in its metadata. At least one language should be provided, since at least one set of annotations is expected in a well-documented ontology. You should only claim that the ontology uses an annotation language, if all ontology elements or an extensive part of the ontology is annotated in that language.

    Recommended property: http://purl.org/dc/terms/language

    Recommended controlled vocabulary: http://id.loc.gov/vocabulary/iso639-2

    Example (text/turtle):

    @@ -962,7 +976,7 @@

    4.7 Applied logical framework

    4.8 Ontology serialization/ file format

    You should state the ontology's serialization/ file format. The value should be provided as an IRI from the Media Types list of the Internet Assigned Number Authority (IANA) [6] or from the W3C resource Unique URIs for File Formats [7].

    -

    Recommended property: http://omv.ontoware.org/2005/05/ontology#hasOntologySyntax

    +

    Recommended property: https://w3id.org/mod#hasSyntax

    Recommended controlled vocabularies:

    • https://www.w3.org/ns/formats
    • @@ -977,13 +991,14 @@

      4.8 Ontology serialization/ file

      Currently, there is no registered media type for obo format.

      Example (text/turtle):

      <https://www.purl.org/SomeOntology> rdf:type owl:Ontology ; - omv:hasOntologySyntax <http://www.w3.org/ns/formats/Turtle> . + <https://w3id.org/mod#hasSyntax> <http://www.w3.org/ns/formats/Turtle> .

      Alternative properties:

      SHACL validation rules:

        @@ -1043,7 +1058,7 @@

        4.11 Ontology distributions/ produc

      4.12 Application example

      How to use an ontology is often helpfully demonstrated by application examples and visualizations that give a glimpse about how the ontology can be used to structure actual data. If you have such application examples, these might be better found, if you link to them from the ontology. These application examples could be part of the ontology documentation, formal serializations applying the ontology or even technical applications that make use of the ontology.

      -

      Recommended property: https://vocab.org/vann/example

      +

      Recommended property: http://purl.org/vocab/vann/example

      Example (text/turtle):

      <http://www.w3.org/ns/dcat> rdf:type owl:Ontology ; vann:example <https://www.w3.org/TR/vocab-dcat-2/#collection-of-examples> . @@ -1098,7 +1113,7 @@

      4.15 Ontology sources (derived from)<
    • sh:nodeKind sh:IRI

    4.16 Ontology root classes

    -

    You should explicitly declare the ontology's preferred root classes. Display tools like the TIB Terminology Service and other OLS-based services [9], [10] can pick specific, user-defined classes for rendering the ontology class hierarchy. This is especially helpful, when an ontology imports a lot of classes from other ontologies. The repsective classes need to be provided via their identifier.

    +

    You should explicitly declare the ontology's preferred root classes. Display tools like the TIB Terminology Service and other OLS-based services [9], [10] can pick specific, user-defined classes for rendering the ontology class hierarchy. This is especially helpful, when an ontology imports a lot of classes from other ontologies. The respective classes need to be provided via their identifier. This information should best be provided or defined by the ontology maintainers or engineers.

    Recommended property: http://purl.obolibrary.org/obo/IAO_0000700

    Example (text/turtle):

    <https://www.purl.org/SomeOntology> rdf:type owl:Ontology ; @@ -1371,8 +1386,8 @@ -

    If your ontology has been published at an archive, you may want to declare these related identifiers in the ontology metadata.

    +

    5.15 Alternative identifiers of the ontology

    +

    If your ontology has been published at an archive, you may want to declare these related identifiers in the ontology metadata. You should list here alternative URIs that may be used to identify your ontology. The identifier used as the base URI of the ontology should be provided with http://purl.org/vocab/vann/preferredNamespaceUri instead (cf. 5.20 Preferred ontology namespace).

    Recommended property: http://purl.org/dc/terms/identifier

    Example (text/turtle):

    <https://www.purl.org/SomeOntology> rdf:type owl:Ontology ; @@ -1382,6 +1397,7 @@

    SHACL validation rules:

      @@ -1479,7 +1495,7 @@

      5.21 Ontology issue date

    SHACL validation rules:

      -
    • sh:datatype xsd:dateTime
    • +
    • sh:xone ( [sh:datatype xsd:dateTime ;] [sh:datatype xsd:date ;] );
    • sh:maxCount 1

    5.22 Modification date

    @@ -1497,11 +1513,12 @@

    5.22 Modification date

    SHACL validation rules:

      -
    • sh:datatype xsd:dateTime
    • +
    • sh:xone ( [sh:datatype xsd:dateTime ;] [sh:datatype xsd:date ;] );
    • sh:maxCount 1

    5.23 Textual version information

    Some ontologies make use of semantic versioning and employ strings like 1.0.0 as a tag to distinguish one version of their ontology from a successor. Others employ the modification date, e.g. 2022-12-21. If you use such textual version information but do not use/have a Version URI, then we strongly recommend to also mint a version URI in which you use the textual version information as variable.

    +

    If you need to add a larger comment in natural language, you should provide the info as an rdf:langString, i.e. with a language tag. We do not encourage this, since such statements can most likely be expressed in more granular fashion with formal statements. Alternatively, you could add the info to the version notes (cf. 5.24 Version notes).

    Recommended property: http://www.w3.org/2002/07/owl#versionInfo

    Example 1 (text/turtle):

    <https://www.purl.org/SomeOntology> rdf:type owl:Ontology ; @@ -1511,13 +1528,18 @@

    5.23 Textual version information

    <https://www.purl.org/SomeOntology> rdf:type owl:Ontology ; owl:versionInfo "1.0.0"^^xsd:string .
    +

    Example 3 (text/turtle) +:

    +
    <https://www.purl.org/SomeOntology> rdf:type owl:Ontology ; + owl:versionInfo "Ontology version 1.0.0 of the subject classification in tabular format from Nov 2024."@en. +

    Alternative properties:

    SHACL validation rules:

      -
    • sh:datatype xsd:string
    • +
    • sh:xone ([sh:datatype xsd:string ;] [sh:datatype rdf:langString ;])
    • sh:maxCount 1

    5.24 Version notes

    @@ -1530,7 +1552,7 @@

    5.24 Version notes

    Alternative properties:

    SHACL validation rules:

      @@ -1699,7 +1721,7 @@

      6 Tabular overview

    - + @@ -1735,7 +1757,7 @@

    6 Tabular overview

    - + diff --git a/MetadataGuide.md b/MetadataGuide.md index e250b55..592240a 100644 --- a/MetadataGuide.md +++ b/MetadataGuide.md @@ -2,7 +2,7 @@ Document status: **DRAFT** -Modification date: 2024-05-02 +Modification date: 2025-01-31 Creators and contributors: @@ -13,7 +13,7 @@ Creators and contributors: * [Strömert, Philip (Technische Informationsbibliothek)](https://orcid.org/0000-0002-1595-3213) * [Vogt, Lars (Technische Informationsbibliothek)](https://orcid.org/0000-0002-8280-0487) -License: [CC BY 4.0 Deed Attribution 4.0 International ](https://creativecommons.org/licenses/by/4.0/) +License: [CC BY 4.0 Deed Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0/) Zenodo archive: @@ -27,7 +27,7 @@ Zenodo archive: * [1.2 Why ontology metadata?](#12-why-ontology-metadata) 2. [How to read this document](#2-how-to-read-this-document) * [2.1 Chapter structure and wording](#21-chapter-structure-and-wording) - * [2.2 Metadata validation with SHACL](#22-metadata-validation-with-shacl) + * [2.2 Metadata recommendations and SHACL](#22-metadata-recommendations-and-shacl) * [2.3 Prefixes used in this document](#23-prefixes-used-in-this-document) * [2.4 Acronyms](#24-acronyms) 3. [Mandatory Metadata](#3-mandatory-metadata) @@ -76,7 +76,7 @@ Zenodo archive: * [5.12 Example ontology class](#512-example-ontology-class) * [5.13 Ontology mailing list](#513-ontology-mailing-list) * [5.14 Ontology logo/ depictions/ related visualization](#514-ontology-logo-depiction-related-visualizations) - * [5.15 Related identifiers](#515-related-identifiers) + * [5.15 Alternative identifiers of the ontology](#515-alternative-identifiers-of-the-ontology) * [5.16 Development environment](#516-development-environment) * [5.17 Alignments/ mappings](#517-alignments-mappings) * [5.17.1 Aligned resources](#5171-aligned-resources) @@ -109,7 +109,7 @@ It is therefore mandatory that an ontology provides its own metadata with machin With this document, *TIB - Leibniz Information Centre for Science and Technology University Library* provides a practical guide for metadata management of ontologies. It gives recommendations on required, recommended and optional metadata for ontologies. As there are currently several recommendations available (cf. [[13]](#source13), [[14]](#source14), [[15]](#source15), [[16]](#source16), [[17]](#source17), [[18]](#source18), [[19]](#source19), [[20]](#source20), [[21]](#source21), [[22]](#source22), [[23]](#source23)), this guide will provide recommendations on ontology metadata that particularly adress the publishing of ontologies on the [TIB Terminology Service][TIB TS]. -In addition, we provide shapes for SHACL validators based on these recommendations (cf. [2.2 Metadata validation with SHACL](#22-metadata-validation-with-shacl)). +In addition, we provide shapes for SHACL validators based on these recommendations (cf. [2.2 Metadata recommendations and SHACL](#22-metadata-recommendations-and-shacl)). ## 1 Ontology metadata @@ -145,19 +145,25 @@ This guide tries to use clear wording to distinguish absolute requirements (*mus * recommend controlled vocabularies where appropriate * provide examples in text/turtle serialization * list alternative properties that may also be used to provide the metadatum -* specify SHACL validation rules (cf. section [2.2 Metadata validation with SHACL](#22-metadata-validation-with-shacl)) +* specify SHACL validation rules (cf. section [2.2 Metadata recommendations and SHACL](#22-metadata-recommendations-and-shacl)) Subproperties to any properties mentioned will not be implied, but explicitly listed in the "alternative properties" part of each section. -### 2.2 Metadata validation with SHACL +### 2.2 Metadata recommendations and SHACL -This guide is a human-readable specification. In addition, we also provide a SHACL specification of these recommendations that can be used for data validation. +This guide is a human-readable specification. In addition, we also provide SHACL specifications of these recommendations that can be/are used for three different purposes. -The shape can be used with SHACL validators to test ontologies for any violations of required metadata at [TIB Terminology Service][TIB TS] and to get suggestions for recommended metadata. We recommend the online SHACL validators [SHACL Playground][shacl-playground], [SHACL Playground by Zazuko](https://shacl-playground.zazuko.com/) or [SHACL Play!](https://shacl-play.sparna.fr/play/) for performing evaluations. Turtle or json-ld are common input format. SHACL Play! also allows to use IRIs for shapes and ontologies. +1. Data validation
    +A shape for data validation can be retrieved from and can be used with SHACL validators to test ontologies for any violations of required metadata by [TIB Terminology Service][TIB TS] and to get suggestions for recommended metadata. We recommend the online SHACL validators [SHACL Playground][shacl-playground], [SHACL Playground by Zazuko](https://shacl-playground.zazuko.com/) or [SHACL Play!](https://shacl-play.sparna.fr/play/) for performing evaluations. Turtle or json-ld are common input format. SHACL Play! also allows to use IRIs for shapes and ontologies.
    +The shape can also be used to evaluate metadata of instances of skos:ConceptScheme. The instances of skos:ConceptScheme need to be declared as instances of owl:Ontology to trigger the shapes (cf. also section [4.6.2. SKOS Concept Schemes and OWL Ontologies](https://www.w3.org/TR/skos-reference/#L1170) of the [SKOS Reference document](https://www.w3.org/TR/2009/REC-skos-reference-20090818/)). A video demonstration of how to use this is given at our GitHub repository: . -The shape is available in a single file at . +2. Data validation at [TIB Terminology Service][TIB TS]
    +The shape at is applied in the Ontology Suggestion Feature at [TIB Terminology Service][TIB TS]. The messages are adapted to the context of use and the particular use case: The person suggesting an ontology is not necessarily involved in its development. On TIB Terminology Service, they will be asked to provide metadata of the ontology if these are not present in the ontology, and if known to the user. These users are not required to provide the meatdata as code. A video demonstration on how this is applied is given at our GitHub repository: -The shape can also be used to evaluate metadata of instances of skos:ConceptScheme. The instances of skos:ConceptScheme need to be declared as instances of owl:Ontology to trigger the shapes (cf. also section [4.6.2. SKOS Concept Schemes and OWL Ontologies](https://www.w3.org/TR/skos-reference/#L1170) of the [SKOS Reference document](https://www.w3.org/TR/2009/REC-skos-reference-20090818/)). +3. Data generation
    +A shape for form generators and code generation can be retrieved from . It can for example be used with the [form generator tool by ULB Darmstadt](https://github.com/ULB-Darmstadt/shacl-form) which has a [live demo instance](https://ulb-darmstadt.github.io/shacl-form/#try-your-own). This shape is not as granular as the one for validation: All constraints are bundled in one shape in order to generate a form, that users can use to enter values. The user input is validated immediately for all criteria and the metadata code is generated. Only the recommended properties will be used to do so: This version of the recommendation does not make use of `sh:alternativePath` constructs, in order to generate valid RDF code with named properties, not anonymous/ blank nodes. A video demonstration on how to apply this is given at our GitHub repository: . + +All three versions of the shape have the target class owl:Ontology, so that they can only be used to validate entities that declare themselves as an instance of owl:Ontology, and also code generated with these shapes, will declare entities as instances of owl:Ontology. ### 2.3 Prefixes used in this document @@ -268,6 +274,7 @@ Alternative properties: * * * +* (is a mis-spelled variant of ) SHACL validation rules: @@ -369,7 +376,7 @@ Alternative properties: SHACL validation rules: -* `sh:datatype xsd:dateTime` +* `sh:xone ( [sh:datatype xsd:dateTime ;] [sh:datatype xsd:date ;] );` * `sh:maxCount 1` * `sh:minCount 1` @@ -602,7 +609,7 @@ SHACL validation rules: ### 4.6 Ontology annotation language(s) -If your ontology does not only provide formal semantics but also multi-lingual annotations for entities, you should provide information about the ontology annotation languages (e.g. for term labels, term definitions, etc.) in its metadata. At least one language should be provided, since at least one set of annotations is expected in a well-documented ontology. You should only claim that the ontology uses an annotation language, if all ontology elements or an extensive part of the ontology is annotaed in that languge. +If your ontology does not only provide formal semantics but also multi-lingual annotations for entities, you should provide information about the ontology annotation languages (e.g. for term labels, term definitions, etc.) in its metadata. At least one language should be provided, since at least one set of annotations is expected in a well-documented ontology. You should only claim that the ontology uses an annotation language, if all ontology elements or an extensive part of the ontology is annotated in that language. Recommended property: @@ -648,7 +655,7 @@ SHACL validation rules: You should state the ontology's serialization/ file format. The value should be provided as an IRI from the Media Types list of the Internet Assigned Number Authority (IANA) [[6]](#source6) or from the W3C resource Unique URIs for File Formats [[7]](#source7). -Recommended property: +Recommended property: Recommended controlled vocabularies: @@ -667,7 +674,7 @@ Example (text/turtle): ```Turtle rdf:type owl:Ontology ; - omv:hasOntologySyntax . + . ``` Alternative properties: @@ -675,6 +682,7 @@ Alternative properties: * * * +* SHACL validation rules: @@ -756,7 +764,7 @@ SHACL validation rules: How to use an ontology is often helpfully demonstrated by application examples and visualizations that give a glimpse about how the ontology can be used to structure actual data. If you have such application examples, these might be better found, if you link to them from the ontology. These application examples could be part of the ontology documentation, formal serializations applying the ontology or even technical applications that make use of the ontology. -Recommended property: +Recommended property: Example (text/turtle): @@ -840,7 +848,7 @@ SHACL validation rules: ### 4.16 Ontology root classes -You should explicitly declare the ontology's preferred root classes. Display tools like the [TIB Terminology Service][TIB TS] and other OLS-based services [[9]](#source9), [[10]](#source10) can pick specific, user-defined classes for rendering the ontology class hierarchy. This is especially helpful, when an ontology imports a lot of classes from other ontologies. The repsective classes need to be provided via their identifier. +You should explicitly declare the ontology's preferred root classes. Display tools like the [TIB Terminology Service][TIB TS] and other OLS-based services [[9]](#source9), [[10]](#source10) can pick specific, user-defined classes for rendering the ontology class hierarchy. This is especially helpful, when an ontology imports a lot of classes from other ontologies. The respective classes need to be provided via their identifier. This information should best be provided or defined by the ontology maintainers or engineers. Recommended property: @@ -1235,9 +1243,9 @@ SHACL validation rules: * `sh:nodeKind sh:IRI` -### 5.15 Related identifiers +### 5.15 Alternative identifiers of the ontology -If your ontology has been published at an archive, you may want to declare these related identifiers in the ontology metadata. +If your ontology has been published at an archive, you may want to declare these related identifiers in the ontology metadata. You should list here alternative URIs that may be used to identify your ontology. The identifier used as the base URI of the ontology should be provided with instead (cf. [5.20 Preferred ontology namespace](#520-preferred-ontology-namespace)). Recommended property: @@ -1252,6 +1260,7 @@ Alternative properties: * * +* > SHACL validation rules: @@ -1401,7 +1410,7 @@ Alternative properties: SHACL validation rules: -* `sh:datatype xsd:dateTime` +* `sh:xone ( [sh:datatype xsd:dateTime ;] [sh:datatype xsd:date ;] );` * `sh:maxCount 1` ### 5.22 Modification date @@ -1425,13 +1434,15 @@ Alternative properties: SHACL validation rules: -* `sh:datatype xsd:dateTime` +* `sh:xone ( [sh:datatype xsd:dateTime ;] [sh:datatype xsd:date ;] );` * `sh:maxCount 1` ### 5.23 Textual version information Some ontologies make use of semantic versioning and employ strings like 1.0.0 as a tag to distinguish one version of their ontology from a successor. Others employ the modification date, e.g. 2022-12-21. If you use such textual version information but do not use/have a Version URI, then we strongly recommend to also mint a version URI in which you use the textual version information as variable. +If you need to add a larger comment in natural language, you should provide the info as an rdf:langString, i.e. with a language tag. We do not encourage this, since such statements can most likely be expressed in more granular fashion with formal statements. Alternatively, you could add the info to the version notes (cf. [5.24 Version notes](#524-version-notes)). + Recommended property: Example 1 (text/turtle): @@ -1448,13 +1459,21 @@ Example 2 (text/turtle): owl:versionInfo "1.0.0"^^xsd:string . ``` +Example 3 (text/turtle) +: + +```Turtle + rdf:type owl:Ontology ; + owl:versionInfo "Ontology version 1.0.0 of the subject classification in tabular format from Nov 2024."@en. +``` + Alternative properties: * SHACL validation rules: -* `sh:datatype xsd:string` +* `sh:xone ([sh:datatype xsd:string ;] [sh:datatype rdf:langString ;])` * `sh:maxCount 1` ### 5.24 Version notes @@ -1474,7 +1493,7 @@ Example (text/turtle): Alternative properties: -* +* SHACL validation rules: @@ -1503,11 +1522,11 @@ SHACL validation rules: | 4.5 | Subject(s) | | | x | | 0…* | | 4.6 | Annotation language(s) | | | x | | 0…* | | 4.7 | Applied logical framework | | | x | | 0...1 | -| 4.8 | Serialization/ file format | | | x | | 0...1 | +| 4.8 | Serialization/ file format | | | x | | 0...1 | | 4.9 | Status | | | x | | 0...1 | | 4.10 | Code repository | | | x | | 0...1 | | 4.11 | Distributions/ products | | | x | | 0…* | -| 4.12 | Application example | | | x | | 0…* | +| 4.12 | Application example | | | x | | 0…* | | 4.13 | Related resource(s) | | | x | | 0…* | | 4.14 | Citation suggestion | | | x | | 0…* | | 4.15 | Ontology sources (derived from) | | | x | | 0…* | diff --git a/MetadataGuide.pdf b/MetadataGuide.pdf index f5a80a0..843b873 100644 Binary files a/MetadataGuide.pdf and b/MetadataGuide.pdf differ diff --git a/OntoMetadataShape.ttl b/OntoMetadataShape.ttl index 8128c43..4a95eb7 100644 --- a/OntoMetadataShape.ttl +++ b/OntoMetadataShape.ttl @@ -30,20 +30,24 @@ ontometa: rdf:type owl:Ontology ; "OntoMeta provides SHACL shapes for ontology metadata. It is intended for use in TIB Terminology Service. You may re-use (please refer back to our repo!) for your own services. Please note that adaptations might be necessary. If you have any remarks or questions get in touch with us at https://github.com/StroemPhi/Ontology-Metadata/issues"@en ; dcterms:license ; "2024-05-02T11:42:00"^^xsd:dateTime; - ; - "Ontology Metadata Shape by TIB"@en, "TIB Metadatenshape für Ontologien"; + "2025-01-31T00:00:00"^^xsd:dateTime; + ; + "Ontology Metadata Shape by TIB"@en, "TIB Metadatenshape für Ontologien"@de; , , , , ; "ontometa"; - ; + ; ; "active"@en ; "Ontology engineers, ontology publishers, terminology service providers, terminology service curators"@en; dcterms:language ; , ; ; - ; - - # + ; + ; + "RDF(S), OWL, SHACL"@en ; + dcterms:bibliographicCitation "Arndt, S., Ganske, A., Hauschke, C., Strömert, P., & Vogt, L. (2024). Terminology Metadata Recommendations by TIB. Zenodo. https://doi.org/10.5281/zenodo.11103070 (latest version)"; + , ; + . # Start of the Ontology Metadata Shape @@ -58,12 +62,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath (rdfs:label skos:prefLabel dc:title dcterms:title schema:name schema:headline) ] ; sh:severity sh:Warning ; sh:minCount 1 ; - sh:message """ - You must add an ontology title or label. The title should be an rdf:langString. - Recommended property: . - Example statement (text/turtle): dcterms:title "Some Ontology"@en . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You must add an ontology title or label. The title should be an rdf:langString.\nRecommended property: .\nExample statement (text/turtle): dcterms:title \"Some Ontology\"@en .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology has a title or label. It produces a warning message if the title is missing. The ontology title is mandatory."@en ; sh:name "Ontology title"@en ; ] ; @@ -73,12 +72,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Info ; sh:datatype rdf:langString ; sh:uniqueLang true ; - sh:message """ - You should make the ontology title an rdf:langString by adding a language tag to it. - There may be only title per language. - Example statement (text/turtle): dcterms:title "Some Ontology"@en . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should make the ontology title an rdf:langString by adding a language tag to it.\nThere may be only one title per language.\nRecommended property: .\nExample statement (text/turtle): dcterms:title \"Some Ontology\"@en .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology title literal value is an rdf:langString and whether only one title per language is given. It produces an info message if the title does not carry a language tag or if several titles in the same language are present."@en ; sh:name "Ontology title - datatype"@en ; ] ; @@ -90,13 +84,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Warning; sh:minCount 1 ; sh:maxCount 1 ; - sh:message """ - You must declare at most one preferred namespace prefix or acronym for the ontology. - It must not contain hyphens or other special characters and should be written in lowercase. - Recommended property: - Example statement (text/turtle): vann:preferredNamespacePrefix "so"^^xsd:string . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You must declare at most one preferred namespace prefix or acronym for the ontology.\nIt must not contain hyphens or other special characters and should be written in lowercase.\nRecommended property: \nExample statement (text/turtle): vann:preferredNamespacePrefix \"so\"^^xsd:string .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology declares a preferred namespace prefix. It produces a warning message if the ontology does not declare a preferred namespace prefix."@en ; sh:name "Preferred ontology prefix/ acronym"@en ; ] ; @@ -105,23 +93,127 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath ( )]; sh:severity sh:Info ; sh:datatype xsd:string ; - sh:message """ - You should provide the ontology's preferred namespace prefix or acronym as an xsd:string. - Example statement (text/turtle): vann:preferredNamespacePrefix "so"^^xsd:string . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the ontology's preferred namespace prefix or acronym as an xsd:string.\nRecommended property: \nExample statement (text/turtle): vann:preferredNamespacePrefix \"so\"^^xsd:string .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology's preferred namespace prefix or acronym is an xsd:string. It produces an info message if it is not."@en ; sh:name "Preferred ontology prefix/ acronym - datatype"@en ; ] ; ## Ontology license ### status: developer and external review needed +### has been added, since licence is a variant of license and thus the property may easily occur as a common mistake + +#### ORIGINAL SHAPE TO BE DELETED WHEN FINE-GRANULAR SHAPES ARE READY + + # sh:property [ + # sh:path [sh:alternativePath (dcterms:license schema:license cc:license dbo:license )] ; + # sh:severity sh:Warning ; + # sh:minCount 1; + # sh:maxCount 1; + # # tbd/todo: add further licenses to the list of accepted licenses? + # sh:xone ( + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + + # # [sh:hasValue <> ;] + # ); + # sh:message """You must provide exactly one ontology license.\nThe license must be open (Read more about open licenses at https://opendefinition.org/licenses/).\nThe license must be given as an IRI from the following list:\n\n - \n - \n - \n - \n - \n - \n - \n - \n - \n - \n\nRecommended property: \nExample statement (text/turtle): dcterms:license .\nYou want to use a different open license? File an issue at https://github.com/TIBHannover/terminology-metadata/issues/-/issues\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; + # sh:description "This shape checks whether the ontology provides a license IRI from a list of accepted open licenses. It produces a warning message if not."@en ; + # sh:name "Ontology license"@en ; + # ] ; + +#### test for too many (n > 2) ontology licenses + sh:property [ + sh:path [sh:alternativePath (dcterms:license schema:license cc:license dbo:license )] ; + sh:severity sh:Warning ; + sh:maxCount 1; + sh:message """The ontology has more than one license. It should give at most one license.\nThe license must be open (Read more about open licenses at https://opendefinition.org/licenses/).\nThe license must be given as an IRI from the following list:\n\n - \n - \n - \n - \n - \n - \n - \n - \n - \n - \n\nRecommended property: \nExample statement (text/turtle): dcterms:license .\nYou want to use a different open license? File an issue at https://github.com/TIBHannover/terminology-metadata/issues/-/issues\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; + sh:description "This shape checks whether the ontology provides more than one licensefor the ontology. It produces a warning message if it does."@en ; + sh:name "Ontology license - too many values"@en ; + ] ; + +#### test for too few (n < 1) ontology licenses sh:property [ - sh:path [sh:alternativePath (dcterms:license dcterms:rights schema:license cc:license dbo:license)] ; + sh:path [sh:alternativePath (dcterms:license schema:license cc:license dbo:license )] ; sh:severity sh:Warning ; sh:minCount 1; - sh:maxCount 1; + sh:message """The ontology does not have a license.\nThe license must be open (Read more about open licenses at https://opendefinition.org/licenses/).\nThe license must be given as an IRI from the following list:\n\n - \n - \n - \n - \n - \n - \n - \n - \n - \n - \n\nRecommended property: \nExample statement (text/turtle): dcterms:license .\nYou want to use a different open license? File an issue at https://github.com/TIBHannover/terminology-metadata/issues/-/issues\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; + sh:description "This shape checks whether the ontology provides a license. It produces a warning message if not."@en ; + sh:name "Ontology license - too few values"@en ; + ] ; + +#### test for accepted licenses (still needs to be adapted) + + sh:property [ + sh:path [sh:alternativePath (dcterms:license schema:license cc:license dbo:license )] ; + sh:severity sh:Warning ; + sh:nodeKind sh:IRI ; # test whether it makes sense to combine the list with the nodeKInd constraint # tbd/todo: add further licenses to the list of accepted licenses? sh:xone ( [sh:hasValue ;] @@ -184,6 +276,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; [sh:hasValue ;] [sh:hasValue ;] [sh:hasValue ;] + [sh:hasValue ;] [sh:hasValue ;] [sh:hasValue ;] @@ -194,36 +287,15 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; # [sh:hasValue <> ;] ); - sh:message """ - You must provide exactly one ontology license. - The license must be open (Read more about open licenses at https://opendefinition.org/licenses/). - The license must be given as an IRI from the following list: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Recommended property: - Example statement (text/turtle): dcterms:license . - You want to use a different open license? File an issue at https://gitlab.com/TIBHannover/terminology/tib-terminology-service-issue-tracker/-/issues - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """The ontology provides a license but the value is not in the list of accepted licenses or it is not provided as an IRI.\nThe license must be open (Read more about open licenses at https://opendefinition.org/licenses/).\nThe license must be given as an IRI from the following list:\n\n - \n - \n - \n - \n - \n - \n - \n - \n - \n - \n\nRecommended property: \nExample statement (text/turtle): dcterms:license .\nYou want to use a different open license? File an issue at https://github.com/TIBHannover/terminology-metadata/issues/-/issues\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides a license IRI from a list of accepted open licenses. It produces a warning message if not."@en ; - sh:name "Ontology license"@en ; + sh:name "Ontology license - accpeted licenses and node kind"@en ; ] ; +#### test for unaccepted licenses +#### TEST SHAPE WITH A LITERAL VALUE THAT BELONGS TO THE LIST AND ONE THAT DOES NOT sh:property [ - sh:path [sh:alternativePath (dcterms:license dcterms:rights schema:license cc:license dbo:license)] ; + sh:path [sh:alternativePath (dcterms:license schema:license cc:license dbo:license )] ; sh:severity sh:Warning ; # tbd/todo: add further licenses to the list of unaccepted licenses? # tbd/todo: discuss > redundant test? @@ -248,20 +320,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:not [sh:hasValue ;] ; sh:not [sh:hasValue ;] ; # sh:not [sh:hasValue <> ;] ; - sh:message """ - The ontology license is not accepted at TIB Terminology Service since it is not an open license according to the Open Definition (https://opendefinition.org/licenses/). - You must provide an open ontology license. - The license must be given as an IRI. - The following licenses are not accepted at TIB Terminology Service: - - https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode - - https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode - - https://creativecommons.org/licenses/by-nc-nd/3.0/de/legalcode - - https://creativecommons.org/licenses/by-nd/4.0/legalcode - - https://creativecommons.org/licenses/by-nd/3.0/de/legalcode - Recommended property: - Example statement (text/turtle): dcterms:license . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """The ontology license is not accepted at TIB Terminology Service since it is not an open license according to the Open Definition (https://opendefinition.org/licenses/).\nYou must provide an open ontology license.\nThe license must be given as an IRI.\nThe following licenses are not accepted at TIB Terminology Service:\n - https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode\n - https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode\n - https://creativecommons.org/licenses/by-nc-nd/3.0/de/legalcode\n - https://creativecommons.org/licenses/by-nd/4.0/legalcode\n - https://creativecommons.org/licenses/by-nd/3.0/de/legalcode\nRecommended property: \nExample statement (text/turtle): dcterms:license .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides a license IRI from a list of unaccepted, non-open licenses. It produces a warning message if it does."@en ; sh:name "Ontology license"@en ; ] ; @@ -272,23 +331,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath (dc:creator dcterms:creator schema:creator pav:createdBy prov:wasAttributedTo schema:accountablePerson schema:author)]; sh:severity sh:Warning ; sh:minCount 1; - sh:message """ - You must add the ontology creators. - You must list at least one person who was involved in developing the ontology. - Creators should be referenced via PIDs, e.g. ORCiDs for persons and RORs for organisations. - If an ontology is developed by a larger group, it is recommended to give the organization or project identifier as the creator and list individual persons as contributors. - Recommended property: - - Example statement 1 (text/turtle): . rdf:type foaf:Person . - - Plain name strings could be provided in addition (for readability). - Example statement 2 (text/turtle): - . - rdf:type foaf:Person ; "Max" ; - "Muster" . - - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You must add the ontology creators.\nYou must list at least one person who was involved in developing the ontology.\nCreators should be referenced via PIDs, e.g. ORCIDs for persons and RORs for organisations.\nIf an ontology is developed by a larger group, it is recommended to give the organization or project identifier as the creator and list individual persons as contributors.\nRecommended property: \nExample statement 1 (text/turtle): . rdf:type foaf:Person .\nPlain name strings could be provided in addition (for readability).\nExample statement 2 (text/turtle):\n \n rdf:type foaf:Person ; "Max" ;\n "Muster" .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides information about its creator. It produces a warning message if no creator information is present."@en ; sh:name "Ontology creator(s)"@en ; ] ; @@ -297,21 +340,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath (dc:creator dcterms:creator schema:creator pav:createdBy prov:wasAttributedTo schema:accountablePerson schema:author)]; sh:severity sh:Info ; sh:nodeKind sh:IRI; - sh:message """ - You should provide the ontology creators as IRIs. - Please make sure to provide persistent identifiers (PIDs) wherever possible, e.g. ORCiDs for persons and RORs for organisations. - If an ontology is developed by a larger group, it is recommended to give the organization or project identifier as the creator and list individual persons as contributors. - Recommended property: - Example statement 1 (text/turtle): . rdf:type foaf:Person . - - Plain name strings could be provided in addition (for readability). - Example statement 2 (text/turtle): - . - rdf:type foaf:Person ; "Max" ; - "Muster" . - - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the ontology creators as IRIs.\nPlease make sure to provide persistent identifiers (PIDs) wherever possible, e.g. ORCiDs for persons and RORs for organisations.\nIf an ontology is developed by a larger group, it is recommended to give the organization or project identifier as the creator and list individual persons as contributors.\nRecommended property: \nExample statement 1 (text/turtle): . rdf:type foaf:Person .\nPlain name strings could be provided in addition (for readability).\nExample statement 2 (text/turtle):\n .\n rdf:type foaf:Person ; \"Max\" ;\n \"Muster\" .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology states its creator as an IRI. It produces an info message if creator information is given e.g. as xsd:string"@en ; sh:name "Ontology creator(s) - datatype"@en ; ] ; @@ -325,16 +354,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Warning ; sh:minCount 1 ; sh:maxCount 1 ; - sh:message """ - You must add a versionIRI to the ontology. - The versionIRI should be stable and resolvable, i.e. a fixed version of the ontology should be retrievable from the provided IRI. - It is recommended to use semantic versioning (cf. https://semver.org/) or OBO style date-based versioning (http://obofoundry.org/principles/fp-004-versioning.html). - Recommended property: - Example statement 1 (text/turtle): . - Example statement 2 (text/turtle): . - Example statement 3 (text/turtle): . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You must add a versionIRI to the ontology.\nThe versionIRI should be stable and resolvable, i.e. a fixed version of the ontology should be retrievable from the provided IRI.\nIt is recommended to use semantic versioning (cf. https://semver.org/) or OBO style date-based versioning (http://obofoundry.org/principles/fp-004-versioning.html).\nRecommended property: \nExample statement 1 (text/turtle): .\nExample statement 2 (text/turtle): .\nExample statement 3 (text/turtle): .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provids exactly one versionIRI. It produces a warning message if none is found."@en ; sh:name "Ontology version IRI"@en ; ] ; @@ -343,14 +363,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path owl:versionIRI ; sh:severity sh:Info ; sh:nodeKind sh:IRI; - sh:message """ - You should state the versionIRI as an IRI. It should not be given as a sring or literal. - Recommended property: - Example statement 1 (text/turtle): . - Example statement 2 (text/turtle): . - Example statement 3 (text/turtle): . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should state the versionIRI as an IRI. It should not be given as a string or literal.\nRecommended property: \nExample statement 1 (text/turtle): .\nExample statement 2 (text/turtle): .\nExample statement 3 (text/turtle): .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology versionIRI is provided as an IRI (https://www.w3.org/TR/rdf11-concepts/#dfn-iri) (as compared to a literal). It produces an info message if it is not."@en ; sh:name "Ontology version IRI - datatype"@en ; ] ; @@ -362,13 +375,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Warning ; sh:minCount 1; sh:maxCount 1 ; - sh:message """ - You must add a creation date to the ontology. - You must provide exactly one date in xsd:dateTime format. - Recommended property: - Example statement (text/turtle): dcterms:created "2020-11-19T00:00:00"^^xsd:dateTime . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You must add a creation date to the ontology.\nYou must provide exactly one date in xsd:date or xsd:dateTime format.\nRecommended property: \nExample statement (text/turtle): dcterms:created \"2020-11-19T00:00:00\"^^xsd:dateTime .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides its creation date. It produces a warning message if not."@en ; sh:name "Ontology creation date"@en ; ] ; @@ -376,14 +383,9 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:property [ sh:path [sh:alternativePath (dcterms:created schema:dateCreated pav:createdOn prov:generatedAtTime )] ; sh:severity sh:Info ; - sh:datatype xsd:dateTime ; - sh:message """ - You should provide the creation date of the ontology in xsd:dateTime format. - Recommended property: - Example statement (text/turtle): dcterms:created "2020-11-19T00:00:00"^^xsd:dateTime . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; - sh:description "This shape checks whether the ontology provides its creation date in xsd:dateTime format. It produces an info message if not."@en ; + sh:xone ( [sh:datatype xsd:dateTime ;] [sh:datatype xsd:date ;] ); + sh:message """You should provide the creation date of the ontology in xsd:date or xsd:dateTime format.\nRecommended property: \nExample statement (text/turtle): dcterms:created \"2020-11-19T00:00:00\"^^xsd:dateTime .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; + sh:description "This shape checks whether the ontology provides its creation date in xsd:date or xsd:dateTime format. It produces an info message if not."@en ; sh:name "Ontology creation date - datatype"@en ; ] ; @@ -394,12 +396,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath (dcterms:abstract )] ; sh:severity sh:Warning ; sh:minCount 1 ; - sh:message """ - You must provide a short abstract about the ontology and its scope. - Recommended property: - Example statement (text/turtle): dcterms:abstract "SomeOntology defines a range of classes and properties which can be applied to do stuff in a particular domain."@en , "SomeOntology definiert eine Reihe von Klassen und Properties, die in einer bestimmten Domäne verwendet werden können, um etwas damit zu tun."@de . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You must provide a short abstract about the ontology and its scope.\nRecommended property: \nExample statement (text/turtle): dcterms:abstract \"SomeOntology defines a range of classes and properties which can be applied to do stuff in a particular domain.\"@en , \"SomeOntology definiert eine Reihe von Klassen und Properties, die in einer bestimmten Domäne verwendet werden können, um etwas damit zu tun.\"@de .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides an abstract. It produces an info message if not."@en ; sh:name "Ontology abstract"@en ; ] ; @@ -409,12 +406,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Info ; sh:nodeKind sh:Literal ; sh:datatype rdf:langString ; - sh:message """ - You should provide the ontology abstract as an rdf:langString. - Recommended property: - Example statement (text/turtle): dcterms:abstract "SomeOntology defines a range of classes and properties which can be applied to do stuff in a particular domain."@en , "SomeOntology definiert eine Reihe von Klassen und Properties, die in einer bestimmten Domäne verwendet werden können, um etwas damit zu tun."@de . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the ontology abstract as an rdf:langString.\nRecommended property: \nExample statement (text/turtle): dcterms:abstract \"SomeOntology defines a range of classes and properties which can be applied to do stuff in a particular domain.\"@en , \"SomeOntology definiert eine Reihe von Klassen und Properties, die in einer bestimmten Domäne verwendet werden können, um etwas damit zu tun.\"@de .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides its abstract as an rdf:langString. It produces an info message if not."@en ; sh:name "Ontology abstract - language"@en ; ] ; @@ -423,10 +415,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath (dcterms:abstract )] ; sh:severity sh:Info ; sh:uniqueLang true ; - sh:message """ - You should provide only one ontology abstract per language. - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide only one ontology abstract per language.\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides several abstracts in the same language. It produces an info message if it does."@en ; sh:name "Ontology abstract - unique language"@en ; ] ; @@ -435,12 +424,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath (dcterms:abstract )] ; sh:severity sh:Info ; sh:maxLength 500 ; - sh:message """ - You should limit the ontology abstract to 500 characters maximum. - The TIB Terminology Service requires short ontology descriptions for a user-friendly ontology list. - To provide more information about the ontology, add an additional description (recommended property: ) or add a reference to a related article (recommended property: ). - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should limit the ontology abstract to 500 characters maximum.\nThe TIB Terminology Service requires short ontology descriptions for a user-friendly ontology list.\nTo provide more information about the ontology, add an additional description (recommended property: ) or add a reference to a related article (recommended property: ).\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape cheks whether the ontology abstract is longer than 500 characters. It produces an info message if it does."@en ; sh:name "Ontology abstract - length"@en ; ] ; @@ -453,12 +437,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:nodeKind sh:IRI ; sh:minCount 1 ; sh:maxCount 1 ; - sh:message """ - You must provide an IRI for the ontology's issue tracker or another location where bugs and suggestions for the ontology can be reported. - Recommended property: - Example statement (text/turtle): doap:bug-database . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You must provide an IRI for the ontology's issue tracker or another location where bugs and suggestions for the ontology can be reported.\nRecommended property: \nExample statement (text/turtle): doap:bug-database .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology references an issue tracker on its repository (e.g. at GitLab or GitHub). It creates a warning message, if it does not."@en ; sh:name "Ontology issue tracker"@en ; ] ; @@ -471,12 +450,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:nodeKind sh:IRI ; sh:minCount 1 ; sh:maxCount 1 ; - sh:message """ - You must provide an IRI to the ontology documentation. - Recommended property: - Example statement (text/turtle): premis:documentation . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You must provide an IRI to the ontology documentation.\nRecommended property: \nExample statement (text/turtle): premis:documentation .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides a link to its documentation. It produces warning message if it does not."@en ; sh:name "Ontology documentation"@en ; ] ; @@ -489,21 +463,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath (dcterms:contributor dc:contributor schema:contributor pav:contributedBy)] ; sh:severity sh:Info ; sh:minCount 1 ; - sh:message """ - You should list all contributors to the ontology. - Contributors should be referenced via PIDs, e.g. ORCiDs for persons and RORs for organisations. - If an ontology is developed by a larger group, it is recommended to give the organization or project identifier as the creator and list individual persons as contributors. - Recommended property: - - Example statement 1 (text/turtle): . rdf:type foaf:Person . - - Plain name strings can be provided in addition (for readability). - Example statement 2 (text/turtle): - . - rdf:type foaf:Person ; "Max" ; - "Muster" . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should list all contributors to the ontology.\nContributors should be referenced via PIDs, e.g. ORCiDs for persons and RORs for organisations.\nIf an ontology is developed by a larger group, it is recommended to give the organization or project identifier as the creator and list individual persons as contributors.\nRecommended property: \n\nExample statement 1 (text/turtle): . rdf:type foaf:Person .\nPlain name strings can be provided in addition (for readability).\nExample statement 2 (text/turtle):\n .\n rdf:type foaf:Person ; \"Max\" ;\n \"Muster\" .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides information about its contributors. It produces an info message if no contributor information is present."@en ; sh:name "Ontology contributor(s)"@en ; ] ; @@ -512,20 +472,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath (dcterms:contributor dc:contributor schema:contributor pav:contributedBy)] ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should provide the ontology contributor information as IRIs. - Please make sure to provide persistent identifiers (PIDs) wherever possible, e.g. ORCiDs for persons and RORs for organisations. - If an ontology is developed by a larger group, it is recommended to give the organization or project identifier as the creator and list individual persons as contributors. - Recommended property: - Example statement 1 (text/turtle): . rdf:type foaf:Person . - - Plain name strings could be provided in addition (for readability). - Example statement 2 (text/turtle): - . - rdf:type foaf:Person ; "Max" ; - "Muster" . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the ontology contributor information as IRIs.\nPlease make sure to provide persistent identifiers (PIDs) wherever possible, e.g. ORCiDs for persons and RORs for organisations.\nIf an ontology is developed by a larger group, it is recommended to give the organization or project identifier as the creator and list individual persons as contributors.\nRecommended property: \nExample statement 1 (text/turtle): . rdf:type foaf:Person .\n\nPlain name strings could be provided in addition (for readability).\nExample statement 2 (text/turtle):\n .\n rdf:type foaf:Person ; \"Max\" ;\n \"Muster\" .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology states its contributors via IRIs. It produces an info message if contributor information is given e.g. as xsd:string."@en ; sh:name "Ontology contributor(s) - datatype"@en ; ] ; @@ -536,13 +483,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path ; sh:severity sh:Info ; sh:minCount 1 ; - sh:message """ - If applicable, you should reference any institutions funding the work on the ontology. - The funding instution(s) should be referenced by PIDs, e.g. RORs (https://ror.org/) or Crossref Funder Registry IDs (https://www.crossref.org/services/funder-registry/)). - Recommended property: - Example statement (text/turtle): . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """If applicable, you should reference any institutions funding the work on the ontology.\nThe funding institution(s) should be referenced by PIDs, e.g. RORs (https://ror.org/) or Crossref Funder Registry IDs (https://www.crossref.org/services/funder-registry/)).\nRecommended property: \nExample statement (text/turtle): .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology references funding information. It produces an info message if not."@en ; sh:name "Ontology funder"@en ; ] ; @@ -551,31 +492,20 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should reference any institutions funding your ontology via IRI. - The funding institution should be referenced by PIDs, e.g. RORs (https://ror.org/) or Crossref Funder Registry IDs (https://www.crossref.org/services/funder-registry/)). - Recommended property: - Example statement (text/turtle): . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should reference any institutions funding your ontology via IRI.\nThe funding institution should be referenced by PIDs, e.g. RORs (https://ror.org/) or Crossref Funder Registry IDs (https://www.crossref.org/services/funder-registry/)).\nRecommended property: \nExample statement (text/turtle): .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology references its funder via IRI. It produces an info message if it does not."@en ; sh:name "Ontology funder"@en ; ] ; ## Ontology funding ### status: developer and external review needed +### Funding: the link is not useful, because CrossRef does not offer a searchable database. sh:property [ sh:path ; sh:severity sh:Info ; sh:minCount 1 ; - sh:message """ - If applicable, you should reference the grant which funds the work on the ontology. - The grant should be referenced by PID, e.g. Crossref Grant ID (https://www.crossref.org/documentation/research-nexus/grants/)). - Recommended property: - Example statement (text/turtle): . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """If applicable, you should reference the grant which funds the work on the ontology.\nThe grant should be referenced by PID, e.g. Crossref Grant ID (https://www.crossref.org/documentation/research-nexus/grants/)).\nRecommended property: \nExample statement (text/turtle): .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology references a grant funding the work on the ontology. It produces an info message if not."@en ; sh:name "Ontology funding (grant)"@en ; ] ; @@ -584,13 +514,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should reference any grants funding your ontology via IRI. - The funding grant should be referenced by PID, e.g. Crossref Grant IDs (https://www.crossref.org/documentation/research-nexus/grants/)). - Recommended property: - Example statement (text/turtle): . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should reference any grants funding your ontology via IRI.\nThe funding grant should be referenced by PID, e.g. Crossref Grant IDs (https://www.crossref.org/documentation/research-nexus/grants/)).\nRecommended property: \nExample statement (text/turtle): .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology references its funding grant via IRI. It produces an info message if it does not."@en ; sh:name "Ontology funding (grant)"@en ; ] ; @@ -603,13 +527,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Info ; sh:minCount 1 ; sh:maxCount 1 ; - sh:message """ - You should describe the intended audience of the ontology. - The audience description should be a short, language-tagged text. - Recommended property: - Example statement (text/turtle): doap:audience \"This ontology is intended for researchers in derivational morphology, a branch of linguistics.\"@en . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should describe the intended audience of the ontology.\nThe audience description should be a short, language-tagged text.\nRecommended property: \nExample statement (text/turtle): doap:audience \"This ontology is intended for researchers in derivational morphology, a branch of linguistics.\"@en .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology describes its audience. It produces an info message if audience information is missing."@en ; skos:editorialNote "see also open comment at G-Doc: https://docs.google.com/document/d/1FRmCQ7eD6PcqSQgPbqCGjki3t39ROoYozsehCPX9E0Q/edit?disco=AAAAwke7GNs" ; sh:name "Ontology audience description"@en ; @@ -619,12 +537,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath (doap:audience schema:audience dcterms:audience)] ; sh:severity sh:Info ; sh:datatype rdf:langString ; - sh:message """ - You should provide the audience description of the ontology as an rdf:langString. - Recommended property: - Example statement (text/turtle): doap:audience \"This ontology is intended for researchers in derivational morphology, a branch of linguistics.\"@en . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the audience description of the ontology as an rdf:langString.\nRecommended property: \nExample statement (text/turtle): doap:audience \"This ontology is intended for researchers in derivational morphology, a branch of linguistics.\"@en .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/ """@en ; sh:description "This shape checks whether the ontology provides the audience description as an rdf:langString. It produces an info message if not."@en ; sh:name "Ontology audience description - language"@en ; ] ; @@ -636,14 +549,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path dcterms:subject ; sh:severity sh:Info ; sh:minCount 1 ; - sh:message """ - You should provide some keywords to describe the subject(s) of your ontology. - It is recommended to use identifiers of controlled vocabularies or ontologies to do so. - You can search for fitting terms on TIB Terminology Service (https://terminology.tib.eu). - Recommended property: - Example statement (text/turtle): dcterms:subject , , , . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide some keywords to describe the subject(s) of your ontology.\nIt is recommended to use identifiers of controlled vocabularies or ontologies to do so.\nYou can search for fitting terms on TIB Terminology Service (https://terminology.tib.eu).\nRecommended property: \nExample statement (text/turtle): dcterms:subject , , , .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides subjects. It produces an info message if it does not."@en ; sh:name "Ontology subject(s)"@en ; ] ; @@ -652,13 +558,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path dcterms:subject ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should provide ontology subjects with IRIs from controlled vocabularies or ontologies. - You can search for fitting terms on TIB Terminology Service (https://terminology.tib.eu). - Recommended property: - Example statement (text/turtle): dcterms:subject , , , . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide ontology subjects with IRIs from controlled vocabularies or ontologies. Subjects should not be given as free text.\nYou can search for fitting terms on TIB Terminology Service (https://terminology.tib.eu).\nRecommended property: \nExample statement (text/turtle): dcterms:subject , , , .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides its subjects via IRIs. It produces an info message if it does not."@en ; sh:name "Ontology subject(s) - datatype"@en ; ] ; @@ -670,14 +570,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath (dcterms:language ) ]; sh:severity sh:Info ; sh:minCount 1 ; - sh:message """ - You should provide information about the ontology annotation language(s) (e.g. for term labels, term definitions, etc.). - You should only claim that the ontology uses an annotation language, if all ontology elements or an extensive part of the ontology is annotaed in that languge. - Recommended controlled vocabulary: - Recommended property: - Example statement (text/turtle): dcterms:language , . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide information about the ontology annotation language(s) (e.g. for term labels, term definitions, etc.).\nYou should only claim that the ontology uses an annotation language, if all ontology elements or an extensive part of the ontology is annotated in that language.\nRecommended controlled vocabulary: \nRecommended property: \nExample statement (text/turtle): dcterms:language , .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology specifies the languages it covers (e.g. for term labels, term definitions, etc.). It produces an info message if no language information is given."@en ; sh:name "Ontology annotation language(s)"@en ; ] ; @@ -686,13 +579,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath (dcterms:language ) ]; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should specify the ontology annotation language(s) via IRIs. - Recommended controlled vocabulary: - Recommended property: - Example statement (text/turtle): dcterms:language , . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should specify the ontology annotation language(s) via IRIs.\nRecommended controlled vocabulary: \nRecommended property: \nExample statement (text/turtle): dcterms:language , .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides information about its language coverage via IRIs. It produces an info message if it does not."@en ; sh:name "Ontology annotation language(s) - datatype"@en ; ] ; @@ -701,11 +588,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath (dcterms:language ) ]; sh:severity sh:Info ; sh:pattern "(^http://id.loc.gov/vocabulary/iso639-2/[a-z]{3}$|^https://id.loc.gov/vocabulary/iso639-2/[a-z]{3}$)" ; - sh:message """ - You should provide ontology annotation language values that match the pattern for language identifiers from 'ISO 639-2: Codes for the Representation of Names of Languages - Part 2: Alpha-3 Code for the Names of Languages' (cf. https://id.loc.gov/vocabulary/iso639-2.html). - Example identifier: - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide ontology annotation language values that match the pattern for language identifiers from 'ISO 639-2: Codes for the Representation of Names of Languages - Part 2: Alpha-3 Code for the Names of Languages' (cf. https://id.loc.gov/vocabulary/iso639-2.html).\nExample identifier: \nRecommended property: https://schema.org/inLanguage\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the values for language coverage match the pattern for language identifiers from 'ISO 639-2: Codes for the Representation of Names of Languages - Part 2: Alpha-3 Code for the Names of Languages'. It produces an info message if they do not."@en ; sh:name "Ontology annotation language(s) - pattern"@en ; ] ; @@ -713,18 +596,13 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; ## Applied logical framework ### status: developer and external review needed +#### external comment Giacomo: Logical framework: the user needs a reference to a half-way authoritative list of frameworks (OWL? SKOS? RDF? OBO?) showing how they separate (wie sie sich voneinander abgrenzen) sh:property [ sh:path ; sh:severity sh:Info ; sh:minCount 1 ; sh:maxCount 1 ; - sh:message """ - You should state which logical framework the ontology applies. - The information can be given as a text, referring to the Semantic Web Standard (e.g. 'OWL 2') and possibly the OWL profile (e.g. 'OWL 2 EL profile'). - Recommended property: - Example statement (text/turtle): mod:hasFormalityLevel \"OWL version 2, EL profile\"@en . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should state which logical framework the ontology applies.\nThe information can be given as a text, referring to the Semantic Web Standard (e.g. 'OWL 2') and possibly the OWL profile (e.g. 'OWL 2 EL profile').\nRecommended property: \nExample statement (text/turtle): mod:hasFormalityLevel \"OWL version 2, EL profile\"@en .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology specifies the logical framework it applies. It produces an info message if the information is missing."@en ; sh:name "Applied logical framework description"@en ; ] ; @@ -733,12 +611,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path ; sh:severity sh:Info ; sh:datatype rdf:langString ; - sh:message """ - You should provide the description of the logical framework applied by the ontology as an rdf:langString. - Recommended property: - Example statement (text/turtle): mod:hasFormalityLevel \"OWL version 2, EL profile\"@en . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the description of the logical framework applied by the ontology as an rdf:langString.\nRecommended property: \nExample statement (text/turtle): mod:hasFormalityLevel \"OWL version 2, EL profile\"@en .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology's information about it applied logical framework is provided as an rdf:langString. It produces an info message if it does not."@en ; sh:name "Applied logical framework description - language"@en ; ] ; @@ -747,60 +620,30 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; ## Ontology serialization/ file format ### status: developer and external review needed sh:property [ - sh:path [sh:alternativePath ( ) ]; + sh:path [sh:alternativePath ( ) ]; sh:severity sh:Info ; sh:minCount 1 ; - sh:message """ - You should state the ontology's serialization/ file format. - The value should be provided as an IRI. - We recommend to provide the information about the media type/ file format of your ontology as one of the values from the Media Types list of the Internet Assigned Number Authority (IANA) (cf. https://www.iana.org/assignments/media-types/media-types.xhtml) or from the W3C resource "Unique URIs for File Formats" : - - In order to publish your ontology on the TIB Terminology Service, you must provide the ontology in one of the following formats: - - resp. - - resp. - - OBO format (cf. http://purl.obolibrary.org/obo/oboformat/spec.html) - - Currently, there is no registered media type for obo format. - - Recommended property: - Example statement (text/turtle): omv:hasOntologySyntax . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should state the ontology's serialization/ file format.\nThe value should be provided as an IRI.\nWe recommend to provide the information about the media type/ file format of your ontology as one of the values from the Media Types list of the Internet Assigned Number Authority (IANA) (cf. https://www.iana.org/assignments/media-types/media-types.xhtml) or from the W3C resource "Unique URIs for File Formats" :\n\nIn order to publish your ontology on the TIB Terminology Service, you must provide the ontology in one of the following formats:\n - resp. \n - resp. \n - OBO format (cf. http://purl.obolibrary.org/obo/oboformat/spec.html)\nCurrently, there is no registered media type for obo format.\nRecommended property: \nExample statement (text/turtle): .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology specifies its serialization/ file format. It produces an info message if it does not."@en ; sh:name "Ontology serialization/ file format"@en ; ] ; sh:property [ - sh:path ; + sh:path [sh:alternativePath ( ) ]; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should state the ontology's serialization/ file format. - The value should be provided as an IRI. - We recommend to provide the information about the media type/ file format of your ontology as one of the values from the Media Types list of the Internet Assigned Number Authority (IANA) (cf. https://www.iana.org/assignments/media-types/media-types.xhtml) or from the W3C resource "Unique URIs for File Formats" : - - In order to publish your ontology on the TIB Terminology Service, you must provide the ontology in one of the following formats: - - resp. - - resp. - - OBO format (cf. http://purl.obolibrary.org/obo/oboformat/spec.html) - - Currently, there is no registered media type for obo format. - - Recommended property: - Example statement (text/turtle): omv:hasOntologySyntax . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should state the ontology's serialization/ file format.\nThe value should be provided as an IRI.\nWe recommend to provide the information about the media type/ file format of your ontology as one of the values from the Media Types list of the Internet Assigned Number Authority (IANA) (cf. https://www.iana.org/assignments/media-types/media-types.xhtml) or from the W3C resource \"Unique URIs for File Formats\" :\n\nIn order to publish your ontology on the TIB Terminology Service, you must provide the ontology in one of the following formats:\n - resp. \n - resp. \n - OBO format (cf. http://purl.obolibrary.org/obo/oboformat/spec.html)\nCurrently, there is no registered media type for obo format.\nRecommended property: \nExample statement (text/turtle): .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology specifies its serialization/ file format via IRI. It produces an info message if it does not."@en ; sh:name "Ontology serialization/ file format - datatype"@en ; ] ; sh:property [ - sh:path ; + sh:path [sh:alternativePath ( ) ]; sh:severity sh:Info ; sh:maxCount 1; sh:xone ( # tbd: not all are relevant or digestable by the TS - # for the TS rdf+xml, turtle and obo are confirmed + # for the TS rdf+xml, turtle and obo are confirmed, obo will not be supported by OLS4 # no expected value for obo ontologies > Ontorowser mentions application/obo and text/obo, but these are specific to the service, not officially acknowledged: https://github.com/Novartis/ontobrowser/blob/master/doc/web_services.md # [sh:hasValue ;] # [sh:hasValue ;] @@ -833,22 +676,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; # [sh:hasValue ;] # [sh:hasValue ;] ); - sh:message """ - You should state the ontology's serialization/ file format. - The value should be provided as an IRI. - We recommend to provide the information about the media type/ file format of your ontology as one of the values from the Media Types list of the Internet Assigned Number Authority (IANA) (cf. https://www.iana.org/assignments/media-types/media-types.xhtml) or from the W3C resource "Unique URIs for File Formats" : - - In order to publish your ontology on the TIB Terminology Service, you must provide the ontology in one of the following formats: - - resp. - - resp. - - OBO format (cf. http://purl.obolibrary.org/obo/oboformat/spec.html) - - Currently, there is no registered media type for obo format. - - Recommended property: - Example statement (text/turtle): omv:hasOntologySyntax . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should state the ontology's serialization/ file format.\nThe value should be provided as an IRI.\nWe recommend to provide the information about the media type/ file format of your ontology as one of the values from the Media Types list of the Internet Assigned Number Authority (IANA) (cf. https://www.iana.org/assignments/media-types/media-types.xhtml) or from the W3C resource \"Unique URIs for File Formats\" :\n\nIn order to publish your ontology on the TIB Terminology Service, you must provide the ontology in one of the following formats:\n - resp. \n - resp. \n - OBO format (cf. http://purl.obolibrary.org/obo/oboformat/spec.html)\nCurrently, there is no registered media type for obo format.\nRecommended property: \nExample statement (text/turtle): [sh:alternativePath ( ) ]; .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology's serialization/ file format value is from a selection of the recommended controlled lists. It produces an info message if there is more than one value or when the value is not from the selection of the list."@en ; sh:name "Ontology serialization/ file format - controlled vocabulary value"@en ; ] ; @@ -862,13 +690,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:minCount 1 ; sh:maxCount 1 ; sh:datatype rdf:langString ; - sh:message """ - You should declare the current maintenance status of the ontology. You could use an English label to do so. We recommend using one of 'active', 'inactive', 'orphaned' or 'obsolete' (cf. https://obofoundry.org/docs/OntologyStatus.html). - The value you use should be language-tagged. - Recommended property: - Example statement (text/turtle): bibo:status "inactive"@en . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should declare the current maintenance status of the ontology. You could use an English label to do so. We recommend using one of 'active', 'inactive', 'orphaned' or 'obsolete' (cf. https://obofoundry.org/docs/OntologyStatus.html).\nThe value you use should be language-tagged.\nRecommended property: \nExample statement (text/turtle): bibo:status \"inactive\"@en .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides its maintenance status. It produces an info message, if the information is missing."@en ; sh:name "Ontology status"@en ; ] ; @@ -880,13 +702,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Info ; sh:minCount 1; sh:maxCount 1; - sh:message """ - You should provide the link to the ontology's code repository. - The ontology should be on a code repository and the ontology should contain the repository's IRI. - Recommended property: - Example statement (text/turtle): doap:repository . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the link to the ontology's code repository.\nThe ontology should be on a code repository and the ontology should contain the repository's IRI.\nRecommended property: \nExample statement (text/turtle): doap:repository .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology povides a link to its code repository. It produces an info message, if the information is missing."@en ; sh:name "Ontology code repository"@en ; ] ; @@ -895,12 +711,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path ; sh:severity sh:Info ; sh:nodeKind sh:IRI; - sh:message """ - You should provide the link to the ontology's code repository as an IRI. - Recommended property: - Example statement (text/turtle): doap:repository . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the link to the ontology's code repository as an IRI.\nRecommended property: \nExample statement (text/turtle): doap:repository .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology povides the link to its code repository as an IRI. It produces an info message, if the information is given as an xsd:string or the like."@en ; sh:name "Ontology code repository - datatype"@en ; ] ; @@ -912,12 +723,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Info ; sh:minCount 1 ; sh:nodeKind sh:IRI ; - sh:message """ - You should provide IRIs to available alternative serializations or distributions of the ontology. - Recommended property: - Example statement (text/turtle): dcat:distribution , , . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide IRIs to available alternative serializations or distributions of the ontology.\nRecommended property: \nExample statement (text/turtle): dcat:distribution , , .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides links to alternative serializations. It produces an info message if the ontology is missing or not provided as an IRI."@en ; sh:name "Ontology distributions/ products"@en ; ] ; @@ -925,17 +731,11 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; ## Application example ### status: developer and external review needed sh:property [ - sh:path ; + sh:path ; sh:severity sh:Info ; sh:minCount 1 ; sh:nodeKind sh:IRI ; - sh:message """ - You should provide a link to an application example of the ontology. - Ideally, the ontology provides a PID to e.g. a publication describing applications of the ontology, or directly to an application or online service that uses the ontology. - Recommended property: - Example statement (text/turtle): vann:example . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide a link to an application example of the ontology.\nIdeally, the ontology provides a PID to e.g. a publication describing applications of the ontology, or directly to an application or online service that uses the ontology.\nRecommended property: \nExample statement (text/turtle): vann:example .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides links to application examples. It produces an info message if the information is missing or not provided as an IRI."@en ; sh:name "Application example"@en ; ] ; @@ -947,14 +747,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Info ; sh:minCount 1 ; sh:nodeKind sh:IRI ; - sh:message """ - You should provide references to resources related to the ontology via IRI. - Related recources could for example be publications introducing, discussing, evaluating or describing the ontology, recources containing alignments of your ontology to other ontologies, or any other resources that you would like to reference in your ontology. - The reference should be provided via PID, for example a DOI, if available. - Recommended property: - Example statement (text/turtle): dcterms:references . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide references to resources related to the ontology via IRI.\nRelated recources could for example be publications introducing, discussing, evaluating or describing the ontology, recources containing alignments of your ontology to other ontologies, or any other resources that you would like to reference in your ontology.\nThe reference should be provided via PID, for example a DOI, if available.\nRecommended property: \nExample statement (text/turtle): dcterms:references .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides references to related resources as IRIs. It produces an info message if the information is missing or not provided as an IRI."@en ; sh:name "Related resource(s)"@en ; ] ; @@ -966,13 +759,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path dcterms:bibliographicCitation ; sh:severity sh:Info ; sh:minCount 1 ; - sh:message """ - You should provide information about how the ontology should be cited. - The information should be provided as an rdf:langString. - Recommended property: - Example statement (text/turtle): dcterms:bibliographicCitation \"Last name, first name; last name, first name et al. (YYYY): Title. URL: https://w3id.org/SomeOntology/1.1.6\"@en . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide information about how the ontology should be cited.\nThe information should be provided as an rdf:langString.\nRecommended property: \nExample statement (text/turtle): dcterms:bibliographicCitation \"Last name, first name; last name, first name et al. (YYYY): Title. URL: https://w3id.org/SomeOntology/1.1.6\"@en .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape ckecks whether the ontology provides information about how it should be cited. It produces an info message if the information is missing."@en ; sh:name "Citation suggestion"@en ; ] ; @@ -984,13 +771,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Info ; sh:minCount 1 ; sh:nodeKind sh:IRI ; - sh:message """ - You should specify whether and from which other ontologies your ontology has been derived. - The reference should be made by an owl:versionIRI of the ontology from which the current ontology has been derived. - Recommended property: - Example statement (text/turtle): pav:derivedFrom . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should specify whether and from which other ontologies your ontology has been derived.\nThe reference should be made by an owl:versionIRI of the ontology from which the current ontology has been derived.\nRecommended property: \nExample statement (text/turtle): pav:derivedFrom .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides links to other ontologies it has been derived from. It produces an info message if the information is missing or not provided as IRIs."@en ; sh:name "Ontology sources (derived from)"@en ; ]; @@ -1002,14 +783,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Info ; sh:minCount 1 ; sh:nodeKind sh:IRI ; - sh:message """ - You should explicitly declare the ontology's root classes. - This information can be used for tree-like visualizations of the class hierarchy in technical services, e.g. TIB Terminology Service. - The repsective classes (if any) need to be provided via their identifier. - Recommended property: - Example statement (text/turtle): obo:IAO_0000700 . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should explicitly declare the ontology's root classes.\nThis information can be used for tree-like visualizations of the class hierarchy in technical services, e.g. TIB Terminology Service.\nThe respective classes (if any) need to be provided via their identifier.\nThis information should best be provided or defined by the ontology maintainers or engineers. If you are not the maintainer or engineer, you should leave this empty.\nRecommended property: \nExample statement (text/turtle): obo:IAO_0000700 .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology declares its preferred root classes. It produces an info message if the information is missing or the information is not provided as IRIs."@en ; sh:name "Ontology root classes"@en ; ] ; @@ -1025,12 +799,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Info ; sh:nodeKind sh:Literal; sh:datatype rdf:langString ; - sh:message """ - You should provide the ontology description as an rdf:langString. - Recommended property: - Example statetement (text/turtle): schema:description \"Free text describing the ontology and how it came to be. Basically everything you might want to add and which does not fit into the abstract.\"@en . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the ontology description as an rdf:langString.\nRecommended property: \nExample statetement (text/turtle): schema:description \"Free text describing the ontology and how it came to be. Basically everything you might want to add and which does not fit into the abstract.\"@en .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology description is an rdf:langString. It produces an info message if it is not."@en ; sh:name "Ontology description - language"@en ; ] ; @@ -1039,12 +808,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath (dc:description dcterms:description schema:description)] ; sh:severity sh:Info ; sh:uniqueLang true ; - sh:message """ - You should only provide one ontology description per language. - Recommended property: - Example statements (text/turtle): schema:description \"Free text describing the ontology and how it came to be. Basically everything you might want to add and which does not fit into the abstract.\"@en, \"Freitext, der die Ontologie und ihre Genese beschreibt. Hier können umfangreiche Hintergrundinformationen zur Ontologie gegeben werden, die über ein kurzes Abstract hinausgehen.\" . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should only provide one ontology description per language.\nRecommended property: \nExample statements (text/turtle): schema:description \"Free text describing the ontology and how it came to be. Basically everything you might want to add and which does not fit into the abstract.\"@en, \"Freitext, der die Ontologie und ihre Genese beschreibt. Hier können umfangreiche Hintergrundinformationen zur Ontologie gegeben werden, die über ein kurzes Abstract hinausgehen.\"@de .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether multiple ontology descriptions in the same language are present. It produces an info message if there are multiple descriptions in the same language."@en ; sh:name "Ontology description - unique language"@en ; ] ; @@ -1057,12 +821,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath ( )]; sh:severity sh:Info ; sh:datatype rdf:langString ; - sh:message """ - You should provide the ontology's alternative title as an rdf:langString. - Recommended property: - Example statement (text/turtle): dcterms:alternative \"My Ontology\"@en . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en; + sh:message """You should provide the ontology's alternative title as an rdf:langString.\nRecommended property: \nExample statement (text/turtle): dcterms:alternative \"My Ontology\"@en .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en; sh:description "This shape checks whether the ontology's alternative title is an rdf:langString. It produces an info message if it is not."@en; sh:name "Alternative ontology title - language"@en; ] ; @@ -1074,12 +833,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path ; sh:severity sh:Info ; sh:datatype xsd:string ; - sh:message """ - You should provide the ontology's alternative prefix as an xsd:string. - Recommended property: - Example statement (text/turtle): idot:alternatePrefix \"mo\"^^xsd:string . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the ontology's alternative prefix as an xsd:string.\nRecommended property: \nExample statement (text/turtle): idot:alternatePrefix \"mo\"^^xsd:string .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology's alternative prefix is an xsd:string. It produces an info message if it does not."@en ; sh:name "Alternative ontology prefix/ acronym - datatype"@en ; ] ; @@ -1094,13 +848,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath ( )] ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should provide the ontology's prior version as an IRI. - Ideally, a resolving ontology versionIRI should be used. - Recommended property: - Example statement (text/turtle): owl:priorVersion . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the ontology's prior version as an IRI.\nIdeally, a resolving ontology versionIRI should be used.\nRecommended property: \nExample statement (text/turtle): owl:priorVersion .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description """This shape checks whether the ontology's prior version is provided as an IRI, ideally via a resolving versionIRI. It produces an info message if it is not."""@en ; sh:name "Prior ontology version"@en ; ] ; @@ -1112,13 +860,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath ( )] ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should provide the ontology's related version as an IRI. - Ideally, a resolving ontology versionIRI should be used. - Recommended property: - Example statement (text/turtle): dcterms:isVersionOf . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the ontology's related version as an IRI.\nIdeally, a resolving ontology versionIRI should be used.\nRecommended property: \nExample statement (text/turtle): dcterms:isVersionOf .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology's related versions are provided as IRIs, ideally via a resolving versionIRI. It produces an info message if they are not."@en ; sh:name "Related ontology version"@en ; ] ; @@ -1130,13 +872,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should provide compatible versions of the ontology as IRIs. - Ideally, a resolving ontology versionIRI should be used. - Recommended property: - Example statement (text/turtle): owl:backwardCompatibleWith . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide compatible versions of the ontology as IRIs.\nIdeally, a resolving ontology versionIRI should be used.\nRecommended property: \nExample statement (text/turtle): owl:backwardCompatibleWith .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides links to compatible versions of the ontology via IRIs. It produces an info message if they are not."@en ; sh:name "Compatible ontology version"@en ; ] ; @@ -1148,13 +884,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should provide incompatible versions of the ontology as IRIs. - Ideally, a resolving ontology versionIRI should be used. - Recommended property: - Example statement (text/turtle): owl:incompatibleWith . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide incompatible versions of the ontology as IRIs.\nIdeally, a resolving ontology versionIRI should be used.\nRecommended property: \nExample statement (text/turtle): owl:incompatibleWith .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides links to incompatible versions of the ontology via IRIs. It produces an info message, if it does not."@en ; sh:name "Incompatible ontology version"@en ; ] ; @@ -1170,12 +900,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path dcterms:type ; sh:severity sh:Info ; sh:maxCount 1 ; - sh:message """ - You should declare at most on KOS type for the resource. Use an identifier from the NKOS type vocabulary (https://nkos.dublincore.org/nkostype/nkostype.rdf). - Recommended property: - Example statement (text/turtle): dcterms:type . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should declare at most on KOS type for the resource. Use an identifier from the NKOS type vocabulary (https://nkos.dublincore.org/nkostype/nkostype.rdf).\nRecommended property: \nExample statement (text/turtle): dcterms:type .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology declares a KOS-type as an IRI from the NKOS type vocabulary. It produces an info message if it does not."@en ; sh:name "KOS type"@en ; ] ; @@ -1201,12 +926,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; [sh:hasValue ] [sh:hasValue ] ) ; - sh:message """ - The KOS type identifier should be provided as an IRI. The IRI should be one of the KOS types defined by the NKOS type vocabulary (https://nkos.dublincore.org/nkostype/nkostype.rdf). - Recommended property: - Example statement (text/turtle): dcterms:type . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """The KOS type identifier should be provided as an IRI. The IRI should be one of the KOS types defined by the NKOS type vocabulary (https://nkos.dublincore.org/nkostype/nkostype.rdf).\nRecommended property: \nExample statement (text/turtle): dcterms:type .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology declares a KOS-type as an IRI from the NKOS type vocabulary. It produces an info message if it does not."@en ; sh:name "KOS type"@en ; ] ; @@ -1218,12 +938,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should declare an example identifier for the ontology as an IRI. - Recommended property: - Example statement (text/turtle): idot:exampleIdentifier . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should declare an example identifier for the ontology as an IRI.\nRecommended property: \nExample statement (text/turtle): idot:exampleIdentifier .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology declares example identifiers as IRIs. It produces an info message if it does not."@en ; sh:name "Example ontology identifier"@en ; ] ; @@ -1236,12 +951,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Info ; sh:datatype xsd:string ; sh:maxCount 1 ; - sh:message """ - You should provide the identifier pattern for the ontology as an xsd:string. - Recommended property: - Example statement (text/turtle): idot:identifierPattern \"^\\d{4}-[A-Z]{2}$\"^^xsd:string . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the identifier pattern for the ontology as an xsd:string.\nRecommended property: \nExample statement (text/turtle): idot:identifierPattern \"^\\d{4}-[A-Z]{2}$\"^^xsd:string .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology declares an identifier pattern as xsd:string. It produces an info message if it does not."@en ; sh:name "Ontology identifier pattern"@en ; ] ; @@ -1255,12 +965,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; sh:maxCount 1 ; - sh:message """ - You should provide the homepage of the ontology as an IRI. - Recommended property: - Example statement (text/turtle): foaf:homepage . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the homepage of the ontology as an IRI.\nRecommended property: \nExample statement (text/turtle): foaf:homepage .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology homepage is provided as an IRI. It produces an info message if it is not."@en ; sh:name "Ontology homepage"@en ; ] ; @@ -1278,14 +983,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; [sh:pattern "https://isni.org/isni/[0]{4}[0-9]{4}[0-9]{4}[0-9]{3}[0-9X]" ;] [sh:pattern "https://d-nb.info/gnd/(|(1[012]?[0-9]{7}[0-9X]|[47][0-9]{6}-[0-9]|[1-9][0-9]{0,7}-[0-9X]|3[0-9]{7}[0-9X]))$" ;] ) ; - sh:message """ - You should specify the ontology publisher via ROR, ISNI or GND identifier. - The value you provide should be given as an IRI and match the identifier patterns. - If you use valid ROR, ISNI or GND identifiers, this should be the case. - Recommended property: - Example statement (text/turtle): dcterms:publisher . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should specify the ontology publisher via ROR, ISNI or GND identifier.\nThe value you provide should be given as an IRI and match the identifier patterns.\nIf you use valid ROR, ISNI or GND identifiers, this should be the case.\nRecommended property: \nExample statement (text/turtle): dcterms:publisher .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology specifies its publisher as an IRI belonging to the ROR, ISNI or GND namespace. It produces an info message if not."@en ; sh:name "Ontology publisher"@en ; ] ; @@ -1297,12 +995,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path rdfs:comment ; sh:severity sh:Info ; sh:datatype rdf:langString ; - sh:message """ - You should provide any comments about the ontology as rdf:langString. - Recommended property: - Example statement (text/turtle): rdfs:comment \"SomeOntology does not actually exist.\"@en . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide any comments about the ontology as rdf:langString.\nRecommended property: \nExample statement (text/turtle): rdfs:comment \"SomeOntology does not actually exist.\"@en .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the comments about the ontology are provided as an rdf:langString. It produces an info message if they are not."@en ; sh:name "Ontology comments"@en ; ] ; @@ -1315,12 +1008,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath ( )] ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should provide example classes of the otology as IRIs. - Recommended property: - Example statement (text/turtle): void:exampleResource . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide example classes of the otology as IRIs.\nRecommended property: \nExample statement (text/turtle): void:exampleResource .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether example classes of the ontology are provided as IRIs. It produces an info message if they are not."@en ; sh:name "Example ontology class - data type"@en ; ] ; @@ -1334,48 +1022,35 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; sh:maxCount 1 ; - sh:message """ - You should provide the ontology mailing list as an IRI. - Recommended property: - Example statement (text/turtle): doap:mailing-list . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the ontology mailing list as an IRI.\nRecommended property: \nExample statement (text/turtle): doap:mailing-list .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology mailing list is provided as an IRI. It produces an info message if it is not."@en ; sh:name "Ontology mailing list"@en ; ]; ## Ontology logo/ depiction/ related visualizations ### status: developer and external review needed +### needs to be split for forms and validation? > logo should be its own datum, depictions and visualizations can go together sh:property [ sh:path [sh:alternativePath ( )] ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should provide links to depictions related to the ontology as IRIs. - Recommended property: - Example statement (text/turtle): foaf:logo - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide links to depictions related to the ontology as IRIs.\nRecommended property: \nExample statement (text/turtle): foaf:logo .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/ """@en ; sh:description "This shape checks whether the ontology's related depictions are provided via IRI. It produces an info message if they are not."@en ; sh:name "Ontology logo/ depiction/ related visualizations"@en ; ]; -## Related identifiers +## Alternative identifiers of the ontology ### status: developer and external review needed +### This shape is probably confusing since the properties shall provide identifiers for the ontology, not related resources. sh:property [ - sh:path [sh:alternativePath ( )] ; + sh:path [sh:alternativePath ( )] ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should provide the ontology's related identifiers as IRIs. - Recommended property: - Example statement (text/turtle): dcterms:identifier . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; - sh:description "This shape checks whether the ontology's related identifiers are provided as IRIs. It produces an info message if they are not."@en ; - sh:name "Related identifiers"@en ; + sh:message """You should provide the ontology's identifiers as IRIs.\nThe identifier used as the base uri of the ontology should be provided with .\nRecommended property: \nExample statement (text/turtle): dcterms:identifier .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; + sh:description "This shape checks whether the ontology's related identifiers are provided as IRIs. It produces an info message if they are not."@en ; + sh:name "Alternative identifiers of the ontology"@en ; ]; ## Development environment @@ -1391,12 +1066,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath ( )] ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should provide information about ontologies your ontology is aligned to as IRIs. - Recommended property: - Example statement (text/turtle): mod:hasEquivalencesWith . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide information about ontologies your ontology is aligned to as IRIs.\nRecommended property: \nExample statement (text/turtle): mod:hasEquivalencesWith .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology references ontologies it is aligned to via IRIs. It produces an info message if it does not."@en ; sh:name "Aligned resources"@en ; ]; @@ -1411,13 +1081,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path ; sh:severity sh:Info ; sh:xone ( [sh:nodeKind sh:IRI ;] [sh:datatype rdf:langString ;] ); - sh:message """ - You should provide the link to the ontology's competency questions as an IRI or provide the questions directly as an rdf:langString. - Recommended property: - Example statement 1 (text/turtle): \"Who developed an ontology?\"@en . - Example statement 2 (text/turtle): . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the link to the ontology's competency questions as an IRI or provide the questions directly as an rdf:langString.\nRecommended property: \nExample statement 1 (text/turtle): \"Who developed an ontology?\"@en .\nExample statement 2 (text/turtle): .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; #inconsistent with forms shape sh:description "This shape checks whether the ontology provides competency questions as rdf:langString or an IRI to an online document. It produces an info message if it does not."@en ; sh:name "Competency questions"@en ; ]; @@ -1432,13 +1096,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path ; sh:severity sh:Info ; sh:maxCount 1 ; - sh:message """ - You should provide at most one preferred namespace URI for the ontology. - Recommended property: - Example statement (text/turtle): . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - - """@en ; + sh:message """You should provide at most one preferred namespace URI for the ontology.\nRecommended property: \nExample statement (text/turtle): .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "The ontology should declare its preferred namespace URI."@en ; sh:name "Preferred ontology namespace"@en ; ] ; @@ -1447,12 +1105,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path ; sh:severity sh:Info ; sh:nodeKind sh:IRI ; - sh:message """ - You should provide the ontology's preferred namespace URI as an IRI. - Recommended property: - Example statement (text/turtle): . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide the ontology's preferred namespace URI as an IRI.\nRecommended property: \nExample statement (text/turtle): .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology declares its preferred namespace URI as an IRI. It produces an info message if it does not."@en ; sh:name "Preferred ontology namespace - datatype"@en ; ] ; @@ -1469,15 +1122,10 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; ) ] ; sh:severity sh:Info ; - sh:datatype xsd:dateTime ; + sh:xone ( [sh:datatype xsd:dateTime ;] [sh:datatype xsd:date ;] ); sh:maxCount 1 ; - sh:message """ - You should provide at most one ontology issue date that conforms to xsd:dateTime. - Recommended property: - Example statement: \"2023-11-21T00:00:00\"^^xsd:dateTime . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; - sh:description "This shape checks whether the ontology's issue date conforms to xsd:dateTime. It produces an info message if it does not."@en ; + sh:message """You should provide at most one ontology issue date that conforms to xsd:date or xsd:dateTime.\nRecommended property: \nExample statement (text/turtle): \"2023-11-21T00:00:00\"^^xsd:dateTime .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/ """@en ; + sh:description "This shape checks whether the ontology's issue date conforms to xsd:date or xsd:dateTime. It produces an info message if it does not."@en ; sh:name "Ontology issue date - datatype"@en ; ] ; @@ -1487,15 +1135,10 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:property [ sh:path [sh:alternativePath (dcterms:modified schema:dateModified pav:curatedOn pav:lastUpdateOn)]; sh:severity sh:Info ; - sh:datatype xsd:dateTime ; + sh:xone ( [sh:datatype xsd:dateTime ;] [sh:datatype xsd:date ;] ); sh:maxCount 1; - sh:message """ - You should provide at most one (the latest) ontology modification date in xsd:dateTime format. - Recommended property: - Example statement (text/turtle): dcterms:modified "2020-11-19T00:00:00"^^xsd:dateTime. - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; - sh:description "This shape checks whether the ontology provides at most one modification date in xsd:dateTime format. It produces an info message if not."@en ; + sh:message """You should provide at most one (the latest) ontology modification date in xsd:date or xsd:dateTime format.\nRecommended property: \nExample statement (text/turtle): dcterms:modified \"2020-11-19T00:00:00\"^^xsd:dateTime.\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; + sh:description "This shape checks whether the ontology provides at most one modification date in xsd:date or xsd:dateTime format. It produces an info message if not."@en ; sh:name "Ontology modification date"@en ; ] ; @@ -1505,15 +1148,8 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:property [ sh:path [sh:alternativePath (owl:versionInfo pav:version)]; sh:severity sh:Info ; - sh:datatype xsd:string ; - sh:message """ - You should provide textual information about the ontology version as an xsd:string. - It is recommended to use semantic versioning (cf. https://semver.org/) or OBO style date-based versioning (http://obofoundry.org/principles/fp-004-versioning.html). - Recommended property: - Example statement 1: owl:versionInfo "2023-01-01"^^xsd:string . - Example statement 2: owl:versionInfo "1.0.0"^^xsd:string. - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:xone ( [sh:datatype xsd:string ;] [sh:datatype rdf:langString ;] ); + sh:message """You should provide textual information about the ontology version as an xsd:string.\nIt is recommended to use semantic versioning (cf. https://semver.org/) or OBO style date-based versioning (http://obofoundry.org/principles/fp-004-versioning.html).\nIf you need to add a larger comment in natural language, you should provide the info as an rdf:langString, i.e. with a language tag. We do not encourage this, since such statements can most likely be expressed in more granular fashion with formal statements.\nRecommended property: \nExample statement 1 (text/turtle): owl:versionInfo \"2023-01-01\"^^xsd:string .\nExample statement 2 (text/turtle): owl:versionInfo \"1.0.0\"^^xsd:string.\nExample statement 3: owl:versionInfo \"Ontology version 1.0.0 of the subject classification in tabular format from Nov 2024.\"@en.\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides at most one textual version information as an xsd:string. It produces an info message if not."@en ; sh:name "Ontology version information"@en ; ] ; @@ -1522,15 +1158,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:path [sh:alternativePath (owl:versionInfo pav:version)]; sh:severity sh:Info ; sh:maxCount 1 ; - sh:message """ - You should provide at most one textual information about the ontology version. - The value should be providee as an xsd:string. - It is recommended to use semantic versioning (cf. https://semver.org/) or OBO style date-based versioning (http://obofoundry.org/principles/fp-004-versioning.html). - Recommended property: - Example statement 1: owl:versionInfo "2023-01-01"^^xsd:string . - Example statement 2: owl:versionInfo "1.0.0"^^xsd:string. - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide at most one textual information about the ontology version.\nThe value should be providee as an xsd:string.\nIt is recommended to use semantic versioning (cf. https://semver.org/) or OBO style date-based versioning (http://obofoundry.org/principles/fp-004-versioning.html).\nRecommended property: \nExample statement 1 (text/turtle): owl:versionInfo \"2023-01-01\"^^xsd:string .\nExample statement 2 (text/turtle): owl:versionInfo \"1.0.0\"^^xsd:string.\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "This shape checks whether the ontology provides at most one textual version information as an xsd:string. It produces an info message if not."@en ; sh:name "Ontology version information"@en ; ] ; @@ -1543,12 +1171,7 @@ ontometa:OntologyMetadataShape a sh:NodeShape ; sh:severity sh:Info ; sh:nodeKind sh:Literal ; sh:datatype rdf:langString ; - sh:message """ - You should provide ontology version notes (e.g. notes on updates as compared to the previous version of the ontology) as an rdf:langString. - Recommended property: - Example statement (text/turtle): adms:versionNotes "Changes from 2000-01-12: add annotation properties: familyName [...]"@en . - Need help? Learn more about SHACL: https://www.w3.org/TR/2017/REC-shacl-20170720/ - """@en ; + sh:message """You should provide ontology version notes (e.g. notes on updates as compared to the previous version of the ontology) as an rdf:langString.\nRecommended property: \nExample statement (text/turtle): adms:versionNotes \"Changes from 2000-01-12: add annotation properties: familyName [...]\"@en .\nNeed help with SHACL? Learn more: https://www.w3.org/TR/2017/REC-shacl-20170720/"""@en ; sh:description "The shape checks whether the ontology provides version notes as an rdf:langString. It produces an info message if not."@en ; sh:name "Ontology version notes"@en ; ] ; diff --git a/OntoMetadataShape4Forms.ttl b/OntoMetadataShape4Forms.ttl new file mode 100644 index 0000000..cdc2f26 --- /dev/null +++ b/OntoMetadataShape4Forms.ttl @@ -0,0 +1,1447 @@ +@base . +@prefix adms: . +@prefix bibo: . +@prefix cc: . +@prefix dash: . +@prefix dbo: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix doap: . +@prefix mod: . +@prefix ontometa4forms: . +@prefix owl: . +@prefix pav: . +@prefix prov: . +@prefix premis: . +@prefix rdf: . +@prefix rdfs: . +@prefix schema: . +@prefix sh: . +@prefix shacl: . +@prefix skos: . +@prefix vann: . +@prefix vs: . +@prefix xsd: . + + +ontometa4forms: rdf:type owl:Ontology ; + # owl:imports ; #when last imported (2024-04-05), SHACL was inconsistent + dcterms:title "Ontology Metadata Shape by TIB"@en, "TIB Metadatenshape für Ontologien"@de; + dcterms:creator , , , , ; + dcterms:created "2025-01-31T00:00:00"^^xsd:dateTime; + "2025-01-31T00:00:00"^^xsd:dateTime; + dcterms:abstract "OntoMeta4Forms provides SHACL shapes for ontology metadata. It is intended for use in form generator applications, e.g. . You may re-use (please refer back to our repo!) for your own services. Please note that adaptations might be necessary. If you have any remarks or questions get in touch with us at https://github.com/TIBHannover/terminology-metadata/issues"@en; + dcterms:subject , ; + dcterms:bibliographicCitation "Arndt, S., Ganske, A., Hauschke, C., Strömert, P., & Vogt, L. (2024). Terminology Metadata Recommendations by TIB. Zenodo. https://doi.org/10.5281/zenodo.11103070 (latest version)"; + vann:preferredNamespacePrefix "ontometa4forms"; + dcterms:license ; + doap:audience "Ontology engineers, ontology publishers, terminology service providers, terminology service curators"@en; + schema:inLanguage ; + owl:versionIRI ; + bibo:status "active"; + adms:versionNotes "In this version of OntoMeta, the sh:NodeShape is optimized for form generarators."@en; + doap:bug-database ; + premis:documentation ; + doap:repository ; + dcterms:references ; + mod:hasFormalityLevel "RDF(S), OWL, SHACL"@en; + ; + mod:hasEquivalencesWith ; + , ; + vann:example +. + +# Start of the Ontology Metadata Shape +ontometa4forms:OntologyMetadataShape a sh:NodeShape ; + sh:targetClass owl:Ontology ; + +# MANDATORY METADATA + +## Ontology title +### status: developer and external review needed + sh:property [ + sh:path dcterms:title ; + sh:severity sh:Warning ; + sh:minCount 1 ; + sh:datatype rdf:langString ; + sh:languageIn ( "en" "de" "ar" "bn" "cs" "da" "es" "fi" "fr" "hi" "it" "ja" "nl" "no" "pl" "ru" "sv" "tr" "uk" "zh") ; # liste verlängern + sh:uniqueLang true ; + sh:description """You must add an ontology title or label. The title must have a language tag. Only one title per language is accepted."""@en ; + sh:name "Ontology title"@en ; + sh:group ontometa4forms:BibliographicMetadataGroup ; + ] ; + +## Preferred ontology prefix/ acronym +### status: developer and external review needed: add check for forbidden characters like - ? + sh:property [ + sh:path ; + sh:severity sh:Warning; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:datatype xsd:string ; + sh:description "You must add the preferred ontology prefix as an xsd:string. Only one preferred prefix is accepted."@en ; + sh:name "Preferred ontology prefix/ acronym"@en ; + sh:group ontometa4forms:IntrinsicGroup ; + ] ; + + +## Ontology license +### status: developer and external review needed + + sh:property [ + sh:path dcterms:license ; + sh:severity sh:Warning ; + sh:minCount 1; + sh:maxCount 1; + sh:nodeKind sh:IRI ; + # tbd/todo: add further licenses to the list of accepted licenses? + sh:in ( + + + + + + + + + + + ); + sh:description "You must add the ontology license. This metadata form promotes only open licenses."@en ; + sh:name "Ontology license"@en ; + sh:group ontometa4forms:IntrinsicGroup ; + ] ; + +## Ontology creator(s) +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Warning ; + sh:minCount 1; + sh:description "You must add the ontology creators. Only URIs are accepted, e.g. ORCIDs (https://orcid.org/) or ROR (https://ror.org/) identifiers."@en ; + sh:nodeKind sh:IRI; + sh:name "Ontology creator(s)"@en ; + sh:group ontometa4forms:BibliographicMetadataGroup ; + ] ; + +## Version information + +### Ontology version IRI +#### status: developer and external review needed + sh:property [ + sh:path owl:versionIRI ; + sh:severity sh:Warning ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI; + sh:description "You must add the ontology's versionIRI. The ontology should be hosted on a version control system with release management in place, so that each version of the ontology can be referenced with a unique, stable versionIRI."@en ; + sh:name "Ontology version IRI"@en ; + sh:group ontometa4forms:VersionGroup; + ] ; + + +### Ontology creation date +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Warning ; + sh:minCount 1; + sh:maxCount 1 ; + sh:datatype xsd:dateTime ; + sh:description "You must add the ontology creation date. Use xsd:dateTime format to do so."@en ; + sh:name "Ontology creation date"@en ; + sh:group ontometa4forms:BibliographicMetadataGroup ; + ] ; + +## Ontology abstract +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Warning ; + sh:minCount 1 ; + sh:description "You must add a short abstract describing the ontology. What is the ontology about? Which use case does it support? What is the motivation of the ontology? Please provide it, if knwon. Ideally use information provided by the ontology creators, e.g. in documentation, ontology homepage, papers or the like."@en ; + sh:name "Ontology abstract"@en ; + #sh:nodeKind sh:Literal ; + sh:datatype rdf:langString ; + sh:languageIn ( "en" "de" "ar" "bn" "cs" "da" "es" "fi" "fr" "hi" "it" "ja" "nl" "no" "pl" "ru" "sv" "tr" "uk" "zh") ; # liste verlängern + sh:uniqueLang true ; + sh:maxLength 500 ; + sh:group ontometa4forms:BibliographicMetadataGroup ; + ] ; + + +## Ontology issue tracker +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Warning ; + sh:nodeKind sh:IRI ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "You must add the ontology's issue tracker. The ontology development should happen on a version control platform like GitLab or GitHub. The issue tracker should be available so that users of the ontology can report problems and suggestions regarding the ontology."@en ; + sh:name "Ontology issue tracker"@en ; + sh:group ontometa4forms:RelatedResources ; + ] ; + +## Ontology documentation +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Warning ; + sh:nodeKind sh:IRI ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "You must add a link to the ontology documentation."@en ; + sh:name "Ontology documentation"@en ; + sh:group ontometa4forms:RelatedResources ; + ] ; + +# RECOMMENDED METADATA + +## Ontology contributor(s) +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Info ; + #sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:description "You should add contributors to the ontology. Only URIs are accepted, e.g. ORCIDs (https://orcid.org/) or ROR (https://ror.org/) identifiers."@en ; + sh:name "Ontology contributor(s)"@en ; + sh:group ontometa4forms:FundingGroup ; + ] ; + + +## Ontology funder +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Info ; + #sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:description "You should add funders of the ontology. Only URIs are accepted, e.g. RORs (https://ror.org/), Crossref Funder Registry IDs (https://www.crossref.org/services/funder-registry/) or comparable identifiers."@en ; + sh:name "Ontology funder"@en ; + sh:group ontometa4forms:FundingGroup; + ] ; + +## Ontology funding +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + #sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:description "You should add grants from which the ontology development was funded. Only URIs are accepted, e.g. Crossref Grant ID (https://www.crossref.org/documentation/research-nexus/grants/) or comparable identifiers."@en ; + sh:name "Ontology funding (grant)"@en ; + sh:group ontometa4forms:FundingGroup; + ] ; + + +## Ontology audience description +### status: developer and external review needed + sh:property [ + sh:path doap:audience ; + sh:severity sh:Info ; + #sh:minCount 1 ; + sh:maxCount 1 ; + sh:datatype rdf:langString ; + sh:languageIn ( "en" "de" "ar" "bn" "cs" "da" "es" "fi" "fr" "hi" "it" "ja" "nl" "no" "pl" "ru" "sv" "tr" "uk" "zh") ; # liste verlängern + sh:description "You should add a short description about the ontology audience. Who is supposed to use the ontology?"@en ; + skos:editorialNote "see also open comment at G-Doc: https://docs.google.com/document/d/1FRmCQ7eD6PcqSQgPbqCGjki3t39ROoYozsehCPX9E0Q/edit?disco=AAAAwke7GNs" ; + sh:name "Ontology audience description"@en ; + sh:group ontometa4forms:IntrinsicGroup ; + ] ; + + +## Ontology subject(s) +### status: developer and external review needed + sh:property [ + sh:path dcterms:subject ; + sh:severity sh:Info ; + #sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:description "You should add some subjects of the ontology. Only URIs will be accepted, e.g. identifiers of controlled vocabularies or ontologies. You can search for fitting terms on, e.g. TIB Terminology Service (https://terminology.tib.eu)."@en ; + sh:name "Ontology subject(s)"@en ; + sh:group ontometa4forms:BibliographicMetadataGroup + ] ; + + +## Ontology annotation language(s) +### status: developer and external review needed +### add a list to make easier for forms + sh:property [ + sh:path ; + sh:severity sh:Info ; + #sh:minCount 1 ; + sh:nodeKind sh:IRI ; + # sh:pattern "(^http://id.loc.gov/vocabulary/iso639-2/[a-z]{3}$|^https://id.loc.gov/vocabulary/iso639-2/[a-z]{3}$)" ; # for form replaced by list + sh:in ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); + sh:description "You should add the ontology annotation languages."@en ; + sh:name "Ontology annotation language(s)"@en ; + sh:group ontometa4forms:IntrinsicGroup ; + ] ; + + +## Applied logical framework +### status: developer and external review needed +### replace contraints by list of allowed values? + sh:property [ + sh:path ; + sh:severity sh:Info ; + #sh:minCount 1 ; + sh:maxCount 1 ; + sh:datatype rdf:langString ; + sh:languageIn ( "en" "de" "ar" "bn" "cs" "da" "es" "fi" "fr" "hi" "it" "ja" "nl" "no" "pl" "ru" "sv" "tr" "uk" "zh") ; # liste verlängern + sh:description "You should clarify which logical framework is applied by the ontology, e.g. \"SKOS\", \"OWL2, EL profile\"."@en ; + sh:name "Applied logical framework description"@en ; + sh:group ontometa4forms:FormalizationMetadataGroup ; + ] ; + + +## Ontology serialization/ file format +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:group ontometa4forms:FormalizationMetadataGroup ; + #sh:minCount 1 ; + sh:maxCount 1; + sh:in ( + + + + + ); + sh:nodeKind sh:IRI ; + sh:description "You should add the ontology serialization/ file format. Only one value is allowed that should fit the serialization of the ontology file for which these metadata are produced."@en ; # the message makes sense in the metadata form generators, but not for creating ontology files in different serializations that re-use metadata of a specific serialization + sh:name "Ontology serialization/ file format"@en ; + ] ; + +## Ontology status +### status: developer and external review needed +### for later: dedicated ontology_status property missing - suggest to OBO? if available: use instead of bibo:status + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:maxCount 1 ; + sh:in ("active" "inactive" "orphaned" "obsolete"); # alternative 1 > nice dropdowns in forms, can the items be language tagged? + #sh:minCount 1 ; + #sh:datatype rdf:langString ; # alternative 2 properly language tagged + #sh:languageIn ( "en" "de" "ar" "bn" "cs" "da" "es" "fi" "fr" "hi" "it" "ja" "nl" "no" "pl" "ru" "sv" "tr" "uk" "zh") ; # liste verlängern # alternative 2 properly language tagged + sh:description "You should declare the ontology maintenance status."@en ; + sh:name "Ontology status"@en ; + sh:group ontometa4forms:VersionGroup ; + ] ; + +## Ontology code repository +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Info ; + #sh:minCount 1; + sh:maxCount 1; + sh:nodeKind sh:IRI; + sh:description "You should provide the link to the ontology code repository."@en ; + sh:name "Ontology code repository"@en ; + sh:group ontometa4forms:RelatedResources ; + ] ; + +## Ontology distributions/ products +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Info ; + #sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:description "You should provide links to alternative serializations of the ontology. The links provided should be stable and resolvable."@en ; + sh:name "Ontology distributions/ products"@en ; + sh:group ontometa4forms:RelatedResources ; + ] ; + +## Application example +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Info ; + #sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:description "You should provide a link to an application example of the ontology. This can be a service or some other kind of demonstration."@en ; + sh:name "Application example"@en ; + sh:group ontometa4forms:RelatedResources ; + ] ; + +## Related resource(s) +### status: developer and external review needed + sh:property [ + sh:path dcterms:references ; + sh:severity sh:Info ; + #sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:description "You should provide links to related resources of the ontology, e.g. publications, alignments and mappings, etc.."@en ; + sh:name "Related resource(s)"@en ; + sh:group ontometa4forms:RelatedResources ; + ] ; + + +## Citation suggestion +### status: developer and external review needed + sh:property [ + sh:path dcterms:bibliographicCitation ; + sh:severity sh:Info ; + #sh:minCount 1 ; + sh:description "You should provide a citation suggestion for the ontology. The suggestion should include ontology creators, publication year, title, version information, versionIRI and the repository URI."@en ; + sh:name "Citation suggestion"@en ; + sh:group ontometa4forms:BibliographicMetadataGroup ; + ] ; + +## Ontology sources (derived from) +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Info ; + #sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:description "You should provide version IRIs of ontologies the current ontology has been derived from. These URIs should be stable and resolvable."@en ; + sh:name "Ontology sources (derived from)"@en ; + sh:group ontometa4forms:RelatedResources ; + ]; + +## Ontology root classes +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Info ; + #sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:description "You should name the preferred root classes, if the ontology has any. These can be used on tree visualizations of the class hierarchy of the ontology on services like Ontology Lookup Service (OLS) from EMBL-EBI. This information should best be provided or defined by the ontology maintainers or engineers. If you are not the maintainer or engineer, you should leave this empty."@en ; + sh:name "Ontology root classes"@en ; + sh:group ontometa4forms:IntrinsicGroup ; + ] ; + +# OPTIONAL METADATA +### status: developer and external review needed + +## Ontology description +### status: developer and external review needed + + sh:property [ + sh:path schema:description; + sh:severity sh:Info ; + sh:nodeKind sh:Literal; + sh:datatype rdf:langString ; + sh:languageIn ( "en" "de" "ar" "bn" "cs" "da" "es" "fi" "fr" "hi" "it" "ja" "nl" "no" "pl" "ru" "sv" "tr" "uk" "zh") ; # liste verlängern + sh:uniqueLang true ; + sh:description "You can provide a longer description about the ontology in addition to its abstract. Only one description per language is accepted."@en ; + sh:name "Ontology description"@en ; + sh:group ontometa4forms:IntrinsicGroup ; + ] ; + + +## Alternative ontology title +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:datatype rdf:langString ; + sh:languageIn ( "en" "de" "ar" "bn" "cs" "da" "es" "fi" "fr" "hi" "it" "ja" "nl" "no" "pl" "ru" "sv" "tr" "uk" "zh") ; # liste verlängern + sh:description "You can provide alternative titles of the ontology. You can provide more than one alternative title in each language."@en; + sh:name "Alternative ontology title"@en; + sh:group ontometa4forms:BibliographicMetadataGroup ; + ] ; + +## Alternative ontology prefix/ acronym +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:datatype xsd:string ; + sh:description "You can provide an alternative ontology prefix. It should not contain hyphens."@en ; + sh:name "Alternative ontology prefix/ acronym"@en ; + sh:group ontometa4forms:IntrinsicGroup ; + ] ; + +## Related version/ version history +### status: see below + +### Prior ontology version +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:description """You can provide a link to the preceding version of the ontology if there is any. The URI should be a stable and resolvable versionIRI."""@en ; + sh:name "Prior ontology version"@en ; + sh:group ontometa4forms:VersionGroup ; + ] ; + +### Related ontology version +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:description "You can provide links to related versions of the ontology if there are any. The URI should be a stable and resolvable versionIRI."@en ; + sh:name "Related ontology version"@en ; + sh:group ontometa4forms:VersionGroup ; + ] ; + +### Compatible ontology version +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:description "You can provide links to compatible versions of the ontology. The URI should be a stable and resolvable versionIRI."@en ; + sh:name "Compatible ontology version"@en ; + sh:group ontometa4forms:VersionGroup ; + ] ; + +### Incompatible ontology version +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:description "You can provide links to incompatible versions of the ontology if applicable. The URI should be a stable and resolvable versionIRI."@en ; + sh:name "Incompatible ontology version"@en ; + sh:group ontometa4forms:VersionGroup ; + ] ; + + +## Social media +### status: intentionally no shape + +## KOS type +### status: developer and external review needed + + sh:property [ + sh:path dcterms:type ; + sh:severity sh:Info ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:group ontometa4forms:FormalizationMetadataGroup ; + sh:in ( + + + + + + + + + + + + + + + + + ) ; + sh:description "You can declare the KOS-type from the NKOS type vocabulary."@en ; + sh:name "KOS type"@en ; + ] ; + +## Example ontology identifier +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:description "You can name one example identifier of the ontology, e.g. the identifier of one of its classes."@en ; + sh:name "Example ontology identifier"@en ; + sh:group ontometa4forms:IntrinsicGroup ; + ] ; + +## Ontology identifier pattern +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:datatype xsd:string ; + sh:maxCount 2 ; # 2 because when using camel case for classes and properties, majusclues are usually used for classes, minuscules for properties, so two patterns may be valid + sh:description "Youd can add an identifier pattern that demonstrates how idetifiers of the ontology classes, properties and individuals should be built."@en ; + sh:name "Ontology identifier pattern"@en ; + sh:group ontometa4forms:IntrinsicGroup ; + ] ; + + +## Ontology homepage +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + sh:description "You can provide the link of the ontology homepage."@en ; + sh:name "Ontology homepage"@en ; + sh:group ontometa4forms:RelatedResources; + ] ; + +## Ontology publisher +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:xone ( + # pattern sources: Wikidata entries of the identifier types + [sh:pattern "https://ror.org/([a-z0-9]{9})" ; ] + [sh:pattern "https://isni.org/isni/[0]{4}[0-9]{4}[0-9]{4}[0-9]{3}[0-9X]" ;] + [sh:pattern "https://d-nb.info/gnd/(|(1[012]?[0-9]{7}[0-9X]|[47][0-9]{6}-[0-9]|[1-9][0-9]{0,7}-[0-9X]|3[0-9]{7}[0-9X]))$" ;] + ) ; + sh:description "You can list the ontology publisher if any. Only URIs from the ROR, ISNI or GND namespace are accepted."@en ; + sh:name "Ontology publisher"@en ; + sh:group ontometa4forms:BibliographicMetadataGroup ; + ] ; + +## Ontology comments +### status: developer and external review needed + + sh:property [ + sh:path rdfs:comment ; + sh:severity sh:Info ; + sh:datatype rdf:langString ; + sh:languageIn ( "en" "de" "ar" "bn" "cs" "da" "es" "fi" "fr" "hi" "it" "ja" "nl" "no" "pl" "ru" "sv" "tr" "uk" "zh") ; # liste verlängern + sh:description "You can provide comments about the ontology."@en ; + sh:name "Ontology comments"@en ; + sh:group ontometa4forms:IntrinsicGroup ; + ] ; + + +## Example ontology class +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:description "You can provide the identifiers of example classes of the ontology."@en ; + sh:name "Example ontology class"@en ; + sh:group ontometa4forms:IntrinsicGroup ; + ] ; + + +## Ontology mailing list +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + sh:description "You can add the ontology mailing list if available."@en ; + sh:name "Ontology mailing list"@en ; + sh:group ontometa4forms:ContactGroup ; + ]; + +## Ontology logo/ depiction/ related visualizations +### status: developer and external review needed +### needs to be split for forms and validation? > logo should be its own datum, depictions and visualizations can go together + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:description "You can add links to images related to the ontology, e.g. diagrams or schemas visualizing the ontology classes and relations."@en ; + sh:name "Ontology logo/ depiction/ related visualizations"@en ; + sh:group ontometa4forms:RelatedResources ; + ]; + +## Alternative identifiers of the ontology +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:description "You can provide alternative identifiers of the ontology, e.g. a DOI, a Wikidata entry, or comparable identifiers."@en ; + sh:name "Alternative identifiers of the ontology"@en ; + sh:group ontometa4forms:IntrinsicGroup ; + ]; + +## Development environment +#### status: intentionally no shape + +## Alignments/ mappings +### status: developer and external review needed + +### Aligned resources +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:description "You can provide identifiers of aligned ontologies or resources."@en ; + sh:name "Aligned resources"@en ; + sh:group ontometa4forms:AlignmentsGroup ; + ]; + +### Alignment files/ Mapping files +### status: see shape "Related resources" + +## Competency Questions +### status: developer and external review needed +### mit Marc besprechen, ob man für den Form-generator beides zulassen kann + + sh:property [ + sh:path ; + sh:severity sh:Info ; + # sh:xone ( + # [ + sh:nodeKind sh:IRI ; # inconsistent with ontometa: + # ] + # [sh:datatype rdf:langString ; sh:languageIn ( "en" "de" "ar" "bn" "cs" "da" "es" "fi" "fr" "hi" "it" "ja" "nl" "no" "pl" "ru" "sv" "tr" "uk" "zh") ; # liste verlängern + # ] ); + sh:description "You can provide the link to some competency questions for the ontology."@en ; + sh:name "Competency questions"@en ; + sh:group ontometa4forms:RelatedResources ; + ]; + +## Applied methodology +### status: intentionally no shape + +## Preferred ontology namespace +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:description "You can declare the preferred namespace URI of the ontology."@en ; + sh:name "Preferred ontology namespace"@en ; + sh:group ontometa4forms:IntrinsicGroup ; + ] ; + + +## Ontology issue date +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:datatype xsd:dateTime ; + sh:maxCount 1 ; + sh:description "You can provide the date when the ontology was issued. The value should use xsd:dateTime format, e.g. 2024-11-28T11:11:12"@en ; + sh:name "Ontology issue date"@en ; + sh:group ontometa4forms:BibliographicMetadataGroup ; + ] ; + +### Ontology modification date +### status: developer and external review needed + + sh:property [ + sh:path dcterms:modified; + sh:severity sh:Info ; + sh:datatype xsd:dateTime ; + sh:maxCount 1; + sh:description "You can provide the last modification date of the ontology in xsd:dateTime format, e.g. 2024-11-28T08:12:22"@en ; + sh:name "Ontology modification date"@en ; + sh:group ontometa4forms:BibliographicMetadataGroup ; + ] ; + +### Ontology version information +### status: developer and external review needed + + sh:property [ + sh:path owl:versionInfo ; + sh:severity sh:Info ; + sh:maxCount 1 ; + sh:datatype xsd:string ; # not consistent with ontometa: + sh:description "You can provide some textual information about the ontology version, e.g. a semantic versioning number as 2.0.1 or a date in xsd:date or xsd:dateTime format, e.g. 2024-11-26T18:00:01."@en ; + sh:name "Ontology version information"@en ; + sh:group ontometa4forms:VersionGroup ; + ] ; + +### Ontology version notes +### status: developer and external review needed + + sh:property [ + sh:path adms:versionNotes ; + sh:severity sh:Info ; + sh:nodeKind sh:Literal ; + sh:datatype rdf:langString ; + sh:languageIn ( "en" "de" "ar" "bn" "cs" "da" "es" "fi" "fr" "hi" "it" "ja" "nl" "no" "pl" "ru" "sv" "tr" "uk" "zh") ; # liste verlängern + sh:uniqueLang true ; + sh:description "You can add version notes, e.g. descriptions of the changes between this and the preceding version of the ontology."@en ; + sh:name "Ontology version notes"@en ; + sh:group ontometa4forms:VersionGroup ; + ] ; + +# End of shape + sh:closed false ; + sh:ignoredProperties ( rdf:type owl:topDataProperty owl:topObjectProperty ) . + +ontometa4forms:BibliographicMetadataGroup a sh:PropertyGroup ; + rdfs:label "Bibliographic metadata" ; + sh:order 1. + + +ontometa4forms:DateMetadataGroup a sh:PropertyGroup ; + rdfs:label "Dates" ; + sh:order 2. + +ontometa4forms:IntrinsicGroup a sh:PropertyGroup ; + rdfs:label "Intrinsic ontology data" ; + sh:order 3. + +ontometa4forms:FormalizationMetadataGroup a sh:PropertyGroup ; + rdfs:label "Formalization info" ; + sh:order 4. + +ontometa4forms:RelatedResources a sh:PropertyGroup ; + rdfs:label "Related resources" ; + sh:order 5. + + ontometa4forms:AlignmentsGroup a sh:PropertyGroup ; + rdfs:label "Mappings and alignments" ; + sh:order 6. + +ontometa4forms:FundingGroup a sh:PropertyGroup ; + rdfs:label "Funders and acknowledgements" ; + sh:order 7. + +ontometa4forms:VersionGroup a sh:PropertyGroup ; + rdfs:label "Version information" ; + sh:order 8. + +ontometa4forms:ContactGroup a sh:PropertyGroup ; + rdfs:label "Contact information" ; + sh:order 9. + + +# Could be used to add labels for list items in sh:in +# rdfs:label "". + +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# + + +# Other serializations for semantic data +# tbd: not all are relevant or digestable by the TS +# for the TS (OLS3) rdf+xml, turtle and obo are confirmed +# no expected value for obo ontologies > Ontorowser mentions application/obo and text/obo, but these are specific to the service, not officially acknowledged: https://github.com/Novartis/ontobrowser/blob/master/doc/web_services.md +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# + +# Languages resp. Labels for list istems in sh:in +# URI code Label (English) Label (French) + rdfs:label "Arabic" . + rdfs:label "Bengali" . + rdfs:label "Blissymbols | Blissymbolics" . + rdfs:label "Chinese" . + rdfs:label "Czech" . + rdfs:label "Danish" . + rdfs:label "Dutch | Flemish" . + rdfs:label "English" . + rdfs:label "Finnish" . + rdfs:label "French" . + rdfs:label "German" . + rdfs:label "Hindi" . + rdfs:label "Indonesian" . + rdfs:label "Japanese" . + rdfs:label "Klingon | tlhIngan-Hol" . + rdfs:label "No linguistic content | Not applicable" . + rdfs:label "Norwegian" . + rdfs:label "Polish" . + rdfs:label "Portuguese" . + rdfs:label "Russian" . + rdfs:label "Spanish | Castilian" . + rdfs:label "Swedish" . + rdfs:label "Uncoded languages" . + rdfs:label "Ukrainian". + rdfs:label "Undetermined" . + rdfs:label "Urdu". + rdfs:label "Turkish" . +# http://id.loc.gov/vocabulary/iso639-2/aar aar Afar afar +# http://id.loc.gov/vocabulary/iso639-2/abk abk Abkhazian abkhaze +# http://id.loc.gov/vocabulary/iso639-2/ace ace Achinese aceh +# http://id.loc.gov/vocabulary/iso639-2/ach ach Acoli acoli +# http://id.loc.gov/vocabulary/iso639-2/ada ada Adangme adangme +# http://id.loc.gov/vocabulary/iso639-2/ady ady Adyghe | Adygei adyghé +# http://id.loc.gov/vocabulary/iso639-2/afa afa Afro-Asiatic languages afro-asiatiques, langues +# http://id.loc.gov/vocabulary/iso639-2/afh afh Afrihili afrihili +# http://id.loc.gov/vocabulary/iso639-2/afr afr Afrikaans afrikaans +# http://id.loc.gov/vocabulary/iso639-2/ain ain Ainu aïnou +# http://id.loc.gov/vocabulary/iso639-2/aka aka Akan akan +# http://id.loc.gov/vocabulary/iso639-2/akk akk Akkadian akkadien +# http://id.loc.gov/vocabulary/iso639-2/alb alb Albanian albanais +# http://id.loc.gov/vocabulary/iso639-2/ale ale Aleut aléoute +# http://id.loc.gov/vocabulary/iso639-2/alg alg Algonquian languages algonquines, langues +# http://id.loc.gov/vocabulary/iso639-2/alt alt Southern Altai altai du Sud +# http://id.loc.gov/vocabulary/iso639-2/amh amh Amharic amharique +# http://id.loc.gov/vocabulary/iso639-2/ang ang English, Old (ca.450-1100) anglo-saxon (ca.450-1100) +# http://id.loc.gov/vocabulary/iso639-2/anp anp Angika angika +# http://id.loc.gov/vocabulary/iso639-2/apa apa Apache languages apaches, langues +# http://id.loc.gov/vocabulary/iso639-2/arc arc Official Aramaic (700-300 BCE) | Imperial Aramaic (700-300 BCE) araméen d'empire (700-300 BCE) +# http://id.loc.gov/vocabulary/iso639-2/arg arg Aragonese aragonais +# http://id.loc.gov/vocabulary/iso639-2/arm arm Armenian arménien +# http://id.loc.gov/vocabulary/iso639-2/arn arn Mapudungun | Mapuche mapudungun | mapuche | mapuce +# http://id.loc.gov/vocabulary/iso639-2/arp arp Arapaho arapaho +# http://id.loc.gov/vocabulary/iso639-2/art art Artificial languages artificielles, langues +# http://id.loc.gov/vocabulary/iso639-2/arw arw Arawak arawak +# http://id.loc.gov/vocabulary/iso639-2/asm asm Assamese assamais +# http://id.loc.gov/vocabulary/iso639-2/ast ast Asturian | Bable | Leonese | Asturleonese asturien | bable | léonais | asturoléonais +# http://id.loc.gov/vocabulary/iso639-2/ath ath Athapascan languages athapascanes, langues +# http://id.loc.gov/vocabulary/iso639-2/aus aus Australian languages australiennes, langues +# http://id.loc.gov/vocabulary/iso639-2/ava ava Avaric avar +# http://id.loc.gov/vocabulary/iso639-2/ave ave Avestan avestique +# http://id.loc.gov/vocabulary/iso639-2/awa awa Awadhi awadhi +# http://id.loc.gov/vocabulary/iso639-2/aym aym Aymara aymara +# http://id.loc.gov/vocabulary/iso639-2/aze aze Azerbaijani azéri +# http://id.loc.gov/vocabulary/iso639-2/bad bad Banda languages banda, langues +# http://id.loc.gov/vocabulary/iso639-2/bai bai Bamileke languages bamiléké, langues +# http://id.loc.gov/vocabulary/iso639-2/bak bak Bashkir bachkir +# http://id.loc.gov/vocabulary/iso639-2/bal bal Baluchi baloutchi +# http://id.loc.gov/vocabulary/iso639-2/bam bam Bambara bambara +# http://id.loc.gov/vocabulary/iso639-2/ban ban Balinese balinais +# http://id.loc.gov/vocabulary/iso639-2/baq baq Basque basque +# http://id.loc.gov/vocabulary/iso639-2/bas bas Basa basa +# http://id.loc.gov/vocabulary/iso639-2/bat bat Baltic languages baltes, langues +# http://id.loc.gov/vocabulary/iso639-2/bej bej Beja | Bedawiyet bedja +# http://id.loc.gov/vocabulary/iso639-2/bel bel Belarusian biélorusse +# http://id.loc.gov/vocabulary/iso639-2/bem bem Bemba bemba +# http://id.loc.gov/vocabulary/iso639-2/ber ber Berber languages berbères, langues +# http://id.loc.gov/vocabulary/iso639-2/bho bho Bhojpuri bhojpuri +# http://id.loc.gov/vocabulary/iso639-2/bih bih Bihari languages langues biharis +# http://id.loc.gov/vocabulary/iso639-2/bik bik Bikol bikol +# http://id.loc.gov/vocabulary/iso639-2/bin bin Bini | Edo bini | edo +# http://id.loc.gov/vocabulary/iso639-2/bis bis Bislama bichlamar +# http://id.loc.gov/vocabulary/iso639-2/bla bla Siksika blackfoot +# http://id.loc.gov/vocabulary/iso639-2/bnt bnt Bantu languages bantou, langues +# http://id.loc.gov/vocabulary/iso639-2/bod bod Tibetan tibétain +# http://id.loc.gov/vocabulary/iso639-2/bos bos Bosnian bosniaque +# http://id.loc.gov/vocabulary/iso639-2/bra bra Braj braj +# http://id.loc.gov/vocabulary/iso639-2/bre bre Breton breton +# http://id.loc.gov/vocabulary/iso639-2/btk btk Batak languages batak, langues +# http://id.loc.gov/vocabulary/iso639-2/bua bua Buriat bouriate +# http://id.loc.gov/vocabulary/iso639-2/bug bug Buginese bugi +# http://id.loc.gov/vocabulary/iso639-2/bul bul Bulgarian bulgare +# http://id.loc.gov/vocabulary/iso639-2/bur bur Burmese birman +# http://id.loc.gov/vocabulary/iso639-2/byn byn Blin | Bilin blin | bilen +# http://id.loc.gov/vocabulary/iso639-2/cad cad Caddo caddo +# http://id.loc.gov/vocabulary/iso639-2/cai cai Central American Indian languages amérindiennes de l'Amérique centrale, langues +# http://id.loc.gov/vocabulary/iso639-2/car car Galibi Carib karib | galibi | carib +# http://id.loc.gov/vocabulary/iso639-2/cat cat Catalan | Valencian catalan | valencien +# http://id.loc.gov/vocabulary/iso639-2/cau cau Caucasian languages caucasiennes, langues +# http://id.loc.gov/vocabulary/iso639-2/ceb ceb Cebuano cebuano +# http://id.loc.gov/vocabulary/iso639-2/cel cel Celtic languages celtiques, langues | celtes, langues +# http://id.loc.gov/vocabulary/iso639-2/ces ces Czech tchèque +# http://id.loc.gov/vocabulary/iso639-2/cha cha Chamorro chamorro +# http://id.loc.gov/vocabulary/iso639-2/chb chb Chibcha chibcha +# http://id.loc.gov/vocabulary/iso639-2/che che Chechen tchétchène +# http://id.loc.gov/vocabulary/iso639-2/chg chg Chagatai djaghataï +# http://id.loc.gov/vocabulary/iso639-2/chi chi Chinese chinois +# http://id.loc.gov/vocabulary/iso639-2/chk chk Chuukese chuuk +# http://id.loc.gov/vocabulary/iso639-2/chm chm Mari mari +# http://id.loc.gov/vocabulary/iso639-2/chn chn Chinook jargon chinook, jargon +# http://id.loc.gov/vocabulary/iso639-2/cho cho Choctaw choctaw +# http://id.loc.gov/vocabulary/iso639-2/chp chp Chipewyan | Dene Suline chipewyan +# http://id.loc.gov/vocabulary/iso639-2/chr chr Cherokee cherokee +# http://id.loc.gov/vocabulary/iso639-2/chu chu Church Slavic | Old Slavonic | Church Slavonic | Old Bulgarian | Old Church Slavonic slavon d'église | vieux slave | slavon liturgique | vieux bulgare +# http://id.loc.gov/vocabulary/iso639-2/chv chv Chuvash tchouvache +# http://id.loc.gov/vocabulary/iso639-2/chy chy Cheyenne cheyenne +# http://id.loc.gov/vocabulary/iso639-2/cmc cmc Chamic languages chames, langues +# http://id.loc.gov/vocabulary/iso639-2/cnr cnr Montenegrin monténégrin +# http://id.loc.gov/vocabulary/iso639-2/cop cop Coptic copte +# http://id.loc.gov/vocabulary/iso639-2/cor cor Cornish cornique +# http://id.loc.gov/vocabulary/iso639-2/cos cos Corsican corse +# http://id.loc.gov/vocabulary/iso639-2/cpe cpe Creoles and pidgins, English based créoles et pidgins basés sur l'anglais +# http://id.loc.gov/vocabulary/iso639-2/cpf cpf Creoles and pidgins, French-based créoles et pidgins basés sur le français +# http://id.loc.gov/vocabulary/iso639-2/cpp cpp Creoles and pidgins, Portuguese-based créoles et pidgins basés sur le portugais +# http://id.loc.gov/vocabulary/iso639-2/cre cre Cree cree +# http://id.loc.gov/vocabulary/iso639-2/crh crh Crimean Tatar | Crimean Turkish tatar de Crimé +# http://id.loc.gov/vocabulary/iso639-2/crp crp Creoles and pidgins créoles et pidgins +# http://id.loc.gov/vocabulary/iso639-2/csb csb Kashubian kachoube +# http://id.loc.gov/vocabulary/iso639-2/cus cus Cushitic languages couchitiques, langues +# http://id.loc.gov/vocabulary/iso639-2/cym cym Welsh gallois +# http://id.loc.gov/vocabulary/iso639-2/dak dak Dakota dakota +# http://id.loc.gov/vocabulary/iso639-2/dar dar Dargwa dargwa +# http://id.loc.gov/vocabulary/iso639-2/day day Land Dayak languages dayak, langues +# http://id.loc.gov/vocabulary/iso639-2/del del Delaware delaware +# http://id.loc.gov/vocabulary/iso639-2/den den Slave (Athapascan) esclave (athapascan) +# http://id.loc.gov/vocabulary/iso639-2/deu deu German allemand +# http://id.loc.gov/vocabulary/iso639-2/dgr dgr Tlicho | Dogrib tlicho | dogrib +# http://id.loc.gov/vocabulary/iso639-2/din din Dinka dinka +# http://id.loc.gov/vocabulary/iso639-2/div div Divehi | Dhivehi | Maldivian maldivien +# http://id.loc.gov/vocabulary/iso639-2/doi doi Dogri dogri +# http://id.loc.gov/vocabulary/iso639-2/dra dra Dravidian languages dravidiennes, langues +# http://id.loc.gov/vocabulary/iso639-2/dsb dsb Lower Sorbian bas-sorabe +# http://id.loc.gov/vocabulary/iso639-2/dua dua Duala douala +# http://id.loc.gov/vocabulary/iso639-2/dum dum Dutch, Middle (ca.1050-1350) néerlandais moyen (ca. 1050-1350) +# http://id.loc.gov/vocabulary/iso639-2/dut dut Dutch | Flemish néerlandais | flamand +# http://id.loc.gov/vocabulary/iso639-2/dyu dyu Dyula dioula +# http://id.loc.gov/vocabulary/iso639-2/dzo dzo Dzongkha dzongkha +# http://id.loc.gov/vocabulary/iso639-2/efi efi Efik efik +# http://id.loc.gov/vocabulary/iso639-2/egy egy Egyptian (Ancient) égyptien +# http://id.loc.gov/vocabulary/iso639-2/eka eka Ekajuk ekajuk +# http://id.loc.gov/vocabulary/iso639-2/ell ell Greek, Modern (1453-) grec moderne (après 1453) +# http://id.loc.gov/vocabulary/iso639-2/elx elx Elamite élamite +# http://id.loc.gov/vocabulary/iso639-2/enm enm English, Middle (1100-1500) anglais moyen (1100-1500) +# http://id.loc.gov/vocabulary/iso639-2/epo epo Esperanto espéranto +# http://id.loc.gov/vocabulary/iso639-2/est est Estonian estonien +# http://id.loc.gov/vocabulary/iso639-2/eus eus Basque basque +# http://id.loc.gov/vocabulary/iso639-2/ewe ewe Ewe éwé +# http://id.loc.gov/vocabulary/iso639-2/ewo ewo Ewondo éwondo +# http://id.loc.gov/vocabulary/iso639-2/fan fan Fang fang +# http://id.loc.gov/vocabulary/iso639-2/fao fao Faroese féroïen +# http://id.loc.gov/vocabulary/iso639-2/fas fas Persian persan +# http://id.loc.gov/vocabulary/iso639-2/fat fat Fanti fanti +# http://id.loc.gov/vocabulary/iso639-2/fij fij Fijian fidjien +# http://id.loc.gov/vocabulary/iso639-2/fil fil Filipino | Pilipino filipino | pilipino +# http://id.loc.gov/vocabulary/iso639-2/fiu fiu Finno-Ugrian languages finno-ougriennes, langues +# http://id.loc.gov/vocabulary/iso639-2/fon fon Fon fon +# http://id.loc.gov/vocabulary/iso639-2/fre fre French français +# http://id.loc.gov/vocabulary/iso639-2/frm frm French, Middle (ca.1400-1600) français moyen (1400-1600) +# http://id.loc.gov/vocabulary/iso639-2/fro fro French, Old (842-ca.1400) français ancien (842-ca.1400) +# http://id.loc.gov/vocabulary/iso639-2/frr frr Northern Frisian frison septentrional +# http://id.loc.gov/vocabulary/iso639-2/frs frs Eastern Frisian frison oriental +# http://id.loc.gov/vocabulary/iso639-2/fry fry Western Frisian frison occidental +# http://id.loc.gov/vocabulary/iso639-2/ful ful Fulah peul +# http://id.loc.gov/vocabulary/iso639-2/fur fur Friulian frioulan +# http://id.loc.gov/vocabulary/iso639-2/gaa gaa Ga ga +# http://id.loc.gov/vocabulary/iso639-2/gay gay Gayo gayo +# http://id.loc.gov/vocabulary/iso639-2/gba gba Gbaya gbaya +# http://id.loc.gov/vocabulary/iso639-2/gem gem Germanic languages germaniques, langues +# http://id.loc.gov/vocabulary/iso639-2/geo geo Georgian géorgien +# http://id.loc.gov/vocabulary/iso639-2/gez gez Geez guèze +# http://id.loc.gov/vocabulary/iso639-2/gil gil Gilbertese kiribati +# http://id.loc.gov/vocabulary/iso639-2/gla gla Gaelic | Scottish Gaelic gaélique | gaélique écossais +# http://id.loc.gov/vocabulary/iso639-2/gle gle Irish irlandais +# http://id.loc.gov/vocabulary/iso639-2/glg glg Galician galicien +# http://id.loc.gov/vocabulary/iso639-2/glv glv Manx manx | mannois +# http://id.loc.gov/vocabulary/iso639-2/gmh gmh German, Middle High (ca.1050-1500) allemand, moyen haut (ca. 1050-1500) +# http://id.loc.gov/vocabulary/iso639-2/goh goh German, Old High (ca.750-1050) allemand, vieux haut (ca. 750-1050) +# http://id.loc.gov/vocabulary/iso639-2/gon gon Gondi gond +# http://id.loc.gov/vocabulary/iso639-2/gor gor Gorontalo gorontalo +# http://id.loc.gov/vocabulary/iso639-2/got got Gothic gothique +# http://id.loc.gov/vocabulary/iso639-2/grb grb Grebo grebo +# http://id.loc.gov/vocabulary/iso639-2/grc grc Greek, Ancient (to 1453) grec ancien (jusqu'à 1453) +# http://id.loc.gov/vocabulary/iso639-2/gre gre Greek, Modern (1453-) grec moderne (après 1453) +# http://id.loc.gov/vocabulary/iso639-2/grn grn Guarani guarani +# http://id.loc.gov/vocabulary/iso639-2/gsw gsw Swiss German | Alemannic | Alsatian suisse alémanique | alémanique | alsacien +# http://id.loc.gov/vocabulary/iso639-2/guj guj Gujarati goudjrati +# http://id.loc.gov/vocabulary/iso639-2/gwi gwi Gwich'in gwich'in +# http://id.loc.gov/vocabulary/iso639-2/hai hai Haida haida +# http://id.loc.gov/vocabulary/iso639-2/hat hat Haitian | Haitian Creole haïtien | créole haïtien +# http://id.loc.gov/vocabulary/iso639-2/hau hau Hausa haoussa +# http://id.loc.gov/vocabulary/iso639-2/haw haw Hawaiian hawaïen +# http://id.loc.gov/vocabulary/iso639-2/heb heb Hebrew hébreu +# http://id.loc.gov/vocabulary/iso639-2/her her Herero herero +# http://id.loc.gov/vocabulary/iso639-2/hil hil Hiligaynon hiligaynon +# http://id.loc.gov/vocabulary/iso639-2/him him Himachali languages | Western Pahari languages langues himachalis | langues paharis occidentales +# http://id.loc.gov/vocabulary/iso639-2/hit hit Hittite hittite +# http://id.loc.gov/vocabulary/iso639-2/hmn hmn Hmong | Mong hmong +# http://id.loc.gov/vocabulary/iso639-2/hmo hmo Hiri Motu hiri motu +# http://id.loc.gov/vocabulary/iso639-2/hrv hrv Croatian croate +# http://id.loc.gov/vocabulary/iso639-2/hsb hsb Upper Sorbian haut-sorabe +# http://id.loc.gov/vocabulary/iso639-2/hun hun Hungarian hongrois +# http://id.loc.gov/vocabulary/iso639-2/hup hup Hupa hupa +# http://id.loc.gov/vocabulary/iso639-2/hye hye Armenian arménien +# http://id.loc.gov/vocabulary/iso639-2/iba iba Iban iban +# http://id.loc.gov/vocabulary/iso639-2/ibo ibo Igbo igbo +# http://id.loc.gov/vocabulary/iso639-2/ice ice Icelandic islandais +# http://id.loc.gov/vocabulary/iso639-2/ido ido Ido ido +# http://id.loc.gov/vocabulary/iso639-2/iii iii Sichuan Yi | Nuosu yi de Sichuan +# http://id.loc.gov/vocabulary/iso639-2/ijo ijo Ijo languages ijo, langues +# http://id.loc.gov/vocabulary/iso639-2/iku iku Inuktitut inuktitut +# http://id.loc.gov/vocabulary/iso639-2/ile ile Interlingue | Occidental interlingue +# http://id.loc.gov/vocabulary/iso639-2/ilo ilo Iloko ilocano +# http://id.loc.gov/vocabulary/iso639-2/ina ina Interlingua (International Auxiliary Language Association) interlingua (langue auxiliaire internationale) +# http://id.loc.gov/vocabulary/iso639-2/inc inc Indic languages indo-aryennes, langues +# http://id.loc.gov/vocabulary/iso639-2/ine ine Indo-European languages indo-européennes, langues +# http://id.loc.gov/vocabulary/iso639-2/inh inh Ingush ingouche +# http://id.loc.gov/vocabulary/iso639-2/ipk ipk Inupiaq inupiaq +# http://id.loc.gov/vocabulary/iso639-2/ira ira Iranian languages iraniennes, langues +# http://id.loc.gov/vocabulary/iso639-2/iro iro Iroquoian languages iroquoises, langues +# http://id.loc.gov/vocabulary/iso639-2/isl isl Icelandic islandais +# http://id.loc.gov/vocabulary/iso639-2/ita ita Italian italien +# http://id.loc.gov/vocabulary/iso639-2/jav jav Javanese javanais +# http://id.loc.gov/vocabulary/iso639-2/jbo jbo Lojban lojban +# http://id.loc.gov/vocabulary/iso639-2/jpr jpr Judeo-Persian judéo-persan +# http://id.loc.gov/vocabulary/iso639-2/jrb jrb Judeo-Arabic judéo-arabe +# http://id.loc.gov/vocabulary/iso639-2/kaa kaa Kara-Kalpak karakalpak +# http://id.loc.gov/vocabulary/iso639-2/kab kab Kabyle kabyle +# http://id.loc.gov/vocabulary/iso639-2/kac kac Kachin | Jingpho kachin | jingpho +# http://id.loc.gov/vocabulary/iso639-2/kal kal Kalaallisut | Greenlandic groenlandais +# http://id.loc.gov/vocabulary/iso639-2/kam kam Kamba kamba +# http://id.loc.gov/vocabulary/iso639-2/kan kan Kannada kannada +# http://id.loc.gov/vocabulary/iso639-2/kar kar Karen languages karen, langues +# http://id.loc.gov/vocabulary/iso639-2/kas kas Kashmiri kashmiri +# http://id.loc.gov/vocabulary/iso639-2/kat kat Georgian géorgien +# http://id.loc.gov/vocabulary/iso639-2/kau kau Kanuri kanouri +# http://id.loc.gov/vocabulary/iso639-2/kaw kaw Kawi kawi +# http://id.loc.gov/vocabulary/iso639-2/kaz kaz Kazakh kazakh +# http://id.loc.gov/vocabulary/iso639-2/kbd kbd Kabardian kabardien +# http://id.loc.gov/vocabulary/iso639-2/kha kha Khasi khasi +# http://id.loc.gov/vocabulary/iso639-2/khi khi Khoisan languages khoïsan, langues +# http://id.loc.gov/vocabulary/iso639-2/khm khm Central Khmer khmer central +# http://id.loc.gov/vocabulary/iso639-2/kho kho Khotanese | Sakan khotanais | sakan +# http://id.loc.gov/vocabulary/iso639-2/kik kik Kikuyu | Gikuyu kikuyu +# http://id.loc.gov/vocabulary/iso639-2/kin kin Kinyarwanda rwanda +# http://id.loc.gov/vocabulary/iso639-2/kir kir Kirghiz | Kyrgyz kirghiz +# http://id.loc.gov/vocabulary/iso639-2/kmb kmb Kimbundu kimbundu +# http://id.loc.gov/vocabulary/iso639-2/kok kok Konkani konkani +# http://id.loc.gov/vocabulary/iso639-2/kom kom Komi kom +# http://id.loc.gov/vocabulary/iso639-2/kon kon Kongo kongo +# http://id.loc.gov/vocabulary/iso639-2/kor kor Korean coréen +# http://id.loc.gov/vocabulary/iso639-2/kos kos Kosraean kosrae +# http://id.loc.gov/vocabulary/iso639-2/kpe kpe Kpelle kpellé +# http://id.loc.gov/vocabulary/iso639-2/krc krc Karachay-Balkar karatchai balkar +# http://id.loc.gov/vocabulary/iso639-2/krl krl Karelian carélien +# http://id.loc.gov/vocabulary/iso639-2/kro kro Kru languages krou, langues +# http://id.loc.gov/vocabulary/iso639-2/kru kru Kurukh kurukh +# http://id.loc.gov/vocabulary/iso639-2/kua kua Kuanyama | Kwanyama kuanyama | kwanyama +# http://id.loc.gov/vocabulary/iso639-2/kum kum Kumyk koumyk +# http://id.loc.gov/vocabulary/iso639-2/kur kur Kurdish kurde +# http://id.loc.gov/vocabulary/iso639-2/kut kut Kutenai kutenai +# http://id.loc.gov/vocabulary/iso639-2/lad lad Ladino judéo-espagnol +# http://id.loc.gov/vocabulary/iso639-2/lah lah Lahnda lahnda +# http://id.loc.gov/vocabulary/iso639-2/lam lam Lamba lamba +# http://id.loc.gov/vocabulary/iso639-2/lao lao Lao lao +# http://id.loc.gov/vocabulary/iso639-2/lat lat Latin latin +# http://id.loc.gov/vocabulary/iso639-2/lav lav Latvian letton +# http://id.loc.gov/vocabulary/iso639-2/lez lez Lezghian lezghien +# http://id.loc.gov/vocabulary/iso639-2/lim lim Limburgan | Limburger | Limburgish limbourgeois +# http://id.loc.gov/vocabulary/iso639-2/lin lin Lingala lingala +# http://id.loc.gov/vocabulary/iso639-2/lit lit Lithuanian lituanien +# http://id.loc.gov/vocabulary/iso639-2/lol lol Mongo mongo +# http://id.loc.gov/vocabulary/iso639-2/loz loz Lozi lozi +# http://id.loc.gov/vocabulary/iso639-2/ltz ltz Luxembourgish | Letzeburgesch luxembourgeois +# http://id.loc.gov/vocabulary/iso639-2/lua lua Luba-Lulua luba-lulua +# http://id.loc.gov/vocabulary/iso639-2/lub lub Luba-Katanga luba-katanga +# http://id.loc.gov/vocabulary/iso639-2/lug lug Ganda ganda +# http://id.loc.gov/vocabulary/iso639-2/lui lui Luiseno luiseno +# http://id.loc.gov/vocabulary/iso639-2/lun lun Lunda lunda +# http://id.loc.gov/vocabulary/iso639-2/luo luo Luo (Kenya and Tanzania) luo (Kenya et Tanzanie) +# http://id.loc.gov/vocabulary/iso639-2/lus lus Lushai lushai +# http://id.loc.gov/vocabulary/iso639-2/mac mac Macedonian macédonien +# http://id.loc.gov/vocabulary/iso639-2/mad mad Madurese madourais +# http://id.loc.gov/vocabulary/iso639-2/mag mag Magahi magahi +# http://id.loc.gov/vocabulary/iso639-2/mah mah Marshallese marshall +# http://id.loc.gov/vocabulary/iso639-2/mai mai Maithili maithili +# http://id.loc.gov/vocabulary/iso639-2/mak mak Makasar makassar +# http://id.loc.gov/vocabulary/iso639-2/mal mal Malayalam malayalam +# http://id.loc.gov/vocabulary/iso639-2/man man Mandingo mandingue +# http://id.loc.gov/vocabulary/iso639-2/mao mao Maori maori +# http://id.loc.gov/vocabulary/iso639-2/map map Austronesian languages austronésiennes, langues +# http://id.loc.gov/vocabulary/iso639-2/mar mar Marathi marathe +# http://id.loc.gov/vocabulary/iso639-2/mas mas Masai massaï +# http://id.loc.gov/vocabulary/iso639-2/may may Malay malais +# http://id.loc.gov/vocabulary/iso639-2/mdf mdf Moksha moksa +# http://id.loc.gov/vocabulary/iso639-2/mdr mdr Mandar mandar +# http://id.loc.gov/vocabulary/iso639-2/men men Mende mendé +# http://id.loc.gov/vocabulary/iso639-2/mga mga Irish, Middle (900-1200) irlandais moyen (900-1200) +# http://id.loc.gov/vocabulary/iso639-2/mic mic Mi'kmaq | Micmac mi'kmaq | micmac +# http://id.loc.gov/vocabulary/iso639-2/min min Minangkabau minangkabau +# http://id.loc.gov/vocabulary/iso639-2/mkd mkd Macedonian macédonien +# http://id.loc.gov/vocabulary/iso639-2/mkh mkh Mon-Khmer languages môn-khmer, langues +# http://id.loc.gov/vocabulary/iso639-2/mlg mlg Malagasy malgache +# http://id.loc.gov/vocabulary/iso639-2/mlt mlt Maltese maltais +# http://id.loc.gov/vocabulary/iso639-2/mnc mnc Manchu mandchou +# http://id.loc.gov/vocabulary/iso639-2/mni mni Manipuri manipuri +# http://id.loc.gov/vocabulary/iso639-2/mno mno Manobo languages manobo, langues +# http://id.loc.gov/vocabulary/iso639-2/moh moh Mohawk mohawk +# http://id.loc.gov/vocabulary/iso639-2/mon mon Mongolian mongol +# http://id.loc.gov/vocabulary/iso639-2/mos mos Mossi moré +# http://id.loc.gov/vocabulary/iso639-2/mri mri Maori maori +# http://id.loc.gov/vocabulary/iso639-2/msa msa Malay malais +# http://id.loc.gov/vocabulary/iso639-2/mul mul Multiple languages multilingue +# http://id.loc.gov/vocabulary/iso639-2/mun mun Munda languages mounda, langues +# http://id.loc.gov/vocabulary/iso639-2/mus mus Creek muskogee +# http://id.loc.gov/vocabulary/iso639-2/mwl mwl Mirandese mirandais +# http://id.loc.gov/vocabulary/iso639-2/mwr mwr Marwari marvari +# http://id.loc.gov/vocabulary/iso639-2/mya mya Burmese birman +# http://id.loc.gov/vocabulary/iso639-2/myn myn Mayan languages maya, langues +# http://id.loc.gov/vocabulary/iso639-2/myv myv Erzya erza +# http://id.loc.gov/vocabulary/iso639-2/nah nah Nahuatl languages nahuatl, langues +# http://id.loc.gov/vocabulary/iso639-2/nai nai North American Indian languages nord-amérindiennes, langues +# http://id.loc.gov/vocabulary/iso639-2/nap nap Neapolitan napolitain +# http://id.loc.gov/vocabulary/iso639-2/nau nau Nauru nauruan +# http://id.loc.gov/vocabulary/iso639-2/nav nav Navajo | Navaho navaho +# http://id.loc.gov/vocabulary/iso639-2/nbl nbl Ndebele, South | South Ndebele ndébélé du Sud +# http://id.loc.gov/vocabulary/iso639-2/nde nde Ndebele, North | North Ndebele ndébélé du Nord +# http://id.loc.gov/vocabulary/iso639-2/ndo ndo Ndonga ndonga +# http://id.loc.gov/vocabulary/iso639-2/nds nds Low German | Low Saxon | German, Low | Saxon, Low bas allemand | bas saxon | allemand, bas | saxon, bas +# http://id.loc.gov/vocabulary/iso639-2/nep nep Nepali népalais +# http://id.loc.gov/vocabulary/iso639-2/new new Nepal Bhasa | Newari nepal bhasa | newari +# http://id.loc.gov/vocabulary/iso639-2/nia nia Nias nias +# http://id.loc.gov/vocabulary/iso639-2/nic nic Niger-Kordofanian languages nigéro-kordofaniennes, langues +# http://id.loc.gov/vocabulary/iso639-2/niu niu Niuean niué +# http://id.loc.gov/vocabulary/iso639-2/nno nno Norwegian Nynorsk | Nynorsk, Norwegian norvégien nynorsk | nynorsk, norvégien +# http://id.loc.gov/vocabulary/iso639-2/nob nob Bokmål, Norwegian | Norwegian Bokmål norvégien bokmål +# http://id.loc.gov/vocabulary/iso639-2/nog nog Nogai nogaï | nogay +# http://id.loc.gov/vocabulary/iso639-2/non non Norse, Old norrois, vieux +# http://id.loc.gov/vocabulary/iso639-2/nqo nqo N'Ko n'ko +# http://id.loc.gov/vocabulary/iso639-2/nso nso Pedi | Sepedi | Northern Sotho pedi | sepedi | sotho du Nord +# http://id.loc.gov/vocabulary/iso639-2/nub nub Nubian languages nubiennes, langues +# http://id.loc.gov/vocabulary/iso639-2/nwc nwc Classical Newari | Old Newari | Classical Nepal Bhasa newari classique +# http://id.loc.gov/vocabulary/iso639-2/nya nya Chichewa | Chewa | Nyanja chichewa | chewa | nyanja +# http://id.loc.gov/vocabulary/iso639-2/nym nym Nyamwezi nyamwezi +# http://id.loc.gov/vocabulary/iso639-2/nyn nyn Nyankole nyankolé +# http://id.loc.gov/vocabulary/iso639-2/nyo nyo Nyoro nyoro +# http://id.loc.gov/vocabulary/iso639-2/nzi nzi Nzima nzema +# http://id.loc.gov/vocabulary/iso639-2/oci oci Occitan (post 1500) occitan (après 1500) +# http://id.loc.gov/vocabulary/iso639-2/oji oji Ojibwa ojibwa +# http://id.loc.gov/vocabulary/iso639-2/ori ori Oriya oriya +# http://id.loc.gov/vocabulary/iso639-2/orm orm Oromo galla +# http://id.loc.gov/vocabulary/iso639-2/osa osa Osage osage +# http://id.loc.gov/vocabulary/iso639-2/oss oss Ossetian | Ossetic ossète +# http://id.loc.gov/vocabulary/iso639-2/ota ota Turkish, Ottoman (1500-1928) turc ottoman (1500-1928) +# http://id.loc.gov/vocabulary/iso639-2/oto oto Otomian languages otomi, langues +# http://id.loc.gov/vocabulary/iso639-2/paa paa Papuan languages papoues, langues +# http://id.loc.gov/vocabulary/iso639-2/pag pag Pangasinan pangasinan +# http://id.loc.gov/vocabulary/iso639-2/pal pal Pahlavi pahlavi +# http://id.loc.gov/vocabulary/iso639-2/pam pam Pampanga | Kapampangan pampangan +# http://id.loc.gov/vocabulary/iso639-2/pan pan Panjabi | Punjabi pendjabi +# http://id.loc.gov/vocabulary/iso639-2/pap pap Papiamento papiamento +# http://id.loc.gov/vocabulary/iso639-2/pau pau Palauan palau +# http://id.loc.gov/vocabulary/iso639-2/peo peo Persian, Old (ca.600-400 B.C.) perse, vieux (ca. 600-400 av. J.-C.) +# http://id.loc.gov/vocabulary/iso639-2/per per Persian persan +# http://id.loc.gov/vocabulary/iso639-2/phi phi Philippine languages philippines, langues +# http://id.loc.gov/vocabulary/iso639-2/phn phn Phoenician phénicien +# http://id.loc.gov/vocabulary/iso639-2/pli pli Pali pali +# http://id.loc.gov/vocabulary/iso639-2/pon pon Pohnpeian pohnpei +# http://id.loc.gov/vocabulary/iso639-2/pra pra Prakrit languages prâkrit, langues +# http://id.loc.gov/vocabulary/iso639-2/pro pro Provençal, Old (to 1500) | Occitan, Old (to 1500) provençal ancien (jusqu'à 1500) | occitan ancien (jusqu'à 1500) +# http://id.loc.gov/vocabulary/iso639-2/pus pus Pushto | Pashto pachto +# http://id.loc.gov/vocabulary/iso639-2/qaa-qtz qaa-qtz Reserved for local use réservée à l'usage local +# http://id.loc.gov/vocabulary/iso639-2/que que Quechua quechua +# http://id.loc.gov/vocabulary/iso639-2/raj raj Rajasthani rajasthani +# http://id.loc.gov/vocabulary/iso639-2/rap rap Rapanui rapanui +# http://id.loc.gov/vocabulary/iso639-2/rar rar Rarotongan | Cook Islands Maori rarotonga | maori des îles Cook +# http://id.loc.gov/vocabulary/iso639-2/roa roa Romance languages romanes, langues +# http://id.loc.gov/vocabulary/iso639-2/roh roh Romansh romanche +# http://id.loc.gov/vocabulary/iso639-2/rom rom Romany tsigane +# http://id.loc.gov/vocabulary/iso639-2/ron ron Romanian | Moldavian | Moldovan roumain | moldave +# http://id.loc.gov/vocabulary/iso639-2/rum rum Romanian | Moldavian | Moldovan roumain | moldave +# http://id.loc.gov/vocabulary/iso639-2/run run Rundi rundi +# http://id.loc.gov/vocabulary/iso639-2/rup rup Aromanian | Arumanian | Macedo-Romanian aroumain | macédo-roumain +# http://id.loc.gov/vocabulary/iso639-2/sad sad Sandawe sandawe +# http://id.loc.gov/vocabulary/iso639-2/sag sag Sango sango +# http://id.loc.gov/vocabulary/iso639-2/sah sah Yakut iakoute +# http://id.loc.gov/vocabulary/iso639-2/sai sai South American Indian languages sud-amérindiennes, langues +# http://id.loc.gov/vocabulary/iso639-2/sal sal Salishan languages salishennes, langues +# http://id.loc.gov/vocabulary/iso639-2/sam sam Samaritan Aramaic samaritain +# http://id.loc.gov/vocabulary/iso639-2/san san Sanskrit sanskrit +# http://id.loc.gov/vocabulary/iso639-2/sas sas Sasak sasak +# http://id.loc.gov/vocabulary/iso639-2/sat sat Santali santal +# http://id.loc.gov/vocabulary/iso639-2/scn scn Sicilian sicilien +# http://id.loc.gov/vocabulary/iso639-2/sco sco Scots écossais +# http://id.loc.gov/vocabulary/iso639-2/sel sel Selkup selkoupe +# http://id.loc.gov/vocabulary/iso639-2/sem sem Semitic languages sémitiques, langues +# http://id.loc.gov/vocabulary/iso639-2/sga sga Irish, Old (to 900) irlandais ancien (jusqu'à 900) +# http://id.loc.gov/vocabulary/iso639-2/sgn sgn Sign Languages langues des signes +# http://id.loc.gov/vocabulary/iso639-2/shn shn Shan chan +# http://id.loc.gov/vocabulary/iso639-2/sid sid Sidamo sidamo +# http://id.loc.gov/vocabulary/iso639-2/sin sin Sinhala | Sinhalese singhalais +# http://id.loc.gov/vocabulary/iso639-2/sio sio Siouan languages sioux, langues +# http://id.loc.gov/vocabulary/iso639-2/sit sit Sino-Tibetan languages sino-tibétaines, langues +# http://id.loc.gov/vocabulary/iso639-2/sla sla Slavic languages slaves, langues +# http://id.loc.gov/vocabulary/iso639-2/slk slk Slovak slovaque +# http://id.loc.gov/vocabulary/iso639-2/slo slo Slovak slovaque +# http://id.loc.gov/vocabulary/iso639-2/slv slv Slovenian slovène +# http://id.loc.gov/vocabulary/iso639-2/sma sma Southern Sami sami du Sud +# http://id.loc.gov/vocabulary/iso639-2/sme sme Northern Sami sami du Nord +# http://id.loc.gov/vocabulary/iso639-2/smi smi Sami languages sames, langues +# http://id.loc.gov/vocabulary/iso639-2/smj smj Lule Sami sami de Lule +# http://id.loc.gov/vocabulary/iso639-2/smn smn Inari Sami sami d'Inari +# http://id.loc.gov/vocabulary/iso639-2/smo smo Samoan samoan +# http://id.loc.gov/vocabulary/iso639-2/sms sms Skolt Sami sami skolt +# http://id.loc.gov/vocabulary/iso639-2/sna sna Shona shona +# http://id.loc.gov/vocabulary/iso639-2/snd snd Sindhi sindhi +# http://id.loc.gov/vocabulary/iso639-2/snk snk Soninke soninké +# http://id.loc.gov/vocabulary/iso639-2/sog sog Sogdian sogdien +# http://id.loc.gov/vocabulary/iso639-2/som som Somali somali +# http://id.loc.gov/vocabulary/iso639-2/son son Songhai languages songhai, langues +# http://id.loc.gov/vocabulary/iso639-2/sot sot Sotho, Southern sotho du Sud +# http://id.loc.gov/vocabulary/iso639-2/sqi sqi Albanian albanais +# http://id.loc.gov/vocabulary/iso639-2/srd srd Sardinian sarde +# http://id.loc.gov/vocabulary/iso639-2/srn srn Sranan Tongo sranan tongo +# http://id.loc.gov/vocabulary/iso639-2/srp srp Serbian serbe +# http://id.loc.gov/vocabulary/iso639-2/srr srr Serer sérère +# http://id.loc.gov/vocabulary/iso639-2/ssa ssa Nilo-Saharan languages nilo-sahariennes, langues +# http://id.loc.gov/vocabulary/iso639-2/ssw ssw Swati swati +# http://id.loc.gov/vocabulary/iso639-2/suk suk Sukuma sukuma +# http://id.loc.gov/vocabulary/iso639-2/sun sun Sundanese soundanais +# http://id.loc.gov/vocabulary/iso639-2/sus sus Susu soussou +# http://id.loc.gov/vocabulary/iso639-2/sux sux Sumerian sumérien +# http://id.loc.gov/vocabulary/iso639-2/swa swa Swahili swahili +# http://id.loc.gov/vocabulary/iso639-2/syc syc Classical Syriac syriaque classique +# http://id.loc.gov/vocabulary/iso639-2/syr syr Syriac syriaque +# http://id.loc.gov/vocabulary/iso639-2/tah tah Tahitian tahitien +# http://id.loc.gov/vocabulary/iso639-2/tai tai Tai languages tai, langues +# http://id.loc.gov/vocabulary/iso639-2/tam tam Tamil tamoul +# http://id.loc.gov/vocabulary/iso639-2/tat tat Tatar tatar +# http://id.loc.gov/vocabulary/iso639-2/tel tel Telugu télougou +# http://id.loc.gov/vocabulary/iso639-2/tem tem Timne temne +# http://id.loc.gov/vocabulary/iso639-2/ter ter Tereno tereno +# http://id.loc.gov/vocabulary/iso639-2/tet tet Tetum tetum +# http://id.loc.gov/vocabulary/iso639-2/tgk tgk Tajik tadjik +# http://id.loc.gov/vocabulary/iso639-2/tgl tgl Tagalog tagalog +# http://id.loc.gov/vocabulary/iso639-2/tha tha Thai thaï +# http://id.loc.gov/vocabulary/iso639-2/tib tib Tibetan tibétain +# http://id.loc.gov/vocabulary/iso639-2/tig tig Tigre tigré +# http://id.loc.gov/vocabulary/iso639-2/tir tir Tigrinya tigrigna +# http://id.loc.gov/vocabulary/iso639-2/tiv tiv Tiv tiv +# http://id.loc.gov/vocabulary/iso639-2/tkl tkl Tokelau tokelau +# http://id.loc.gov/vocabulary/iso639-2/tli tli Tlingit tlingit +# http://id.loc.gov/vocabulary/iso639-2/tmh tmh Tamashek tamacheq +# http://id.loc.gov/vocabulary/iso639-2/tog tog Tonga (Nyasa) tonga (Nyasa) +# http://id.loc.gov/vocabulary/iso639-2/ton ton Tonga (Tonga Islands) tongan (Îles Tonga) +# http://id.loc.gov/vocabulary/iso639-2/tpi tpi Tok Pisin tok pisin +# http://id.loc.gov/vocabulary/iso639-2/tsi tsi Tsimshian tsimshian +# http://id.loc.gov/vocabulary/iso639-2/tsn tsn Tswana tswana +# http://id.loc.gov/vocabulary/iso639-2/tso tso Tsonga tsonga +# http://id.loc.gov/vocabulary/iso639-2/tuk tuk Turkmen turkmène +# http://id.loc.gov/vocabulary/iso639-2/tum tum Tumbuka tumbuka +# http://id.loc.gov/vocabulary/iso639-2/tup tup Tupi languages tupi, langues +# http://id.loc.gov/vocabulary/iso639-2/tut tut Altaic languages altaïques, langues +# http://id.loc.gov/vocabulary/iso639-2/tvl tvl Tuvalu tuvalu +# http://id.loc.gov/vocabulary/iso639-2/twi twi Twi twi +# http://id.loc.gov/vocabulary/iso639-2/tyv tyv Tuvinian touva +# http://id.loc.gov/vocabulary/iso639-2/udm udm Udmurt oudmourte +# http://id.loc.gov/vocabulary/iso639-2/uga uga Ugaritic ougaritique +# http://id.loc.gov/vocabulary/iso639-2/uig uig Uighur | Uyghur ouïgour +# http://id.loc.gov/vocabulary/iso639-2/umb umb Umbundu umbundu +# http://id.loc.gov/vocabulary/iso639-2/uzb uzb Uzbek ouszbek +# http://id.loc.gov/vocabulary/iso639-2/vai vai Vai vaï +# http://id.loc.gov/vocabulary/iso639-2/ven ven Venda venda +# http://id.loc.gov/vocabulary/iso639-2/vie vie Vietnamese vietnamien +# http://id.loc.gov/vocabulary/iso639-2/vol vol Volapük volapük +# http://id.loc.gov/vocabulary/iso639-2/vot vot Votic vote +# http://id.loc.gov/vocabulary/iso639-2/wak wak Wakashan languages wakashanes, langues +# http://id.loc.gov/vocabulary/iso639-2/wal wal Wolaitta | Wolaytta wolaitta | wolaytta +# http://id.loc.gov/vocabulary/iso639-2/war war Waray waray +# http://id.loc.gov/vocabulary/iso639-2/was was Washo washo +# http://id.loc.gov/vocabulary/iso639-2/wel wel Welsh gallois +# http://id.loc.gov/vocabulary/iso639-2/wen wen Sorbian languages sorabes, langues +# http://id.loc.gov/vocabulary/iso639-2/wln wln Walloon wallon +# http://id.loc.gov/vocabulary/iso639-2/wol wol Wolof wolof +# http://id.loc.gov/vocabulary/iso639-2/xal xal Kalmyk | Oirat kalmouk | oïrat +# http://id.loc.gov/vocabulary/iso639-2/xho xho Xhosa xhosa +# http://id.loc.gov/vocabulary/iso639-2/yao yao Yao yao +# http://id.loc.gov/vocabulary/iso639-2/yap yap Yapese yapois +# http://id.loc.gov/vocabulary/iso639-2/yid yid Yiddish yiddish +# http://id.loc.gov/vocabulary/iso639-2/yor yor Yoruba yoruba +# http://id.loc.gov/vocabulary/iso639-2/ypk ypk Yupik languages yupik, langues +# http://id.loc.gov/vocabulary/iso639-2/zap zap Zapotec zapotèque +# http://id.loc.gov/vocabulary/iso639-2/zen zen Zenaga zenaga +# http://id.loc.gov/vocabulary/iso639-2/zgh zgh Standard Moroccan Tamazight amazighe standard marocain +# http://id.loc.gov/vocabulary/iso639-2/zha zha Zhuang | Chuang zhuang | chuang +# http://id.loc.gov/vocabulary/iso639-2/znd znd Zande languages zandé, langues +# http://id.loc.gov/vocabulary/iso639-2/zul zul Zulu zoulou +# http://id.loc.gov/vocabulary/iso639-2/zun zun Zuni zuni +# http://id.loc.gov/vocabulary/iso639-2/zza zza Zaza | Dimili | Dimli | Kirdki | Kirmanjki | Zazaki zaza | dimili | dimli | kirdki | kirmanjki | zazaki diff --git a/OntoMetadataShape4TS.ttl b/OntoMetadataShape4TS.ttl new file mode 100644 index 0000000..01e103b --- /dev/null +++ b/OntoMetadataShape4TS.ttl @@ -0,0 +1,2553 @@ +@base . +@prefix adms: . +@prefix bibo: . +@prefix cc: . +@prefix dash: . +@prefix dbo: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix doap: . +@prefix mod: . +@prefix ontometa4ts: . +@prefix owl: . +@prefix pav: . +@prefix prov: . +@prefix premis: . +@prefix rdf: . +@prefix rdfs: . +@prefix schema: . +@prefix sh: . +@prefix shacl: . +@prefix skos: . +@prefix vann: . +@prefix vs: . +@prefix xsd: . + + +ontometa4ts: rdf:type owl:Ontology ; + # owl:imports ; #when last imported (2024-04-05), SHACL was inconsistent + "OntoMeta provides SHACL shapes for ontology metadata. It is intended for use in TIB Terminology Service. You may re-use (please refer back to our repo!) for your own services. Please note that adaptations might be necessary. If you have any remarks or questions get in touch with us at https://github.com/StroemPhi/Ontology-Metadata/issues"@en ; + dcterms:license ; + "2024-05-02T11:42:00"^^xsd:dateTime; + "2025-01-31T00:00:00"^^xsd:dateTime; + ; + "Ontology Metadata Shape by TIB"@en, "TIB Metadatenshape für Ontologien"@de; + , , , , ; + "ontometa"; + ; + ; + "active"@en ; + "Ontology engineers, ontology publishers, terminology service providers, terminology service curators"@en; + dcterms:language ; + , ; + ; + ; + ; + "RDF(S), OWL, SHACL"@en ; + dcterms:bibliographicCitation "Arndt, S., Ganske, A., Hauschke, C., Strömert, P., & Vogt, L. (2024). Terminology Metadata Recommendations by TIB. Zenodo. https://doi.org/10.5281/zenodo.11103070 (latest version)"; + , ; + +. + +# Start of the Ontology Metadata Shape +ontometa4ts:OntologyMetadataShape a sh:NodeShape ; + sh:targetClass owl:Ontology ; + +# MANDATORY METADATA + +## Ontology title +### status: developer and external review needed + sh:property [ + sh:path [sh:alternativePath (rdfs:label skos:prefLabel dc:title dcterms:title schema:name schema:headline) ] ; + sh:severity sh:Warning ; + sh:minCount 1 ; + sh:message """ +

    +The ontology does not include its own title. Please provide it if known. +

    +

    +Recommended property: http://purl.org/dc/terms/title +

    +

    +Example value: Product Supply Network Vocabulary (psn) +

    + """@en ; + sh:name "Ontology title"@en ; + ] ; + + sh:property [ + sh:path [sh:alternativePath (rdfs:label skos:prefLabel dc:title dcterms:title schema:name schema:headline) ] ; + sh:severity sh:Info ; + sh:datatype rdf:langString ; + sh:uniqueLang true ; + sh:message """ +

    +The ontology title should be an rdf:langString, i.e. it should have a language tag. +

    +

    +There may be only one title per language. +

    +

    +Recommended property: http://purl.org/dc/terms/title +

    +

    +Example value: Product Supply Network Vocabulary (psn) +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/title> "Some Ontology"@en .
    +
    +

    +"""@en ; + sh:name "Ontology title - datatype"@en ; + ] ; + +## Preferred ontology prefix/ acronym +### status: developer and external review needed: add check for forbidden characters like - ? + sh:property [ + sh:path [sh:alternativePath ( )]; + sh:severity sh:Warning; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:message """ +

    +The ontology does not declare its preferred prefix. Please provide it if known. +

    +

    +It must not contain hyphens or other special characters and should be written in lowercase. +

    +

    +Recommended property: http://purl.org/vocab/vann/preferredNamespacePrefix +

    +

    +Example value: bfo +

    +"""@en ; + sh:name "Preferred ontology prefix/ acronym"@en ; + ] ; + + sh:property [ + sh:path [sh:alternativePath ( )]; + sh:severity sh:Info ; + sh:datatype xsd:string ; + sh:message """ +

    +The ontology should declare its preferred namespace prefix or acronym as an xsd:string. +

    +

    +Recommended property: http://purl.org/vocab/vann/preferredNamespacePrefix +

    +

    +Example value: bfo +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/vocab/vann/preferredNamespacePrefix> "so"^^xsd:string .
    +
    +

    +"""@en ; + sh:name "Preferred ontology prefix/ acronym - datatype"@en ; + ] ; + +## Ontology license +### status: developer and external review needed +### has been added, since licence is a variant of license and thus the property may easily occur as a common mistake + +#### ORIGINAL SHAPE TO BE DELETED IF THE NEW ONES TURN OUT FINE + +# sh:property [ +# sh:path [sh:alternativePath (dcterms:license schema:license cc:license dbo:license )] ; +# sh:severity sh:Warning ; +# sh:minCount 1; +# sh:maxCount 1; +# # tbd/todo: add further licenses to the list of accepted licenses? +# sh:xone ( +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] + +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] + +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] + +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] + +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] + +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] + +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] + +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] + +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] + +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] +# [sh:hasValue ;] + +# # [sh:hasValue <> ;] +# ); +# sh:message """ +#

    +# The ontology does not declare its own license. Please provide it, if known. +#

    +#

    +# Recommended property: http://purl.org/dc/terms/license +#

    +#

    +# Example value: https://creativecommons.org/licenses/by/4.0/ +#

    +# """@en ; +# sh:name "Ontology license"@en ; +# ] ; + +#### test for too many (n > 2) ontology licenses + + sh:property [ + sh:path [sh:alternativePath (dcterms:license schema:license cc:license dbo:license )] ; + sh:severity sh:Warning ; + sh:maxCount 1; + sh:message """ +

    +The ontology declares too many licenses. Please indicate the correct license, if known. +

    +

    +Recommended property: http://purl.org/dc/terms/license +

    +

    +Example value: https://creativecommons.org/licenses/by/4.0/ +

    +"""@en ; + sh:name "Ontology license - too many values"@en ; + ] ; + +#### test for too few (n < 1) ontology licenses + sh:property [ + sh:path [sh:alternativePath (dcterms:license schema:license cc:license dbo:license )] ; + sh:severity sh:Warning ; + sh:minCount 1; + sh:message """ +

    +The ontology does not declare its own license. Please provide it, if known. +

    +

    +Recommended property: http://purl.org/dc/terms/license +

    +

    +Example value: https://creativecommons.org/licenses/by/4.0/ +

    +"""@en ; + sh:name "Ontology license - too few values"@en ; + ] ; + +#### test for accepted licenses + + sh:property [ + sh:path [sh:alternativePath (dcterms:license schema:license cc:license dbo:license )] ; + sh:severity sh:Warning ; + sh:nodeKind sh:IRI ; # test whether this is well-combined with the sh:xone constraint + # tbd/todo: add further licenses to the list of accepted licenses? + sh:xone ( + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + + # [sh:hasValue <> ;] + ); + sh:message """ +

    +The ontology declares a license which is not accepted at TIB Terminology Service. If you are the maintainer of the ontology, please consider, if the ontology can be provided with an open license. Read more about open licenses at https://opendefinition.org/licenses/. If the ontology license is open, but this test did not recognize it as such, please get in touch with us and it will be added to our list: https://github.com/TIBHannover/terminology-metadata/issues. +

    +

    +Recommended property: http://purl.org/dc/terms/license +

    +

    +Example value: https://creativecommons.org/licenses/by/4.0/ +

    +"""@en ; + sh:name "Ontology license - accpeted licenses and node kind"@en ; + ] ; + +#### test for unaccepted licenses + + sh:property [ + sh:path [sh:alternativePath (dcterms:license schema:license cc:license dbo:license )] ; + sh:severity sh:Warning ; + # tbd/todo: add further licenses to the list of unaccepted licenses? + # tbd/todo: discuss > redundant test? + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + sh:not [sh:hasValue ;] ; + # sh:not [sh:hasValue <> ;] ; + sh:message """ +

    +The ontology license is not accepted at TIB Terminology Service since it is not an open license according to the Open Definition: https://opendefinition.org/licenses/ +

    +

    +The ontology must be provided with an open license in order to be added to TIB Terminology Service. If you are the maintainer of the ontology, please consider if this is possible. +

    +

    +The license must be given as an IRI. +

    +

    +The following licenses are not accepted at TIB Terminology Service: +

    +

    +

      +
    • +https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode +
    • +
    • +https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode +
    • +
    • +https://creativecommons.org/licenses/by-nc-nd/3.0/de/legalcode +
    • +
    • +https://creativecommons.org/licenses/by-nd/4.0/legalcode +
    • +
    • +https://creativecommons.org/licenses/by-nd/3.0/de/legalcode +
    • +
    +

    +

    +Recommended property: http://purl.org/dc/terms/license +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by/4.0/> .
    +

    +"""@en ; + sh:name "Ontology license"@en ; + ] ; + +## Ontology creator(s) +### status: developer and external review needed + sh:property [ + sh:path [sh:alternativePath (dc:creator dcterms:creator schema:creator pav:createdBy prov:wasAttributedTo schema:accountablePerson schema:author)]; + sh:severity sh:Warning ; + sh:minCount 1; + sh:message """ +

    +The ontology does not name its creators. Please provide them if known. +

    +

    +This information is required for licenses that require attribution. +

    +

    +Use ORCID, ROR or comparable identifiers for people and organisations if available: +

    +

    +

      +
    • +https://orcid.org/ +
    • +
    • +https://ror.org/ +
    • +
    +

    +

    +Recommended property: http://purl.org/dc/terms/creator +

    +

    +Example value: https://orcid.org/0000-0002-1584-4316, https://orcid.org/0000-0002-1584-4315 +

    +"""@en ; + sh:name "Ontology creator(s)"@en ; + ] ; + +### discuss: switch to string/ literal following "FirstName LastName (ORCID)" + sh:property [ + sh:path [sh:alternativePath (dc:creator dcterms:creator schema:creator pav:createdBy prov:wasAttributedTo schema:accountablePerson schema:author)]; + sh:severity sh:Info ; + sh:nodeKind sh:IRI; + sh:message """ +

    +The ontology should provide its creators as IRIs, in particular persistent identifiers (PIDs) should be used wherever possible, e.g. ORCiDs for persons and RORs for organisations. +

    +

    +If an ontology is developed by a larger group, it is recommended to give the organization or project identifier as the creator and list individual persons as contributors. +

    +

    +Recommended property: http://purl.org/dc/terms/creator +

    +

    +Example statement 1 (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/creator> <https://orcid.org/0000-0000-0000-0000>.
    +
    +<https://orcid.org/0000-0000-0000-0000> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
    +
    +

    +

    +Plain name strings could be provided in addition (for readability). +

    +

    +Example statement 2 (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/creator> <https://orcid.org/0000-0000-0000-0000>.
    +
    +<https://orcid.org/0000-0000-0000-0000> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> ;
    +    <http://xmlns.com/foaf/0.1/firstName> "Max" ;
    +    <http://xmlns.com/foaf/0.1/lastName> "Muster" .
    +
    + +

    +"""@en ; + sh:name "Ontology creator(s) - datatype"@en ; + ] ; + +## Version information + +### Ontology version IRI +#### status: developer and external review needed + sh:property [ + sh:path owl:versionIRI ; + sh:severity sh:Warning ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:message """ +

    +The ontology does not declare a versionIRI. Please provide it, if known. +

    +

    +Recommended property: http://www.w3.org/2002/07/owl#versionIRI +

    +

    +Example value: https://www.purl.org/SomeOntology/1.0.0 +

    +"""@en ; + sh:name "Ontology version IRI"@en ; + ] ; + + sh:property [ + sh:path owl:versionIRI ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI; + sh:message """ +

    +The ontology should state its versionIRI as an IRI. It should not be given as a string or literal. +

    +

    +Recommended property: http://www.w3.org/2002/07/owl#versionIRI +

    +

    +Example value: https://www.purl.org/SomeOntology/1.0.0 +

    +

    +Example statement 1 (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://www.w3.org/2002/07/owl#versionIRI> <https://www.purl.org/SomeOntology/1.0.0> .
    +
    +

    +

    +Example statement 2 (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://www.w3.org/2002/07/owl#versionIRI> <https://www.purl.org/SomeOntology/2019-12-31> .
    +
    +

    +

    +Example statement 3 (text/turtle): +

    +

    +

    <http://purl.obolibrary.org/obo/pco.owl> <http://www.w3.org/2002/07/owl#versionIRI> <http://purl.obolibrary.org/obo/pco/releases/2021-05-03/pco.owl> .
    +
    +

    +"""@en ; + sh:name "Ontology version IRI - datatype"@en ; + ] ; + +### Ontology creation date +### status: developer and external review needed + sh:property [ + sh:path [sh:alternativePath (dcterms:created schema:dateCreated pav:createdOn prov:generatedAtTime )] ; + sh:severity sh:Warning ; + sh:minCount 1; + sh:maxCount 1 ; + sh:message """ +

    +The ontology does not declare its creation date. Please provide it, if known. +

    +

    +Use the xsd:date or xsd:dateTime format to do so (e.g. 2024-12-12 or 2024-12-12T11:18:44). +

    +

    +Recommended property: http://purl.org/dc/terms/created +

    +

    +Example value: 2024-12-12T11:18:44 +

    +"""@en ; + sh:name "Ontology creation date"@en ; + ] ; + + sh:property [ + sh:path [sh:alternativePath (dcterms:created schema:dateCreated pav:createdOn prov:generatedAtTime )] ; + sh:severity sh:Info ; + sh:xone ( [sh:datatype xsd:dateTime ;] [sh:datatype xsd:date ;] ); + sh:message """ +

    +The ontology should provide its creation date in xsd:date or xsd:dateTime format. +

    +

    +Recommended property: http://purl.org/dc/terms/created +

    +

    +Example value: 2024-12-12T11:18:44 +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/created> "2020-11-19T00:00:00"^^xsd:dateTime .
    +
    +

    +"""@en ; + sh:name "Ontology creation date - datatype"@en ; + ] ; + +## Ontology abstract +### status: developer and external review needed + + sh:property [ + sh:path [sh:alternativePath (dcterms:abstract )] ; + sh:severity sh:Warning ; + sh:minCount 1 ; + sh:message """ +

    +The ontology does not contain an abstract. Please provide it, if knwon. +

    +

    +The ontology abstract should not be longer than 500 characters. +

    +

    +Recommended property: http://purl.org/dc/terms/abstract +

    +

    +Example value: The ONTOLOGY NAME defines a range of classes and properties which can be applied to fulfill a SPECIFIED TASK in a particular domain. +

    +"""@en ; + sh:name "Ontology abstract"@en ; + ] ; + + sh:property [ + sh:path [sh:alternativePath (dcterms:abstract )] ; + sh:severity sh:Info ; + sh:nodeKind sh:Literal ; + sh:datatype rdf:langString ; + sh:message """ +

    +The ontology should provide its abstract as an rdf:langString. +

    +

    +Recommended property: http://purl.org/dc/terms/abstract +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/abstract> 
    +    "SomeOntology defines a range of classes and properties which can be applied to fulfill a SPECIFIED TASK in a particular domain."@en , 
    +    "SomeOntology definiert eine Reihe von Klassen und Properties, die in einer bestimmten Domäne verwendet werden können, um etwas damit zu tun."@de .
    +
    + +

    +"""@en ; + sh:name "Ontology abstract - language"@en ; + ] ; + + sh:property [ + sh:path [sh:alternativePath (dcterms:abstract )] ; + sh:severity sh:Info ; + sh:uniqueLang true ; + sh:message """ +

    +The ontology should provide only one ontology abstract per language. +

    +"""@en ; + sh:name "Ontology abstract - unique language"@en ; + ] ; + + sh:property [ + sh:path [sh:alternativePath (dcterms:abstract )] ; + sh:severity sh:Info ; + sh:maxLength 500 ; + sh:message """ +

    +The ontology should limit its abstract size to 500 characters maximum. +

    +

    +The TIB Terminology Service requires short ontology descriptions for a user-friendly ontology list. +

    +

    +To provide more information about the ontology +

    +

    +

      +
    • +add an additional description using the property http://purl.org/dc/terms/description +
    • +
    • +or add a reference to a related article using the property http://purl.org/dc/terms/isReferencedBy +
    • +
    +

    +"""@en ; + sh:name "Ontology abstract - length"@en ; + ] ; + +## Ontology issue tracker +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Warning ; + sh:nodeKind sh:IRI ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:message """ +

    +The ontology does not contain the link to its issue tracker. Please provide it if available and known. +

    +

    +Recommended property: http://usefulinc.com/ns/doap#bug-database +

    +

    +Example value: https://github.com/tibonto/DFG-Fachsystematik-Ontology/issues +

    +"""@en ; + sh:name "Ontology issue tracker"@en ; + ] ; + +## Ontology documentation +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Warning ; + sh:nodeKind sh:IRI ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:message """ +

    +The ontology does not contain the link to its documentation. Please provide it, if known. +

    +

    +Recommended property: http://www.loc.gov/premis/rdf/v3/documentation +

    +

    +Example value: https://international-data-spaces-association.github.io/InformationModel/docs/index.html# +

    +"""@en ; + sh:name "Ontology documentation"@en ; + ] ; + +# RECOMMENDED METADATA + +## Ontology contributor(s) +### status: developer and external review needed + sh:property [ + sh:path [sh:alternativePath (dcterms:contributor dc:contributor schema:contributor pav:contributedBy)] ; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:message """ +

    +The ontology should list all its contributors. +

    +

    +Contributors should be referenced via PIDs, e.g. ORCiDs for persons and RORs for organisations. +

    +

    +If an ontology is developed by a larger group, it is recommended to give the organization or project identifier as the creator and list individual persons as contributors. +

    +

    +Recommended property: http://purl.org/dc/terms/contributor +

    +

    +Example statement 1 (text/turtle): +

    +

    +

    <https:///www.purl.org/SomeOntology> <http://purl.org/dc/terms/contributor> <https://orcid.org/0000-0000-0000-0000> .
    +
    +<https://orcid.org/0000-0000-0000-0000> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
    +
    +

    +

    +Plain name strings can be provided in addition (for readability). +

    +

    +Example statement 2 (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/contributor> <https://orcid.org/0000-0000-0000-0000>.
    +
    +<https://orcid.org/0000-0000-0000-0000> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> ;
    +    <http://xmlns.com/foaf/0.1/firstName> "Max" ;
    +    <http://xmlns.com/foaf/0.1/lastName> "Muster" .
    +
    +

    +"""@en ; + sh:name "Ontology contributor(s)"@en ; + ] ; + + sh:property [ + sh:path [sh:alternativePath (dcterms:contributor dc:contributor schema:contributor pav:contributedBy)] ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should provide its contributors as IRIs, in particular as persistent identifiers (PIDs) wherever possible, e.g. ORCiDs for persons and RORs for organisations. +

    +

    +If an ontology is developed by a larger group, it is recommended to give the organization or project identifier as the creator and list individual persons as contributors. +

    +

    +Recommended property: http://purl.org/dc/terms/contributor +

    +

    +Example statement 1 (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/contributor> <https://orcid.org/0000-0000-0000-0000>.
    +
    +<https://orcid.org/0000-0000-0000-0000> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
    +
    +

    +

    +Plain name strings could be provided in addition (for readability). +

    +

    +Example statement 2 (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/contributor> <https://orcid.org/0000-0000-0000-0000> .
    +
    +<https://orcid.org/0000-0000-0000-0000> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> ; 
    +    <http://xmlns.com/foaf/0.1/firstName> "Max" ;
    +    <http://xmlns.com/foaf/0.1/lastName> "Muster" .
    +
    +

    +"""@en ; + sh:name "Ontology contributor(s) - datatype"@en ; + ] ; + +## Ontology funder +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:message """ +

    +If applicable, the ontology should reference any institutions funding the work on the ontology. +

    +

    +The funding institution(s) should be referenced by PIDs, e.g. +

    +

    +

      +
    • +RORs: https://ror.org/ +
    • +
    • +or Crossref Funder Registry IDs: https://www.crossref.org/services/funder-registry/ +
    • +
    +

    +

    +Recommended property: https://schema.org/funder +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://schema.org/funder> <https://ror.org/018mejw64> .
    +
    +

    +"""@en ; + sh:name "Ontology funder"@en ; + ] ; + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should reference any institutions funding its development via IRI. +

    +

    +The funding institution(s) should be referenced by PIDs, e.g. +

    +

    +

      +
    • +RORs: https://ror.org/ +
    • +
    • +or Crossref Funder Registry IDs: https://www.crossref.org/services/funder-registry/ +
    • +
    +

    +

    +Recommended property: https://schema.org/funder +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://schema.org/funder> <https://ror.org/018mejw64> .
    +
    +

    +"""@en ; + sh:name "Ontology funder"@en ; + ] ; + +## Ontology funding +### status: developer and external review needed +### Funding: the link is not useful, because CrossRef does not offer a searchable database. + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:message """ +

    +If applicable, the ontology should reference the grant which funds its development. +

    +

    +The grant should be referenced by PID, e.g. Crossref Grant ID: https://www.crossref.org/documentation/research-nexus/grants/ +

    +

    +Recommended property: https://schema.org/funding +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://schema.org/funding> <https://doi.org/00.00000/000000000> .
    +
    +

    +"""@en ; + sh:name "Ontology funding (grant)"@en ; + ] ; + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should reference any grants funding its development via IRI. +

    +

    +The funding grant should be referenced by PID, e.g. Crossref Grant IDs: https://www.crossref.org/documentation/research-nexus/grants/ +

    +

    +Recommended property: https://schema.org/funding +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://schema.org/funding> <https://doi.org/00.00000/000000000> .
    +
    +

    +"""@en ; + sh:name "Ontology funding (grant)"@en ; + ] ; + + +## Ontology audience description +### status: developer and external review needed + sh:property [ + sh:path [sh:alternativePath (doap:audience schema:audience dcterms:audience)] ; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:message """ +

    +The ontology should describe its intended audience. +

    +

    +The audience description should be a short, language-tagged text. +

    +

    +Recommended property: http://usefulinc.com/ns/doap#audience +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://usefulinc.com/ns/doap#audience> "This ontology is intended for researchers in derivational morphology, a branch of linguistics."@en .
    +
    +

    +"""@en ; + skos:editorialNote "see also open comment at G-Doc: https://docs.google.com/document/d/1FRmCQ7eD6PcqSQgPbqCGjki3t39ROoYozsehCPX9E0Q/edit?disco=AAAAwke7GNs" ; + sh:name "Ontology audience description"@en ; + ] ; + + sh:property [ + sh:path [sh:alternativePath (doap:audience schema:audience dcterms:audience)] ; + sh:severity sh:Info ; + sh:datatype rdf:langString ; + sh:message """ +

    +The ontology should provide its audience description as an rdf:langString. +

    +

    +Recommended property: http://usefulinc.com/ns/doap#audience +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://usefulinc.com/ns/doap#audience> "This ontology is intended for researchers in derivational morphology, a branch of linguistics."@en .
    +
    +

    +"""@en ; + sh:name "Ontology audience description - language"@en ; + ] ; + + +## Ontology subject(s) +### status: developer and external review needed + sh:property [ + sh:path dcterms:subject ; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:message """ +

    +The ontology should provide ontology subjects with IRIs from controlled vocabularies or ontologies. Subjects should not be given as free text. +

    +

    +You can search for fitting terms on TIB Terminology Service: https://terminology.tib.eu +

    +

    +Recommended property: http://purl.org/dc/terms/subject +

    +

    +Example statement (text/turtle): +

    +
    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/subject> <https://d-nb.info/gnd/4067537-3>,
    +    <https://d-nb.info/gnd/4070177-3>,
    +    <http://uri.gbv.de/terminology/bk/42.15>,
    +    <https://github.com/tibonto/dfgfo/201-03> .
    +
    +"""@en ; + sh:name "Ontology subject(s)"@en ; + ] ; + + sh:property [ + sh:path dcterms:subject ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should provide ontology subjects with IRIs from controlled vocabularies or ontologies. Subjects should not be given as free text. +

    +

    +You can search for fitting terms on TIB Terminology Service: https://terminology.tib.eu +

    +

    +Recommended property: http://purl.org/dc/terms/subject +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/subject> <https://d-nb.info/gnd/4067537-3>,
    +    <https://d-nb.info/gnd/4070177-3>,
    +    <http://uri.gbv.de/terminology/bk/42.15>,
    +    <https://github.com/tibonto/dfgfo/201-03>.
    +
    +

    +"""@en ; + sh:name "Ontology subject(s) - datatype"@en ; + ] ; + + +## Ontology annotation language(s) +### status: developer and external review needed + sh:property [ + sh:path [sh:alternativePath (dcterms:language ) ]; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:message """ +

    +The ontology should provide information about the ontology annotation language(s) (e.g. for term labels, term definitions, etc.). +

    +

    +It should only claim that the ontology uses an annotation language, if all ontology elements or an extensive part of the ontology is annotated in that language. +

    +

    +Recommended controlled vocabulary: http://id.loc.gov/vocabulary/iso639-2 +

    +

    +Recommended property: https://schema.org/inLanguage +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://schema.org/inLanguage> <http://id.loc.gov/vocabulary/iso639-2/eng>,
    +    <http://id.loc.gov/vocabulary/iso639-2/tgl> .
    +
    +

    +"""@en ; + sh:name "Ontology annotation language(s)"@en ; + ] ; + + sh:property [ + sh:path [sh:alternativePath (dcterms:language ) ]; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should specify the ontology annotation language(s) via IRIs. +

    +

    +Recommended controlled vocabulary: http://id.loc.gov/vocabulary/iso639-2 +

    +

    +Recommended property: https://schema.org/inLanguage +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://schema.org/inLanguage> <http://id.loc.gov/vocabulary/iso639-2/eng>, 
    +    <http://id.loc.gov/vocabulary/iso639-2/tgl> .
    +
    +

    +"""@en ; + sh:name "Ontology annotation language(s) - datatype"@en ; + ] ; + + sh:property [ + sh:path [sh:alternativePath (dcterms:language ) ]; + sh:severity sh:Info ; + sh:pattern "(^http://id.loc.gov/vocabulary/iso639-2/[a-z]{3}$|^https://id.loc.gov/vocabulary/iso639-2/[a-z]{3}$)" ; + sh:message """ +

    +The ontology should provide ontology annotation language values that match the pattern for language identifiers from 'ISO 639-2: Codes for the Representation of Names of Languages - Part 2: Alpha-3 Code for the Names of Languages': https://id.loc.gov/vocabulary/iso639-2.html +

    +

    +Example identifier: http://id.loc.gov/vocabulary/iso639-2/tgl +

    +

    +Recommended property: https://schema.org/inLanguage +

    +"""@en ; + sh:name "Ontology annotation language(s) - pattern"@en ; + ] ; + + +## Applied logical framework +### status: developer and external review needed +#### external comment Giacomo: Logical framework: the user needs a reference to a half-way authoritative list of frameworks (OWL? SKOS? RDF? OBO?) showing how they separate (wie sie sich voneinander abgrenzen) + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:message """ +

    +The ontology should state which logical framework it applies. +

    +

    +The information can be given as a text, referring to the Semantic Web Standard (e.g. 'OWL 2') and possibly the OWL profile (e.g. 'OWL 2 EL profile'). +

    +

    +Recommended property: https://w3id.org/mod#hasFormalityLevel +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://w3id.org/mod#hasFormalityLevel> "OWL version 2, EL profile"@en .
    +
    +

    +"""@en ; + sh:name "Applied logical framework description"@en ; + ] ; + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:datatype rdf:langString ; + sh:message """ +

    +The ontology should provide the description its logical framework as an rdf:langString. +

    +

    +Recommended property: https://w3id.org/mod#hasFormalityLevel +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://w3id.org/mod#hasFormalityLevel> "OWL version 2, EL profile"@en .
    +
    +

    +"""@en ; + sh:name "Applied logical framework description - language"@en ; + ] ; + + +## Ontology serialization/ file format +### status: developer and external review needed + sh:property [ + sh:path [sh:alternativePath ( ) ]; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:message """ +

    +The ontology should state its serialization/ file format. +

    +

    +The value should be provided as an IRI. +

    +

    +We recommend to provide the information about the media type/ file format of your ontology as one of the values from +

      +
    • +the Media Types list of the Internet Assigned Number Authority (IANA): https://www.iana.org/assignments/media-types/media-types.xhtml +
    • +
    • +or from the W3C resource Unique URIs for File Formats: https://www.w3.org/ns/formats/ +
    • +
    +

    +

    +In order to publish your ontology on the TIB Terminology Service, you must provide the ontology in one of the following formats: +

    +

    +

      +
    • +https://www.iana.org/assignments/media-types/application/rdf+xml +
    • +
    • +http://www.w3.org/ns/formats/RDF_XML +
    • +
    • +https://www.iana.org/assignments/media-types/text/turtle +
    • +
    • +http://www.w3.org/ns/formats/Turtle +
    • +
    • +OBO format: http://purl.obolibrary.org/obo/oboformat/spec.html +
    • +
    +

    +

    +Currently, there is no registered media type for obo format. +

    +

    +Recommended property: https://w3id.org/mod#hasSyntax +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://w3id.org/mod#hasSyntax> <http://www.w3.org/ns/formats/RDF_XML> .
    +
    +

    +"""@en ; + sh:name "Ontology serialization/ file format"@en ; + ] ; + + sh:property [ + sh:path [sh:alternativePath ( ) ]; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should state its serialization/ file format. +

    +

    +The value should be provided as an IRI. +

    +

    +We recommend to provide the information about the media type/ file format of your ontology as one of the values from +

      +
    • +the Media Types list of the Internet Assigned Number Authority (IANA): https://www.iana.org/assignments/media-types/media-types.xhtml +
    • +
    • +or from the W3C resource Unique URIs for File Formats: https://www.w3.org/ns/formats/ +
    • +
    +

    +

    +In order to publish your ontology on the TIB Terminology Service, you must provide the ontology in one of the following formats: +

    +

    +

      +
    • +https://www.iana.org/assignments/media-types/application/rdf+xml +
    • +
    • +http://www.w3.org/ns/formats/RDF_XML +
    • +
    • +https://www.iana.org/assignments/media-types/text/turtle +
    • +
    • +http://www.w3.org/ns/formats/Turtle +
    • +
    • +OBO format: http://purl.obolibrary.org/obo/oboformat/spec.html +
    • +
    +

    +

    +Currently, there is no registered media type for obo format. +

    +

    +Recommended property: https://w3id.org/mod#hasSyntax +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://w3id.org/mod#hasSyntax> <http://www.w3.org/ns/formats/RDF_XML> .
    +
    +

    +"""@en ; + sh:name "Ontology serialization/ file format - datatype"@en ; + ] ; + + sh:property [ + sh:path [sh:alternativePath ( ) ]; + sh:severity sh:Info ; + sh:maxCount 1; + sh:xone ( + # tbd: not all are relevant or digestable by the TS + # for the TS rdf+xml, turtle and obo are confirmed + # no expected value for obo ontologies > Ontorowser mentions application/obo and text/obo, but these are specific to the service, not officially acknowledged: https://github.com/Novartis/ontobrowser/blob/master/doc/web_services.md + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + [sh:hasValue ;] + # [sh:hasValue ;] + [sh:hasValue ;] + [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + # [sh:hasValue ;] + ); + sh:message """ +

    +The ontology should state its serialization/ file format. +

    +

    +The value should be provided as an IRI. +

    +

    +We recommend to provide the information about the media type/ file format of your ontology as one of the values from +

      +
    • +the Media Types list of the Internet Assigned Number Authority (IANA): https://www.iana.org/assignments/media-types/media-types.xhtml +
    • +
    • +or from the W3C resource Unique URIs for File Formats: https://www.w3.org/ns/formats/ +
    • +
    +

    +

    +In order to publish your ontology on the TIB Terminology Service, you must provide the ontology in one of the following formats: +

    +

    +

      +
    • +https://www.iana.org/assignments/media-types/application/rdf+xml +
    • +
    • +http://www.w3.org/ns/formats/RDF_XML +
    • +
    • +https://www.iana.org/assignments/media-types/text/turtle +
    • +
    • +http://www.w3.org/ns/formats/Turtle +
    • +
    • +OBO format: http://purl.obolibrary.org/obo/oboformat/spec.html +
    • +
    +

    +

    +Currently, there is no registered media type for obo format. +

    +

    +Recommended property: https://w3id.org/mod#hasSyntax +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://w3id.org/mod#hasSyntax> <http://www.w3.org/ns/formats/RDF_XML> .
    +
    +

    +"""@en ; + sh:name "Ontology serialization/ file format - controlled vocabulary value"@en ; + ] ; + +## Ontology status +### status: developer and external review needed +### for later: dedicated ontology_status property missing - suggest to OBO? if available: use instead of bibo:status + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:datatype rdf:langString ; + sh:message """ +

    +The ontology should declare its current maintenance status. +

    +

    +You could use an English label to do so. We recommend using one of 'active', 'inactive', 'orphaned' or 'obsolete' as recommended by https://obofoundry.org/docs/OntologyStatus.html +

    +

    +The value you use should be language-tagged. +

    +

    +Recommended property: http://purl.org/ontology/bibo/status +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/ontology/bibo/status> "inactive"@en .
    +
    +

    +"""@en ; + sh:name "Ontology status"@en ; + ] ; + +## Ontology code repository +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:minCount 1; + sh:maxCount 1; + sh:message """ +

    +The ontology should provide the link to its code repository. +

    +

    +The ontology should be on a code repository and the ontology should contain the repository's IRI. +

    +

    +Recommended property: http://usefulinc.com/ns/doap#repository +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://usefulinc.com/ns/doap#repository> <https://github.com/SomeOrganisation/SomeOntology> .
    +
    +

    +"""@en ; + sh:name "Ontology code repository"@en ; + ] ; + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI; + sh:message """ +

    +The ontology should provide the link to its code repository as an IRI. +

    +

    +Recommended property: http://usefulinc.com/ns/doap#repository +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://usefulinc.com/ns/doap#repository> <https://github.com/SomeOrganisation/SomeOntology> .
    +
    +

    +"""@en ; + sh:name "Ontology code repository - datatype"@en ; + ] ; + +## Ontology distributions/ products +### status: developer and external review needed + sh:property [ + sh:path [ sh:alternativePath ( schema:distribution dcterms:hasFormat)]; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should provide IRIs to its available alternative serializations or distributions. +

    +

    +Recommended property: http://www.w3.org/ns/dcat#distribution +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://www.w3.org/ns/dcat#distribution> <https://www.purl.org/SomeOntology.owl>,
    +    <https://www.purl.org/SomeOntology.json>, 
    +    <https://www.purl.org/SomeOntology.ttl> .
    +
    +

    +"""@en ; + sh:name "Ontology distributions/ products"@en ; + ] ; + +## Application example +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should provide a link to an example demonstrating its application. +

    +

    +Ideally, the ontology provides a PID to e.g. a publication describing applications of the ontology, or directly to an application or online service that uses the ontology. +

    +

    +Recommended property: http://purl.org/vocab/vann/example +

    +

    +Example statement (text/turtle): +

    +

    +

    <http://www.w3.org/ns/dcat> <http://purl.org/vocab/vann/example> <https://www.w3.org/TR/vocab-dcat-2/#collection-of-examples> .
    +
    +

    +"""@en ; + sh:name "Application example"@en ; + ] ; + +## Related resource(s) +### status: developer and external review needed + sh:property [ + sh:path dcterms:references ; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should provide references to its related resources via IRI. +

    +

    +Related recources could for example be publications introducing, discussing, evaluating or describing the ontology, recources containing alignments of your ontology to other ontologies, or any other resources that you would like to reference in your ontology. +

    +

    +The reference should be provided via PID, for example a DOI, if available. +

    +

    +Recommended property: http://purl.org/dc/terms/references +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/references> <http://doi.org/10.00000/some0.ontolo> .
    +
    +

    +"""@en ; + sh:name "Related resource(s)"@en ; + ] ; + + +## Citation suggestion +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:message """ +

    +The ontology should provide information about how it should be cited. +

    +

    +The information should be provided as an rdf:langString. +

    +

    +Recommended property: http://purl.org/dc/terms/bibliographicCitation +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/bibliographicCitation> "Last name, first name; last name, first name et al. (YYYY): Title. URL: https://w3id.org/SomeOntology/1.1.6"@en .
    +
    +

    +"""@en ; + sh:name "Citation suggestion"@en ; + ] ; + +## Ontology sources (derived from) +### status: developer and external review needed + sh:property [ + sh:path [sh:alternativePath ( )] ; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should specify whether and from which other ontologies it has been derived. +

    +

    +The reference should be made by an owl:versionIRI of the ontology from which the current ontology has been derived. +

    +

    +Recommended property: http://purl.org/pav/derivedFrom +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/pav/derivedFrom> <https://www.purl.org/SomeOtherOntology/3.1.2> .
    +
    +

    +"""@en ; + sh:name "Ontology sources (derived from)"@en ; + ]; + +## Ontology root classes +### status: developer and external review needed + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should explicitly declare its root classes. +

    +

    +This information can be used for tree-like visualizations of the class hierarchy in technical services, e.g. TIB Terminology Service. +

    +

    +The respective classes (if any) need to be provided via their identifier. +

    +

    +This information should best be provided or defined by the ontology maintainers or engineers. If you are not the maintainer or engineer, you should leave this empty. +

    +

    +Recommended property: http://purl.obolibrary.org/obo/IAO_0000700 +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.obolibrary.org/obo/IAO_0000700> <https://www.purl.org/SomeOntology/12345654544545> .
    +
    + +

    +"""@en ; + sh:name "Ontology root classes"@en ; + ] ; + +# OPTIONAL METADATA +### status: developer and external review needed + +## Ontology description +### status: developer and external review needed + + sh:property [ + sh:path [sh:alternativePath (dc:description dcterms:description schema:description)]; + sh:severity sh:Info ; + sh:nodeKind sh:Literal; + sh:datatype rdf:langString ; + sh:message """ +

    +The ontology should provide its description as an rdf:langString. +

    +

    +Recommended property: https://schema.org/description +

    +

    +Example statetement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://schema.org/description> "Free text describing the ontology and how it came to be. Basically everything you might want to add and which does not fit into the abstract."@en .
    +
    +

    +

    +

    +"""@en ; + sh:name "Ontology description - language"@en ; + ] ; + + sh:property [ + sh:path [sh:alternativePath (dc:description dcterms:description schema:description)] ; + sh:severity sh:Info ; + sh:uniqueLang true ; + sh:message """ +

    +The ontology should only provide one ontology description per language. +

    +

    +Recommended property: https://schema.org/description +

    +

    +Example statements (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://schema.org/description>
    +    "Free text describing the ontology and how it came to be. Basically everything you might want to add and which does not fit into the abstract."@en,
    +    "Freitext, der die Ontologie und ihre Genese beschreibt. Hier können umfangreiche Hintergrundinformationen zur Ontologie gegeben werden, die über ein kurzes Abstract hinausgehen."@de .
    +
    +

    +"""@en ; + sh:name "Ontology description - unique language"@en ; + ] ; + + +## Alternative ontology title +### status: developer and external review needed + + sh:property [ + sh:path [sh:alternativePath ( )]; + sh:severity sh:Info ; + sh:datatype rdf:langString ; + sh:message """ +

    +The ontology should provide its alternative title(s) as an rdf:langString. +

    +

    +Recommended property: http://purl.org/dc/terms/alternative +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/alternative> "My Ontology"@en .
    +
    +

    +"""@en; + sh:name "Alternative ontology title - language"@en; + ] ; + +## Alternative ontology prefix/ acronym +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:datatype xsd:string ; + sh:message """ +

    +The ontology should provide its alternative prefix as an xsd:string. +

    +

    +Recommended property: http://identifiers.org/idot/alternatePrefix +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://identifiers.org/idot/alternatePrefix> "mo"^^xsd:string .
    +
    +

    +"""@en ; + sh:name "Alternative ontology prefix/ acronym - datatype"@en ; + ] ; + +## Related version/ version history +### status: see below + +### Prior ontology version +### status: developer and external review needed + + sh:property [ + sh:path [sh:alternativePath ( )] ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should provide its prior version as an IRI. +

    +

    +Ideally, a resolving ontology versionIRI should be used. +

    +

    +Recommended property: http://www.w3.org/2002/07/owl#priorVersion +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://www.w3.org/2002/07/owl#priorVersion> <https://www.purl.org/SomeOntology/1.1.6> .
    +
    +

    +"""@en ; + sh:name "Prior ontology version"@en ; + ] ; + +### Related ontology version +### status: developer and external review needed + + sh:property [ + sh:path [sh:alternativePath ( )] ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should provide its related version as an IRI. +

    +

    +Ideally, a resolving ontology versionIRI should be used. +

    +

    +Recommended property: http://purl.org/dc/terms/hasVersion +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology/1.1.6> <http://purl.org/dc/terms/hasVersion> <https://www.purl.org/SomeOntology> .
    +
    +

    +"""@en ; + sh:name "Related ontology version"@en ; + ] ; + +### Compatible ontology version +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should provide compatible versions of itself as IRIs. +

    +

    +Ideally, a resolving ontology versionIRI should be used. +

    +

    +Recommended property: http://www.w3.org/2002/07/owl#backwardCompatibleWith +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology/1.1.7> <http://www.w3.org/2002/07/owl#backwardCompatibleWith> <https://www.purl.org/SomeOntology/1.1.6> .
    +
    +

    +"""@en ; + sh:name "Compatible ontology version"@en ; + ] ; + +### Incompatible ontology version +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should provide incompatible versions of itself as IRIs. +

    +

    +Ideally, a resolving ontology versionIRI should be used. +

    +

    +Recommended property: http://www.w3.org/2002/07/owl#incompatibleWith +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology/1.1.7> <http://www.w3.org/2002/07/owl#incompatibleWith> <https://www.purl.org/SomeOntology/1.1.6> .
    +
    +

    +"""@en ; + sh:name "Incompatible ontology version"@en ; + ] ; + + +## Social media +### status: intentionally no shape + +## KOS type +### status: developer and external review needed + + sh:property [ + sh:path dcterms:type ; + sh:severity sh:Info ; + sh:maxCount 1 ; + sh:message """ +

    +The ontology should declare at most one KOS type for itself. +

    +

    +Use an identifier from the NKOS type vocabulary: https://nkos.dublincore.org/nkostype/nkostype.rdf +

    +

    +Recommended property: http://purl.org/dc/terms/type +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology/1.1.7> <http://purl.org/dc/terms/type> <http://w3id.org/nkos/nkostype#ontology> .
    +
    +

    +"""@en ; + sh:name "KOS type"@en ; + ] ; + + sh:property [ + sh:path dcterms:type ; + sh:severity sh:Info ; + sh:xone ( + [sh:hasValue ] + [sh:hasValue ] + [sh:hasValue ] + [sh:hasValue ] + [sh:hasValue ] + [sh:hasValue ] + [sh:hasValue ] + [sh:hasValue ] + [sh:hasValue ] + [sh:hasValue ] + [sh:hasValue ] + [sh:hasValue ] + [sh:hasValue ] + [sh:hasValue ] + [sh:hasValue ] + [sh:hasValue ] + ) ; + sh:message """ +

    +The KOS type identifier should be provided as an IRI. +

    +

    +The IRI should be one of the KOS types defined by the NKOS type vocabulary: https://nkos.dublincore.org/nkostype/nkostype.rdf +

    +

    +Recommended property: http://purl.org/dc/terms/type +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology/1.1.7> <http://purl.org/dc/terms/type> <http://w3id.org/nkos/nkostype#ontology> .
    +
    +

    +"""@en ; + sh:name "KOS type"@en ; + ] ; + +## Example ontology identifier +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should declare any example identifiers for the ontology as an IRI. +

    +

    +Recommended property: http://identifiers.org/idot/exampleIdentifier +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://identifiers.org/idot/exampleIdentifier> <https://www.purl.org/SomeOntology/1234-XY> .
    +
    +

    +"""@en ; + sh:name "Example ontology identifier"@en ; + ] ; + +## Ontology identifier pattern +### status: developer and external review needed + + sh:property [ + sh:path [sh:alternativePath ( )] ; + sh:severity sh:Info ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:message """ +

    +The ontology should provide its identifier pattern as an xsd:string. +

    +

    +Recommended property: http://identifiers.org/idot/identifierPattern +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://identifiers.org/idot/identifierPattern> "^\\d{4}-[A-Z]{2}$"^^xsd:string .
    +
    +

    +"""@en ; + sh:name "Ontology identifier pattern"@en ; + ] ; + + +## Ontology homepage +### status: developer and external review needed + + sh:property [ + sh:path [sh:alternativePath ( )] ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + sh:message """ +

    +The ontology should provide its homepage as an IRI. +

    +

    +Recommended property: http://xmlns.com/foaf/0.1/homepage +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://xmlns.com/foaf/0.1/homepage> <https://www.example.com/SomeOntologyInfo> .
    +
    +

    +"""@en ; + sh:name "Ontology homepage"@en ; + ] ; + +## Ontology publisher +### status: developer and external review needed + + sh:property [ + sh:path [sh:alternativePath ( )] ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:xone ( + # pattern sources: Wikidata entries of the identifier types + [sh:pattern "https://ror.org/([a-z0-9]{9})" ; ] + [sh:pattern "https://isni.org/isni/[0]{4}[0-9]{4}[0-9]{4}[0-9]{3}[0-9X]" ;] + [sh:pattern "https://d-nb.info/gnd/(|(1[012]?[0-9]{7}[0-9X]|[47][0-9]{6}-[0-9]|[1-9][0-9]{0,7}-[0-9X]|3[0-9]{7}[0-9X]))$" ;] + ) ; + sh:message """ +

    +The ontology should specify its publisher via ROR, ISNI or GND identifier. +

    +

    +The value you provide should be given as an IRI and match the identifier patterns. +

    +

    +If you use valid ROR, ISNI or GND identifiers, this should be the case. +

    +

    +Recommended property: http://purl.org/dc/terms/publisher +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology>   <http://purl.org/dc/terms/publisher> dcterms:publisher <https://isni.org/isni/0000000121746694> .
    +
    +

    +"""@en ; + sh:name "Ontology publisher"@en ; + ] ; + +## Ontology comments +### status: developer and external review needed + + sh:property [ + sh:path rdfs:comment ; + sh:severity sh:Info ; + sh:datatype rdf:langString ; + sh:message """ +

    +Any comments about the ontology should be given as rdf:langStrings. +

    +

    +Recommended property: http://www.w3.org/2000/01/rdf-schema#comment +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://www.w3.org/2000/01/rdf-schema#comment> "SomeOntology does not actually exist."@en .
    +
    +

    +"""@en ; + sh:name "Ontology comments"@en ; + ] ; + + +## Example ontology class +### status: developer and external review needed + + sh:property [ + sh:path [sh:alternativePath ( )] ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should provide its example classes as IRIs. +

    +

    +Recommended property: http://rdfs.org/ns/void#exampleResource +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://rdfs.org/ns/void#exampleResource> <https://www.purl.org/SomeClass> .
    +
    +

    +"""@en ; + sh:name "Example ontology class - data type"@en ; + ] ; + + +## Ontology mailing list +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + sh:message """ +

    +The ontology should provide its mailing list as an IRI. +

    +

    +Recommended property: http://usefulinc.com/ns/doap#mailing-list +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://usefulinc.com/ns/doap#mailing-list> <someontology@list.de> .
    +
    +

    +"""@en ; + sh:name "Ontology mailing list"@en ; + ]; + +## Ontology logo/ depiction/ related visualizations +### status: developer and external review needed +### needs to be split for forms and validation? > logo should be its own datum, depictions and visualizations can go together + + sh:property [ + sh:path [sh:alternativePath ( )] ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should provide links to related depictions as IRIs. +

    +

    +Recommended property: http://xmlns.com/foaf/0.1/logo +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://xmlns.com/foaf/0.1/logo> <https://www.example.com/MyOntoLogo.jpg> .
    +
    +

    +"""@en ; + sh:name "Ontology logo/ depiction/ related visualizations"@en ; + ]; + +## Alternative identifiers of the ontology +### status: developer and external review needed +### This shape is probably confusing since the properties shall provide identifiers for the ontology, not related resources. + + sh:property [ + sh:path [sh:alternativePath ( )] ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should provide its identifiers as IRIs. +

    +

    +The identifier used as the base uri of the ontology should be provided with the property: http://purl.org/vocab/vann/preferredNamespaceUri +

    +

    +Recommended property: http://purl.org/dc/terms/identifier +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/identifier> <https://doi.org/10.5281/zenodo.0000000> .
    +
    +

    +"""@en ; + sh:name "Alternative identifiers of the ontology"@en ; + ]; + +## Development environment +#### status: intentionally no shape + +## Alignments/ mappings +### status: developer and external review needed + +### Aligned resources +### status: developer and external review needed + + sh:property [ + sh:path [sh:alternativePath ( )] ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should provide information about other ontologies it is aligned to as IRIs. +

    +

    +Recommended property: https://w3id.org/mod#hasEquivalencesWith +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://w3id.org/mod#hasEquivalencesWith> <https://www.purl.org/SomeOtherOntology> .
    +
    +

    +"""@en ; + sh:name "Aligned resources"@en ; + ]; + +### Alignment files/ Mapping files +### status: see shape "Related resources" + +## Competency Questions +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:xone ( [sh:nodeKind sh:IRI ;] [sh:datatype rdf:langString ;] ); + sh:message """ +

    +The ontology should provide the link to its competency questions as an IRI or provide the questions directly as an rdf:langString. +

    +

    +Recommended property: https://w3id.org/mod#competencyQuestion +

    +

    +Example statement 1 (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://w3id.org/mod#competencyQuestion> "Who developed an ontology?"@en .
    +
    +

    +

    +Example statement 2 (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://w3id.org/mod#competencyQuestion> <https://www.example.com/SomeOntologyInfo/Questions#Q1> .
    +
    +

    +"""@en ; # inconsistent with forms shape + sh:name "Competency questions"@en ; + ]; + +## Applied methodology +### status: intentionally no shape + +## Preferred ontology namespace +### status: developer and external review needed + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:maxCount 1 ; + sh:message """ +

    +The ontology should provide at most one preferred namespace URI for itself. +

    +

    +Recommended property: http://purl.org/vocab/vann/preferredNamespaceUri +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/vocab/vann/preferredNamespaceUri> <https://w3id/Example/SomeOntology> .
    +
    +

    +"""@en ; + sh:name "Preferred ontology namespace"@en ; + ] ; + + sh:property [ + sh:path ; + sh:severity sh:Info ; + sh:nodeKind sh:IRI ; + sh:message """ +

    +The ontology should provide its preferred namespace URI as an IRI. +

    +

    +Recommended property: http://purl.org/vocab/vann/preferredNamespaceUri +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/vocab/vann/preferredNamespaceUri> <https://w3id/Example/SomeOntology> .
    +
    +

    +"""@en ; + sh:name "Preferred ontology namespace - datatype"@en ; + ] ; + +## Ontology issue date +### status: developer and external review needed + + sh:property [ + sh:path [ + sh:alternativePath ( + + + + ) + ] ; + sh:severity sh:Info ; + sh:xone ( [sh:datatype xsd:dateTime ;] [sh:datatype xsd:date ;] ); + sh:maxCount 1 ; + sh:message """ +

    +The ontology should provide at most one issue date that conforms to xsd:date or xsd:dateTime. +

    +

    +Recommended property: http://purl.org/dc/terms/issued +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://purl.org/dc/terms/> "2023-11-21T00:00:00"^^xsd:dateTime .
    +
    +

    +"""@en ; + sh:name "Ontology issue date - datatype"@en ; + ] ; + +### Ontology modification date +### status: developer and external review needed + + sh:property [ + sh:path [sh:alternativePath (dcterms:modified schema:dateModified pav:curatedOn pav:lastUpdateOn)]; + sh:severity sh:Info ; + sh:xone ( [sh:datatype xsd:dateTime ;] [sh:datatype xsd:date ;] ); + sh:maxCount 1; + sh:message """ +

    +The ontology should provide at most one ontology modification date in xsd:date or xsd:dateTime format (ideally the latest). +

    +

    +Recommended property: http://purl.org/dc/terms/modified +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <https://purl.org/dc/terms/modified> "2020-11-19T00:00:00"^^xsd:dateTime.
    +
    +

    +"""@en ; + sh:name "Ontology modification date"@en ; + ] ; + +### Ontology version information +### status: developer and external review needed + + sh:property [ + sh:path [sh:alternativePath (owl:versionInfo pav:version)]; + sh:severity sh:Info ; + sh:xone ( [sh:datatype xsd:string ;] [sh:datatype rdf:langString ;] ); + sh:message """ +

    +The ontology should provide textual information about its version as an xsd:string. +

    +

    +It is recommended to use semantic versioning (cf. https://semver.org/) or OBO style date-based versioning (http://obofoundry.org/principles/fp-004-versioning.html). +

    +

    +If you need to add a larger comment in natural language, you should provide the info as an rdf:langString, i.e. with a language tag. We do not encourage this, since such statements can most likely be expressed in more granular fashion with formal statements. +

    +

    +Recommended property: http://www.w3.org/2002/07/owl#versionInfo +

    +

    +Example statement 1 (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://www.w3.org/2002/07/owl#versionInfo> "2023-01-01"^^xsd:string .
    +
    +

    +

    +Example statement 2 (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://www.w3.org/2002/07/owl#versionInfo> "1.0.0"^^xsd:string.
    +
    +

    +

    +Example statement 3 (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://www.w3.org/2002/07/owl#versionInfo> "Ontology version 1.0.0 of the subject classification in tabular format from Nov 2024."@en.
    +
    +

    +"""@en ; + sh:name "Ontology version information"@en ; + ] ; + + sh:property [ + sh:path [sh:alternativePath (owl:versionInfo pav:version)]; + sh:severity sh:Info ; + sh:maxCount 1 ; + sh:message """ +

    +The ontology should provide at most one textual information about the ontology version. +

    +

    +The value should be provided as an xsd:string. +

    +

    +It is recommended to use +

    +

    +

      +
    • +semantic versioning: https://semver.org/ +
    • +
    • +or OBO style date-based versioning: http://obofoundry.org/principles/fp-004-versioning.html +
    • +
    +

    +

    +Recommended property: http://www.w3.org/2002/07/owl#versionInfo +

    +

    +Example statement 1 (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://www.w3.org/2002/07/owl#versionInfo> "2023-01-01"^^xsd:string .
    +
    +

    +

    +Example statement 2 (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://www.w3.org/2002/07/owl#versionInfo> "1.0.0"^^xsd:string.
    +
    +

    +"""@en ; + sh:name "Ontology version information"@en ; + ] ; + +### Ontology version notes +### status: developer and external review needed + + sh:property [ + sh:path [sh:alternativePath (adms:versionNotes vann:changes)] ; + sh:severity sh:Info ; + sh:nodeKind sh:Literal ; + sh:datatype rdf:langString ; + sh:message """ +

    +The ontology should provide its version notes (e.g. notes on updates as compared to the previous version of the ontology) as an rdf:langString. +

    +

    +Recommended property: http://www.w3.org/ns/adms#versionNotes +

    +

    +Example statement (text/turtle): +

    +

    +

    <https://www.purl.org/SomeOntology> <http://www.w3.org/ns/adms#versionNotes> "Changes from 2000-01-12: add annotation properties: familyName [...]"@en .
    +
    +

    +"""@en ; + sh:name "Ontology version notes"@en ; + ] ; + +# End of shape + sh:closed false ; + sh:ignoredProperties ( rdf:type owl:topDataProperty owl:topObjectProperty ) . + diff --git a/README.md b/README.md index e44f1cb..d698645 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,53 @@ # Terminology Metadata Recommendations by TIB - - With this repository, *TIB - Leibniz Information Centre for Science and Technology University Library* provides a practical guide for metadata management of ontologies. It gives recommendations on required, recommended and optional metadata for ontologies. In particular, it addresses ontology engineers who would like to publish their ontologies on the [TIB Terminology Service](https://terminology.tib.eu/ts), the [NFDI4INg Terminology Service](https://terminology.nfdi4ing.de/ts/) or the [NFDI4Chem Terminology Service](https://terminology.nfdi4chem.de/ts/). An introduction and overview is given in the [Metadata Guide](/MetadataGuide.md). -In addition, we provide SHACL shapes based on these recommendations in [OntoMetadataShape.ttl](/OntoMetadataShape.ttl) which can also be reached via . These shapes can be used in SHACL validators and to check whether an ontology meets the recommendations. For example, the following onlin e SHACL validators are available: +In addition, we provide SHACL shapes based on these recommendations for three different applications as documented below. The target class of these shapes is owl:Ontology, so that they can only be used to validate entities that declare themselves as an instance of owl:Ontology, and also code generated with these shapes, will declare entities as instances of owl:Ontology. + +This repository is archived at Zenodo: + +> INFO: This recommendation is still a draft. Approval and discussion by a broader communiuty are required. + +## Metadata recommendations in SHACL + +### For ontology validation by ontology engineers + +In addition to the [MetadataGuide.md](/MetadataGuide.md), we provide SHACL shapes based on these recommendations in [OntoMetadataShape.ttl](/OntoMetadataShape.ttl) which can also be reached via . These shapes can be used in SHACL validators to check whether an ontology meets the recommendations. +They are very fine-grained - each sh:PropertyShape tests a specific set of properties that may occur in an ontology. For each violated constraint, a detailed message adresses how the constraint violation may be fixed. The messages provide examples in Turtle, so that ontology engineers can easily adapt their own code to the recommendation. + +For example, the following online SHACL validators are available and have been tested with [OntoMetadataShape.ttl](/OntoMetadataShape.ttl): * [SHACL Playground](https://shacl.org/playground/) * [SHACL Playground by Zazuko](https://shacl-playground.zazuko.com/) -* [SHACL Play!](https://shacl-play.sparna.fr/play/) +* [SHACL Play!](https://shacl-play.sparna.fr/play/validate) (if you are new to SHACL, we recommend this online validator!) -> INFO: This recommendation is still a draft. Approval and discussion by a broader communiuty are required. +PLEASE NOTE that browser extensions (e.g. Citavi) may interfer when using such validators - they may parse the Turtle code and insert text snippets that make the code unparsable due to syntactic errors. You should switch such extensions off, if you encounter such problems! -This repository is archived at Zenodo: +See how you can use online validators with our shape: + + + +### For ontology validation at TIB Terminology Service + +In [OntoMetadataShape4TS.ttl](/OntoMetadataShape4TS.ttl) (also ) we provide a version of the recommendations that is adapted to the Ontology Suggestion Feature at [TIB Terminology Service](https://terminology.tib.eu). The messages are adapted to the context of use and the particular use case: The person suggesting an ontology is not necessarily involved in its development. On TIB Terminology Service, they will be asked to provide metadata of the ontology if these are not present in the ontology, and if known to the user. These users are not required to provide the meatdata as code. + +See how the shape is used in the suggestion feature: + + + +### For metadata form generators + +In [OntoMetadataShape4Forms.ttl](/OntoMetadataShape4Forms.ttl) (also ) you find a version of the shape that is optimized for the [form generator tool by ULB Darmstadt](https://github.com/ULB-Darmstadt/shacl-form). You can try it out on their [live demo instance](https://ulb-darmstadt.github.io/shacl-form/#try-your-own). + +The shapes are not as granular as the ones for validation: All constraints are bundled in one shape in order to generate a form, that users can use to enter values. The user input is validated immediately for all criteria and the metadata code is generated. Only the recommended properties will be used to do so: This version of the recommendation does not make use of `sh:alternativePath` constructs, in order to generate valid RDF code with named properties, not anonymous/ blank nodes. + + ## Further reading and sources * Arndt, S., Borgelt, H. und Strömert, P. (2023) „FAIR Ontology Metadata - Crucial Information for Understanding, Evaluation, and Application“. 2nd Ontologies4Chem Workshop 2023 (Ontologies4Chem 2023), Zenodo, 12 Oktober. doi: 10.5281/zenodo.10117899. -* see complete [list of sources](/MetadataGuide.md#8-sources) in the Metadata Guide \ No newline at end of file +* see complete [list of sources](/MetadataGuide.md#8-sources) in the Metadata Guide diff --git a/TabularOverview.tsv b/TabularOverview.tsv index fdb84e7..2ee0fa1 100644 --- a/TabularOverview.tsv +++ b/TabularOverview.tsv @@ -15,11 +15,11 @@ order number section metadatum Preferred property Mandatory Recommended Optional 14 4.5 Subject(s) x 0…* true true false true false false true false true true true false false 15 4.6 Annotation language(s) x 0…* true true false false false false true false false false true false false 16 4.7 Applied logical framework x 0...1 false true false true false false true false false false false false false -17 4.8 Serialization/ file format x 0...1 true true false false false false true false false false true false false +17 4.8 Serialization/ file format x 0...1 true true false false false false true false false false true false false 18 4.9 Status x 0...1 true false false true true true true true true true true false true 19 4.10 Code repository x 0...1 false true false true false false true false false true false true false 20 4.11 Distributions/ products x 0…* true true false false false false true false true false true false false -21 4.12 Application example x 0…* false true false true false false true false false false false false false +21 4.12 Application example x 0…* false true false true false false true false false false false false false 22 4.13 Related resource(s) x 0…* true true false false true true true false true true true true false 23 4.14 Citation suggestion x 0…* false true false false true true true true false false true false false 24 4.15 Ontology sources (derived from) x 0…* true true false true true true true true true false true false false
    4.8 Serialization/ file formathttp://omv.ontoware.org/2005/05/ontology#hasOntologySyntaxhttps://w3id.org/mod#hasSyntax x
    4.12 Application examplehttps://vocab.org/vann/examplehttp://purl.org/vocab/vann/example x