From 1fc8574f9d65f2b286908556baabe945d7a81366 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20M=C3=BCller-Laackman?= <jonas.mueller-laackman@fu-berlin.de> Date: Tue, 31 May 2022 16:40:03 +0200 Subject: [PATCH] add latest schema --- README.md | 254 +---------------------------------- SCHEMATA/project.schema.json | 64 ++++++++- TEMPLATES/project.json | 2 +- 3 files changed, 70 insertions(+), 250 deletions(-) diff --git a/README.md b/README.md index 3bce7d2..4b5bfeb 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [](#indexschema) -[](#projectsschema) +[](#projectsschema) [](#resourcesschema) # Closing the Gap in Non-Latin Script Data @@ -31,6 +31,12 @@ The schema underlies continuous development. Existing entries are going to be au Feel free to discuss the schema in the GitHub issues. +As for now, the easiest way to contribute to our database is to just send us your JSON file, so we can implement it to the store. + +### <a id="indexschema"></a>JSON Schema for Projects (`v0.1.5`) + +See `TEMPLATES/project.json` for a template and `SCHEMATA/project.schema.json` for a comprehensive schema of the latest version. + ### <a id="indexschema"></a>JSON Schema for Project Index / UUID Dictionary (`v0.1.1`) ```javascript @@ -44,249 +50,3 @@ Feel free to discuss the schema in the GitHub issues. ... } ``` - -### <a id="projectsschema"></a>JSON Schema for Projects (`v0.1.4`) - -The JSON-file is to be put in a folder with a simplified, machine-readable name of the project's title and added to the project-index. - -```javascript -{ - "schema_version": "0.1.4", - "record_metadata": { - // Universally Unique Identifier for each project - "uuid": "", - // YYYY-MM-DD - "record_created": "", - // Name of the record's creator: Surname, Forename - "record_created_by": "", - // Array of modifications - "record_modified": [ - { - // YYYY-MM-DD - "record_modified_on": "", - // Name of the record's last editor: Surname, Forename - "record_modified_by": "" - } - ] - }, - "project": { - // Official title of the project - "title": "", - // Abbreviation if applicable - "abbr": "", - // Type of the project: organisation | project - "type": "", - // Array of Authority file URIs - "ref": [ - "" - ], - // Array of active terms in format: YYYY-MM-DD - "date": [ - { - "from": "", - "to": "" - } - ], - // Array of project websites - "websites": [ - "" - ], - // Description of the project - "project_desc": "", - // Array of Locations - "places": [ - { - "place_name": { - // Name of the place - "text": "", - // Array of Authority file URIs - "ref": [ - "" - ] - } - } - ], - // Array of languages used in the project's presentation (website, flyer, ...) in ISO-639-2 - "lang": [ - "" - ], - "topic_relations": { - // If no information is available: null, otherwise: true | false - "nls": true, // Is the project related to Non-Latin Scripts? - "dh": true, // Is the project related to Digital Humanities? - "meta": true, // Is the project a meta project? - "rdm": true, // Is the project related to Research Data Management? - "infrastructure": true // Is the project related to infrastructure? - }, - "parents": [ - // For each parent-project - // 1. if organisation and no UUID is given: - { - "type": "organisation", - "org_name": { - // name of the organisation - "text": "", - // Array of Authority file URIs - "ref": [ - "" - ] - }, - // Array of Websites - "websites": [ - "" - ], - // Array of Locations - "places":[ - { - "place_name": { - // Name of the place - "text": "", - // Array of Authority file URIs - "ref": [ - "" - ] - } - } - ], - // __Optional__ notation for deeper relation hierarchies - "siblings": [], - "parents": [], - "children": [] - }, - // 2. if project and no UUID is given: - { - "type": "project", - // name of the project - "title": "", - // Array of Authority file URIs - "ref": [ - "" - ], - // Array of Websites - "websites": [ - "" - ], - // Array of Locations - "places":[ - { - "place_name": { - // Name of the place - "text": "", - // Array of Authority file URIs - "ref": [ - "" - ] - } - } - ], - // __Optional__ notation for deeper relation hierarchies - "siblings": [], - "parents": [], - "children": [] - }, - // 3. if project and has a UUID: - { - "type": "project", - // Official title of the project - "title": "", - // UUID of the project - "uuid": "" - }, - // 4. if organisation and has a UUID: - { - "type": "organisation", - "org_name": { - // name of the organisation - "text": "", - // Array of Authority file URIs - "ref": [ - "" - ] - }, - "uuid": "" - } - ], - // Children are handled the same way as parents - "children": [], - // Siblings (e.g. partner projects) are handled the same way as parents - "siblings": [], - // Array of relevant contacts - "contacts": [ - { - "pers_name": { - // Name of the contact - "text": "", - // Array of Authority file URIs - "ref": [ - "" - ] - }, - // Role of the contact: - // 0 = Management (e.g. PI, Coordinator, ...) - // 1 = Employee (e.g. Research Assistant, ...) - // 2 = Student Employee (e.g Student Assistant, ...) - // 3 = Contractor or Honorar staff - "role": 0, - // Array of institutional and/or personal websites - "websites": [ - "" - ] - } - ], - "research_data": { - // Array of languages of the research data in ISO-639-2 - "lang": [ - "" - ] - // More information on research data to be added in a later version - }, - // Stack: To be added in a later version - "stack": {}, - // Policies: To be added in a later version - "policies": {}, - // Array of keywords for the project, including all relevant languages in ISO-639-2 - "keywords": [ - "" - ], - // Comment on the entry, the project or field for any information that doesn't fit anywhere else - "comment": "" - } -} -``` - -### <a id="resourcesschema"></a>JSON Schema for Resources (`v0.1.1`) - -```javascript -{ - // Valid main values for parent entries in field "type" can be extended by colon notation, e.g. "language:query:xml". For children, main value may vary, e.g. "framework". - "type": "other|language|db|reference|authority|org|literature|journal", - // Title of entry. - "label": "", - // Link to documentation or website. - "ref": "", - // Comment or description. - "comment": "", - // Tags to describe the item and make it easier to find. Empty if none given, but it is highly advised to provide at least a couple of tags. - "tags": [ - "#tag", - ], - // __Optional__: Provide relation between frameworks and their languages. Array of Objects with the same schema as parent. - "frameworks": [], - // Credit for collecting. - "collected_by": { - // Name of collector. - "name": "", - // Reference link, e.g. URI or URL to website or Orcid-Profile. - "ref": "" - }, - // __Optional__: Credit for editing. - "edited_by": { - // Name of editor. - "name": "", - // Reference link, e.g. URI or URL to website or Orcid-Profile. - "ref": "" - } -} - -``` - diff --git a/SCHEMATA/project.schema.json b/SCHEMATA/project.schema.json index bdf04af..c5cbf77 100644 --- a/SCHEMATA/project.schema.json +++ b/SCHEMATA/project.schema.json @@ -13,7 +13,7 @@ "schema_version": { "description": "Version of the used JSON schema", "type": "string", - "default": "0.1.4" + "default": "0.1.5" }, "record_metadata": { "description": "Metadata of the record file", @@ -292,7 +292,67 @@ } }, "stack": { - "description": "To be added in a later version" + "type": "object", + "description": "Information on the stack used by the project", + "properties": { + "database": { + "type": "array", + "description": "List of database systems in use", + "items": { + "type": "string" + } + }, + "backend": { + "type": "array", + "description": "List of backend technologies in use", + "items": { + "type": "string" + } + }, + "frontend": { + "type": "array", + "description": "List of frontend technologies in use", + "items": { + "type": "string" + } + }, + "languages": { + "type": "array", + "description": "List of programming, script and descriptive languages in use", + "items": { + "type": "string" + } + }, + "tools": { + "type": "array", + "description": "List of tools that are used by the project", + "items": { + "type": "object", + "required": [ + "label", "self_developed", "ref" + ], + "properties": { + "label": { + "type": "string", + "description": "Name of the tool" + }, + "self_developed": { + "type": "boolean", + "description": "Is the tool developed by the project itself?" + }, + "ref": { + "type": "string", + "description": "Refs and URLs to the tool and codebase", + "$ref": "#/definitions/uri" + }, + "purpose": { + "type": "string", + "description": "Description of the purpose in the context of the project" + } + } + } + } + } }, "keywords": { "description": "List of keywords to describe the project, including all relevant languages in ISO-639-2", diff --git a/TEMPLATES/project.json b/TEMPLATES/project.json index 4955164..5d912cf 100644 --- a/TEMPLATES/project.json +++ b/TEMPLATES/project.json @@ -1,5 +1,5 @@ { - "schema_version": "0.1.3", + "schema_version": "0.1.5", "record_metadata": { "uuid": "", "record_created": "", -- GitLab