From ef4b612dfae30c41a39be748187ce39a9c619894 Mon Sep 17 00:00:00 2001 From: "Deployment Bot (from Travis CI)" Date: Wed, 11 Sep 2024 05:00:49 +0000 Subject: [PATCH] Deploy ga4gh/data-repository-service-schemas to github.com/ga4gh/data-repository-service-schemas.git:gh-pages --- CONTRIBUTING.md | 3 +- ...ore-background-on-compact-identifiers.html | 21 +- more-background-on-compact-identifiers.json | 46 ++ more-background-on-compact-identifiers.yaml | 427 ++++++++++++++++++ openapi/components/schemas/AccessMethod.yaml | 6 - openapi/components/schemas/DrsService.yaml | 6 - openapi/paths/service-info.yaml | 9 +- 7 files changed, 494 insertions(+), 24 deletions(-) create mode 100644 more-background-on-compact-identifiers.json create mode 100644 more-background-on-compact-identifiers.yaml diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f86ce231..1a808462 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -43,7 +43,8 @@ branch in each repository forms the master branch set. Some general rules to follow: - Create an issue in Github to track your work and start a conversation. Make a note of the number, you'll need it when naming your feature branch below. -- We follow [HubFlow](https://datasift.github.io/gitflow/) which means we use +- We follow [HubFlow](https://datasift.github.io/gitflow/) + (the HubFlow repo is deprecated, see this forked repo for the preserved [instructions](https://github.com/wpsharks/hubflow)) which means we use a feature branch strategy with pull requests always going to `develop` and releases happening from `master`. **Please read the HubFlow guide linked above, it's a quick read and will give you a really good idea of how our branches work. Do not make pull requests to `master`!** - If you are a core developer with write access to the repo, make a feature diff --git a/docs/more-background-on-compact-identifiers.html b/docs/more-background-on-compact-identifiers.html index 2c731990..9ee3bb4b 100644 --- a/docs/more-background-on-compact-identifiers.html +++ b/docs/more-background-on-compact-identifiers.html @@ -1832,10 +1832,14 @@ data-styled.g8[id="sc-iCoGMd"]{content:"gLxhOh,"}/*!sc*/ .fBHEBx{font-family:Montserrat,sans-serif;font-weight:600;font-size:1.85714em;line-height:1.2em;color:#333333;}/*!sc*/ data-styled.g9[id="sc-fujyAs"]{content:"fBHEBx,"}/*!sc*/ +.dFNfzX{font-family:Montserrat,sans-serif;font-weight:600;font-size:1.57143em;line-height:1.2em;color:#333333;margin:0 0 20px;}/*!sc*/ +data-styled.g10[id="sc-pNWdM"]{content:"dFNfzX,"}/*!sc*/ .iUxAWq{cursor:pointer;margin-left:-20px;padding:0;line-height:1;width:20px;display:inline-block;outline:0;}/*!sc*/ .iUxAWq:before{content:'';width:15px;height:15px;background-size:contain;background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTIgNC41LTMuMiA2LjgtNC41IDIuOSA5LjkgOCAxOS4zIDE1LjggMjcuMiAyNSAyNSA2NS42IDI0LjkgOTAuNSAwbDkwLjUtOTAuNWMyNS0yNSAyNS02NS42IDAtOTAuNSAtMjQuOS0yNS02NS41LTI1LTkwLjUgMGwtMzIuMiAzMi4yYy0yNi4xLTEwLjItNTQuMi0xMi45LTgxLjYtOC45bDY4LjYtNjguNmM1MC01MCAxMzEtNTAgMTgxIDBDNTA5LjYgMTAyLjMgNTA5LjYgMTgzLjQgNDU5LjcgMjMzLjR6TTIyMC4zIDM4Mi4ybC0zMi4yIDMyLjJjLTI1IDI0LjktNjUuNiAyNC45LTkwLjUgMCAtMjUtMjUtMjUtNjUuNiAwLTkwLjVsOTAuNS05MC41YzI1LTI1IDY1LjUtMjUgOTAuNSAwIDcuOCA3LjggMTIuOSAxNy4yIDE1LjggMjcuMSAyLjQtMS40IDQuOC0yLjUgNi44LTQuNWw0Mi4xLTQyYy01LjQtOS4yLTExLjYtMTgtMTkuNC0yNS44IC01MC01MC0xMzEtNTAtMTgxIDBsLTkwLjUgOTAuNWMtNTAgNTAtNTAgMTMxIDAgMTgxIDUwIDUwIDEzMSA1MCAxODEgMGw2OC42LTY4LjZDMjc0LjYgMzk1LjEgMjQ2LjQgMzkyLjMgMjIwLjMgMzgyLjJ6Ii8+PC9zdmc+Cg==');opacity:0.5;visibility:hidden;display:inline-block;vertical-align:middle;}/*!sc*/ h1:hover > .sc-crzoAE::before,h2:hover > .iUxAWq::before,.iUxAWq:hover::before{visibility:visible;}/*!sc*/ data-styled.g14[id="sc-crzoAE"]{content:"iUxAWq,"}/*!sc*/ +.dvcDrG{height:18px;width:18px;min-width:18px;vertical-align:middle;float:right;-webkit-transition:-webkit-transform 0.2s ease-out;-webkit-transition:transform 0.2s ease-out;transition:transform 0.2s ease-out;-webkit-transform:rotateZ(-90deg);-ms-transform:rotateZ(-90deg);transform:rotateZ(-90deg);}/*!sc*/ +data-styled.g15[id="sc-dIsUp"]{content:"dvcDrG,"}/*!sc*/ .jCdxGr code[class*='language-'],.jCdxGr pre[class*='language-']{text-shadow:0 -0.1em 0.2em black;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ @media print{.jCdxGr code[class*='language-'],.jCdxGr pre[class*='language-']{text-shadow:none;}}/*!sc*/ .jCdxGr pre[class*='language-']{padding:1em;margin:0.5em 0;overflow:auto;}/*!sc*/ @@ -1899,14 +1903,21 @@ .bcezPY{margin:0;padding:0;}/*!sc*/ .bcezPY:first-child{padding-bottom:32px;}/*!sc*/ .sc-uxdHp .sc-uxdHp{font-size:0.929em;}/*!sc*/ -data-styled.g102[id="sc-uxdHp"]{content:"bcezPY,"}/*!sc*/ +.kUEEAF{margin:0;padding:0;display:none;}/*!sc*/ +.kUEEAF:first-child{padding-bottom:32px;}/*!sc*/ +.sc-uxdHp .sc-uxdHp{font-size:0.929em;}/*!sc*/ +data-styled.g102[id="sc-uxdHp"]{content:"bcezPY,kUEEAF,"}/*!sc*/ .jycHIP{list-style:none inside none;overflow:hidden;text-overflow:ellipsis;padding:0;}/*!sc*/ data-styled.g103[id="sc-biJonm"]{content:"jycHIP,"}/*!sc*/ .iAObOy{cursor:pointer;color:#333333;margin:0;padding:12.5px 20px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;font-family:Montserrat,sans-serif;font-size:0.929em;text-transform:none;background-color:rgba(246,246,248,1);}/*!sc*/ .iAObOy:hover{color:rgba(27,117,187,1);background-color:#d9d9e2;}/*!sc*/ .iAObOy .sc-dIsUp{height:1.5em;width:1.5em;}/*!sc*/ .iAObOy .sc-dIsUp polygon{fill:#333333;}/*!sc*/ -data-styled.g104[id="sc-eHEENL"]{content:"iAObOy,"}/*!sc*/ +.gPowFR{cursor:pointer;color:#333333;margin:0;padding:12.5px 20px;padding-left:40px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;font-family:Montserrat,sans-serif;background-color:rgba(246,246,248,1);}/*!sc*/ +.gPowFR:hover{color:rgba(27,117,187,1);background-color:#e8e8ed;}/*!sc*/ +.gPowFR .sc-dIsUp{height:1.5em;width:1.5em;}/*!sc*/ +.gPowFR .sc-dIsUp polygon{fill:#333333;}/*!sc*/ +data-styled.g104[id="sc-eHEENL"]{content:"iAObOy,gPowFR,"}/*!sc*/ .ylzCN{display:inline-block;vertical-align:middle;width:auto;overflow:hidden;text-overflow:ellipsis;}/*!sc*/ data-styled.g105[id="sc-hzUIXc"]{content:"ylzCN,"}/*!sc*/ .iQlzog{font-size:0.8em;margin-top:10px;text-align:center;position:fixed;width:260px;bottom:0;background:rgba(246,246,248,1);}/*!sc*/ @@ -1947,7 +1958,7 @@ -
n2t.net and identifiers.org for information about all the compact identifiers that are supported. You can choose to use an existing compact identifier provider for your DRS server, as we did in the example above using DOIs ("DRS Client Compact Identifier-Based URI Resolution Process - Existing Compact Identifier Provider"). Just keep in mind, each provider will have their own approach for generating compact identifiers and associating them with a DRS data object URL. Some compact identifier providers, like DOIs, provide a method whereby you can register in their network and get your own prefix, allowing you to mint your own accessions. Other services, like the University of California’s EZID service, provide accounts and a mechanism to mint accessions centrally for each of your data objects. For experimentation we recommend you take a look at the EZID website that allows you to create DOIs and ARKs and associate them with your data object URLs on your DRS server for testing purposes.

+

Example How To Handle Extra Metadata for DRS Objects

DRS and Data Connect

With DRS objects it may be necessary to attach additional metadata to your objects. We believe that a change to the API of DRS to include metadata is not in the spirit of the DRS spec and in general DRS should have no knowledge of the metadata associated with the objects. We have found that a good GA4GH standard to support this is Data Connect (https://github.com/ga4gh-discovery/data-connect). The general approach would be to have a Data Connect service on your platform and to include "tables" with the ID matching your DRS ID for the same object. This means that if you have metadata associated with an object id abcd (ex. additional information about Compound Objects) all you need to do is request the information from the Data Connect client at /tables/abcd/info. There are optional functionalities of Data Connect, such as querying of tables, but we do not explore them or give any recommendations here.

+

Here is an example of using Data Connect with DRS in the fasp-scripts repository (https://github.com/ga4gh/fasp-scripts/blob/master/notebooks/drs/DRS%20File%20Data.ipynb). In this notebook we can see that data connect is used to get DRS IDs from a platform. Those DRS IDs are then used to gather aditional information about the file that might be necessary for analysis. This is just one example of how DRS and Data Connect can interact with each other to gather information about data on a platform.