From d6ab23eb850bb8631c5ff374898c970257b642aa Mon Sep 17 00:00:00 2001 From: "schneck@cnri.reston.va.us" Date: Wed, 20 May 2015 10:42:38 -0400 Subject: [PATCH] Added ISO 11179 JSON schemas used in CNRI type registry prototype --- iso_11179_json_schemas/README.md | 4 + iso_11179_json_schemas/concept.schema.json | 79 ++++++++++++++++ .../dataElement.schema.json | 89 ++++++++++++++++++ .../dataElementConcept.schema.json | 89 ++++++++++++++++++ .../objectClass.schema.json | 58 ++++++++++++ iso_11179_json_schemas/property.schema.json | 59 ++++++++++++ .../valueDomain.schema.json | 92 +++++++++++++++++++ .../valueMeaning.schema.json | 39 ++++++++ 8 files changed, 509 insertions(+) create mode 100644 iso_11179_json_schemas/README.md create mode 100644 iso_11179_json_schemas/concept.schema.json create mode 100644 iso_11179_json_schemas/dataElement.schema.json create mode 100644 iso_11179_json_schemas/dataElementConcept.schema.json create mode 100644 iso_11179_json_schemas/objectClass.schema.json create mode 100644 iso_11179_json_schemas/property.schema.json create mode 100644 iso_11179_json_schemas/valueDomain.schema.json create mode 100644 iso_11179_json_schemas/valueMeaning.schema.json diff --git a/iso_11179_json_schemas/README.md b/iso_11179_json_schemas/README.md new file mode 100644 index 0000000..05a0da6 --- /dev/null +++ b/iso_11179_json_schemas/README.md @@ -0,0 +1,4 @@ +# ISO 11179 JSON Schemas + +Prototype JSON schemas for ISO 11179 objects. Thanks to Gramm +Richardson and Denise Warzel. diff --git a/iso_11179_json_schemas/concept.schema.json b/iso_11179_json_schemas/concept.schema.json new file mode 100644 index 0000000..1eb9780 --- /dev/null +++ b/iso_11179_json_schemas/concept.schema.json @@ -0,0 +1,79 @@ +{ + "type": "object", + "title": "Concept", + "required": [ + "name", + "description" + ], + "properties": { + "identifier": { + "type": "string", + "net.cnri.repository": { + "type": { + "autoGeneratedField": "handle" + } + } + }, + "name": { + "type": "string", + "title": "Name", + "net.cnri.repository": { + "preview": { + "showInPreview": true, + "isPrimary": true + } + } + }, + "description": { + "type": "string", + "format": "textarea", + "title": "Description", + "net.cnri.repository": { + "preview": { + "showInPreview": true, + "excludeTitle": true + } + } + }, + "relationships": { + "title": "Relationships", + "type": "array", + "items": { + "type": "object", + "title": "Relationship", + "properties": { + "concept-reference": { + "type": "string", + "net.cnri.repository": { + "type": { + "handleReference": { + "types": [ + "concept" + ], + "name": "{{../relationship-type}}" + } + } + } + }, + "relationship-type": { + "type": "string", + "net.cnri.repository": { + "type": { + "suggestedVocabulary": [ + "narrower", + "broader", + "related", + "narrowMatch", + "broadMatch", + "relatedMatch", + "closeMatch", + "exactMatch" + ] + } + } + } + } + } + } + } +} diff --git a/iso_11179_json_schemas/dataElement.schema.json b/iso_11179_json_schemas/dataElement.schema.json new file mode 100644 index 0000000..fa856a3 --- /dev/null +++ b/iso_11179_json_schemas/dataElement.schema.json @@ -0,0 +1,89 @@ +{ + "title": "Data Element", + "description": "A Data_Element is considered to be a basic unit of data of interest to an organization. It is a unit of data for which the definition, identification, representation, and permissible values are specified by means of a set of attributes.", + "type": "object", + "required": [ + "identifier", + "name", + "description", + "Data_Element_Concept", + "Value_Domain" + ], + "properties": { + "identifier": { + "type": "string", + "net.cnri.repository": { + "type": { + "autoGeneratedField": "handle" + } + } + }, + "name": { + "type": "string", + "title": "Name", + "net.cnri.repository": { + "preview": { + "showInPreview": true, + "isPrimary": true + } + } + }, + "description": { + "type": "string", + "format": "textarea", + "title": "Description", + "net.cnri.repository": { + "preview": { + "showInPreview": true, + "excludeTitle": true + } + } + }, + "Data_Element_Concept": { + "title": "Data Element Concept", + "description": "A data element concept is an abstraction of one or more data elements. Each data element addresses issues of concrete representation, e.g., codes, measurement units, etc. A data element concept may be represented by multiple data elements, which may vary in their value domains.", + "type": "string", + "net.cnri.repository": { + "type": { + "handleReference": { + "types": [ + "dataElementConcept", + "property" + ] + } + } + } + }, + "Value_Domain": { + "title": "Value Domain", + "description": "A value domain is a set of permissible values. A value domain provides representation, but has no implication as to the data element concept with which the values are associated, nor what the values mean.", + "type": "string", + "net.cnri.repository": { + "type": { + "handleReference": { + "types": [ + "valueDomain" + ] + } + } + } + }, + "relationships": { + "title": "Related Data Elements", + "type": "array", + "items": { + "type": "string", + "title": "Relationship", + "net.cnri.repository": { + "type": { + "handleReference": { + "types": [ + "dataElement" + ] + } + } + } + } + } + } +} diff --git a/iso_11179_json_schemas/dataElementConcept.schema.json b/iso_11179_json_schemas/dataElementConcept.schema.json new file mode 100644 index 0000000..4b892c7 --- /dev/null +++ b/iso_11179_json_schemas/dataElementConcept.schema.json @@ -0,0 +1,89 @@ +{ + "type": "object", + "title": "Data Element Concept", + "description": "A data element concept is an abstraction of one or more data elements. Each data element addresses issues of concrete representation, e.g., codes, measurement units, etc. A data element concept may be represented by multiple data elements, which may vary in their value domains.", + "required": [ + "identifier", + "name", + "description" + ], + "properties": { + "identifier": { + "type": "string", + "net.cnri.repository": { + "type": { + "autoGeneratedField": "handle" + } + } + }, + "name": { + "type": "string", + "title": "Name", + "net.cnri.repository": { + "preview": { + "showInPreview": true, + "isPrimary": true + } + } + }, + "description": { + "type": "string", + "format": "textarea", + "title": "Description", + "net.cnri.repository": { + "preview": { + "showInPreview": true, + "excludeTitle": true + } + } + }, + "Object_Class": { + "type": "string", + "net.cnri.repository": { + "type": { + "handleReference": { + "types": [ + "objectClass", + "property" + ] + } + } + } + }, + "Property": { + "type": "string", + "net.cnri.repository": { + "type": { + "handleReference": { + "types": [ + "property" + ] + } + } + } + }, + "Representation": { + "title": "Representation", + "type": "object", + "properties": { + "Representation_Qualifiers": { + "title": "Representation Qualifiers", + "type": "array", + "items": { + "title": "Qualifier", + "type": "string", + "net.cnri.repository": { + "type": { + "handleReference": { + "types": [ + "concept" + ] + } + } + } + } + } + } + } + } +} diff --git a/iso_11179_json_schemas/objectClass.schema.json b/iso_11179_json_schemas/objectClass.schema.json new file mode 100644 index 0000000..da72b21 --- /dev/null +++ b/iso_11179_json_schemas/objectClass.schema.json @@ -0,0 +1,58 @@ +{ + "type": "object", + "title": "Object Class", + "description": "An object class is a concept that represents a set of ideas, abstractions, or things in the real world that can be identified with explicit boundaries and meaning and whose properties and behavior follow the same rules.", + "required": [ + "identifier", + "name", + "description" + ], + "properties": { + "identifier": { + "type": "string", + "net.cnri.repository": { + "type": { + "autoGeneratedField": "handle" + } + } + }, + "name": { + "type": "string", + "title": "Name", + "net.cnri.repository": { + "preview": { + "showInPreview": true, + "isPrimary": true + } + } + }, + "description": { + "type": "string", + "format": "textarea", + "title": "Description", + "net.cnri.repository": { + "preview": { + "showInPreview": true, + "excludeTitle": true + } + } + }, + "Object_Class_Concepts": { + "title": "Object Class Concepts", + "type": "array", + "items": { + "title": "Concept", + "type": "string", + "net.cnri.repository": { + "type": { + "handleReference": { + "types": [ + "concept" + ] + } + } + } + } + } + } +} diff --git a/iso_11179_json_schemas/property.schema.json b/iso_11179_json_schemas/property.schema.json new file mode 100644 index 0000000..592d010 --- /dev/null +++ b/iso_11179_json_schemas/property.schema.json @@ -0,0 +1,59 @@ +{ + "type": "object", + "title": "Property", + "description": "A property may be any feature that humans naturally use to distinguish one individual object from another. It is the human perception of a single quality of an object class in the real world.", + "required": [ + "identifier", + "name", + "description" + ], + "properties": { + "identifier": { + "type": "string", + "net.cnri.repository": { + "type": { + "autoGeneratedField": "handle" + } + } + }, + "name": { + "type": "string", + "title": "Name", + "net.cnri.repository": { + "preview": { + "showInPreview": true, + "isPrimary": true + } + } + }, + "description": { + "type": "string", + "format": "textarea", + "title": "Description", + "net.cnri.repository": { + "preview": { + "showInPreview": true, + "excludeTitle": true + } + } + }, + "Property_Qualifiers": { + "title": "Property Concepts", + "type": "array", + "items": { + "title": "Concept", + "type": "string", + "net.cnri.repository": { + "type": { + "handleReference": { + "types": [ + "concept", + "objectClass" + ] + } + } + } + } + } + } +} diff --git a/iso_11179_json_schemas/valueDomain.schema.json b/iso_11179_json_schemas/valueDomain.schema.json new file mode 100644 index 0000000..b5329cd --- /dev/null +++ b/iso_11179_json_schemas/valueDomain.schema.json @@ -0,0 +1,92 @@ +{ + "type": "object", + "title": "Value Domain", + "description": "A value domain is a set of permissible values. A value domain provides representation, but has no implication as to the data element concept with which the values are associated, nor what the values mean.", + "required": [ + "identifier", + "name", + "description", + "datatype" + ], + "properties": { + "identifier": { + "type": "string", + "net.cnri.repository": { + "type": { + "autoGeneratedField": "handle" + } + } + }, + "name": { + "type": "string", + "title": "Name", + "net.cnri.repository": { + "preview": { + "showInPreview": true, + "isPrimary": true + } + } + }, + "description": { + "type": "string", + "format": "textarea", + "title": "Description", + "net.cnri.repository": { + "preview": { + "showInPreview": true, + "excludeTitle": true + } + } + }, + "datatype": { + "type": "string" + }, + "maximum_character_quantity": { + "type": "number" + }, + "unit_of_measure": { + "type": "string" + }, + "permissible_value_set": { + "title": "Permissible Value Set", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "title": "Permissible Value", + "description": "A Permissible_Value is an expression of a Value_Meaning within zero or more Enumerated_Value_Domains.", + "type": "object", + "required": [ + "permitted_value", + "begin_date", + "Value_Meaning" + ], + "properties": { + "permitted_value": { + "type": "string" + }, + "begin_date": { + "type": "string", + "format": "date-time" + }, + "end_date": { + "type": "string", + "format": "date-time" + }, + "Value_Meaning": { + "type": "string", + "commented--net.cnri.repository": { + "type": { + "handleReference": { + "types": [ + "valueMeaning" + ] + } + } + } + } + } + } + } + } +} diff --git a/iso_11179_json_schemas/valueMeaning.schema.json b/iso_11179_json_schemas/valueMeaning.schema.json new file mode 100644 index 0000000..9578b7d --- /dev/null +++ b/iso_11179_json_schemas/valueMeaning.schema.json @@ -0,0 +1,39 @@ +{ + "type": "object", + "title": "Value Meaning", + "required": [ + "name", + "description" + ], + "properties": { + "identifier": { + "type": "string", + "net.cnri.repository": { + "type": { + "autoGeneratedField": "handle" + } + } + }, + "name": { + "type": "string", + "title": "Name", + "net.cnri.repository": { + "preview": { + "showInPreview": true, + "isPrimary": true + } + } + }, + "description": { + "type": "string", + "format": "textarea", + "title": "Description", + "net.cnri.repository": { + "preview": { + "showInPreview": true, + "excludeTitle": true + } + } + } + } +}