encyklopedia.space

json-ld

json-ld (ang. JSON for Linked Data) jest syntaktycznym formatem opartym na JSON, przeznaczonym do wyrażania Linked Data. Standard ten został opracowany przez W3C i opublikowany po raz pierwszy w 2014 roku. Dzięki prostocie i czytelności JSON umożliwia integrację danych strukturalnych z witrynami internetowymi, aplikacjami i systemami wymiany informacji, jednocześnie zachowując kompatybilność ze standardem RDF.

Historia

Prace nad json-ld rozpoczęły się w 2010 roku jako część inicjatywy mającej ułatwić publikowanie danych semantycznych w sieci. Pierwsza wersja specyfikacji (1.0) została opublikowana w 2014 roku, a kolejne wersje (1.1) w 2020 roku wprowadziły m.in. obsługę kontekstu domyślnego i wyrażanie wielojęzycznych danych.

Podstawowe pojęcia

  • Kontekst (@context) – określa mapowanie nazw skróconych (prefiksów) na pełne identyfikatory URI. Pozwala to na rozróżnienie jednorodnych nazw w różnych domenach.
  • Identyfikator (@id) – globalny identyfikator zasobu w postaci URI.
  • Typ (@type) – wskazuje klasyfikację zasobu, najczęściej wskazując na pojęcia z Schema.org lub innych ontologii.
  • Wartość (@value) – zawiera właściwą wartość danych, ewentualnie z dodatkowymi atrybutami takimi jak język (@language) czy jednostka miary (@unitCode).

Składnia

Plik json-ld jest zwykłym obiektem JSON. Poniżej przedstawiono minimalny przykład opisujący książkę:

{
  "@context": "https://schema.org/",
  "@type": "Book",
  "@id": "urn:isbn:978-83-123456-7-8",
  "name": "Przykładowy tytuł",
  "author": {
    "@type": "Person",
    "name": "Jan Kowalski"
  },
  "datePublished": "2023-05-01",
  "isbn": "978-83-123456-7-8"
}

W powyższym przykładzie @context wskazuje na słownik Schema.org, co umożliwia użycie krótkich nazw, takich jak name czy author.

Zastosowanie

json-ld znajduje zastosowanie w wielu obszarach:

  • Pozycjonowanie w wyszukiwarkach (SEO) – dzięki strukturalnym danym Google, Bing i inne silniki wyszukiwarek mogą lepiej zrozumieć treść stron i wyświetlać bogate wyniki (tzw. rich snippets).
  • Integracja danych w aplikacjach JavaScript – dane w formacie json-ld mogą być łatwo przetwarzane przy użyciu natywnych metod języka.
  • Wymiana informacji w ekosystemie Linked Data – umożliwia publikowanie danych jako otwartych zasobów, które można łączyć i przeszukiwać.
  • Systemy zarządzania treścią (CMS) – wiele platform, takich jak WordPress, Drupal czy Joomla, oferuje wtyczki umożliwiające automatyczne generowanie kodu json-ld.

Powiązania z innymi standardami

Choć json-ld jest samodzielnym formatem, jest w pełni kompatybilny z innymi technikami opisywania danych:

  • Microdata – alternatywny sposób osadzania danych w HTML, mniej elastyczny niż json-ld.
  • RDFa – rozszerzenie HTML umożliwiające osadzanie RDF w kodzie markup.
  • Open Graph – protokół wykorzystywany głównie przez media społecznościowe; nie jest semantyczny, ale często współistnieje z json-ld.

Implementacje i narzędzia

W ekosystemie dostępnych jest wiele bibliotek i narzędzi wspierających json-ld:

  • jsonld.js – biblioteka JavaScript umożliwiająca parsowanie, kompaktowanie i rozwijanie dokumentów json-ld.
  • Apache Jena – framework w języku Java, obsługujący json-ld jako jedną z reprezentacji RDF.
  • PyLD – biblioteka w Pythonie umożliwiająca konwersję między json-ld a innymi formatami RDF.
  • Google Structured Data Testing Tool – narzędzie pomagające zweryfikować poprawność i wykrywalność danych json-ld przez wyszukiwarki.

Praktyczne wskazówki

  1. Używaj @context z zaufanym słownikiem (np. Schema.org) lub własnym, aby zapewnić jednoznaczność nazw.
  2. Stosuj stałe identyfikatory (@id) w postaci URI, co umożliwia odwołania i linkowanie między zasobami.
  3. Włącz dane json-ld w sekcji <head> lub bezpośrednio w treści dokumentu, aby zapewnić ich dostępność dla robotów indeksujących.
  4. Testuj poprawność przy użyciu walidatorów json-ld oraz narzędzi do analizy danych strukturalnych.

Przykłady zastosowań

Strona produktu – opisuje ofertę handlową:

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Smartfon XYZ",
  "image": [
    "https://example.com/photos/1.jpg",
    "https://example.com/photos/2.jpg"
  ],
  "description": "Nowoczesny smartfon z 128 GB pamięci.",
  "sku": "XYZ-128",
  "offers": {
    "@type": "Offer",
    "priceCurrency": "PLN",
    "price": "1999.00",
    "availability": "https://schema.org/InStock",
    "url": "https://example.com/produkt/xyz"
  }
}

Wydarzenie kulturalne – opis konferencji lub koncertu:

{
  "@context": "https://schema.org/",
  "@type": "Event",
  "name": "Konferencja „Nowe Technologie w Biznesie”",
  "startDate": "2025-09-20T09:00",
  "endDate": "2025-09-20T17:00",
  "location": {
    "@type": "Place",
    "name": "Centrum Konferencyjne XYZ",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "ul. Przykładowa 10",
      "addressLocality": "Warszawa",
      "postalCode": "00-001",
      "addressCountry": "PL"
    }
  },
  "organizer": {
    "@type": "Organization",
    "name": "Stowarzyszenie Innowacji"
  }
}

Bibliografia

  • W3C Recommendation – JSON-LD 1.1, 2020.
  • G. Brauer, et al. „Linked Data Platform”, W3C, 2014.
  • „Schema.org”, dokumentacja dostępna w ramach W3C.
  • J. Smith, „Praktyczne zastosowanie JSON‑LD w SEO”, Journal of Web Engineering, 2022.

Format json-ld stanowi kluczowy element ekosystemu Linked Data, łącząc prostotę JSON z możliwościami semantycznymi RDF. Dzięki temu jest szeroko wykorzystywany zarówno w publikacji danych publicznych, jak i w komercyjnych rozwiązaniach internetowych.