Las notificaciones de datos vinculados ( LDN ) [3] es una recomendación del W3C que describe un protocolo de comunicaciones basado en HTTP , URI y RDF sobre cómo los servidores ( receptores ) pueden recibir mensajes enviados por aplicaciones ( remitentes ), así como otras aplicaciones. ( consumidores ) pueden recuperar esos mensajes. Cualquier recurso web (como una página HTML ) puede anunciar un punto final de recepción ( bandeja de entrada ) para mensajes de notificación. Los mensajes se expresan en RDF y pueden contener datos arbitrarios.
Estado | Recomendación del W3C |
---|---|
Año iniciado | 2016 [1] [2] |
Publicado por primera vez | 26 de julio de 2016 [1] [2] |
Ultima versión | Recomendación del W3C 2 de mayo de 2017 [3] |
Versión de vista previa | Borrador del editor 30 de abril de 2017 |
Organización | |
Comité | Grupo de trabajo de redes sociales |
Editores |
|
Estándares básicos | |
Estándares relacionados | |
Dominio | Web semántica , protocolo de comunicaciones |
Abreviatura | LDN |
Sitio web | www |
Motivación
La web es un sistema descentralizado de recursos web, publicado por múltiples organizaciones e individuos. Los recursos web, como las páginas web y los datos vinculados estructurados de forma más formal , suelen incluir enlaces a otros recursos en la web y pueden comentarlos o describirlos de diversas formas. Sin embargo, generalmente no se notifica al extremo receptor de la creación de dicho enlace y, por lo tanto, no puede proporcionar vínculos de retroceso sin intervención manual. Las interacciones dentro de las plataformas de redes sociales , como los comentarios en un artículo de noticias, están actualmente "bloqueadas" dentro de la plataforma y es difícil acceder a ellas en la web.
Existen varios mecanismos de enlace de retorno y se usan comúnmente entre sistemas de blogs , por ejemplo, una publicación de "respuesta" en el blog B sobre una publicación en el blog A hace que la plataforma de B envíe un pingback para que se muestre en el blog original A. Sin embargo, estos mecanismos son generalmente limitados en el que se puede enviar información estructurada, y las propias notificaciones no forman parte de la web descentralizada y pueden ser de difícil consumo por parte de cualquier aplicación de terceros.
Una motivación clave para LDN es admitir notificaciones entre aplicaciones web descentralizadas, [4] incluidos los navegadores web que, al no tener su propio servidor HTTP, no pueden generar un enlace HTTP para sus mensajes de respuesta. Otra motivación es estructurar las notificaciones como declaraciones RDF utilizando cualquier vocabulario controlado , de modo que cualquier aplicación de consumo pueda seleccionar la información particular que comprenden.
Protocolo
- Un remitente o un receptor realiza un
GET
oHEAD
hacia un recurso HTTP existente. Su URI de la bandeja de entrada se descubre a partir de:- Una
Link:
relación en los encabezados de respuesta HTTP de tipohttp://www.w3.org/ns/ldp#inbox
- Una declaración RDF incrustada en el cuerpo HTTP utilizando la propiedad RDF
http://www.w3.org/ns/ldp#inbox
- Una
- Un remitente crea una nueva notificación (por ejemplo, como JSON-LD ), que se envía
POST
al URI de la bandeja de entrada .- El receptor crea un nuevo recurso HTTP que contiene la notificación publicada y responde con
201 Created
el URI creado.
- El receptor crea un nuevo recurso HTTP que contiene la notificación publicada y responde con
- Un consumidor recupera RDF del URI de la bandeja de entrada descubierto usando
GET
, luego:- El consumidor analiza el cuerpo de la respuesta para encontrar declaraciones RDF con la propiedad
http://www.w3.org/ns/ldp#contains
. El objeto de estas declaraciones proporciona los URI a las notificaciones LDN aceptadas. - El consumidor recupera cualquiera de las notificaciones vinculadas utilizando
GET
y procesa su RDF de una manera específica de la aplicación. - Las notificaciones siguen siendo accesibles y, por lo tanto, se pueden vincular y describir en otros recursos web.
- El consumidor analiza el cuerpo de la respuesta para encontrar declaraciones RDF con la propiedad
En cada etapa, el remitente y el consumidor pueden realizar la negociación de contenido para enviar o recibir en cualquier formato de serialización RDF mutuamente acordado , sin embargo, un receptor LDN compatible debe admitir al menos JSON-LD .
Ejemplos de
Un remitente o consumidor descubre la bandeja de entrada de un URI determinado, en este ejemplo, utilizando el HEAD
método:
HEAD https://example.org/article/5 HTTP / 1.1
HTTP / 1.1 200 OK Enlace : ; rel = "http://www.w3.org/ns/ldp#inbox"
Un remitente envía una notificación a la bandeja de entrada descubierta, en este ejemplo utilizando el vocabulario de Schema.org :
POST https://example.org/inbox/7 HTTP / 1.1 Tipo de contenido : aplicación / ld + json{ "@context" : "http://schema.org" , "@type" : "ReviewAction" , "object" : { "@id" : "https://example.org/article/5" }, "agent" : { "@type" : "Person" , "name" : "Alice" }, "result" : { "@type" : "Review" , "reviewBody" : "Este artículo es el mejor que he ¡jamas visto!" } }
HTTP / 1.1 201 Ubicación de creación : http://example.org/inbox/f44f3f11
Un consumidor enumera el contenido de la bandeja de entrada descubierta para encontrar 3 notificaciones:
OBTENGA https://example.org/inbox/7 HTTP / 1.1 Tipo de contenido : aplicación / ld + json
HTTP / 1.1 200 OK Tipo de contenido : aplicación / ld + json{ "@context" : "http://www.w3.org/ns/ldp" , "@id" : "https://example.org/inbox/7" , "contiene" : [ "https: / /example.org/inbox/5c6ca040 " , " https://cdn.example.org/inbox/92d72f00 " , " https://example.org/inbox/f44f3f11 " , ] }
Tenga en cuenta que no es necesario que las URI del recurso original, la bandeja de entrada y las notificaciones estén alojadas en el mismo servidor HTTP (por ejemplo, pueden estar en una CDN ). El consumidor sigue los enlaces para cualquier notificación que desee recuperar.
En este ejemplo, el consumidor recupera la nueva f44f3f11
notificación, con negociación de contenido para preferir el formato Turtle RDF:
OBTENER https://example.org/inbox/f44f3f11 HTTP / 1.1 Aceptar : application / ld + json; q = 0.9, text / turtle; q = 1.5
HTTP / 1.1 200 OK Tipo de contenido : texto / tortuga@esquema de prefijo : . [ un esquema : ReviewAction ; esquema : agente [ un esquema : Persona ; esquema : nombre "Alice" ]; esquema : objeto ; esquema : resultado [ un esquema : revisión ; schema : reviewBody "¡Este artículo es el mejor que he visto!" ] ] .
Implementaciones
Existen varias implementaciones de LDN , [4] [5] que cubren remitentes, consumidores y receptores, que incluyen:
- dokieli (remitente, consumidor)
- errol (remitente)
- Fedora Commons (receptor)
- Apache Marmotta (receptor)
- Carbon LDP (receptor)
- Reglas de edición vinculadas (remitente)
- Sólido (remitente, receptor, consumidor)
- Virtuoso Universal Server (receptor, consumidor)
Las implementaciones de cualquier plataforma de datos enlazados (LDP) también cumplen con los receptores de notificación de datos enlazados , ya que LDN es un subconjunto estricto de LDP. [4]
Referencias
- ^ a b "Historial de publicación de notificaciones de datos vinculados - W3C" . W3C . nd . Consultado el 21 de abril de 2021 .
- ^ a b Capadisli, Sarven; Guy, Amy, eds. (26 de julio de 2016). "Notificaciones de datos vinculados" . W3C . Grupo de Trabajo de Web Social. https://www.w3.org/TR/ldn/ . Consultado el 21 de abril de 2021 .
- ^ a b c Capadisli, Sarven; Guy, Amy, eds. (2 de mayo de 2017). "Notificaciones de datos vinculados" . W3C . Grupo de Trabajo de Web Social. https://www.w3.org/TR/ldn/ . Consultado el 21 de abril de 2021 .
- ^ a b c Capadisli, Sarven; Guy, Amy; Lange, Christoph; Auer, Sören; Sambra, Andrei; Berners-Lee, Tim (28 de mayo de 2017). Notificaciones de datos vinculados: un protocolo de comunicación centrado en los recursos . La Web Semántica. ESWC 2017. Lecture Notes in Computer Science . Apuntes de conferencias en informática. 10249 . págs. 537–553. doi : 10.1007 / 978-3-319-58068-5_33 . ISBN 978-3-319-58067-8. http://csarven.ca/linked-data-notifications .
- ^ "Informes de prueba LDN y resumen" . Linkedresearch.org . 2016-09-18 . Consultado el 26 de mayo de 2017 .