%%{ init: { 'flowchart': { 'curve': 'monotoneX' } } }%%
flowchart LR
Concept["skos:Concept"]
Issue["ibis:Issue"]
Agent["prov:Agent"]
Position["ibis:Position"]
%% <ibis>| from pymongo import MongoClient | |
| client = MongoClient() | |
| aggregation = [ | |
| { | |
| "$set": { | |
| "collection_date.has_date_value": { | |
| "$dateFromString": { | |
| "dateString": "$collection_date.has_raw_value", | |
| }, |
%%{ init: { 'flowchart': { 'curve': 'monotoneX' } } }%%
flowchart LR
Concept["skos:Concept"]
Issue["ibis:Issue"]
Agent["prov:Agent"]
Position["ibis:Position"]
State["pm:State"]
Goal["pm:Goal"]%%{ init: { 'flowchart': { 'curve': 'monotoneX' } } }%%
flowchart LR
Concept["skos:Concept"]
Issue["ibis:Issue"]
Agent["prov:Agent"]
Position["ibis:Position"]
ConceptScheme["skos:ConceptScheme"]
Argument["ibis:Argument"] erDiagram
Process ||--|| Material : outputs
Material ||--o{ Measurement : subjectTo
Ingredient }o--|| Material : from
Ingredient }o--|| Process : inputTo
Record }o--|| RecordType : has
RecordType }o--o| Template : mayBe
RecordType }o--o| Spec : mayBe
RecordType }o--o| Run : mayBeflowchart TD
%% t1(["terminator (process start/end)"])
%% s1["(process) step"]
%% d1{decision}
%% b1[("(data)base")]
%% m1[\manual step/]
%% o1[/"(input/output) object"/]
%% p1[[predefined step]]
classDef literal fill:#dff;,stroke:#bbb| { | |
| "access_methods": [{"access_url": {"url": "https://gist.github.com/dwinston/05a176b69744a3dfc52a1c8b07590867/raw/c58d8039544378d7ca20b9a80c87abcc983e4f76/readsqc-in-example.json"}}], | |
| "checksums": [{"type": "sha256", "checksum": "9e1d75d48d3e90bfec0b4608b8c1755eab88e51e69003dd1329b46086bbd3f68"}], | |
| "created_time": "2022-09-27T14:16:00-04:00", | |
| "size": 1009 | |
| } |
| {"data_object_set": [{ | |
| "id" : "jgi:534819030d87850d7aea2a16", | |
| "name" : "7846.2.85463.CGTACG.fastq.gz", | |
| "description" : "Raw sequencer read data", | |
| "file_size_bytes" : 11031180705, | |
| "type" : "nmdc:DataObject" | |
| } | |
| ], | |
| "read_QC_analysis_activity_set": [{ | |
| "id" : "nmdc:498a1b67f0b35bc4f059a5de7d5ddb49", |
My intended identifier design was nmdc:<shoulder><generated_id> where shoulder is an opaque namespace granted to a minting (sub)organization to avoid ID clashes in case they are bringing existing (not generated) IDs into the mix, and it helps keep IDs short for a minting org that doesn't mint a lot.
Unfortunately, it seems folks really really want to infer semantics from an ID rather than the discipline of resolving it and fetching metadata. So we've had a mushy compromise where the shoulders are kinda memorable, like "mga0" is for metagenome annotations.
I propose, given insistence on the desire for by-eye ID typing, we re-set the scheme as nmdc: , where type_code is an alphabetical code that is part of a recognized and controlled set, like how "Gb" is "GOLD biosample" (e.g., https://identifiers.org/gold:Gb0110680) and "Gs" is "GOLD study" (e.g., [https://identifiers.org/gold:Gs0103573](https://identifiers.org/gold:Gs0103573
| diff --git a/src/schema/basic_slots.yaml b/src/schema/basic_slots.yaml | |
| index 17c8bf3..1fa4bda 100644 | |
| --- a/src/schema/basic_slots.yaml | |
| +++ b/src/schema/basic_slots.yaml | |
| @@ -29,7 +29,7 @@ slots: | |
| description: >- | |
| A unique identifier for a thing. | |
| Must be either a CURIE shorthand for a URI or a complete URI | |
| - #required: false # for now we setting this to false until we develop an id template | |
| + #required: false # for now we are setting this to false until we develop an id template |