New option for drafting a data model

In the front page, there is a new option that allows you top to directly create a copy of the template sheet for creating new data models.

Remember that this spreadsheet is done for those unfamiliar with json schema (the official format for the smart data models) to allow them to create a new data model from their knowlege.

The use instructions are in the spreadsheet

Any doubt please let us know at


Updated context.jsonld

The context.jsonld for smart data models has been updated to meet json ld requirements. Now they are implementing geojson requirements.
It affects the terms of bbox and coordinates. It could impact those elements having a geoproperty (most of the data models).

Create your data model with a google spreadsheet


This post became obsolete, go for the new master sheet


This is a resource, especially for those who have limited knowledge of JSON schema.

If you want to create a basic version of a data model (not all JSON schema is implemented), you can use a copy of this spreadsheet as template. This spreadsheet is always available at short name.

You need to fill the blue cells for these parameters:

  • Subject: Official Subject where this data model should be allocated. (Check the official list)
  • DataModel: Official data model name (Only one word i.e. WeatherForecast, no _).
  • Title: use to be the name data model name with spaces. (i.e. Weather Forecast)
  • Global Description: General text description of the data model. (2 lines is nice)
  • Property name: Exactly this, the name of the property. Use camelCase. It would be good to check here whether this property already exists (you can copy and paste). Use those you need and leave one empty after those you filled. Properties below an empty property name are ignored.
  • NGSI type: (Property, Relationship or Geoproperty)
  • Data type: Type of data in the property. (array and object are not fully implemented)
  • Other restrictions: If you are unfamiliar with JSON schema leave it empty.
  • Description: Official description of the property.

Once you’ve got the schema, grab some examples (It is always good to review the contribution manual) and you can make a Pull Request on any of the subjects of any domain in Github. Or just use this form.

NOTE 1: The first option will be attended quicker than the second.

NOTE 2: Do not write out of the blue cells (it will be ignored). And do not add or remove cells. The converter script looks for these precise locations in blue.

NOTE 3: Your spreadsheet has to be made public. (anyone with the link), otherwise, the script will not be able to retrieve your data.


Parameters: (Mandatories)


Output: A json schema based on the properties defined in the database. This is an alpha version so errors are not managed.

    This form generates a json schema based on the properties of a google sheet (Based on this template)


    By using this form you agree with the storage and handling of your data by this website.

    After clicking it will appear a message confirming the submission

    It will take a while to redirect to the feedback on a specific page

    Thanks for being patient

    Alpha version for drafting a data model

    In case you are not an expert for creating a JSON schema (one of the elements of a data model)
    On this page, you have a spreadsheet for helping with the first steps.

    1.- Fill the spreadsheet with the names of the properties for your model

    2.- fill the NGSI type (Property, Relationship or Geoproperty)

    3.- In case of property, fill the data type (array and object types are currently not completely supported)

    4.- Fill in the description

    5.- Click the button, the page will reload

    6.- voila! you have your json schema below the spreadsheet, just copy and paste into your favourite editor.

    The python code for it is also made public in the utils directory in the data models repo.

    New data model BoatPlacesPricing in the ports Subject

    The Subject of dataModel.Ports, inside the domain Smart Cities has released 1 new data model:

    • BoatPlacesPricing: The purpose of the data model is to provide information on the pricing of mooring rings by category (length / Width). The information received relates only to pleasure boats and excludes commercial and passenger transport boats. The information on the Spot categories for boats is taken from the ISO 8666 standard.

    Method to design your repository of Boat Pricing*
    To describe the different pricing by category (A to Z17) in the section *Information about pricing*, the use of a list is necessary when writing the record.
    Depending on the port configuration, a record will be created by `spotCategoryRange` to determine the pricing for a period as the repository.
    Two scenarios are possible
    – Scenario 1. Definition of the length range on a single category . `spotCategoryRange` = [‘F’], Boats accepted: length 7.00 to 7.49 and max width =< 2.70. [‘F’] length 7.00 to 7.49 / max width =< 2.70
    – Scenario 2. Definition of the length range with consecutive categories.
    `spotCategoryRange` = [‘F’, ‘G’], Boats accepted: length 7.00 to 7.99 and max width =< 2.80.’F’ gives maxLength from 7.00 to 7.49 and maxWidth 2.70, ‘G’ gives maxLength from 7.50 to 7.99 and maxWidth 2.80
    Additional Information about this Data Model*
    It can be used with the following data Model.
    – **SeaPort** to provide information to the port about authorized Boat in the port.

    This Data Model is complementary to the Data Model **BoatPlacesAvailable**.

    Data repository (ISO 8666 standard)**
    *Categorie Length Max Width Max*
    A 4.99 2.00
    B 5.49 2.15
    C 5.99 2.30
    D 6.49 2.45
    E 6.99 2.60
    F 7.49 2.80
    G 7.99 2.80
    H 8.49 2.95
    I 8.99 3.10
    J 9.49 3.25
    K 9.99 3.40
    L 10.49 3.55
    M 10.99 3.70
    N 11.49 3.85
    O 11.99 4.00
    P 12.99 4.30
    Q 13.99 4.60
    R 15.99 4.90
    S 17.99 5.20
    T1 20.99 5.60
    T2 23.99 6.00
    U 28.99 7.00
    V 33.99 8.00
    W 38.99 9.00
    X 43.99 10.00
    Y 48.99 11.00
    Z 53.99 12.00
    Z01 58.99 13.00
    Z02 64.99 14.00
    Z03 71.99 15.00
    Z04 78.99 16.00
    Z05 85.99 17.00
    Z06 92.99 18.00
    Z07 99.99 19.00
    Z08 106.99 20.00
    Z09 113.99 21.00
    Z10 120.99 22.00
    Z11 127.99 23.00
    Z12 134.99 24.00
    Z13 142.99 25.00
    Z14 150.99 26.00
    Z15 158.99 27.00
    Z16 166.99 28.00
    Z17 174.99 29.00

    Include levels of privacy of properties in their description

    The privacy of the data contained in a property has been under discussion for the documentation of any property.

    Now there is a first version on how to implement it.

    The contribution manual has been updated for this possibility. See the specific slide about it.

    Privacy clause: Privacy:’[high/medium/low]

    Describes if the property has any kind of information related with personal data. Current options:

    • No clause: (default) this property does not contain personal data
    • Privacy:’high’: Those properties that refer to data on ideology, union affiliation, religion, beliefs, racial origin, health or sexual life.
    • Privacy:’medium’. Those properties related to the provision of financial solvency and credit services of people and those that contain definition of characteristics or personality and that allow evaluating certain aspects of personality or behavior of people.
    • Privacy:’low’.  Those properties that contains personal data different from the rest of types.


    “refUserDevice” :{

    “description”: “Property. Model:’’. Privacy:’low’. An object representing the current device used by the User.”.