Soporte JSON-LD en Plataforma

Disponible a partir de versión 4.0.0-nitroball

Introducción

JavaScript Object Notation for Linked Data es un método basado en JSON para añadir datos estructurados, completando la anotación JSON con elementos de contexto de forma que se puedan entender las relaciones semánticas que le dan sentido.

Plataforma da soporte a JSON-LD sobre sus ontologías, pudiendo recoger o insertar los datos vía API Rest en formato JSON-LD, indicando el contexto deseado. De esta forma, los datos insertados en las ontologías podrán devolverse en formato JSON normal, o con su contexto.

Onesait Platform permite dar de alta los modelos JSON-LD que se pretendan usar tal y como hace con los modelos en formato Json Schema.

¿Cómo crear Entidades JSON-LD?

De esta forma, si desea que una ontología soporte el formato JSON-LD debe marcar el check correspondiente en la creación o edición de la ontología, además de informar su contexto.

En la creación paso a paso, al seleccionar el soporte JSON-LD se mostrarán los modelos JSON-LD disponibles y al seleccionar cualquiera de ellos se mostrarán las estructuras que ofrece dicho esquema, pudiendo hacer selección múltiple manteniendo pulsada la tecla Ctrl mientras selecciona. Una vez se pulse el botón continuar, se rellenarán los datos de la ontología con las propiedades definidas para ese esquema.

La estructura de la ontología se creará con las propiedades definidas para cada tipo de datos elegido, de esta forma, si desea incluir las propiedades de dos conceptos con herencia, será necesario seleccionar las dos, si no sólo se añadirán las correspondientes a la clase hija.

Además, es necesario tener en cuenta que el tipo de dato de cada propiedad será String en el caso de ser otra clase del esquema y no ser un tipo de dato simple como string, number, integer, date, boolean, etc. De esta forma, se podrá referenciar al id correspondiente con el dato de otra ontología que cumpla dicho esquema.

Por ejemplo, en Schema.org Person tiene un campo address que puede ser de tipo Texto (simple) o de tipo PostalAddress que es otra clase definida en Schema.org. En este caso el esquema de la ontología se formará permitiendo introducir un texto, que podrá ser el identificador de la dirección introducida en bbdd en otra ontología que cumpla el esquema de PostalAddress, teniendo así la relación dirección-persona.

Si necesita que sea un objeto, tendrá que editarlo en esta pantalla y definirlo tras dar al botón de Update Schema.

En el resto de creaciones de ontologías, time series, api rest, etc. el contexto se podrá indicar introduciendo el texto directamente. De esta forma será necesario definirse las propiedades manualmente en la siguiente pantalla.

Si desea editar la ontología una vez creada, debe tener en cuenta que el contexto no se podrá editar, ya que sería necesario cambiar la estructura completa de la ontología. Los cambios que podrá hacer serán añadir o eliminar propiedades, además del resto de cambios propios de la ontología.

¿Cómo consultar datos en JSON-LD?

Una vez tengamos creada nuestra Entidad, pasaremos a crear un API con las operaciones básicas GET y POST. De esta forma, podremos seleccionar desde el swagger generado, o vía Postman por ejemplo, el tipo de dato que enviamos o deseamos recibir.

Si nuestra ontología soporta formato JSON-LD, se podrá insertar datos en dicho formato, al igual que en formato JSON normal, indicándolo siempre en el Request body ("Content-Type: application/ld+json").

En las operaciones de GET, habrá que indicarlo en la respuesta ("accept: application/ld+json").

En el caso en el que la ontología no soporte el formato JSON-LD, el API devolverá un error 406 Not Acceptable.

De esta forma, los datos se devuelven con el formato deseado, indicando el contexto y el tipo de dato usado (@type).