State of the Candidates Repository: 29 Standards, 385 Data Models

This is just a summary for the participants of the FIWARE global summit 2026. See you there in Menton.

Smart Data Models’ Candidates repository has grown a lot over the past few weeks. This post is a single roundup of everything in it today: 29 source standards, translated into 385 NGSI-LD / NGSI-v2 candidate data models, each shipping the full Candidates artifact set — a JSON Schema, an NGSI-LD @context, and all four example serializations (NGSI-v2 and NGSI-LD, key-values and normalized), validated against its own schema.

Every one of these is a Candidate: a first, carefully-sourced translation from a real external ontology or specification, not yet promoted to an official Smart Data Models subject. Several carry known open items — license reconciliation, overlap checks against existing official subjects, or cross-standard naming collisions — noted in each standard’s own standard-metadata.yaml and summarized below where relevant.

When real use of the candidates is found then it will be come official smart data models in the usual repositories. WE are trying to help adoption of open standards but only when the standards are actually used.

By the numbers

Source standards translated 29
Candidate data models 385
Largest single standard Gaia-X Ontology (165 models)
Standards from the EDINT data space 20
Domains touched Smart Cities, Transportation, Energy, Environment, Cloud/Data Spaces, Cross-Sector Manufacturing, Building

The full list

Smart cities & urban infrastructure (EDINT data space)

The bulk of recent growth comes from systematically translating the EDINT (Espacio de Datos para las Infraestructuras Urbanas Inteligentes) family of ontologies — 20 standards covering nearly every domain a Spanish local government manages.

Standard Models What it covers
edint-infraestructura 19 Municipal facilities, sensors, observations, violations, traffic incidents, control/measuring equipment, regulated zones
edint-alumbrado-publico 12 Public street lighting: posts, luminaires, lamps, control centers, energy consumption
edint-trafico 7 Standalone traffic ontology: street sections, incidents, control/measuring equipment, observations
edint-vehiculos-compartidos 7 Shared-mobility vehicles, stations, docks, routes and waypoints
edint-catastro 6 The Spanish Cadastre: parcels, properties, constructions, references, renovations
edint-aparcamiento 5 On-street and off-street parking, fees, spots, spot groupings
edint-censo-locales 5 Commercial premises census: spaces, entities, permits, terraces, aggregations
edint-fotovoltaica 5 Photovoltaic systems, meters, generation observations, contracts, rates
edint-suministro 5 Utility supply points, meters, consumption, contracts, rates
edint-gestion-residuos 4 Waste collection points (mobile & permanent), containers, management facilities
edint-medio-ambiente 3 Generic environmental sensor platforms, sensors and observations
edint-censo-vehiculos 2 Vehicle registry and access/parking permits
edint-promocion-comercial 2 Commercial promotion campaigns and events
edint-servicios-publicos 2 Public services and their administrative procedures (CPSV-AP)
edint-agenda 1 City events published in municipal public agendas
edint-contaminacion-acustica 1 Noise pollution observations
edint-oferta-inmobiliaria 1 Real estate listings (sale, rent, transfer)
edint-organizaciones 1 Spanish public administration organizations and org charts
edint-zona-regulatoria 1 Regulated zones (low-emission, parking, pedestrian, historical center, …)
edint-turismo 11 SEGITTUR’s Core Tourism Ontology: accommodation, historical/cultural resources

Cross-sector & building

Standard Models What it covers
cityjson-v2 33 All 33 CityJSON v2.0.2 City Object types: buildings, bridges, tunnels, transportation, vegetation, water, land use
brick-schema 10 Building automation/IoT metadata: points, equipment, and their relationships
gaiax-ontology-v2111 165 Gaia-X Trust Framework: cloud/infrastructure offerings, connectivity metrics, legal/compliance/credential vocabulary
untp-v0.8.0 2 UN Transparency Protocol Digital Product Passport and Product

Transportation

Standard Models What it covers
era-rinf 38 ERA Register of Infrastructure: EU rail network topology, tracks, signalling, electrification
era-evr 14 ERA European Vehicle Register: individual authorised rail vehicles
era-eradis 14 ERA document/certification register
era-eratv 8 ERA European Register of Authorised Vehicle Types
madrid-accidentes-trafico 1 Madrid City traffic accident records

A few things worth knowing before you build on these

  • License status varies. Most EDINT candidates are CC-BY-4.0 (matching Smart Data Models’ own convention); a handful of others (edint-infraestructura, edint-turismo, edint-zona-regulatoria) are CC-BY-SA-4.0 from their source and haven’t been reconciled yet. madrid-accidentes-trafico‘s license isn’t stated in its source at all. Check each standard’s licenseNote before using it beyond evaluation.
  • A few entity names collide across standards. Because several EDINT ontologies independently reference the same real-world concepts (a regulated zone, a vehicle, a parking facility, an organization, a cadastral property, a “permit”), more than one candidate defines an NGSI-LD type with the same name but a different property set. Each collision is documented in the relevant standard-metadata.yaml — most likely resolution is consolidating on the fuller, more authoritative definition once these move past Candidate status.
  • Every translation favors real, sourced data over invented examples wherever the original specification provided any — actual open datasets, published sample instances, or real government records, not synthetic placeholders, whenever available.

Browse, and tell us what’s missing

👉 smart-data-models/Candidates

Each standard’s directory under standards/ has its own standard-metadata.yaml with full translation notes, scope decisions, and known caveats. Open an issue or send a PR if you spot something worth fixing before promotion.

Change of VPS

Due to the change in the Virtual Private Server in which the site is running some of the backend services in the tools menu are suffering issues.

Please report them to alberto.abella@fiware.org

New version of pysmartdatamodels package 0.7.2

The changes in this new version are:

  • Including a new function to find the subject based on the data model name (In example when in a payload only is available the entity type)
  • for this function to be shown it has to be included a function to load the content open_jsonref
  • Extending the README.md

It also has an updated version of all data models (but you can get this also by running the function sdm.update_data() with the old versions)

The source code for the new version 0.7.2 is here at the data-models repository

 

 

New version of the spreadsheet for drafting data models

You can see in the main page an image like the one below.

It takes you to a google spreadsheet where you can draft simple data models even without knowledge of json schema.

Json schema is the format that stores the master description of the data models in the Smart Data Models.

Now there are two additional tabs, ADOPTERS.yaml and notes.yaml which helps you to fill those files which are mandatory to be present but empty if you do not want to disclose your use case or you do not need to add additional explanations about the submitted data model.

Note: if you want to use the spreadsheet you need to:

– Create a local copy in your google account

– Allow the scripts to be executed

– Fill the yellow cells and click on the buttons

Feedback is always welcomed at info@smartdatamodels.org

New test service for contributors. Strongly recommended before contributing a data model.

There is a new service for simplifying the testing of a contribution to a data model.

The new service will check it, just by providing the link to the root of the folder in an publicly accessible repository

  • That the schema.json is
    • Present in the right position
    • It is a valid json and it has the right structure (types and descriptions)
    • It has the right metadata, and the required section
    • External references are valid
    • The descriptions are included
  • That the examples are:
    • Present in the right position
    • Key values are validated by the schema
  • Notes.yaml and ADOPTERS.yaml are present in the right position

all the files (mandatory ones like schema and examples) and the optional (notes.yaml, ADOPTERS.yaml)

There is a specific page for this test in the contribution manual

Extended context.jsonld in all data models

Every subject — a group of data models — has a file named contex.jsonld at their root.

This file contains the @context with automatically generated IRI for the terms used in the data model.

The Entity types are also available in this file with their long IRI.  In the pointed example are the entries for “SeaConditions”, “WeatherAlert”, “WeatherForecast”, and “WeatherObserved”

Remember that if you want to use other IRI coming, for example, from existing ontologies you can use the service on the Home -> Tools -> Mapper @context with external ontologies

The data models available for python developers. pysmartdatamodels 0.5.40 published. Beta version.

Now you can find in pypi.org the python package pysmartdatamodels with 13 functions for the integrators of the data models (more than 800) in external systems and applications. It is a beta version. There is a function, update_data() that whenever is run, it updates the data models to the last version (including adding the new data models). The code is available at the utils directory.
This python package includes all the data models and several functions (listed below) to use in your developments.

If you want to be updated on this package you can join this mailing list (Announcements are sent only when something relevant happens). We love to get your feedback at info@smartdatamodels.org

There are several online tools to manage and to create the data models, generate examples or to adapt to existing ontologies. See the tools menu option at the home site.

Functions available include:

1- List all data models. Function list_all_datamodels()
2- List all subjects. Function list_all_subjects()
3- List the data models of a subject. Function datamodels_subject(subject)
4- List description of an attribute. Function description_attribute(subject, datamodel, attribute)
5- List data-type of an attribute. Function datatype_attribute(subject, datamodel, attribute)
6- Give reference model for an attribute. Function model_attribute(subject, datamodel, attribute)
7- Give reference units for an attribute. Function attributes_datamodel(subject, datamodel)
8- List the attributes of a data model. Function attributes_datamodel(subject, datamodel)
9- List the NGSI type (Property, Relationship or Geoproperty) of the attribute. Function ngsi_datatype_attribute(subject, datamodel, attribute)
10- Print a list of data models attributes separated by a separator. Function print_datamodel(subject, datamodel, separator, meta_attributes)
11- Returns the link to the repository of a subject. Function subject_repolink(subject)
12- Returns the links to the repositories of a data model name. Function datamodel_repolink(datamodel)
13- Update the official data model list or the database of attributes from the source. Function update_data()

Roadmap

1.- Create a proper documentation

2.- Function to allow submission of improvements (i.e. missing recommended units or model) and comments to the different data models. Currently, you can do it by searching for your data model here
https://smartdatamodels.org/index.php/list-of-data-models-3/ visiting the github repo and making your PR or raising your issues there.
3.- Function to submit a new data model to an incubation repository. Currently, this is done manually incubated repository. By filling this form you are granted to contribute with new data models.
4.- Include new functions like search for the subject of a data model or other that you can suggest to us at info@smartdatamodels.org

### some example code
from pysmartdatamodels import pysmartdatamodels as sdm
subject = "dataModel.Weather"
dataModel = "WeatherForecast"
attribute = "precipitation"
print(sdm.list_all_datamodels())
print(sdm.list_all_subjects())
print(sdm.datamodels_subject("dataModel.Weather"))
print(sdm.description_attribute(subject, dataModel, attribute))
print(sdm.datatype_attribute(subject, dataModel, attribute))
print(sdm.model_attribute(subject, dataModel, attribute))
print(sdm.units_attribute(subject, dataModel, attribute))
print(sdm.attributes_datamodel(subject, dataModel))
print(sdm.subject_repolink(subject))
print(sdm.datamodel_repolink(dataModel))
print(sdm.print_datamodel(subject, dataModel, ",", ["property", "type", "dataModel", "repoName", "description", "typeNGSI", "modelTags", "format", "units", "model"]))
sdm.update_data()

Release the script for subjects’ context consolidation.

The utils directory at the data models compiles some scripts we use internally.

Now you have available a script for consolidating several @contexts from several subjects.

It is the script called by the main menu options Home->tools -> Subjects’ @context merger

the help of the script

# This file takes several @contexts and merges them creating two files
# context.jsonld with the elements successfully merged
# and conflicts.json that shows those attributes clashing.
# clashing in conflicts file has to be solved manually
# INPUT PARAMETERS (merge_subjects_context.json, outputToFile)
# parameter merge_subjects_context.json
# it is the full path to a file where the path to the @contexts will be located
# See an example of the file below
# If not provided it merges all subjects in the smart data models program
# {
# “dataModel.Weather”: “https://raw.githubusercontent.com/smart-data-models/dataModel.Weather/master/context.jsonld”,
# “dataModel.Battery”: “https://raw.githubusercontent.com/smart-data-models/dataModel.Battery/master/context.jsonld”,
# “dataModel.Building”: “https://raw.githubusercontent.com/smart-data-models/dataModel.Building/master/context.jsonld”,
# “dataModel.Device”: “https://raw.githubusercontent.com/smart-data-models/dataModel.Device/master/context.jsonld”,
# }
# parameter ouputToFile
# when True it outputs two files conflicts.json and context.jsonld
# conflicts.json stores the conflict in the name of attributes (to be solved manually)
# context.jsonld has the attribute name and the Smart Data Models local IRI