All Projects â†’ FIWARE â†’ Data Models

FIWARE / Data Models

Licence: mit
🔠 Code and specifications to support harmonized data models

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Data Models

Hodur Engine
Hodur is a domain modeling approach and collection of libraries to Clojure. By using Hodur you can define your domain model as data, parse and validate it, and then either consume your model via an API or use one of the many plugins to help you achieve mechanical results faster and in a purely functional manner.
Stars: ✭ 208 (+163.29%)
Mutual labels:  schema, data
godmt
Tool that can parse Go files into an abstract syntax tree and translate it to several programming languages.
Stars: ✭ 42 (-46.84%)
Mutual labels:  schema, models
Openfintech
Opensource FinTech standards & payment provider data
Stars: ✭ 87 (+10.13%)
Mutual labels:  standards, data
Join Monster Graphql Tools Adapter
Use Join Monster to fetch your data with Apollo Server.
Stars: ✭ 130 (+64.56%)
Mutual labels:  schema, data
Plank
A tool for generating immutable model objects
Stars: ✭ 449 (+468.35%)
Mutual labels:  schema, models
Data
Assorted data from the General Services Administration.
Stars: ✭ 1,777 (+2149.37%)
Mutual labels:  standards, data
felicity
Javascript object constructors and sample data based on Joi schema.
Stars: ✭ 107 (+35.44%)
Mutual labels:  schema, models
vue-example
Vue.js example application (server-side rendering, router, vuex store, form validation, i18n & l10n)
Stars: ✭ 62 (-21.52%)
Mutual labels:  schema, models
Mimesis
Mimesis is a high-performance fake data generator for Python, which provides data for a variety of purposes in a variety of languages.
Stars: ✭ 3,439 (+4253.16%)
Mutual labels:  schema, data
Typed Immutable
Immutable and structurally typed data
Stars: ✭ 263 (+232.91%)
Mutual labels:  schema, data
Mithril Data
A rich data model library for Mithril javascript framework
Stars: ✭ 17 (-78.48%)
Mutual labels:  schema, data
Awesome Streamlit
The purpose of this project is to share knowledge on how awesome Streamlit is and can be
Stars: ✭ 769 (+873.42%)
Mutual labels:  models, data
Joi2gql
Conversion of Joi schemas into GraphQL data types
Stars: ✭ 11 (-86.08%)
Mutual labels:  schema, models
Covid19
JSON time-series of coronavirus cases (confirmed, deaths and recovered) per country - updated daily
Stars: ✭ 1,177 (+1389.87%)
Mutual labels:  data
Autonomie
"Autonomie" is a highly semantic, responsive, accessible and search engine optimized WordPress Theme. It provides HTML5 templates refined with microformats, microformats v2 and microdata (Schema.org). "Autonomie" supports a lot of OpenWeb plugins and is fully IndieWeb compatible.
Stars: ✭ 73 (-7.59%)
Mutual labels:  schema
Cofx
A node and javascript library that helps developers describe side-effects as data in a declarative, flexible API.
Stars: ✭ 72 (-8.86%)
Mutual labels:  data
Startr
A template for data journalism in R
Stars: ✭ 69 (-12.66%)
Mutual labels:  data
Data
Extended implementation of ArrayObject - useful collection for any config in your system (write, read, store, change, validate, convert to other format and etc).
Stars: ✭ 77 (-2.53%)
Mutual labels:  data
Magicbox
A platform that uses real-time data to inform life-saving humanitarian responses to emergency situations
Stars: ✭ 73 (-7.59%)
Mutual labels:  data
Osom
An Awesome [/osom/] Object Data Modeling (Database Agnostic).
Stars: ✭ 68 (-13.92%)
Mutual labels:  schema

FIWARE Data Models

FIWARE Core Context Management License: MIT Support badge
Documentation Build badge

This repository is going to be archived (Jan-2020) and subsequent works will be carried out in [Smart data models] ([email protected]

This repository contains:

  • JSON Schemas and documentation on harmonized datamodels for different Smart Domains, particularly Smart Cities and Smart Agrifood.
  • code that allows to expose different harmonized datasets useful for different applications. Such datasets are currently exposed through the FIWARE NGSI version 2 and/or NGSI-LD APIs (query).

This work is aligned with the results of the GSMA IoT Big Data Project. Such project is working on the harmonization of APIs and data models for fueling IoT and Big Data Ecosystems. In fact the FIWARE data models are a superset of the GSMA Data Models.

Some of the Data Models in this Repository have been adopted by a joint initiative between TM Forum and FIWARE Foundation. For more info please check https://github.com/smart-data-models/dataModels

📚 Documentation

Data Models adoption

To support the adoption, we created a short guideline for the usage of data models. If you are using NGSI-LD, you should also check the NGSI-LD HowTo and the NGSI-LD FAQ.

JSON Schemas

A JSON Schema is provided for every harmonized data model. In the future all the documentation could be generated from a JSON Schema, as it is part of our roadmap. The different JSON Schemas usually depend on common JSON Schema definitions found at the root directory of this repository.

There are different online JSON Schema Validators, for instance: http://jsonschemalint.com/. For the development of these schemas the AJV JSON Schema Validator is being used. For using it just install it through npm:

    npm install ajv
    npm install ajv-cli

A validate.sh script is provided for convenience.

Note: JSON Schemas capture the name and data type of each Entity Attribute. For instance, this means that to test JSON schema examples with a FIWARE NGSI version 2 or NGSI-LD API implementation, you need to use the keyValues mode (options=keyValues).

How to contribute

Contributions should come in the form of pull requests.

Please note that some of the Data Models in this Repository have been adopted by a joint initiative between TM Forum and FIWARE Foundation. Pull Requests for those Data Models shall be done against the corresponding Repository at the https://github.com/smart-data-models/ Organization

New data models should be added under a folder structured as follows:

The name of the folder should match the Entity Type used in the JSON Schema (e.g. NewModel). For data models including more entities, a hierarchical folder should be used. The parent folder can include common JSON schemas shared among the entities. e.g.:

  • specs/
    • NewModel/
      • doc/
        • spec.md
      • README.md
      • newmodel-schema.json: the common schema for the different entities.
      • NewModelEntityOne/
        • doc/
          • spec.md
        • README.md
        • schema.json
        • example.json
        • example-normalized.json
        • example-normalized-ld.jsonld
      • NewModelEntityTwo/
        • doc/
          • spec.md
        • README.md
        • schema.json
        • example.json
        • example-normalized.json
        • example-normalized-ld.jsonld

To facilitate contributions and their validation, we developed a tool that is also used for the Continuous Integration of FIWARE Data Models. The FIWARE Data Model validator checks the adherence of each data model to the FIWARE Data Models guidelines.

For using it just install it through npm:

npm install -g fiware-model-validator

More details are available in the validator documentation.

Formatting and Text Correction

When creating a Pull Request, please ensure the files are properly formatted, the Husky should do this automatically on git commit, but the files can be manually formatted at any time using the prettier and prettier:text commands:

cd validator
npm i

# To format JavaScript files:
npm run prettier

# To format Markdown files:
npm run prettier:text

# To Auto-correct Markdown files:
npm run lint:text

To check for spelling mistakes and dead links in the text within the Data Model, run the text linter as shown:

npm test

Related Projects

See:


License

Code

MIT © 2019 FIWARE Foundation e.V.

License: MIT

All the code in this repository is licensed under the MIT License. However each original data source may have a different license. So before using harmonized data please check carefully each data license.

Models

License: CC BY 4.0

All the data models documented here are offered under a Creative Commons by Attribution 4.0 License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].