-
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
Issues with the specification “overview” #283
Comments
Significant column ordering sounds dangerous as it enables/encourages consumers to ignore the headings! |
Agree. And of note, sssom-py has seemingly no trouble manipulating the provided example file despite the “wrong” column ordering, suggesting this requirement is not warranted. I think it should be downgraded to a SHOULD at least. Of note, even if that requirement becomes a recommendation, the example file we provide should still follow it. Recommending a strict column order and then showing an example that does not respect it can give a bad first impression to anyone looking at the spec and trying to decide whether they want to support it or not. |
Another issue I noticed just now:
But the example file has an incomplete curie map that does not allow to resolve the This means sssom-py has built-in knowledge of (at least) If it is indeed the intention that people should be dispensed from having to declare those two prefixes when they create TSV files, this should be explicitly said in the specification. (For what it’s worth I think an implementation should not rely on built-in knowledge of some prefixes.) |
Another under-specified behaviour: When serialising in OWL, But it is not obvious that those predicates should be treated as annotation properties. The OWL API for example considers that they are object properties, which is in agreement with how the SKOS specification explicitly defines them (“ How the SKOS mapping properties are treated (as AP or as OP) matters very much in the context of SSSOM, since it decides how the mappings are translated into OWL axioms when serialising into OWL. If the behaviour of
Or, to allow for more instances of similar “reuse existing properties while changing their definition” behaviours beyond the case of SKOS:
|
@gouttegd I was going to address every point you made here in a separate comment, but it turns out I agree with all you say and hopefully apart from two things, have addressed everything in #285:
I applied canonical sort order ( I don't like that the |
Partially adresses #283 - [X] `docs/` have been added/updated if necessary - [X] [CHANGELOG.md](https://github.com/mapping-commons/sssom/blob/master/CHANGELOG.md) has been updated. - Applies canonical sort ordering to all examples files - Downgrades the necessity of applying the canonical column order from MUST to SHOULD - Documents clearly that built-in prefixes MUST NOT be redefined --------- Co-authored-by: Harshad Hegde <hegdehb@gmail.com>
No longer relevant since #368. |
The Overview of the SSSOM specification suffers from some issues.
curie_map
parameter (in the YAML metadata block, when serialising in TSV) so that it can be “either dictionary of CURIE->URLPREFIX pairs or a link to a valid curie map of the same shape”. There is agreement on Slack that such overloading is not a good idea.The document should be amended so that
curie_map
can only be a dictionary of {CURIE, URLPREFIX} pairs. If the ability to reference an external curie map is still desired, a new parameter should be introduced (for example,curie_map_reference
,curie_map_link
, or something like that).(For what it’s worth, I am slightly against allowing a reference to an external curie map, but I don’t have a strong opinion on that issue. I do think allowing such references would make things more complicated that they need to be, but I can deal with that.)
.sssom.yml
(of note, there’s already an inconsistency here, as the given example has a
.sssom.tsv
extension), then it recommends-meta.yml
The real recommended filename should be
.sssom.yml
.The example file uses the following ordering: subject_id, predicate_id, object_id, mapping_justification, subject_label, object_label.
This begs the question: is column ordering really important? If it is, then we should not provide an example that does not follow it. If it is not (e.g., if it’s only a recommendation, as row ordering seems to be), then the MUST should be relaxed at least into a SHOULD.
And speaking of MUST and SHOULD:
For example:
.sssom.yml
-> “In external mode, the mapping set metadata MUST be supplied in a separate YAML file; that file SHOULD have the same base name as the mapping file, with the extension.sssom.yml
”.etc.
The text was updated successfully, but these errors were encountered: