Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add mapping relations #14

Merged
merged 8 commits into from
Jan 26, 2023
Merged

Conversation

gouttegd
Copy link
Contributor

This PR implements the proposal in #3.

That is, it adds properties intended to represent mapping relations:

  • skos:semanticRelation
    • skos:mappingRelation
      • skos:closeMatch
        • skos:exactMatch
      • semapv:isomorphicMatch
        • skos:exactMatch
        • semapv:crossSpeciesExactMatch
      • semapv:nonIsomorphicMatch
        • skos:broadMatch
          • semapv:crossSpeciesBroadMatch
        • skos:narrowMatch
          • semapv:crossSpeciesNarrowMatch
        • skos:relatedMatch
          • semapv:crossSpeciesExactMatch

This commit adds a handful of properties intended to represent mapping
relations.

Some of these properties are directly taken from the SKOS specification,
but re-classified in a custom hierarchy.

The others are new properties specifically intended to represent
cross-species mappings.

This is an implementation of the proposal in mapping-commons#3.
@@ -0,0 +1,14 @@
IRI skos:prefLabel skos:definition dc:source skos:example rdfs:comment altLabel Parent
ID A skos:prefLabel A skos:definition A dc:source A skos:example A rdfs:comment A skos:altLabel SC % SPLIT=|
skos:semanticRelation semantic relation A link between two concepts. https://www.w3.org/TR/skos-reference/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Contrary what I suggested on the ticket, I dont think we need this, I would prefer to have skos:mappingRelation in the root, and that's it. Let me know if you think differently.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fine with me.

@@ -0,0 +1,14 @@
IRI skos:prefLabel skos:definition dc:source skos:example rdfs:comment altLabel Parent
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add column rdfs:isDefinedBy

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intended to hold what type of value? An IRI to the defining standard (e.g. SKOS)? In that case should that replace dc:source?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its the standard property we use to say: this term is defined in FBBT. This term is defined in Mondo. This term is defined in SKOS. Its intended to reference the actual RDF, not a website

@gouttegd
Copy link
Contributor Author

gouttegd commented Jan 23, 2023

Following discussion with @matentzn, semapv:crossSpeciesCloseMatch to be added (in addition to the changes already requested above) before the PR can be merged.

@matentzn : Not sure where you intended to place this relation? As a direct subclass of skos:closeMatch? Of semapv:nonIsomorphicMatch? Of both?

Remove skos:semanticRelation from the semapv-properties file. Use
skos:mappingRelation as root for the mapping properties.
Copy link
Contributor

@matentzn matentzn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some change requests, OWL also needs to be regenerated!

Overall, great.

@@ -0,0 +1,14 @@
IRI skos:prefLabel skos:definition dc:source skos:example rdfs:comment altLabel Parent rdfs:isDefinedBy
ID A skos:prefLabel A skos:definition A dc:source A skos:example A rdfs:comment A skos:altLabel SC % SPLIT=| A rdfs:isDefinedBy
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
ID A skos:prefLabel A skos:definition A dc:source A skos:example A rdfs:comment A skos:altLabel SC % SPLIT=| A rdfs:isDefinedBy
ID A skos:prefLabel A skos:definition A dc:source A skos:example A rdfs:comment A skos:altLabel SP % SPLIT=| A rdfs:isDefinedBy

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doh! Of course, sorry about that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@matentzn One last clarification needed: For the above to work, the template needs a TYPE column, otherwise the terms are still created as owl:Class (and have no parents because no SC).

Which raises the question: should these properties by defined as owl:AnnotationProperty or as owl:ObjectProperty? I think they should be AP, but unless I missed something you never explicitly described them as such in your proposal (#3). The discussion about the rationale for using OP rather than AP does not make things any clearer to me — rather to the contrary…

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TYPE must be annotation property - else it does not work with the OWL object model (in which triples of the form are interpreted as annotation assertions most of the time).

Longer discussion!

skos:relatedMatch related match A match where the subject and the object are inherently related, but where none is in any way more general than the other. https://www.w3.org/TR/skos-reference/ semapv:nonIsomorphicMatch http://www.w3.org/2004/02/skos/core#
semapv:isomorphicMatch isomorphic match A match where the subject is isomorphic to the object, i.e. considered of identical or similar form, shape, or structure. https://github.com/mapping-commons/semantic-mapping-vocabulary/issues/3 skos:mappingRelation
semapv:nonIsomorphicMatch non-isomorphic match A match where the subject cannot be considered isomorphic to the object, i.e. considered of identical or similar form, shape, or structure. The object corresponds to exactly one subject in the subject_source. https://github.com/mapping-commons/semantic-mapping-vocabulary/issues/3 skos:mappingRelation
semapv:crossSpeciesExactMatch cross-species exact match A match where the subject is considered analogous to the object in a different taxonomic grouping. https://github.com/mapping-commons/semantic-mapping-vocabulary/issues/3 FBbt:00005074 (D. melanogaster “muscle cell”) and CL:0000187 (taxon-neutral “muscle cell”) are a cross-species exact match. semapv:isomorphicMatch|skos:relatedMatch
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
semapv:crossSpeciesExactMatch cross-species exact match A match where the subject is considered analogous to the object in a different taxonomic grouping. https://github.com/mapping-commons/semantic-mapping-vocabulary/issues/3 FBbt:00005074 (D. melanogaster muscle cell) and CL:0000187 (taxon-neutral muscle cell) are a cross-species exact match. semapv:isomorphicMatch|skos:relatedMatch
semapv:crossSpeciesExactMatch cross-species exact match A match where the subject is considered analogous to the object in a different taxonomic grouping. https://github.com/mapping-commons/semantic-mapping-vocabulary/issues/3 FBbt:00005074 (D. melanogaster "muscle cell") and CL:0000187 (taxon-neutral "muscle cell") are a cross-species exact match. semapv:isomorphicMatch|skos:relatedMatch

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, someone doesn’t like typographically correct quote characters! :D Fine, I’ll change them – reluctantly, for the record.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean typographically correct? Is the one you put the right one? If so you should ignore my comment!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you care about typography (most people don’t, and it’s probably fine – I am one of the annoying few who do :p ), in English you should never use straight quotes ("). They are a typographical abomination from the era of typewriters, allowed to persist in the computer age by the use of 7-bits character encodings.

Proper quotes should be curved, with the opening quote (, U+201C) being different from the closing quote (, U+201D).

Same for the apostrophe. A proper apostrophe is curved (), not straight (').

That’s just a pet peeve of mine. Poor typography makes me sad. :p

semapv:isomorphicMatch isomorphic match A match where the subject is isomorphic to the object, i.e. considered of identical or similar form, shape, or structure. https://github.com/mapping-commons/semantic-mapping-vocabulary/issues/3 skos:mappingRelation
semapv:nonIsomorphicMatch non-isomorphic match A match where the subject cannot be considered isomorphic to the object, i.e. considered of identical or similar form, shape, or structure. The object corresponds to exactly one subject in the subject_source. https://github.com/mapping-commons/semantic-mapping-vocabulary/issues/3 skos:mappingRelation
semapv:crossSpeciesExactMatch cross-species exact match A match where the subject is considered analogous to the object in a different taxonomic grouping. https://github.com/mapping-commons/semantic-mapping-vocabulary/issues/3 FBbt:00005074 (D. melanogaster “muscle cell”) and CL:0000187 (taxon-neutral “muscle cell”) are a cross-species exact match. semapv:isomorphicMatch|skos:relatedMatch
semapv:crossSpeciesBroadMatch cross-species broad match A match where the subject is considered analogous to the subject in a different taxonomic grouping, but the object refers to a broader concept. https://github.com/mapping-commons/semantic-mapping-vocabulary/issues/3 FBbt:00007091 (D. melanogaster “subperineurial glial sheath”) and UBERON:0000202 (taxon-neutral “glial blood brain barrier”) are a cross-species broad match. skos:broadMatch
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
semapv:crossSpeciesBroadMatch cross-species broad match A match where the subject is considered analogous to the subject in a different taxonomic grouping, but the object refers to a broader concept. https://github.com/mapping-commons/semantic-mapping-vocabulary/issues/3 FBbt:00007091 (D. melanogaster subperineurial glial sheath) and UBERON:0000202 (taxon-neutral glial blood brain barrier) are a cross-species broad match. skos:broadMatch
semapv:crossSpeciesBroadMatch cross-species broad match A match where the subject is considered analogous to the subject in a different taxonomic grouping, but the object refers to a broader concept. https://github.com/mapping-commons/semantic-mapping-vocabulary/issues/3 FBbt:00007091 (D. melanogaster "subperineurial glial sheath") and UBERON:0000202 (taxon-neutral "glial blood brain barrier") are a cross-species broad match. skos:broadMatch

@matentzn
Copy link
Contributor

Ready to merge?

@gouttegd
Copy link
Contributor Author

If you’re happy with it, yes.

@matentzn matentzn merged commit 46b3221 into mapping-commons:main Jan 26, 2023
@matentzn
Copy link
Contributor

THANK YOU!

@gouttegd
Copy link
Contributor Author

🎉 This is only 253 days after that meeting with Shawn and David when we first talked about the need for specific relations for cross-species mappings, and in which you told me “just open a ticket on OMO to request these relations and I’ll make sure they are created.” :D

@gouttegd gouttegd deleted the add-mapping-relations branch January 26, 2023 17:20
@matentzn
Copy link
Contributor

Thats nothing :P Fast turnaround!

@gouttegd
Copy link
Contributor Author

I kind of knew you were going to say that! :D

@cthoyt
Copy link
Member

cthoyt commented Jan 29, 2023

this is great! Thanks @gouttegd , I will switch biomappings over to use these newly minted relations too :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants