1- Load all datamodels in a dict like the official list. Function load_all_datamodels()
Returns a dict with all data models with this object structure
– repoName: The name of the subject
– repoLink: the link to the repository of the subject
– dataModels: An array with all the datamodels of this subject
– domains: an array to the domains that this subject belongs to
Parameters:
None
Returns:
array of objects with the description of the subject
2- Load all attributes in a dict like the official export of attributes. Function load_all_attributes()
Returns an array of objects describing every attribute in the data models
– _id: identifier of the item
– property: the name of the attribute
– dataModel: the data model this attribute is present
– repoName: the subject this data model belongs to
– description: the description of the attribute
– typeNGSI: Whether it is a property, Geoproperty, or relationship
– modelTags: inherited from the data model tags
– license: link to the license for the data model
– schemaVersion: version of the data model
– type: data type
– model: when available the reference model for the attribute
– units: when available the recommended units for the attribute
– format: either date, or time, or date-time, or URI, etc the format of the attribute
Parameters:
Returns:
array of objects with the description of the subject
3- List all data models. Function list_all_datamodels()
List the names of the entities defined in the data models.
Parameters:
Returns:
array of strings: data models’ names
4- List all subjects. Function list_all_subjects()
List the names of the subjects (groups of data models). The subject’s names define repositories with the name dataModel.subject at the root of the https://github.com/smart-data-models site
Parameters:
Returns:
array of strings: subjects’ names
5- List the data models of a subject. Function datamodels_subject(subject)
List the names of the entities defined in the data models.
Parameters:
subject: name of the subject
Returns:
if subject is found
array of strings: data models’ names belonging to the subject
if subject is not found
False
6- List description of an attribute. Function description_attribute(subject, datamodel, attribute)
List the description of an attribute belonging to a subject and data model.
Parameters:
subject: name of the subject
datamodel: name of the data model
attribute: name of the attribute
Returns:
if subject, datamodel and attribute are found
string: attribute’s description
if any of the input parameters is not found
False
7- List data-type of an attribute. Function datatype_attribute(subject, datamodel, attribute)
List the data type of an attribute belonging to a subject and data model.
Parameters:
subject: name of the subject
datamodel: name of the data model
attribute: name of the attribute
Returns:
if subject, datamodel and attribute are found
string: attribute’s data type
if any of the input parameters is not found
False
8- Give reference model for an attribute. Function model_attribute(subject, datamodel, attribute)
List the model of an attribute (when available) belonging to a subject and data model.
Parameters:
subject: name of the subject
datamodel: name of the data model
attribute: name of the attribute
Returns:
if subject, datamodel and attribute are found
string: attribute model’s URL
if any of the input parameters is not found or there is not a model
False
9- Give reference units for an attribute. Function attributes_datamodel(subject, datamodel)
List the recommended units of an attribute belonging to a subject and data model.
Parameters:
subject: name of the subject
datamodel: name of the data model
attribute: name of the attribute
Returns:
if subject, datamodel and attribute are found
string: acronym/text of the recommended units
if any of the input parameters is not found or there are not recommended units
False
10- List the attributes of a data model. Function attributes_datamodel(subject, datamodel)
List the attributes of a data model (currently only first level ones) .
Parameters:
subject: name of the subject
datamodel: name of the data model
Returns:
if subject and datamodel are found
array: attribute’s names
if any of the input parameters is not found
False
11- List the NGSI type (Property, Relationship or Geoproperty) of the attribute. Function ngsi_datatype_attribute(subject, datamodel, attribute)
List the NGSI data type of an attribute (Property, Relationship or Geoproperty) belonging to a subject and data model.
Parameters:
subject: name of the subject
datamodel: name of the data model
attribute: name of the attribute
Returns:
if subject, datamodel and attribute are found
string: NGSI data type
if any of the input parameters is not found
False
12- Print a list of data models attributes separated by a separator. Function print_datamodel(subject, datamodel, separator, meta_attributes)
Validates a json schema defining a data model.
Parameters:
schema_url: url of the schema (public available). (i.e. raw version of a github repo https://raw.githubusercontent.com/smart-data-models/dataModel.Aeronautics/master/AircraftModel/schema.json
Returns:
object with four elements:
– documentationStatusofProperties: For each first level attribute lists if the attribute is documented and includes the description (when available). Also the NGSI type if is set and which one is described.
Example:
“dateCreated”:
{
“x-ngsi”: true,
“x-ngsi_text”: “ok to Property”,
“documented”: true,
“text”: “This will usually be allocated by the storage platform.. Entity creation timestamp”
},
– schemaDiagnose: It counts the attributes with right descriptions and those which don’t.
– alreadyUsedProperties: It identifies attributes that have already been used in other data models and includes their definition
– availableProperties: Identifies those attributes which are not already included in any other data model
13- Returns the link to the repository of a subject. Function subject_repolink(subject)
Print the different elements of the attributes of a data model separated by a given separator.
Parameters:
subject: name of the subject
datamodel: name of the data model
separator: string between the different elements printed
meta_attributes: list of different qualifiers of an attribute
property: the name of the attribute
type: the data type of the attribute (json schema basic types)
dataModel: the data model the attribute belongs to
repoName: the subject the attribute belongs to
description: the definition of the attribute
typeNGSI: the NGSI type, Property, Relationship or Geoproperty
modelTags: the tags assigned to the data model
format: For those attributes having it the format, i.e. date-time
units: For those attributes having it the recommended units, i.e. meters
model: For those attributes having it the reference model, i.e. https://schema.org/Number
Returns:
It prints a version of the attributes separated by the separator listing the meta_attributes specified
A variable with the same strings
if any of the input parameters is not found it returns false
14- Returns the links to the repositories of a data model name. Function datamodel_repolink(datamodel)
It returns the direct link to the repository of the subject if it is found and False if not .
Parameters:
subject: name of the subject
Returns:
if subject is found
url of the github repository. Example for subject User it returns ‘https://github.com/smart-data-models/dataModel.User.git’
if subject is not found
False
15- Update the official data model list or the database of attributes from the source. Function update_data()
It returns an array with the direct links to the repositories where is located the data model if it is found and False if not found.
Parameters:
datamodel: name of the data model
Returns:
if data model is found
array of urls (even with one single result) to the github repository. Example for subject Activity it returns [‘https://github.com/smart-data-models/dataModel.User.git’]
if data model is not found
False