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

Convert to LinkML #49

Closed
dosumis opened this issue Nov 2, 2023 · 5 comments
Closed

Convert to LinkML #49

dosumis opened this issue Nov 2, 2023 · 5 comments
Labels
Milestone

Comments

@dosumis
Copy link
Collaborator

dosumis commented Nov 2, 2023

Status: Draft for Discussion

No decisions have yet been made. This ticket is an EPIC for discussion. Initial subaims should be focussed on documentation and technical review.

As discussed with @satra & @lydiang - a linkML version of this schema would be broadly useful as it could be used to generate many different representations, including Python Classes, JSON-schema and RDF. The latter would provide a source for constructing integrated knowledge graphs (a useful aim for multiple grants). In order to avoid churn, this MUST be done in a way that precisely replicates the current JSON schema. Current users of the schema should see no change and we should be able to continue to take advantage of the build and testing systems already in place.

Semantics:

  • @dosumis group has already defined and used RDF semantics that can be applied here - using and extending OBO standards. See Tan et al., 2023.
  • @satra proposes using BioLink semantics (need to investigate whether BioLink is sufficiently expressive)

Challenges:

  • Reverse engineering JSON schema from LinkML spec is potentially challenging.
  • Coping with modularity - can we use the LinkML inheritance system?
  • Editing JSON schema is already a specialised task, if the master representation is moved to LinkML it will become more specialised still. We will need to train multiple editors and to ensure that reporting/diff tools support easy review by a wide range of stakeholders.
@dosumis dosumis added the EPIC label Nov 2, 2023
@dosumis dosumis added this to the BICAN Y2Q2 milestone Nov 2, 2023
@dosumis
Copy link
Collaborator Author

dosumis commented Dec 4, 2023

It seems we can do a basic conversion using linkML tools (thanks to @satra for enquiring on obo-community#linkml-community):

https://linkml.io/schema-automator/packages/importers.html#importing-from-json-schema

We can start from this and experiment with adding type and predicate mappings.

@dosumis
Copy link
Collaborator Author

dosumis commented Dec 4, 2023

@hkir-dev - I will try some basic experiments using the BICAN product as a starting point.

@dosumis
Copy link
Collaborator Author

dosumis commented Dec 4, 2023

Update - I have experimented with schemauto. Only managed to install with Python 3.10 (due to greenlit dep), but then hit this: linkml/schema-automator#122
Docker container available is x86 specific.

I think building locally with Poetry might be the way to go.

@dosumis
Copy link
Collaborator Author

dosumis commented Dec 8, 2023

Some progress drafting LinkML here https://github.com/dosumis/LinkML_cas_scratch/tree/main

@dosumis
Copy link
Collaborator Author

dosumis commented Jun 28, 2024

We are now using a LinkML conversion of the JSON schema to generate RDF from CAS - please see cas cas2rdf method on cas-tools. I will start a new ticket on publishing the LinkML & derived products using generators & link back to this ticket.

@dosumis dosumis closed this as completed Jun 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant