GenomicsStandardsConsortium / mixs

Minimum Information about any (X) Sequence” (MIxS) specification
https://w3id.org/mixs
Creative Commons Zero v1.0 Universal
38 stars 21 forks source link

Content negotiation for MIxS landing pages #246

Closed ramonawalls closed 9 months ago

ramonawalls commented 3 years ago

Landing pages will be generated using NMDC code to create pages like https://microbiomedata.github.io/nmdc-metadata/docs/tot_depth_water_col.html that resolve to the gensc website. Would be great to have content negotiation to deliver machine readable pages as well.

Not currently in Biolink ML library. Maybe we can get @jdeck88 to add some code for this.

ramonawalls commented 3 years ago

We need to flesh out the requirements more on this ticket. Could be challenging for a static site. Independent of MIxS 6 release.

only1chunts commented 3 years ago

At the moment I'm using a file called terms.yml in the _data directory of the website repo (here). I'm happy to change things as this was just me playing around to see what could be done. All that it does at the moment is create a single page with all the terms: https://genomicsstandardsconsortium.github.io/gensc.github.io/pages/standards/all-terms.html and allow a search over the terms: https://genomicsstandardsconsortium.github.io/gensc.github.io/pages/standards/search-terms.html

Maybe writing user stories will help define what is needed and how to provide it? As a website user I want to be able to see all the possible pre-defined checklists ratified by the GSC So that I can choose the most appropriate one for my work

As a website user I want to be able to click on any one of those pre-defined checklist names to see the terms that make it up AND I want to be able to download an Excel (or other formats e.g. CSV, JSON, XML...) file for any given Checklist with any given package So that I can use it for my work

As I website user I want to be able to search all current terms defined by the GSC So that I can easily find definitions of a particular term And see which packages it is part of.

As a website user I want to be able to create my own adhoc package from the mandatory terms of a checklist and addition of any terms I select from the full list of available terms So that I can create a bespoke checklist for my work that is still compliant with the core MIxS standards

ramonawalls commented 3 years ago

Great idea, Chris.

On Fri, Aug 20, 2021 at 12:48 AM Chris Hunter @.***> wrote:

At the moment I'm using a file called terms.yml in the _data directory of the website repo (here https://github.com/GenomicsStandardsConsortium/gensc.github.io/blob/main/_data/terms.yml). I'm happy to change things as this was just me playing around to see what could be done. All that it does at the moment is create a single page with all the terms: https://genomicsstandardsconsortium.github.io/gensc.github.io/pages/standards/all-terms.html and allow a search over the terms:

https://genomicsstandardsconsortium.github.io/gensc.github.io/pages/standards/search-terms.html

Maybe writing user stories will help define what is needed and how to provide it? As a website user I want to be able to see all the possible pre-defined checklists ratified by the GSC So that I can choose the most appropriate one for my work

As I website user I want to be able to search all current terms defined by the GSC So that I can easily find definitions of a particular term And see which packages it is part of.

As a website user I want to be able to download an Excel (or other tabular format) file for any given Checklist with any given package So that I can use it for my work

As a website user I want to be able to create my own adhoc package from the mandatory terms of a checklist and addition of any terms I select from the full list of available terms So that I can create a bespoke checklist for my work that is still compliant with the core MIxS standards

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/GenomicsStandardsConsortium/mixs/issues/246#issuecomment-902504263, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZIHLR2Z72AA4OJPPTSG5TT5YCF7ANCNFSM5CKYNKCQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

cmungall commented 3 years ago

Hi Chris - can we talk about this next CIG meeting? It seems this is maybe duplicative with the linkml yaml?

On Fri, Aug 20, 2021 at 12:48 AM Chris Hunter @.***> wrote:

At the moment I'm using a file called terms.yml in the _data directory of the website repo (here https://github.com/GenomicsStandardsConsortium/gensc.github.io/blob/main/_data/terms.yml). I'm happy to change things as this was just me playing around to see what could be done. All that it does at the moment is create a single page with all the terms: https://genomicsstandardsconsortium.github.io/gensc.github.io/pages/standards/all-terms.html and allow a search over the terms:

https://genomicsstandardsconsortium.github.io/gensc.github.io/pages/standards/search-terms.html

Maybe writing user stories will help define what is needed and how to provide it? As a website user I want to be able to see all the possible pre-defined checklists ratified by the GSC So that I can choose the most appropriate one for my work

As I website user I want to be able to search all current terms defined by the GSC So that I can easily find definitions of a particular term And see which packages it is part of.

As a website user I want to be able to download an Excel (or other tabular format) file for any given Checklist with any given package So that I can use it for my work

As a website user I want to be able to create my own adhoc package from the mandatory terms of a checklist and addition of any terms I select from the full list of available terms So that I can create a bespoke checklist for my work that is still compliant with the core MIxS standards

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/GenomicsStandardsConsortium/mixs/issues/246#issuecomment-902504263, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAMMOOONTGPGYYRSKUQKS3T5YCF7ANCNFSM5CKYNKCQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

cmungall commented 3 years ago

Would be awesome to have John's help!

I need to check the status of conneg. We have the rules defined for the metamodel itself https://github.com/perma-id/w3id.org/blob/master/linkml/.htaccess but not easy how it is to set this up

On Tue, Aug 17, 2021 at 3:10 PM Ramona Walls @.***> wrote:

Landing pages will be generated using NMDC code to create pages like https://microbiomedata.github.io/nmdc-metadata/docs/tot_depth_water_col.html that resolve to the gensc website. Would be great to have content negotiation to deliver machine readable pages as well.

Not currently in Biolink ML library. Maybe we can get @jdeck88 https://github.com/jdeck88 to add some code for this.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/GenomicsStandardsConsortium/mixs/issues/246, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAMMOPABPYL2KSSF5MZIVTT5LM6BANCNFSM5CKYNKCQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

ramonawalls commented 3 years ago

I think we have two overlapping issues here: one for content negotiation (html versus rdf) and one for handling pacakges. We should probably open a new ticket for managing packages, if one does not exist.

ramonawalls commented 2 years ago

What we want is for each term (and package?) page to offer different content depending on who accesses it. For humans, go to web page, for machines, return WHAT? Probably JSON-LD. Maybe RDF.

LinkML does not currently have a standard mechanism for creating the machine readable content for individual terms. Need to file an issue with LinkML

cmungall commented 2 years ago

I think step 1 is having the URIs resolve!

I assume we want URLs with human readable names as well as numeric IDs to resolve?

turbomam commented 2 years ago

Issue #391 advocates for numeric-only URLs

ramonawalls commented 2 years ago

I think step 1 is having the URIs resolve! Yes! We have issues #390 and #391 for this, and @sujaypatil96 is working on it.

I assume we want URLs with human readable names as well as numeric IDs to resolve? Our plan is for numerical URLs? What would be the added advantage of having human readable URLs, @cmungall ? It seems unwise to have two URLs per term.

turbomam commented 1 year ago

We currently support navigating to term pages like http://w3id.org/mixs/0000002, to the schema source via http://w3id.org/mixs/mixs.yaml, and to selected artifacts derived from the schema like http://w3id.org/mixs/mixs.owl.ttl and http://w3id.org/mixs/mixs/schema.json

When I think of content negotiation, I think of

  1. some agent passing a desired MIME file type
  2. the host possibly returning something computable and atomic, like RDF for just one term

I don't believe LinkML has any support for 2., although we might be able to suport it though a triple store server

Does this require further discussion?

cmungall commented 1 year ago

We have an upstream issue that discusses how this would work.

As far as I know there is no one in either the GSC community or the more general standards/linkml community who would use this feature. It's something people on the semantic web community were very keen on 10 years ago. Note in the OBO community most major ontologies no longer support content negotiation.

I suggest either closing this issue, with the option of reopening if someone has need for it and resources to support. But fine if people want to leave it open. Keep discussion on the upstream ticket unless there are MIxS-specific requirements

ramonawalls commented 9 months ago

Issue solved with mixs 6.0-6.2 releases.

I take that back. We don't really have content negotiation, just term page resolution.

turbomam commented 9 months ago

We aren't really doing content negotiation, but there are good per-term documentation pages, whose URLs agree with the term URIs.

https://en.wikipedia.org/wiki/Content_negotiation