Pular para o conteúdo

Compactar dados JSON-LD — Numio

Compacta um documento JSON-LD em relação ao contexto que você fornece, usando jsonld.compact. IRIs completas viram seus termos ou nomes prefix:suffix, e arrays de um único item viram valores simples.

Transformar o JSON-LD expandido e verboso de uma ferramenta RDF em chaves curtas e legíveis definidas pelo seu próprio contexto.

JSON-LD

Context

Compacted

Quando usar

  • Transformar o JSON-LD expandido e verboso de uma ferramenta RDF em chaves curtas e legíveis definidas pelo seu próprio contexto.
  • Verificar se um contexto mapeia as IRIs que você espera antes de publicá-lo.

Como usar

  1. Cole o documento (expandido ou usando qualquer contexto) no editor JSON-LD.
  2. Coloque o contexto de destino no editor Context como um objeto com uma chave @context.
  3. Confira o resultado: o contexto fica no topo e as propriedades usam os termos dele.

JSON-LD + contexto

// JSON-LD editor
{
  "@id": "http://example.org/book/1",
  "@type": "http://schema.org/Book",
  "http://schema.org/name": "Dune",
  "http://schema.org/author": {"@id": "http://example.org/frank-herbert"},
  "http://schema.org/datePublished": {"@value": "1965", "@type": "http://www.w3.org/2001/XMLSchema#gYear"}
}

// Context editor
{"@context": {"schema": "http://schema.org/", "title": "schema:name",
  "author": {"@id": "schema:author", "@type": "@id"}}}

JSON-LD compactado

{
  "@context": {
    "schema": "http://schema.org/",
    "title": "schema:name",
    "author": {
      "@id": "schema:author",
      "@type": "@id"
    }
  },
  "@id": "http://example.org/book/1",
  "@type": "schema:Book",
  "author": "http://example.org/frank-herbert",
  "schema:datePublished": {
    "@type": "http://www.w3.org/2001/XMLSchema#gYear",
    "@value": "1965"
  },
  "title": "Dune"
}

Detalhes e limitações

Propriedades sem termo correspondente usam um prefixo, se houver um definido (schema:datePublished); caso contrário, mantêm a IRI completa.

Um termo com "@type": "@id" permite que referências sejam compactadas para strings simples, como acontece com author acima.

Roda no seu navegador com jsonld.js. Os dois editores precisam conter JSON válido; URLs de contextos remotos são baixadas pelo seu navegador. Se o download falhar, a página mostra um erro com a URL do contexto.

FAQ

Por que um valor tipado continua sendo um objeto?

Um valor com @type (como a data xsd:gYear) permanece {"@type", "@value"}, a menos que o contexto defina um termo com esse mesmo @type para a propriedade.

O editor Context pode conter uma URL?

Sim, como {"@context": "https://..."}. O navegador faz o download, então o servidor precisa permitir requisições cross-origin; contextos inline evitam isso.

A compactação altera os dados?

Não. A compactação só muda como IRIs e valores são escritos; expandir o resultado gera o mesmo grafo.

Especificações e referências