Sobre datos vinculados e JSON-LD

Los datos vinculados son muy poco novedosos para todo el mundo de desenvolvimiento, lo que apenas es un caminho para publicar datos interconectados entre diferentes sitios, posibilitando que nuestro sitio haga referencia y reutilice los datos de nuestro sitio. Tipo, um buscador, reutilizando como información del sitio para mostrar los resultados de búsqueda.

JSON-LD (JavaScript Object Notation – Linked Data) es un formato baseado sin já con JSON, que todo el mundo utiliza para transmitir datos entre el navegador y el servidor. Ele virou padrão do W3C em 2014. Obviamente, es un proyecto de aberto y você pode ver todo o código no GitHub.

Más antes de entrar en em eses negociación de JSON-LD funciona, queria falar um pouco sobre como a internet funciona. Organização da Informação na web é um dos assuntos que mais me fascinam no mundo do desenvolvimento. Incluye preguntas sobre semántica y organización de información de forma que apenas humanos, mas computadores pueden publicar y reutilizar essa información en vivo en la web.

Hoje a internet é baseada basically em code HTML, onde nós podemos mostrar imágenes, videos, audios y principalmente textos, onde nós temos os links. Los enlaces son de meio pelo cualificado, organizamos toda una información en Internet, haciendo referencia a información de nuestro sitio para nuestro sitio web, en múltiples sitios web.

No podemos quebrar un internet en duas partes específicas: no hay una parte onde n enxergamos, que básicamente es baseada en HTML, CSS y JS. É onde seres humanos interagem com nosso produto e nosso site. Há também a segunda parte, que es básicamente básico por robôs y sistemas que também interagem com nossos produtos e sites, mas de forma diferente dos humanos, claro, consumiendo dados que disponibilizamos de várias formas. Uma desses formatos é o JSON. Como alguns outros formatos, o JSON tem uma estrutura que es simple de ser lida por humanos y principalmente por robôs.

Quando falamos sobre Linked Data, no falamos sobre linkar informações entre websites. A maneira que fazemos isso hoje é basically com links. Isso resolver una parte de como os seres humanos conseguem relacionar um site (ou um punhado de informação), com outro site. Mas como conseguimos fazer com que as máquinas entendam esse relacionamento? Note que você é um ser humano, e você consegue saber quando um sitio sobre um determinado assunto contém um link que leva para um site de um assunto completamente diferente. Mas para máquina, se encuentra aquí un enlace de nuestro sitio para nuestro sitio, no podemos dizer que eles são sitios com mesmo assunto ou com assuntos estreitamente relacionados. Um link para máquina, sempre vai ser um link. Ela vai precisar de mais informações para conseguir relacionar melhor as informações, tudo por causa do contexto. Como ser humano você consegue entender que o contexto mudou por causa dos textos, imágenes e etc. Já como máquinas não.

Você já deveter ouvido falar sobre RDFa. RDFa é um padrão básico para que poseamos um pouco mais de contexto para as máquinas sobre los dados que elas estão consumindo. RDFa nada más que hacer un conjunto de atributos que colocamos en idiomas de marca (HTML, XHTML, XML, etc.), forma de que las máquinas consigan el tipo de información elas estão lidando. Algo como isso:

  

Um artigo sobre Semântica


Diego Eis

Sim. Você já viu algo similar quando estudou sobre Microformatos, Micro Data e etc, que são modelos de dados muito mais amigáveis ​​e inteligente do RDF / XML. Mas esse foi um dos primeiros modelos adotados pelo W3C há muito tempo e por isso, talvez, só talvez, valha a pena você dar uma lida para entender o conceito.

Deixando isso de lado, o que quero dizer é que nós marcamos esse type of informação, para que buscadores, redes sociais and qualquer outro type of system que precisa de dados for operating, possa consume os data of forma mais inteligente. Então, enquanto as pessoas consomem HTML, lendo seus textos, vendo suas imagens and assistindo seus videos, as maquinas consomem esses dados vasculhando seu código procurando por algum significado.

O JSON-LD eo @context

Mas nós não conseguimos resolver de greende como as máquinas consomem esses dados. Como eu dise, como máquinas precisas de más detalles sobre los datos que publicamos. Eu fiz uma apresentação falando sobre como melhoramos a semântica do código usando as novas tags HTML5 and microdata. Mas temos como melhorar isso, usando JSON-LD.

Quando um system acessar seu site, ele vai receber um arquivo JSON, que contiene información sobre nuestro sitio web. O formato é praticamente idêntico ao JSON que você já deve conhecer, mas com algunos valores y chaves diferentes, veja:

  { 
"@context": "http://json-ld.org/contexts/person.jsonld",
"@id": "http://dbpedia.org/page/Bob_Dylan",
"nombre": "Bob Dylan",
"nacido": "1941-05-24",
"cónyuge": "http://dbpedia.org/resource/Sara_Dylan"
}

O problema é quando você começa a receber esses dados of multipiplos websites. Todos eles oferecem dados como esse. Mas e se dois sites colocarem informações iguais em alguns valores? Por ejemplo, um sitio fornece o seguinte dado:

  { 
"nombre": "Diego",
"página de inicio": "http://diegoeis.com"
}

E o outro:

  { 
"nombre": "diegoeis",
"página de inicio": "http://diegoeis.com"
}

No primeiro exemplo estamos falando sobre uma pessoa . Já no segundo ejemplo, em vez do nome de alguém, está algo parecido con su apodo. Pode até ser o nome de uma empresa. Pode até ser o nome de qualquer outra coisa. O robô não tem como saber exactamente que se trata. É por isso que no hay JSON-LD existe en un concierto chamado de @context . O @context diz para una aplicación como intérprete o “contexto” daquelas informações. O exemplo legal ficaria assim:

  { 
"@context": "http://json-ld.org/contexts/person.jsonld",
"nombre": "Diego",
"página de inicio": "http://diegoeis.com"
}

Mas eo Schema.org?

Ahh! Sabia que ia rolar essa pergunta. O Schema.org es una comunidad colaborativa, formada por buscadores como Google y Yahoo! para criar, manter y promover formatos de datos estruturados para internet, ajustándose a estruturar dados para correos electrónicos, páginas, sistemas, etc.

O que é um vocabulário: imagina que você tem uma série de coisas para descrever para as máquinas, por ejemplo: suponha um site sobre filmes. Você quer indicar para los sistemas de búsqueda (ou cualquer outro type of system interessado), qual é o pedaço de texto na page que é a resenha do filme, qual imagem é o poster do filme etc. Você marcaria o HTML assim:

  

Matriz


La mejor película del mundo real.



Dirigido por: The Wachowskis


Protagonista:

Laurence Fishburne


Keanu Reeves



Perceba que então, o Google, por ejemplo, consegue saber o que é cada pedaço de dado da página. Assim ele consegue classificar melhor a informação.

A ideia é o seguinte, o @context serve para que você consiga especificar o vocabulario dos tipos y propiedades que você está servindo no seu documento. Ali no exemplo, ue use o vocabulário que o próprio pessoal do JSON-LD publicou. Mas o Google, assim como outros sistemas de busca, apoiam largamente o uso do Schema.org, que é um padrão de vocabulário. Fica assim:

  { 
"@context": "http://schema.org",
"@type": "Persona",
"nombre": "Diego",
"página de inicio": "http://diegoeis.com"
}

Veja ali que a segunda chave é o tipo. O Schema.org fornece uma série de vocabulários, logo, precisa dizer qual é o type do vocabulário que eu estou me referindo.

Perceba que @context eo @type definem o “significado” das outras chaves. Se fosse uma empresa, seria assim:

  { 
"@context": "http://schema.org/",
"@type": "Organización",
"nombre": "Radio pública nacional"
}

A chave name ali agora se refere ao nome de uma Organização e não de uma pessoa. E asume segue com outras “coisas”.

E o Microdata?

Si usa o JSON-LD, no use precisamente Microdata. O Google está investindo pesando com o JSON-LD, por eso, acho que você devia pensar em usá-lo. Outra coisa: para usar Microdata, você vai precisar mexer no seu código HTML para inserir los atributos necesarios. Já com o JSON-LD también es necesario, já que você servir a través de JSON como partes necesarias de información que você quer publicar.

Identificadores Globais do JSON-LTD

Mas no adianta usar uma terminologia curta, que máquinas e humanos entendam, contendo um contexto, se você ainda não consegue identificar exactamente cual o assunto da conversa. No exemplo acima, o assunto era uma pessoa chamada Diego . Mas qual Diego ? Existem milhares deles por aí. Para fazer isso, o JSON-LD usa uma @id para identificar globalmente esse assunto (que pode ser um animal, uma pessoa, um objeto, etc.).

Logotipo, se alguém quiser falar sobre o Diego , basta referenciar esse id específico.

  { 
"@context": "http://json-ld.org/contexts/person.jsonld",
"@id": "http://diegoeis.com/sobre"
"nombre": "Diego",
"página de inicio": "http://diegoeis.com"
}

Logo, existem três coisas principais que precisa nos entendemos sobre JSON-LD:

  1. Ele te dá um contexto para una información.
  2. Ele usa uma terminologia e uma estrutura fácil para máquinas e humanos.
  3. Elección o asistencia para resolver una ambigüedad de información.

Como eu sirvo o JSON-LD

Simples: basta chamar na sua página o JSON com como información que desea publicar. Veja abaixo um exemplo:

   
{
"@context": "http://schema.org",
"@type": "Artículo",
"name": "Um pouco sobre imagens para Web",
"author": {"@type": "Persona",
"name": "por Diego Eis"},
"datePublished": "2016-07-05",
"image": "http://mdm.miximages.com/Brazil/image-format.jpg",
"articleBody": "Queria falar um pouco sobre alguns formatos de imagens que usamos todos os dias. Dar algumas informações que encontrei por aí. Vamos a explorar como duas principais opções de formato gráfico que puede ser utilizado en la Web para diseñar gráficos simples, esquemas ou logotipos. Puede utilizar SVG en varios momentos, principalmente para íconos o Logotipos, o PNG eo GIF y alguna vez ser usados. Depositar falamos más sobre SVG.

\ n

GIF

\ n

GIF (sigla para Graphics Interchange Format) para el desenvolvimiento no final dos años 1980 y otra vez ampliamente utilizado. PNG (Portable Network Graphics) para el desenvolvido por volta de 1995, se recomienda una W3C en 1996, y se ha implementado na maioria dos navegadores da Web, logotipo en 1998.


}

O Google tem uma ferramenta sensacional que te ajuda a criar marcação de dados estruturados direto na sua page. Olha aqui!

Um pouco mais sobre Web Semântica

Essas coisas são as fundações do Linked Data. A Web Semântica é muito do que simplemente organizar información. Ela envolve também relacionar esses dados encontrados en diferentes pontos da internet, além de facilitar o consumo ea reutilização desses dados por máquinas e seres humanos.

O Tim Berners-Lee fala sobre os quatro passos (ou regras) para que os dados sejam interconectados na internet:

  1. Identificar como coisas com URIs. En una forma de identificación de datos no usam o formato universal de símbolos de URI, no podemos chamar isso de Web Semântica.
  2. Usar URI pelo protocolo HTTP es totalmente aceitável pela web inteira. Existe una tendencia gigante de la crianza de novos esquemas de URI como LSID, XRI, etc., se basa en algo totalmente nuevo, por DNS, imposibilidad de consumo de información a través de formato popular.
  3. Se necesita acceso a información a través de URI. Basicamente você precisa acessar uma URI y encontrar una información ali, pronta para ser reutilizada.
  4. Usar enlaces para relacionar datos pela web.

Veja as regras se baseiam em fundações fortes da web hoje. Talvez essas fundações mudem. Mas não vai ser fácil. Veja o trabalho que é fazer para implementar o HTTP / 2. Por isso creio que essas regras valerão durante muito tempo and serão ainda nossa baliza for power servir informação de forma livre pela internet.

Para más información:

  • Sitio oficial
  • JSON-LD y por qué odio la web semántica
  • JSON-LD en detalles
  • Vídeo em ingles sobre Datos vinculados
  • Repositório do JSON-LD no GitHub
  • ¿RDF / XML es bueno para algo?