enanomapper / ontologies

The eNanoMapper ontology
https://jbiomedsem.biomedcentral.com/articles/10.1186/s13326-015-0005-5
Other
17 stars 15 forks source link

work out protocol to add new terms #284

Open egonw opened 3 years ago

egonw commented 3 years ago

Laurent, can you please work out a procedure to add new terms with the below template and write this up as a simple tutorial:

    <!-- http://purl.enanomapper.org/onto/ENM_0000115 -->

    <owl:Class rdf:about="http://purl.enanomapper.org/onto/ENM_0000115">
        <rdfs:subClassOf rdf:resource="http://purl.bioontology.org/ontology/npo#NPO_1597"/>
        <rdfs:label xml:lang="en">protein corona</rdfs:label>
    </owl:Class>

Of the top of my head, I can think of these steps:

  1. identify the superclass (proper BFO section)
  2. identify to 3rd party ontology this should be included in (e.g. descriptions into CHEMINF)
  3. identify an unused ENM identifier
  4. fill out the above template (with the missing definition added)
  5. make a patch
  6. make a pull request
egonw commented 3 years ago

The (simple) tutorial write up should go into https://github.com/nanocommons/tutorials and can refer to (and without not list general info) https://github.com/enanomapper/tutorials/tree/master/Added%20ontology%20terms

lwinckers commented 3 years ago

An example of a new term, unavailable from any ontology

If you want to add a term which does not exist in any ontology, or you can't find a term which has the right definition that covers your terminology than we can just create a new term. An important part is to select a new and unique term identifier (IRI) for the term you want to add. Additionally, it is important to place your commit in the right file. Lets look at the way the commit should be structured first.

New terms are defined as Web Ontology Language (OWL) classes, and should have a unique identifier, a label, and a superclass.

For example it may look like:

 <!-- http://purl.enanomapper.org/onto/ENM_0000115 -->

    <owl:Class rdf:about="http://purl.enanomapper.org/onto/ENM_0000115">
        <rdfs:subClassOf rdf:resource="http://purl.bioontology.org/ontology/npo#NPO_1597"/>
        <rdfs:label xml:lang="en">protein corona</rdfs:label>
    </owl:Class>

The example shows how a term with label protein corona added as a subclass of "http://purl.bioontology.org/ontology/npo#NPO_1597" (which is the superclass). In this example we gave the term protein corona the unique identifier ENM_0000115.

Now we have our label, unique identifier, and superclass we will need to put this in the right file. In this case, because we want to add this term as a subclass of an NPO term, we will add it to the npo-ext.owl file which can be found in the internal folder.

Okay, we have found the right folder. Think about the fact that adding a new term should always be a subclass of a term that is already present in the ENM ontology. So there is no need to create a new *-ext.owl file. Now we have everything in place we can make a pull request, proposing the addition of this term to the ENM ontology.

lwinckers commented 3 years ago

@egonw should I create a new folder in the NanoCommons/tutorials repo for ontology tutorials? Or where should I put this? Additonally, please check if the tutorial is okay.

egonw commented 3 years ago

Sounds good to me. I don't really have arguments to either being wrong. The advantage of the subfolder is that it is clearly your work and you get credit for it. Make sure to add content like below at the top:

---
layout: default

trainingMaterial:
  "@context": http://schema.org/
  "@type": CreativeWork
  about: "This tutorial discusses the use of OWL Axioms in the eNanoMapper ontology."
  name: OWL Axioms in the eNanoMapper ontology
  author:
    - "@type": Person
      name: Egon Willighagen
      identifier: 0000-0001-7542-0286
  difficultyLevel: [Advanced]
  keywords: ontologies, enanomapper, OWL
  license: CC-BY 4.0
  url:
    - "@type": URL
      url: https://enanomapper.github.io/tutorials/owlAxioms/
  version: 0.0.1
---

And plz update https://github.com/NanoCommons/tutorials/blob/master/sitemap.xml

lwinckers commented 3 years ago

Do not get what I should update to sitemap.xml.....