Skip to content

Commit

Permalink
Merge pull request #105 from OpenEnergyPlatform/feature/draft_updated…
Browse files Browse the repository at this point in the history
…_oem_ressourse_and_datapackge

Initiate development of oemetadata v2.0.0 and introduction of new tools
  • Loading branch information
jh-RLI authored Jul 16, 2024
2 parents 031bfb9 + 2927dd2 commit cc67bc1
Show file tree
Hide file tree
Showing 48 changed files with 7,766 additions and 4 deletions.
30 changes: 27 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,22 @@ Here is a template for new release sections

### Added

- Added oemetadata version 2.0.0: [#???](https://github.com/OpenEnergyPlatform/oemetadata/pull/)
- This includes restructured oemetadata: We now store metadata for each resource that is described in the oemetdata. A resource describes a files (CSV) or database table. Before it was not possible to add metadata to each resource. This change also alines the oemetadata specification with the requirements form frictionless datapackage v1.

- Introduce a schema build system: [#???](https://github.com/OpenEnergyPlatform/oemetadata/pull/)
- The build files (schema & script) are maintained for each version (starting form v1.6.0) within the new directory called "metadata/v200/build_source"
- The schema is rather long and complex. We split the long schema.json into modules. The modules are assembled in a json file that specifies the structure of the final schema.json and it is called schema_structure.json.
- We use json schema $ref elements to reference the schema modules and we provide code to resolve the reference´s and generate the complete schema.json.

- Add code to generate a example.json based on the schema.json. We read the example values for each of the fields specified in the schema and generate the example. [#???](https://github.com/OpenEnergyPlatform/oemetadata/pull/)

### Changed

- Remove comment field as it holds information on how to fill out the metadata and therefore should not be part of the actual oemetadata but the documentation. [#???](https://github.com/OpenEnergyPlatform/oemetadata/pull/)

### Removed

-

## [1.6.0] - Release - Introduce badges in json schema - 2023-05-30
Expand All @@ -44,11 +57,13 @@ Here is a template for new release sections
- Add CITATION.cff with list of authors [(#111)](https://github.com/OpenEnergyPlatform/oemetadata/pull/111)

### Changed

- Separate examples from descripton and put into its own key-value pair [PR#117]
- Add issue and PR templates [(#116)](https://github.com/OpenEnergyPlatform/oemetadata/pull/116)
- Update context field [PR#114]

### Removed

-

## [1.5.2] - Release - Fix missing json files in pypi package, Improve context.jsonld - 2022-11-18
Expand All @@ -59,18 +74,21 @@ Here is a template for new release sections
### Added

### Changed

- Update context.json in latest & v151 to ensure ontologically annotated metadata can be sparqled #99

## [1.5.1] - Release - Ontology-Ready - 2022-02-21

### Added

- Use [GitHub projects](https://github.com/OpenEnergyPlatform/oemetadata/projects) to organise releases
- Add new example table to show connection to OEO
- Add test for latest directory to CI [PR#74]
- Add tests for v151 [PR#81]
- Add release version directory for oem-v151

### Changed

- Update ``subject`` to work with OEO
- Rename and update ``isAbout`` to work with OEO
- Rename and update ``valueReference`` to work with OEO
Expand All @@ -82,35 +100,41 @@ Here is a template for new release sections
## [1.5.0] - Release - Get Some Semantics - 2021-11-18

### Added

- Add keys for linked data compatibility: ``@context``, ``@id``, ``subject``, ``is_about``, ``value_reference``
- Add context.json file
- Add context.json file
- Add licence information to README.md

### Changed

- Clarify instructions for dealing with non-applicable keys (null) and missing values ("todo")
- Make key 13.2 ``timeseries`` a list
- Relocate development information from README.md to CONTRIBUTING.md
- Relocate development information from README.md to CONTRIBUTING.md
- Update all .json files to v1.5.0
- Reintroduce automated tests (CI) by switching form travis-ci to github actions [PR#63]
- Updated schema.json for v1.5.0 now includes the new key ``title`` which describes the title of the curent field [PR#56] adapted from [PR#43]

### Removed

- Delete future directory

## [1.4.1] Minor Release - Repo Upgrade - 2021-01-18

### Added

- Add directory for v1.4.1
- Add tests for v1.4.1
- Add current section to Changelog, documenting all changes in current branch and stage for release
- Extend black options, COMMAND tox -v now shows exactly what code must be reformatted

### Changed

- Rename repository from "metadata" to "oemetadata"

## [1.4.0] Release - It'll be a standard - 2021-01-11

### Added

- Add ``timeseries`` to ``temporal``
- Add ``context`` object for project information
- Add ``object`` to ``contributors`` to decide between data and metadata
Expand All @@ -126,6 +150,7 @@ Here is a template for new release sections
- Add ``_comment``

### Changed

- Rename ``url`` to ``path`` according to datapackage standard

## [1.0.1] Initial Release - Hello OEMetadata - 2019-11-07
Expand All @@ -137,4 +162,3 @@ Here is a template for new release sections
- Python implementation and tests for schema, example, template of v1.3.0
- Python implementation and tests for schema, example, template of v1.4.0
- Implementation of metaschema (draft07) and test of metaschema

42 changes: 42 additions & 0 deletions metadata/latest/build_source/main_schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://raw.githubusercontent.com/OpenEnergyPlatform/oemetadata/master/oemetadata/latest/schema.json",
"description": "Open Energy Plaftorm (OEP) metadata schema latest",
"type": "object",
"properties": {
"jsonLd": {
"$ref": "json_ld.json#"
},
"general": {
"$ref": "general.json#"
},
"context": {
"$ref": "context.json#"
},
"spatial": {
"$ref": "spatial.json#"
},
"temporal": {
"$ref": "temporal.json#"
},
"sources": {
"$ref": "sources.json#"
},
"licenses": {
"$ref": "licences.json#"
},
"contribution": {
"$ref": "contribution.json#"
},
"resources": {
"$ref": "resources.json#"
},
"review": {
"$ref": "review.json#"
},
"meta": {
"$ref": "meta.json#"
}
},
"additionalProperties": true
}
100 changes: 100 additions & 0 deletions metadata/latest/build_source/schemas/context.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "general.json#metadata/v200_draft/schemas/context.json",
"type": "object",
"properties": {
"context": {
"description": "An Object that describes the general setting, evironment or project leading to the creation or maintenance of this dataset. In science this can be the research project.",
"type": "object",
"properties": {
"homepage": {
"description": "URL of project.",
"example": "https://openenergy-platform.org/",
"type": [
"string",
"null"
],
"badge": "Gold",
"title": "Homepage",
"format": "uri"
},
"documentation": {
"description": "A URL of the project's documentation.",
"example": "https://openenergy-platform.org/about/",
"type": [
"string",
"null"
],
"badge": "Gold",
"title": "Documentation"
},
"sourceCode": {
"description": "A URL of the projects source code.",
"example": "https://github.com/OpenEnergyPlatform",
"type": [
"string",
"null"
],
"badge": "Gold",
"title": "Source Code"
},
"contact": {
"description": "A reference to the creator or maintainer of the data set. This can be an email address or a GitHub handle.",
"example": "[email protected]",
"type": [
"string",
"null"
],
"badge": "Gold",
"title": "E-Mail Contact",
"format": "email"
},
"grantNo": {
"description": "An identifying grant number. In case of a publicly funded project, this number is assigned by the funding agency.",
"example": "01AB2345",
"type": [
"string",
"null"
],
"badge": "Gold",
"title": "Grant no"
},
"fundingAgency": {
"description": "In a funded project this is the funding agency, which can be a governmental or a company.",
"example": "Bundesministerium für Wirtschaft und Klimaschutz",
"type": [
"string",
"null"
],
"badge": "Gold",
"title": "Funding agency"
},
"fundingAgencyLogo": {
"description": "A URL to the logo or image of the funding agency.",
"example": "https://commons.wikimedia.org/wiki/File:BMWi_Logo_2021.svg#/media/File:BMWi_Logo_2021.svg",
"type": [
"string",
"null"
],
"badge": "Gold",
"title": "Funding agency logo",
"format": "uri"
},
"publisherLogo": {
"description": "A URL to the logo of the agency publishing the data.",
"example": "https://reiner-lemoine-institut.de//wp-content/uploads/2015/09/rlilogo.png",
"type": [
"string",
"null"
],
"badge": "Gold",
"title": "Publisher logo",
"format": "uri"
}
},
"badge": "Gold",
"title": "Context",
"additionalProperties": false
}
}
}
74 changes: 74 additions & 0 deletions metadata/latest/build_source/schemas/contribution.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "general.json#metadata/v200_draft/schemas/contribution.json",
"type": "object",
"properties": {
"contributors": {
"description": "The people or organizations who contributed to this data package. List of objects.",
"type": "array",
"items": {
"description": "A person or organizations who contributed to this data package. Each object refers to one contributor. Every contributor must have a title and property. A path, email, role and organization properties are optional extras.",
"type": "object",
"properties": {
"title": {
"description": "Name/title of the contributor (name for a person, name or title for an organization).",
"example": "John Doe",
"type": [
"string",
"null"
],
"badge": "Bronze",
"title": "Title"
},
"email": {
"description": "E-mail address of the contributor.",
"example": "[email protected]",
"type": [
"string",
"null"
],
"badge": "Bronze",
"title": "Email",
"format": "email"
},
"date": {
"description": "Date of the contribution. If the contribution took more than a day, use the date of the final contribiution. Date Format is ISO 8601.",
"example": "2016-06-16",
"type": [
"string",
"null"
],
"badge": "Bronze",
"title": "Date",
"format": "date"
},
"object": {
"description": "Target of contribution. Which part of the package was supplied/changed.",
"example": "data and metadata",
"type": [
"string",
"null"
],
"badge": "Bronze",
"title": "Object"
},
"comment": {
"description": "Free text comment on what has been done.",
"example": "Fix typo in the title.",
"type": [
"string",
"null"
],
"badge": "Bronze",
"title": "Comment"
}
},
"badge": "Bronze",
"title": "Contributors",
"additionalProperties": false
},
"badge": "Bronze",
"title": "Contributors"
}
}
}
Loading

0 comments on commit cc67bc1

Please sign in to comment.