Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion schemas/V_gamma/CURIE_lookups_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"$id": "https://did-schema.example.org/meta/CURIE_lookups_meta.json",
"title": "CURIE Registry for DID/NDI V_gamma",
"description": "Registry mapping CURIE prefixes (used in ontology_term.node values and in field-level _ontology._node annotations) to their authoritative URI base and metadata. Consumer tooling uses this file to expand a CURIE such as 'uberon:0002436' into the full URI 'http://purl.obolibrary.org/obo/UBERON_0002436'. Prefixes are matched case-insensitively; by convention prefixes are written in lowercase inside documents and annotations.",
"_format_version": "1.0.0",
"_format_version": "1.1.0",
"_prefixes": {
"iao": {
"_label": "Information Artifact Ontology",
Expand Down Expand Up @@ -33,6 +33,20 @@
"_approximate": false,
"_documentation": "Anatomical ontology for the developing mouse."
},
"mmusdv": {
"_label": "Mouse Developmental Stages",
"_uri_base": "http://purl.obolibrary.org/obo/MmusDv_",
"_uri_style": "obo_underscore",
"_approximate": false,
"_documentation": "Life-cycle / developmental-stage ontology for Mus musculus. Useful inside ontology_term values and in time_reference values whose referent_kind == 'ontology_stage' (e.g., 'mmusdv:0000037' postnatal stage)."
},
"hsapdv": {
"_label": "Human Developmental Stages",
"_uri_base": "http://purl.obolibrary.org/obo/HsapDv_",
"_uri_style": "obo_underscore",
"_approximate": false,
"_documentation": "Life-cycle / developmental-stage ontology for Homo sapiens. Useful for time_reference values whose referent_kind == 'ontology_stage'."
},
"ncit": {
"_label": "NCI Thesaurus",
"_uri_base": "http://purl.obolibrary.org/obo/NCIT_",
Expand Down
6 changes: 4 additions & 2 deletions schemas/V_gamma/did_schema_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://did-schema.example.org/V_gamma/did_schema_meta.json",
"title": "DID/NDI Schema Meta-Schema (V_gamma)",
"description": "Validates the structure of DID/NDI schema files for V_gamma. V_gamma introduces named composite types 'duration', 'ontology_term', 'volume', 'mass', 'length', 'voltage', 'current', and 'frequency', and a redesigned field-level '_ontology' annotation shape with keys '_node' (CURIE) and '_name' (label); the CURIE prefix is resolved against CURIE_lookups_meta.json. The six SI-dimensioned types share the same sub-field layout as 'duration' (a canonical-unit double, 'approximate' boolean, 'source_unit' char, 'source_value' double); only the canonical sub-field name and the allowed source units differ. NAMING CONVENTION: property names that are standard JSON Schema keywords (type, $schema, $id, $ref, $defs, properties, required, items, enum, const, pattern, description, etc.) are used as-is. Every property name introduced by this schema system — i.e. not part of the JSON Schema vocabulary — is prefixed with an underscore (_) to distinguish custom extensions from standard vocabulary.",
"description": "Validates the structure of DID/NDI schema files for V_gamma. V_gamma introduces named composite types 'duration', 'ontology_term', 'volume', 'mass', 'length', 'voltage', 'current', 'frequency', 'timeref_epochset', and 'time_reference', and a redesigned field-level '_ontology' annotation shape with keys '_node' (CURIE) and '_name' (label); the CURIE prefix is resolved against CURIE_lookups_meta.json. The seven SI-dimensioned types share the same sub-field layout as 'duration' (a canonical-unit double, 'approximate' boolean, 'source_unit' char, 'source_value' double); only the canonical sub-field name and the allowed source units differ. The 'time_reference' type expresses a time value as an offset from a chosen origin (a depended-on document, an acquisition-clock epoch, a UTC wall-clock timestamp, or an ontology-anchored stage); 'timeref_epochset' is the four-tuple sub-composite that names an acquisition-clock origin. NAMING CONVENTION: property names that are standard JSON Schema keywords (type, $schema, $id, $ref, $defs, properties, required, items, enum, const, pattern, description, etc.) are used as-is. Every property name introduced by this schema system — i.e. not part of the JSON Schema vocabulary — is prefixed with an underscore (_) to distinguish custom extensions from standard vocabulary.",
"type": "object",
"required": [
"_classname",
Expand Down Expand Up @@ -215,7 +215,9 @@
"length",
"voltage",
"current",
"frequency"
"frequency",
"timeref_epochset",
"time_reference"
],
"description": "Data type of the field. Uses the standard JSON Schema keyword 'type'; values are NDI-specific."
},
Expand Down
60 changes: 60 additions & 0 deletions schemas/V_gamma/session_occurrence.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"_classname": "session_occurrence",
"_class_version": "1.0.0",
"_maturity_level": "work_in_progress",
"_superclasses": [
{
"_classname": "base",
"_schema": "$NDISCHEMAPATH/base/schema.json"
}
],
"_depends_on": [
{
"_name": "session_id",
"_mustBeNonEmpty": true,
"_documentation": "The session document this occurrence describes. Cascading delete: when the session is deleted, this occurrence is deleted too.",
"_must_refer_to_document_class": "session"
},
{
"_name": "started_at_referent_id",
"_mustBeNonEmpty": false,
"_documentation": "Document that anchors started_at when started_at.referent_kind == 'document'. Empty otherwise.",
"_must_refer_to_document_class": ""
},
{
"_name": "ended_at_referent_id",
"_mustBeNonEmpty": false,
"_documentation": "Document that anchors ended_at when ended_at.referent_kind == 'document'. Empty otherwise.",
"_must_refer_to_document_class": ""
}
],
"_file": [],
"_fields": [
{
"_name": "started_at",
"type": "time_reference",
"_blank_value": null,
"_default_value": null,
"_mustBeNonEmpty": false,
"_mustBeScalar": true,
"_mustNotHaveNaN": true,
"_queryable": true,
"_ontology": null,
"_documentation": "When the session started. Optional; leave null when start time is not recorded. Use referent_kind == 'unknown' to assert that the start time is intentionally not knowable rather than merely missing.",
"_constraints": {}
},
{
"_name": "ended_at",
"type": "time_reference",
"_blank_value": null,
"_default_value": null,
"_mustBeNonEmpty": false,
"_mustBeScalar": true,
"_mustNotHaveNaN": true,
"_queryable": true,
"_ontology": null,
"_documentation": "When the session ended. Same shape and conventions as started_at.",
"_constraints": {}
}
]
}
35 changes: 35 additions & 0 deletions schemas/V_gamma/subject_birth_event.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"_classname": "subject_birth_event",
"_class_version": "1.0.0",
"_maturity_level": "work_in_progress",
"_superclasses": [
{
"_classname": "base",
"_schema": "$NDISCHEMAPATH/base/schema.json"
}
],
"_depends_on": [
{
"_name": "subject_id",
"_mustBeNonEmpty": true,
"_documentation": "The subject document whose birth (or birth-equivalent origin) this document records. Cascading delete: when the subject tag document is deleted, this event is deleted too.",
"_must_refer_to_document_class": "subject"
}
],
"_file": [],
"_fields": [
{
"_name": "occurred_at",
"type": "time_reference",
"_blank_value": null,
"_default_value": null,
"_mustBeNonEmpty": true,
"_mustBeScalar": true,
"_mustNotHaveNaN": true,
"_queryable": true,
"_ontology": null,
"_documentation": "When the subject was born, expressed as a time_reference. For wild-caught animals or subjects without recorded DOB, use referent_kind == 'unknown'; for stage-only knowledge use referent_kind == 'ontology_stage' with a developmental-stage CURIE (e.g., 'mmusdv:0000037' postnatal stage). Document-kind references are unusual here but permitted (e.g., birth witnessed during another logged event).",
"_constraints": {}
}
]
}
21 changes: 20 additions & 1 deletion schemas/V_gamma/treatment.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"_classname": "treatment",
"_class_version": "2.0.0",
"_class_version": "2.1.0",
"_maturity_level": "work_in_progress",
"_superclasses": [
{
Expand All @@ -26,6 +26,12 @@
"_mustBeNonEmpty": false,
"_documentation": "The document ID of the protocol associated with this treatment.",
"_must_refer_to_document_class": ""
},
{
"_name": "administered_at_referent_id",
"_mustBeNonEmpty": false,
"_documentation": "Document whose start, end, or midpoint is the origin for administered_at. Required when administered_at.referent_kind == 'document'; left empty otherwise. Cascading delete: if the referenced document is deleted, this treatment document is deleted too.",
"_must_refer_to_document_class": ""
}
],
"_file": [],
Expand Down Expand Up @@ -68,6 +74,19 @@
"_ontology": null,
"_documentation": "The character string value associated with the treatment.",
"_constraints": {}
},
{
"_name": "administered_at",
"type": "time_reference",
"_blank_value": null,
"_default_value": null,
"_mustBeNonEmpty": false,
"_mustBeScalar": true,
"_mustNotHaveNaN": true,
"_queryable": true,
"_ontology": null,
"_documentation": "When the treatment was administered, expressed as a time_reference. Optional — leave null when administration time is not recorded. When referent_kind == 'document', depends_on_name must equal 'administered_at_referent_id'.",
"_constraints": {}
}
]
}
Loading
Loading