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
- Używaj
@contextz zaufanym słownikiem (np. Schema.org) lub własnym, aby zapewnić jednoznaczność nazw. - Stosuj stałe identyfikatory (
@id) w postaci URI, co umożliwia odwołania i linkowanie między zasobami. - 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. - 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.