HHS / meshrdf

Code and documentation for the release of MeSH in RDF format
https://hhs.github.io/meshrdf/
75 stars 19 forks source link

Missing domain and range attributes in the MeSH ontology/vocabulary? #181

Open doogyb opened 3 years ago

doogyb commented 3 years ago

The Concepts documentation provides the following table for the relationships between the meshv:Concept class and other classes:

  Subject Predicate Object  
1 meshv:Concept meshv:broaderConcept meshv:Concept
2 meshv:Concept meshv:narrowerConcept meshv:Concept
3 meshv:Concept meshv:preferredTerm meshv:Term
4 meshv:Concept meshv:term meshv:Term
5 meshv:Concept meshv:relatedConcept meshv:Concept

However, in the vocabulary_1.0.0.ttl file provided, the relationships between meshv:Concept and meshv:Term are not covered.

If we add the following rdfs:domain attributes to meshv:preferredTerm

<http://id.nlm.nih.gov/mesh/vocab#preferredTerm> rdf:type :ObjectProperty ;

                                                 rdfs:label "preferredTerm" ;

                                                 rdfs:comment "Relates Concepts, Descriptors, Qualifiers or SupplementaryConceptRecords to Terms. Indicates that the Term is the preferred term for a Concept, Descriptor, Qualifier, or SupplementaryConceptRecord." ;

                                                 dct:description "Relates Concepts, Descriptors, Qualifiers or SupplementaryConceptRecords to Terms. Indicates that the Term is the preferred term for a Concept, Descriptor, Qualifier, or SupplementaryConceptRecord." ;

                                                 rdfs:subPropertyOf <http://id.nlm.nih.gov/mesh/vocab#term> ;

                                                 rdfs:domain <http://id.nlm.nih.gov/mesh/vocab#Concept> ;
                                                 rdfs:domain <http://id.nlm.nih.gov/mesh/vocab#Descriptor> ;
                                                 rdfs:domain <http://id.nlm.nih.gov/mesh/vocab#Qualifier> ;
                                                 rdfs:domain <http://id.nlm.nih.gov/mesh/vocab#SupplementaryConceptRecord> ;

                                                 rdfs:range <http://id.nlm.nih.gov/mesh/vocab#Term> .

Then the relationship on row 3 is covered (along with the other Subject/Object relationships described by meshv:preferredTerm).

This following visualisation might also help:

Screenshot 2021-11-17 at 11 13 17

I'm wondering if this was intentional? If not, I'd be happy to open a PR and add these missing relationships to the ontology.