-
Notifications
You must be signed in to change notification settings - Fork 24
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 new "literal profile" solution based on "subject_label" and "object_label" #384
Conversation
LinkML validation passes for this, but not sure it actually does anything.
Two more questions:
This is basically a question of how the “literal profile” and There are two distinct cases. 1.a) One side is a literal, the other side is Unless I am missing something, this case should be straightforward and should not require any special treatment. That’s a good thing, because it’s the case that is most likely to be useful: if you have to map a list of literals (say, a list of scRNAseq cluster names) to a target vocabulary (say, the CL ontology), you want to be able to say that a given literal could not be mapped to any term in the target vocabulary. 1.b) The literal and the “term not found” are on the same side. Say you want to map a vocabulary (again, let’s say CL) to a list of literals. You want to say that a given term in CL is not represented in the list of literals. We have a problem here, because the way to represent a “term not found” is to use So what to do here? I can imagine 3 possibilities: 1.b.1) We don’t support that case. Seems quite reasonable to me a priori, as I don’t think it is a very relevant use case (contrary to the 1.a case). That would be the current situation (with the profile as defined in this PR). 1.b.2) Use 1.b.3) Put in the
Not really a question, but when computing the That is, for example: if we are dealing with a set of mappings with literals on the subject side and entities on the object side, then a cardinality of That is, I think, quite obvious, but it should still be mentioned explicitly somewhere. |
Ok, I will fold that in (think about it first). As an aside, I like it if actionable comments to be added as comments on the diffs so that they show up as "resolveable", so that they also block PRs being merged unless they are explicitly resolved. If there is no good place for such a comment you can just put in on the Changelog diff or on any other file that makes a little bit of sense. |
Duly noted. :) |
Instead of creating a new entity reference type, we re-use the existing "rdfs literal". It is widely understood.
This commit amends the #384 PR to: * describe what literal mappings are and how they should be used; * remove the old page about “SSSOM profiles”, which is no longer relevant (literal mappings are not a “profile”); * attempt to better describe `rdfs literal` in the built-in schema documentation.
The SSSOM-Py test suite fails on three tests:
<Cell>"
<entity1 rdf:resource="http://randomurlwithnochancetobeinprefixmap.org/ID_123"/>
<entity2 rdf:resource="http://purl.obolibrary.org/obo/WBbt_0005815"/>
<measure rdf:datatype="xsd:float">0.5</measure>
<relation>=</relation>
</Cell> My understanding is that, after some checking against a prefix map, the It looks like SSSOM-Py cannot simply rely on the LinkML runtime implementing the
|
The issues above are putatively fixed by mapping-commons/sssom-py#552. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry @gouttegd , I was out these past days, now I am getting back :P Some more comments, looking at sssom py now!
Change the phrasing of the description of "literal mappings" to make it clear that it is perfectly feasible and allowed to have literal on _both_ sides of a mapping.
When describing how to represent literal mappings, use BCP 14 keywords to clarify what exactly is required.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
APPROVED (I cant formally approve it, so @gouttegd you will have to).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was expecting to see changes to the derived python too - or will this be done as a separate PR?
Resolves #234
docs/
have been added/updated if necessarymake test
has been run locallymain
If you are proposing a change to the SSSOM metadata model, you must
examples/
see_also
field of the linkml modelsee_also
field of the linkml modelThis PR introduces an alternative model to the "literal mapping" proposal we have previously added. It is built on the following principles:
I do understand that there are various opposing views on the need of a "literal" profile, but I think this super minimal intervention will satisfy both sides.
Huge thanks to @gouttegd who managed to steer this massive carrier ship after it has left the harbour. This is rarely successful and I am very happy we managed to make it!