Entities have their own pages

In the context.jsonld of every subject there are long IRI for every first-level attribute and for the names of the entities. See this example.

formerly the link of the attributes took you to an existing web page while the links of the entities take you nowhere. Strictly there is not need to take anywhere, however, it would be useful to create such pages with basic information. Now there are also links to the entities’ pages, where a new page is being created. See this example.

Now all of them have their own page with these sections

  • Definition
  • Version
  • Original Schema
  • Contributors of the Subject
  • Adopters of the data model
  • Examples of the data model
  • Attributes of the entity
  • Required Attributes

See here the example for the data model Anomaly.

5 new data models from SAREF4Buildings

The new subject datamodel.S4BLDG is mapping the data models from SAREF for buildings 1.1.2.

Thanks to the contributors Grzegorz Wiszniewski and Jakob Bjørnskov t the project Twin4Build – A holistic Digital Twin platform for decision-making support over the whole building life cycle.

  • AudioVisualAppliance. An audio-visual appliance is a device that displays, captures, transmits, or receives audio or video. Audio-visual appliances may be fixed in place or may be able to be moved from one space to another. They may require an electrical supply supplied either by an electrical circuit or provided by a local battery source. Audio-visual appliances may be connected to data circuits including specialist circuits for audio-visual purposes only.

  • Boiler. A boiler is a closed, pressure-rated vessel in which water or other fluid is heated using an energy source such as natural gas, heating oil, or electricity. The fluid in the vessel is then circulated out of the boiler for use in various processes or heating applications.

  • Burner. A burner is a device that converts fuel into heat through combustion. It includes gas, oil, and wood burners.

  • Chiller. A chiller is a device used to remove heat from a liquid via a vapor-compression or absorption refrigeration cycle to cool a fluid, typically water or a mixture of water and glycol. The chilled fluid is then used to cool and dehumidify air in a building.

  • Coil. A coil is a device used to provide heat transfer between non-mixing media. A common example is a cooling coil, which utilizes a finned coil that circulates chilled water, antifreeze, or refrigerant that is used to remove heat from air moving across the coil’s surface. A coil may be used either for heating or cooling purposes by placing a series of tubes (the coil) carrying a heating or cooling fluid into an airstream. The coil may be constructed from tubes bundled in a serpentine form or finned tubes that give an extended heat transfer surface. Coils may also be used for non-airflow cases such as embedded in a floor slab.

Davidson Hall


New subject mapping saref 4 buildings and 3 new data models

There is a new subject datamodel.S4BLDG mapping the data models from SAREF for buildings 1.1.2.

Thanks to the contributors Grzegorz Wiszniewski and Jakob Bjørnskov t the project Twin4Build – A holistic Digital Twin platform for decision-making support over the whole building life cycle.

The original linked data descripton is also kept and a @context could be generated with the service home->tools -> map @context with external ontologies. In this video there is an explanation on how to do it.

For the moment 3 entities has been published but there are more on the queue

  • Actuator. An actuator is a mechanical device for moving or controlling a mechanism or system. An actuator takes energy, usually created by air, electricity, or liquid, and converts that into some kind of motion.

  • AirToAirHeatRecovery. An air-to-air heat recovery device employs a counter-flow heat exchanger between inbound and outbound air flow. It is typically used to transfer heat from warmer air in one chamber to cooler air in the second chamber (i.e., typically used to recover heat from the conditioned air being exhausted and the outside air being supplied to a building), resulting in energy savings from reduced heating (or cooling) requirements.

  • Alarm. An alarm is a device that signals the existence of a condition or situation that is outside the boundaries of normal expectation or that activates such a device. Alarms include the provision of break glass buttons and manual pull boxes that are used to activate alarms.

Illuminated roof of the skyscraper Millenia Tower at night in Singapore

MasterSheet for submission of simple data models

We have released a master sheet that simplifies the contribution to the smart data models.

It uploads the data model to a new repository called drafted.

The video help is also available

Steps for using the spreadsheet

0.- Make a local copy in your google account and grant permission the first time you use it (it warns you that it is not validated by google, true, but anyhow go to advance and grant the permissions

1.- Include your example in json key values

2.- Include the name of the data model, its title, the subject, and the description together with your email

3.,- Describe the attributes, their NGSI type, their data type, and the written description.

And click on the two buttons


updated common-schema.json

We have noticed an error in the description of the attribute location in the file common-schema.json, a file that is embedded in most of the data models. It does not affect the data types (so the validation of the schemas is not affected) but it affects the qualification of the NGSI type that it is not properly identified,

GeoProperty is written with capital middle P.

The file has been updated and soon it will be launched an update of all the data models affected.

pysmartdatamodels options in the tools menu

New options for pysmartdatamodels package. There are a new element in he tools menu to access the pysmartdatamodels package, its documentation, or a code example.

New service for customization of @context with official ontologies

Some of the data models available are generated according to some ontologies (like dataModels.OSLO). The @context provided for the subject includes IRIs with the smartdatamodels by default, however, the use of official ontologies can be required.

In order to allow this the file notes_context.jsonld was created and also included in the contribution manual (seection 1.5 slide 23).

Now the service for mapping the external ontologies (Home -> tools -> Mapper @context with external ontologies) can detect that instead of a regular configuration file a notes_context.jsonld is provided and applies the replacement of terms defined there.

It can be also used as an API call, in this link you have an example https://smartdatamodels.org/extra/create_external_referenced_context.php?localContext=https://raw.githubusercontent.com/smart-data-models/dataModel.OSLO/master/context.jsonld&configOntologies=https://raw.githubusercontent.com/smart-data-models/dataModel.OSLO/master/notes_context.jsonld

The structure of the notes_context.jsonld has to follow the template

  • {

“@context”: {

“Term1”: “uri_term_1”,

“Term2”: “uri_term_2”,



New version of pysmartdatamodels 0.5.41

There is a new version of the python package for smart data models  pysmartdatamodels 0.5.41


– The README include now the basic documentation of each function

  • New function to load in a dictionary all subjects and their data models, with their repository link, and related domains
  • New function to load in a dictionary all the attributes in every data model including  name of the property, data type, NGSI type, description, units, et

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()


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.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.print_datamodel(subject, dataModel, ",", ["property", "type", "dataModel", "repoName", "description", "typeNGSI", "modelTags", "format", "units", "model"]))

SQL export available for Postgresql

There is a new file ‘schema.sql‘ in all the directories of the data models. It is a SQL script for PostgreSQL.

The script creates the structure of a relational table containing the attributes defined in the data model. It also creates the data types for those attributes with an enumeration of values.

For those attributes being arrays or objects, it creates a JSON attribute (allowed in PostgreSQL).

If you need additional features in this export please report them to info@smartdatamodels.org.

See an example.

Postgresql elephant