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

The spec/doc should be reorganised #330

Closed
gouttegd opened this issue Nov 9, 2023 · 7 comments
Closed

The spec/doc should be reorganised #330

gouttegd opened this issue Nov 9, 2023 · 7 comments
Assignees
Milestone

Comments

@gouttegd
Copy link
Contributor

gouttegd commented Nov 9, 2023

Right now, the SSSOM website is a bit of a mess.

  • The home page and the about page are mostly redundant.
  • The specification page is merely the auto-generated documentation of the underlying LinkML model – calling that a “specification“ is misleading as this is woefully insufficient to anyone willing to implement the standard (necessary, sure, but not sufficient).
  • The overview page (which, also misleadingly, is under the URL /sssom/spec/) is a bit of everything:
    • a list of contributors (nothing wrong with that but maybe could get its own page, or be added to the existing credits page;
    • a general introduction to the concept of mapping;
    • a fleeting reference to the data model;
    • a list of the commonly used and recommended mapping predicates;
    • an attempt at formally specifying the OWL/RDF and SSSOM/TSV serialisation formats;
    • a list of use cases.
  • The “resources for users“ section it itself a mix of many things. Strikingly, it contains bit that really belong to the “specification” part, such as this (in the basic tutorial):

All three must be referred to by an identifier in CURIE syntax (Compact URI) when using the SSSOM table format or JSON, or an IRI (Internationalized Resource Identifier) when you are using the RDF representation of SSSOM.

Overall this makes it very difficult for implementers to figure out what and where are the really “normative“ parts of the website. This is of course at least partially due to the fact that the website is clearly a “work in progress“, but also, more fundamentally, because the website somehow tries to be simultaneously a specification for the standard, a documentation of that standard for end-users, a documentation of the reference implementation (sssom-py), and an academic paper on semantic mappings.

More immediately, this makes it difficult for me to figure out where I should put the various improvements to the spec I have been thinking about (such as the propagation of metadata slots #305, the recommendations on backwards compatibility #325, or the recommendations on how to deal with non-standard slots #328).

Therefore I’d like to propose that the website be reorganised so as to clearly separate the specification, the documentation, and the general notions on mappings. I welcome any suggestion for a better organisation, but right now here’s what I’m considering:

  • About this document (overall purpose of this document)
  • Introduction to semantic mappings (mostly, what is currently in the introduction of the overview, though I think some of the stuff in the “resources for users“ could probably belong there as well)
  • SSSOM specification (everything that developers must know to develop software compatible with the standard)
    • Introduction and use cases (what the standard is and what it is for)
    • Specification of the data model
      • Auto-generated LinkML-derived documentation
      • Complements to the auto-generated documentation (anything that is not described in the schema but that are necessary to understand the data model)
    • Specification of the serialisation formats
      • OWL/RDF serialisation
      • SSSOM/TSV serialisation
      • JSON serialisation
  • User documentation (most of the “resources for users“ stuff)
  • Other stuff (credits, glossary, how to contribute, etc.)

Thoughts?

@gouttegd gouttegd self-assigned this Nov 9, 2023
@matentzn
Copy link
Collaborator

matentzn commented Nov 9, 2023

I 100% agree with all you propose. I would love to try and implement (at least in spirit) a version of https://diataxis.fr/, but your proposal is mostly reorganisation at a higher level.

gouttegd added a commit that referenced this issue Apr 21, 2024
The examples provided in the SSSOM/TSV section of the "overview"
document are full of errors and would fail the most basic validation by
our own tools:

- use of `Lexical` instead of `semapv:LexicalMatching` in the
`mapping_justification` field (probably a remnant of the time prior to
the adoption of the SEMAPV vocabulary);
- bogus IRI prefix for the SKOS namespace (missing terminal `#`);
- use of a full-length identifier (instead of a CURIE) for `creator_id`.

This PR fixes those errors. In addition, it also ensures that the fields
are listed in the *recommended order*. It’s not critical but if we take
the time to recommend that fields be sorted in a given order, the least
we can do is to follow our own advice in our examples.

While we are at it, we also add a small note about the requirement for
using CURIEs in the SSSOM/TSV format, since that requirement currently
does not appear anywhere but is already enforced by `sssom validate`.

This is a band-aid until the docs are completely overhauled as part of
#330.

Co-authored-by: Nico Matentzoglu <nicolas.matentzoglu@gmail.com>
@gouttegd gouttegd mentioned this issue Jun 27, 2024
4 tasks
gouttegd added a commit that referenced this issue Jul 11, 2024
Resolves [#330]

- [x] `docs/` have been added/updated if necessary
- [x] `make test` has been run locally
- [ ] tests have been added/updated (not applicable)
- [ ]
[CHANGELOG.md](https://github.com/mapping-commons/sssom/blob/master/CHANGELOG.md)
has been updated (not applicable)

This PR reorganises the documentation, especially the specification
part, as suggested in #330.

More precisely:

* Several bits of informations that were scattered throughout the
website are now regrouped on the index page (e.g. “contacts” and
“credits”).
* The home page gets a “SSSOM at a glance” section to give an immediate
glimpse of what the standard is about.
* The specification is broken down as follows:
  * general introduction
  * specification of the data model
* introduction and notes complementary to the LinkML-generated
documentation
    * LinkML-generated documentation
  * specification of the serialisation formats
    * SSSOM/TSV format (completely rewritten)
    * OWL/RDF format (taken from the pre-existing `spec.md` document)
* JSON format (currently merely a placeholder, since the JSON format is
unspecified #321)

The “resources for users” section is left untouched for now. The urgent
part was reorganising the _specification_, so that we can start
enriching it to make it ready for 1.0.
@gouttegd
Copy link
Contributor Author

A first round of reorganisation was done in #368, but the user-facing doc (“resources for users”) still probably needs a bit of love.

@matentzn
Copy link
Collaborator

Do you want to meet for 1 hour of your choice to hack at that together? I am fine to do it, but maybe could avoid some back and forth if we do it face2face.

@gouttegd
Copy link
Contributor Author

User-facing documentation is not really my priority for now – I’d rather put the spec in shape for a 1.0 version. Was actually thinking of opening an issue to discuss that (basically the question is: what is still needed before we can call the current state a “1.0” version?), but happy to discuss that e.g. in tomorrow’s “OBO tech support call” (wouldn’t be the first time we hijack it to talk about SSSOM).

@matentzn
Copy link
Collaborator

Ok perfect!

@matentzn matentzn added this to the 1.0.0 milestone Jul 22, 2024
@matentzn
Copy link
Collaborator

matentzn commented Aug 3, 2024

@gouttegd this is assigned to you, if you want me to handle subitems of this task, let me know. (this item is on milestone 1.0, and I am not too sure of Definition of Done (DoD), and my role in it)

@gouttegd
Copy link
Contributor Author

gouttegd commented Aug 3, 2024

What was important for 1.0 was to reorganize the spec, which has been done as part of #368.

I have little interest in the user-facing doc, and I think you already reorganized it enough as part of #377.

@gouttegd gouttegd closed this as completed Aug 3, 2024
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

No branches or pull requests

2 participants