Data Models (Modelos de datos) en Onesait Platform

Interfaz de usuario: 6.1.0-Warcraft

Introducción

En la Plataforma, la entidad del modelo de datos la denominamos símplemente como Entidad, aunque inicialmente la llamábamos «Ontología». Estas Entidades van a permitir modelar desde conceptos sencillos como una medida o un registro, a conceptos complejos como una organización. Estas Entidades se definen en el formato JSON + JSON-Schema.

Origen de las Ontologías

El concepto de Ontología -actualmente Entidades, recordamos- prviene del proyecto europeo I+D SOFIA del que se origina la plataforma Sofia2, que usaba como modelos de datos Ontologías RDF/OWL, conforme los principios de la web semántica.

image-20240718-092101.png

Cuando en el año 2013 Indra considera evolucionar SOFIA para crear una plataforma empresarial (Sofia2), que pueda usarse en proyectos productivos y complejos, se realiza un análisis y pruebas empíricas sobre Sofia2, y se concluye que la tecnología subyacente a las ontologías tradicionales modeladas en OWL no escala conforme a las necesidades de los proyectos IoT y Big Data.

Tras considerar diversas opciones, se consideró que JSON + JSON Schema era la mejor propuesta de presente y futuro.

Un poco de historia: modelo de datos de Sofia2

Para conocer mejor cómo funcionan los modelos de datos en Onesait Platform, es interesante echar un ojo atrás y analizar el modelo de datos que había previamente en la plataforma Sofia2, en donde aunque el concepto clave del modelo de datos era la Ontología, existían a su vez otros conceptos importantes a considerar, como el de «Plantilla» y la de «Instancia de la Ontología».

Veamos en qué consisten:

 

Modelo de datos o Plantilla

Ontología

Instancia de Ontología

 

Modelo de datos o Plantilla

Ontología

Instancia de Ontología

Representa 

Plantilla, bien creada por un Administrador, o bien creada conforme a un estándar concreto (como FIWARE Data Model), que permite que las Ontologías se creen.

Entidad que representa un concepto sobre el que trabaja la Plataforma.

Es un registro concreto de la entidad que define la Ontología.

Ejemplos

Plantilla definiendo los atributos de calidad medioambiental ,conforme el FIWARE Data Model.

  • Calidad medioambiental (obtenida de un dispositivo).

  • Previsión meterológica (obtenida por un algoritmo).

  • Calidad medioambiental obtenida en una hora concreta en un punto concreto.

  • Previsión para una región y mes concreto.

Formatos

JSON-Schema

JSON-Schema

JSON

¿Dónde están?

No se almacena, es una definición.

Independiente del motor de persistencia elegido: en un modelo relacional representan una tabla, en una BD NoSQL tipo documental una colección de documentos, etc.

Independiente del motor de persistencia elegido: en un modelo relacional representan un registro, en una BD NoSQL tipo documental un documento concreto, etc.

Modelos de datos en el Control Panel de Onesait Platform

Nuestro actual modelo de datos es una evolución natural del modelo de Sofia2, en el que conservamos los conceptos como la plantilla o las instancias. En este caso, el concepto de modelo de datos representa una plantilla sobre la que luego podrán crearse las Entidades.

Es por ello que la creación de las plantillas queda restringido a aquellos usuarios que tengan un rol de tipo «Administrador».

Para visualizar los disintos modelos de datos disponibles, desde el Control Panel de la Plataforma navegaremos hasta el menú Administración > Gestión de Plantillas (Data Models):

image-20240718-093430.png

Se nos mostrará entonces un listado con los modelos de datos existentes, en donde podremos ver su nombre, el propietario, el tipo de plantilla, las etiquetas de categorización y las fechas de creación y edición.

Para analizar una de las plantillas de modelos de datos, únicamente tendremos que pulsar en el botón de «Mostrar» (icono con el ojo) situado en la parte derecha de cada plantilla.

Se mostrará entonces la información general de la plantilla del modelo de datos, así como el esquema JSON:

Entidades y modelos de datos

Las Entidades son el concepto clave del modelo de datos, así como también del funcionamiento completo de la Plataforma, ya que sobre estas se desencadenan el resto de procesos, como por ejemplo:

  • Reglas: las cuales se aplican ante la llegada de una instancia de Entidad (o bien planificadas), y permite acceder a los atributos de las Entidades para actuar en base a esta.

  • Dashboards: los paneles de mando se construyen, bien representando en tiempo real las instancias que van llegando a la Plataforma, o bien a través de una consulta que se realice sobre estas (DataSources, API REST, etc.).

  • Analítica: los modelos de Machine Learning típicamente se realizan sobre las Entidades almacenadas en la infraestructura Big Data de la Plataforma (BDH)

Las Entidades pueden ser creadas por usuarios que tengan roles de «Desarrollador» o «Analista», así como los de tipo «Administrador». A la hora de crear estas Entidades, contamos con diversos mecanismos que nos van a facilitar el trabajo y que os explicamos a continuación:

https://onesaitplatform.atlassian.net/wiki/spaces/DOC/pages/4111794177

Instancias de Entidad

Como ya se ha indicado, una instancia de Entidad representa un momento y posición concreto dentro de una Entidad.

La Plataforma ofrece diversas herramientas para acceder a las instancias, siendo la herramienta de consultas la más usadas por los desarrolladores, ya que permite a través de un asistente generar consultas rápidamente sobre las Entidades, tanto en SQL como en nativo, obteniendo el resultado de la consulta en formato JSON, el cual podremos descargar en nuestro local tanto en JSON como en formato CSV.

Otra opción que disponemos para ver el contenido de una Entidad es mediante las herramientas de CRUD de Entidades, en donde visualizaremos los registros existentes:

Desde el CRUD de Entidades vamos a poder editar los registros de manera sencilla. Esto no es práctico cuando se tienen miles de registros, pero para una corrección rápida resulta muy útil.