Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejson
[
  {
    "http://schema.org/_id": [
      {
        "http://schema.org/$oid": [
          {
            "@value": {
              "chars": "62061c2ae3cdeb27d2212c31",
              "string": "62061c2ae3cdeb27d2212c31",
              "valueType": "STRING"
            }
          }
        ]
      }
    ],
    "@type": [
      {
        "chars": "http://schema.org/Person",
        "string": "http://schema.org/Person",
        "valueType": "STRING"
      }
    ],
    "http://schema.org/email": [
      {
        "@value": {
          "chars": "info@example.com",
          "string": "info@example.com",
          "valueType": "STRING"
        }
      }
    ],
    "http://schema.org/image": [
      {
        "@id": {
          "chars": "janedoe.jpg",
          "string": "janedoe.jpg",
          "valueType": "STRING"
        }
      }
    ],
    "http://schema.org/jobTitle": [
      {
        "@value": {
          "chars": "Research Assistant",
          "string": "Research Assistant",
          "valueType": "STRING"
        }
      }
    ],
    "http://schema.org/name": [
      {
        "@value": {
          "chars": "Jane Doe",
          "string": "Jane Doe",
          "valueType": "STRING"
        }
      }
    ],
    "http://schema.org/contextData": [
      {
        "http://schema.org/user": [
          {
            "@value": {
              "chars": "administrator",
              "string": "administrator",
              "valueType": "STRING"
            }
          }
        ],
        "http://schema.org/timezoneId": [
          {
            "@value": {
              "chars": "UTC",
              "string": "UTC",
              "valueType": "STRING"
            }
          }
        ],
        "http://schema.org/timestamp": [
          {
            "@value": {
              "chars": "2022-02-11T08:19:54Z",
              "string": "2022-02-11T08:19:54Z",
              "valueType": "STRING"
            }
          }
        ],
        "http://schema.org/timestampMillis": [
          {
            "@value": {
              "integral": true,
              "valueType": "NUMBER"
            }
          }
        ],
        "http://schema.org/source": [
          {
            "@value": {
              "chars": "INTERNAL_ROUTER",
              "string": "INTERNAL_ROUTER",
              "valueType": "STRING"
            }
          }
        ]
      }
    ]
  }
]

Mejoras en el soporte JSON-LD

El siguiente paso en el soporte de JSON-LD será crear el esquema de la ontología a partir del contexto seleccionado, pudiendo seleccionar los campos que necesitamos de cada clase.

Para ello, los campos cuyo tipo de dato sea otra clase del esquema, y no un tipo de dato simple como texto, numérico, etc., se guardarán referenciándolos con ids para así tener la relación con el dato de la 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.

En primer lugar, el soporte que se va a dar es con Schema.org, ya que ofrece una gran base de datos de esquemas estandarizados, ofreciendo un gran diccionario que comprende muchos tipos de datos, además de las propiedades subordinadas a cada tipo. Una vez tengamos dicho soporte, el siguiente paso será poder crear en plataforma nuestro propio diccionario.

Para tener nuestras propias definiciones de esquemas, generaremos un nuevo tipo de Data Model donde guardar el esquema en formato JSON-LD. Además, para exponerlo tendremos que crear un API Rest que devuelva el contexto de estos esquemas, alojándolo en /cotrolpanel/json-ld/nombreDelEsquema, por ejemplo.