SlideShare una empresa de Scribd logo
1 de 19
JSON-LD Update
State of JSON-LD in 2017
1
Gregg Kellogg
gregg@greggkellogg.net
@gkellogg
http://www.slideshare.net/gkellogg1/jsonld-update-dc-2017
Quite Successful Format
• The October 2016 Common Crawl reports over 2 million
(out of 3 million) HTML pages include JSON-LD [1].
• JSON-LD is one of the formats supported by schema.org,
in addition to Microdata and RDFa [2].
• JSON-LD is a required format in the Linked Data platform
[3].
• JSON-LD is becoming popular for many other REST APIs.
2
[1] webdatacommons.org/structureddata/#results-2016-1
[2] http://blog.schema.org/2013/06/schemaorg-and-json-ld.html
[3] https://www.w3.org/TR/ldp/
Keys to Success
• A primary goal was to allow JSON developers to
use it as if it is normal JSON.
The syntax is designed to not disturb already deployed systems running on
JSON, but provide a smooth upgrade path from JSON to JSON-LD. Since the
shape of such data varies wildly, JSON-LD features mechanisms to reshape
documents into a deterministic structure which simplifies their processing [4].
• JSON-LD allows developers to focus on the JSON,
but modelers to get back to the RDF data model for
semantic analysis and validation.
3
[4] https://www.w3.org/TR/json-ld/
JSON-LD – Key
Features
• Add @context to JSON to associate terms (properties) with
IRIs which define them.
• Describe the expected types for string values of properties
• IRI, Dates, Numbers, …
• Treat collections as lists or sets.
• Encourage the use of well-known identifiers for entities, and
provide typing (@id and @type).
• (much more, see JSON-LD 1.0 for a complete feature set).
4
JSON-LD 1.1
• It’s been over three years since JSON-LD 1.0 was published, and feature requests have been
mounting:
• 36 issues addressed since 1.0 (15 still open)
• Use objects to index into collections, rather than only array form
• Previously restricted to @index and @language. Now available on @id and @type.
• Can include @set with other container types (e.g.: "@container": ["@set",
"@language"]).
• Framing, never complete in 1.0. Now provides ability to match on @id, inclusive or exclusive
@type, property values, and specifics of a value object. Supports framing of datasets, not just
graphs.
• Contexts scoped to terms: property values or entities using a given type term can overlay
terms-specific contexts.
• Ignore some elements of JSON structure.
• Abstract from JSON-itself, allowing for YAML, CBOR and other LD representations.
5
Version Announcement
6
{
"@context":
{
"@version": 1.1,
"schema": "http://schema.org/",
"name": "schema:name",
"body": "schema:articleBody",
"words": "schema:wordCount",
"post": {
"@id": "schema:blogPost",
"@container": "@id"
}
},
"@id": "http://example.com/",
"@type": "schema:Blog",
"name": "World Financial News",
…
}
• For backwards compatibility, version 1.1 must be
specified to use new 1.1 features (may be through API).
@id Maps
7
{
"@context":
{
"@version": 1.1,
"schema": "http://schema.org/",
"name": "schema:name",
"body": "schema:articleBody",
"words": "schema:wordCount",
"post": {
"@id": "schema:blogPost",
"@container": "@id"
}
},
"@id": "http://example.com/",
"@type": "schema:Blog",
"name": "World Financial News",
"post": {
"http://example.com/posts/1/en": {
"body": "World commodities were up today with heavy trading of crude oil...",
"words": 1539
},
"http://example.com/posts/1/de": {
"body": "Die Werte an Warenbörsen stiegen im Sog eines starken Handels von Rohöl...",
"words": 1204
}
}
}
Nested Properties
8
{
"@context": {
"@version": 1.1,
"skos": "http://www.w3.org/2004/02/skos/core#",
"labels": "@nest",
"main_label": {"@id": "skos:prefLabel"},
"other_label": {"@id": "skos:altLabel"},
"homepage": {"@id": "http://schema.org/description", "@type": "@id"}
},
"@id": "http://example.org/myresource",
"homepage": "http://example.org",
"labels": {
"main_label": "This is the main label for my resource",
"other_label": "This is the other label"
}
}
Scoped Contexts
9
{
“@context": {
"@version": 1.1,
"name": "http://schema.org/name",
"interest": {
"@id":"http://xmlns.com/foaf/0.1/interest",
"@context": {"@vocab": "http://xmlns.com/foaf/0.1/"}
}
},
"name": "Manu Sporny",
"interest": {
"@id": "https://www.w3.org/TR/json-ld/",
"name": "JSON-LD",
"topic": "Linking Data"
}
}
Scoped Contexts (@type)
10
{
“@context": {
"@version": 1.1,
"name": "http://schema.org/name",
"interest": "http://xmlns.com/foaf/0.1/interest",
"Document": {
"@id": "http://xmlns.com/foaf/0.1/Document",
"@context": {"@vocab": "http://xmlns.com/foaf/0.1/"}
}
},
"@type": "Person",
"name": "Manu Sporny",
"interest": {
"@id": "https://www.w3.org/TR/json-ld/",
"@type": "Document",
"name": "JSON-LD",
"topic": "Linking Data"
}
}
Improve Compact IRIs
11
• Previously, when compacting, compact IRIs could
be created that were not intended.
• E.g., defining a term “sport” could cause the
creation of a term “sport:sEvent”, where
“schema:sportsEvent” was intended.
• Now, terms only used for creating Compact IRIs if
the term ends with a “:” or the value of the term is
an IRI ending with “/” or “#”.
Open Issues
12
• Add an @graph container type [#195].
• Unmapped JSON values [#333].
• Remove unnecessary use of @graph in framed output
[#435].
• Improve use of language maps with values not having
a language [#480].
• HTTP Request profile to specify compaction context or
frame [#491].
JSON-LD 1.1 Timeline
• All work being done in Community Group [5][6].
• With enough interest, a Working Group could be spun up to create a Recommendation,
and possibly address additional requirements.
• Suggested Plenary for TPAC 2017
• Expect community drafts to complete in Q4 2017 (Please comment to help get approved).
• Ruby implementation conforms to all changes in CG specs.
• Live at Ruby RDF Distiller.
• Changes likely easily applied to Python, Javascript, PHP, Java, C#, Go and other
implementations.
• Still no publicly available implementation in “C”.
13
[5] https://www.w3.org/community/json-ld/
[6] http://json-ld.org
Related Topics for
using JSON-LD
14
Shape Expressions
(ShEx)
• ShEx [7] is used for
validating graph
patterns, similar to,
but less complex then
SHACL.
• JSON grammar is
JSON-LD/RDF.
Also has Compact
Grammar.
15
[7] https://shexspec.github.io/spec
ex:PersonShape {
foaf:name .
}
ex:EmployeeShape {
&ex:PersonShape ;
ex:employeeNumber .
}
{ "type":"Schema", "shapes": [{
"id": "http://schema.example/PersonShape",
“type": "Shape", "expression": {
"type": "TripleConstraint",
"predicate": "http://xmlns.com/foaf/0.1/name"
}
}, {
"id": "http://schema.example/EmployeeShape":,
"type": "Shape", "expression": {
“type": "EachOf", "shapeExprs": [
“http://schema.example/PersonShape",
{ "type": "TripleConstraint",
"predicate": "http://schema.example/employeeNumber" }
]
}
}]
}
Decentralized Identifiers
• The WebDHT [8] proposes to use the block-chain
for as an identifier space with immutable content in
the block chain.
• Content is a JSON-LD document, so may be used
as the target of a @context.
• Content will not change, so may be cached or
distributed out-of-band.
• Content signed to guarantee veracity.
16
[8] http://opencreds.org/specs/source/webdht/
Linked Data Signatures
• Mechanism for signing Linked Data documents [9]
• Part of the work of the Digital Verification Community Group [10]
17
[9] https://w3c-dvcg.github.io/ld-signatures/
[10] https://w3c-dvcg.github.io/
{
"@context": "https://w3id.org/identity/v1",
"title": "Hello World!",
"signature": {
"type": "LinkedDataSignature2015",
"creator": "http://example.com/i/pat/keys/5",
"created": "2011-09-23T20:21:34Z",
"domain": "example.org",
"nonce": "2bbgh3dgjg2302d-d2b3gi423d42",
"signatureValue": "OGQzNGVkMzVm4NTIyZTkZDY...NmExMgoYzI43Q3ODIyOWM32NjI="
}
}
Verifiable Claims
• Close to becoming a
Working group [12].
• Could be a source
of identity for WoT.
• Defines a data model
and syntax for
making claims [13].
18
[12] http://w3c.github.io/vctf/charter/proposal.html
[13] https://opencreds.github.io/vc-data-model/
More Information
19
json-ld.org
github://json-ld.org/json-ld/issues
Gregg Kellogg
@gkellogg
gregg@greggkellogg.net
http://greggkellogg.net/
json-ld.org/spec/latest/json-ld/
json-ld.org/spec/latest/json-ld-api/
json-ld.org/spec/latest/json-ld-framing/

Más contenido relacionado

La actualidad más candente

Back to Basics 1: Thinking in documents
Back to Basics 1: Thinking in documentsBack to Basics 1: Thinking in documents
Back to Basics 1: Thinking in documents
MongoDB
 
Modeling Data in MongoDB
Modeling Data in MongoDBModeling Data in MongoDB
Modeling Data in MongoDB
lehresman
 

La actualidad más candente (20)

JSON-LD: JSON for the Social Web
JSON-LD: JSON for the Social WebJSON-LD: JSON for the Social Web
JSON-LD: JSON for the Social Web
 
Creating 3rd Generation Web APIs with Hydra
Creating 3rd Generation Web APIs with HydraCreating 3rd Generation Web APIs with Hydra
Creating 3rd Generation Web APIs with Hydra
 
Building your first app with mongo db
Building your first app with mongo dbBuilding your first app with mongo db
Building your first app with mongo db
 
RDFa Tutorial
RDFa TutorialRDFa Tutorial
RDFa Tutorial
 
"RDFa - what, why and how?" by Mike Hewett and Shamod Lacoul
"RDFa - what, why and how?" by Mike Hewett and Shamod Lacoul"RDFa - what, why and how?" by Mike Hewett and Shamod Lacoul
"RDFa - what, why and how?" by Mike Hewett and Shamod Lacoul
 
RDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use itRDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use it
 
Open Standards for the Semantic Web: XML / RDF(S) / OWL / SOAP
Open Standards for the Semantic Web: XML / RDF(S) / OWL / SOAPOpen Standards for the Semantic Web: XML / RDF(S) / OWL / SOAP
Open Standards for the Semantic Web: XML / RDF(S) / OWL / SOAP
 
CouchDB at New York PHP
CouchDB at New York PHPCouchDB at New York PHP
CouchDB at New York PHP
 
Back to Basics 1: Thinking in documents
Back to Basics 1: Thinking in documentsBack to Basics 1: Thinking in documents
Back to Basics 1: Thinking in documents
 
Building your first app with MongoDB
Building your first app with MongoDBBuilding your first app with MongoDB
Building your first app with MongoDB
 
Modeling Data in MongoDB
Modeling Data in MongoDBModeling Data in MongoDB
Modeling Data in MongoDB
 
Beautiful REST+JSON APIs with Ion
Beautiful REST+JSON APIs with IonBeautiful REST+JSON APIs with Ion
Beautiful REST+JSON APIs with Ion
 
Mongo db operations_v2
Mongo db operations_v2Mongo db operations_v2
Mongo db operations_v2
 
Practical Ruby Projects With Mongo Db
Practical Ruby Projects With Mongo DbPractical Ruby Projects With Mongo Db
Practical Ruby Projects With Mongo Db
 
The Lonesome LOD Cloud
The Lonesome LOD CloudThe Lonesome LOD Cloud
The Lonesome LOD Cloud
 
Entity Relationships in a Document Database at CouchConf Boston
Entity Relationships in a Document Database at CouchConf BostonEntity Relationships in a Document Database at CouchConf Boston
Entity Relationships in a Document Database at CouchConf Boston
 
The Fine Art of Schema Design in MongoDB: Dos and Don'ts
The Fine Art of Schema Design in MongoDB: Dos and Don'tsThe Fine Art of Schema Design in MongoDB: Dos and Don'ts
The Fine Art of Schema Design in MongoDB: Dos and Don'ts
 
Overview of GraphQL & Clients
Overview of GraphQL & ClientsOverview of GraphQL & Clients
Overview of GraphQL & Clients
 
Conceptos básicos. seminario web 3 : Diseño de esquema pensado para documentos
Conceptos básicos. seminario web 3 : Diseño de esquema pensado para documentosConceptos básicos. seminario web 3 : Diseño de esquema pensado para documentos
Conceptos básicos. seminario web 3 : Diseño de esquema pensado para documentos
 
Dev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDBDev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDB
 

Similar a JSON-LD update DC 2017

Creating web applications with LODSPeaKr
Creating web applications with LODSPeaKrCreating web applications with LODSPeaKr
Creating web applications with LODSPeaKr
Alvaro Graves
 

Similar a JSON-LD update DC 2017 (20)

Comparison with storing data using NoSQL(CouchDB) and a relational database.
Comparison with storing data using NoSQL(CouchDB) and a relational database.Comparison with storing data using NoSQL(CouchDB) and a relational database.
Comparison with storing data using NoSQL(CouchDB) and a relational database.
 
JSON-LD and SHACL for Knowledge Graphs
JSON-LD and SHACL for Knowledge GraphsJSON-LD and SHACL for Knowledge Graphs
JSON-LD and SHACL for Knowledge Graphs
 
REST easy with API Platform
REST easy with API PlatformREST easy with API Platform
REST easy with API Platform
 
Graph databases & data integration v2
Graph databases & data integration v2Graph databases & data integration v2
Graph databases & data integration v2
 
MongoDB Basics
MongoDB BasicsMongoDB Basics
MongoDB Basics
 
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
 
The SPARQL Anything project
The SPARQL Anything projectThe SPARQL Anything project
The SPARQL Anything project
 
RDFa: an introduction
RDFa: an introductionRDFa: an introduction
RDFa: an introduction
 
Robot operating system [ROS]
Robot operating system [ROS]Robot operating system [ROS]
Robot operating system [ROS]
 
GraphQL in an Age of REST
GraphQL in an Age of RESTGraphQL in an Age of REST
GraphQL in an Age of REST
 
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
 
JAX-RS Creating RESTFul services
JAX-RS Creating RESTFul servicesJAX-RS Creating RESTFul services
JAX-RS Creating RESTFul services
 
Programming the Semantic Web
Programming the Semantic WebProgramming the Semantic Web
Programming the Semantic Web
 
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
 
tutorial2-notes2
tutorial2-notes2tutorial2-notes2
tutorial2-notes2
 
tutorial2-notes2
tutorial2-notes2tutorial2-notes2
tutorial2-notes2
 
Creating web applications with LODSPeaKr
Creating web applications with LODSPeaKrCreating web applications with LODSPeaKr
Creating web applications with LODSPeaKr
 
ROHub-Argos integration
ROHub-Argos integrationROHub-Argos integration
ROHub-Argos integration
 
Graph databases & data integration - the case of RDF
Graph databases & data integration - the case of RDFGraph databases & data integration - the case of RDF
Graph databases & data integration - the case of RDF
 
Composable Parallel Processing in Apache Spark and Weld
Composable Parallel Processing in Apache Spark and WeldComposable Parallel Processing in Apache Spark and Weld
Composable Parallel Processing in Apache Spark and Weld
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

JSON-LD update DC 2017

  • 1. JSON-LD Update State of JSON-LD in 2017 1 Gregg Kellogg gregg@greggkellogg.net @gkellogg http://www.slideshare.net/gkellogg1/jsonld-update-dc-2017
  • 2. Quite Successful Format • The October 2016 Common Crawl reports over 2 million (out of 3 million) HTML pages include JSON-LD [1]. • JSON-LD is one of the formats supported by schema.org, in addition to Microdata and RDFa [2]. • JSON-LD is a required format in the Linked Data platform [3]. • JSON-LD is becoming popular for many other REST APIs. 2 [1] webdatacommons.org/structureddata/#results-2016-1 [2] http://blog.schema.org/2013/06/schemaorg-and-json-ld.html [3] https://www.w3.org/TR/ldp/
  • 3. Keys to Success • A primary goal was to allow JSON developers to use it as if it is normal JSON. The syntax is designed to not disturb already deployed systems running on JSON, but provide a smooth upgrade path from JSON to JSON-LD. Since the shape of such data varies wildly, JSON-LD features mechanisms to reshape documents into a deterministic structure which simplifies their processing [4]. • JSON-LD allows developers to focus on the JSON, but modelers to get back to the RDF data model for semantic analysis and validation. 3 [4] https://www.w3.org/TR/json-ld/
  • 4. JSON-LD – Key Features • Add @context to JSON to associate terms (properties) with IRIs which define them. • Describe the expected types for string values of properties • IRI, Dates, Numbers, … • Treat collections as lists or sets. • Encourage the use of well-known identifiers for entities, and provide typing (@id and @type). • (much more, see JSON-LD 1.0 for a complete feature set). 4
  • 5. JSON-LD 1.1 • It’s been over three years since JSON-LD 1.0 was published, and feature requests have been mounting: • 36 issues addressed since 1.0 (15 still open) • Use objects to index into collections, rather than only array form • Previously restricted to @index and @language. Now available on @id and @type. • Can include @set with other container types (e.g.: "@container": ["@set", "@language"]). • Framing, never complete in 1.0. Now provides ability to match on @id, inclusive or exclusive @type, property values, and specifics of a value object. Supports framing of datasets, not just graphs. • Contexts scoped to terms: property values or entities using a given type term can overlay terms-specific contexts. • Ignore some elements of JSON structure. • Abstract from JSON-itself, allowing for YAML, CBOR and other LD representations. 5
  • 6. Version Announcement 6 { "@context": { "@version": 1.1, "schema": "http://schema.org/", "name": "schema:name", "body": "schema:articleBody", "words": "schema:wordCount", "post": { "@id": "schema:blogPost", "@container": "@id" } }, "@id": "http://example.com/", "@type": "schema:Blog", "name": "World Financial News", … } • For backwards compatibility, version 1.1 must be specified to use new 1.1 features (may be through API).
  • 7. @id Maps 7 { "@context": { "@version": 1.1, "schema": "http://schema.org/", "name": "schema:name", "body": "schema:articleBody", "words": "schema:wordCount", "post": { "@id": "schema:blogPost", "@container": "@id" } }, "@id": "http://example.com/", "@type": "schema:Blog", "name": "World Financial News", "post": { "http://example.com/posts/1/en": { "body": "World commodities were up today with heavy trading of crude oil...", "words": 1539 }, "http://example.com/posts/1/de": { "body": "Die Werte an Warenbörsen stiegen im Sog eines starken Handels von Rohöl...", "words": 1204 } } }
  • 8. Nested Properties 8 { "@context": { "@version": 1.1, "skos": "http://www.w3.org/2004/02/skos/core#", "labels": "@nest", "main_label": {"@id": "skos:prefLabel"}, "other_label": {"@id": "skos:altLabel"}, "homepage": {"@id": "http://schema.org/description", "@type": "@id"} }, "@id": "http://example.org/myresource", "homepage": "http://example.org", "labels": { "main_label": "This is the main label for my resource", "other_label": "This is the other label" } }
  • 9. Scoped Contexts 9 { “@context": { "@version": 1.1, "name": "http://schema.org/name", "interest": { "@id":"http://xmlns.com/foaf/0.1/interest", "@context": {"@vocab": "http://xmlns.com/foaf/0.1/"} } }, "name": "Manu Sporny", "interest": { "@id": "https://www.w3.org/TR/json-ld/", "name": "JSON-LD", "topic": "Linking Data" } }
  • 10. Scoped Contexts (@type) 10 { “@context": { "@version": 1.1, "name": "http://schema.org/name", "interest": "http://xmlns.com/foaf/0.1/interest", "Document": { "@id": "http://xmlns.com/foaf/0.1/Document", "@context": {"@vocab": "http://xmlns.com/foaf/0.1/"} } }, "@type": "Person", "name": "Manu Sporny", "interest": { "@id": "https://www.w3.org/TR/json-ld/", "@type": "Document", "name": "JSON-LD", "topic": "Linking Data" } }
  • 11. Improve Compact IRIs 11 • Previously, when compacting, compact IRIs could be created that were not intended. • E.g., defining a term “sport” could cause the creation of a term “sport:sEvent”, where “schema:sportsEvent” was intended. • Now, terms only used for creating Compact IRIs if the term ends with a “:” or the value of the term is an IRI ending with “/” or “#”.
  • 12. Open Issues 12 • Add an @graph container type [#195]. • Unmapped JSON values [#333]. • Remove unnecessary use of @graph in framed output [#435]. • Improve use of language maps with values not having a language [#480]. • HTTP Request profile to specify compaction context or frame [#491].
  • 13. JSON-LD 1.1 Timeline • All work being done in Community Group [5][6]. • With enough interest, a Working Group could be spun up to create a Recommendation, and possibly address additional requirements. • Suggested Plenary for TPAC 2017 • Expect community drafts to complete in Q4 2017 (Please comment to help get approved). • Ruby implementation conforms to all changes in CG specs. • Live at Ruby RDF Distiller. • Changes likely easily applied to Python, Javascript, PHP, Java, C#, Go and other implementations. • Still no publicly available implementation in “C”. 13 [5] https://www.w3.org/community/json-ld/ [6] http://json-ld.org
  • 15. Shape Expressions (ShEx) • ShEx [7] is used for validating graph patterns, similar to, but less complex then SHACL. • JSON grammar is JSON-LD/RDF. Also has Compact Grammar. 15 [7] https://shexspec.github.io/spec ex:PersonShape { foaf:name . } ex:EmployeeShape { &ex:PersonShape ; ex:employeeNumber . } { "type":"Schema", "shapes": [{ "id": "http://schema.example/PersonShape", “type": "Shape", "expression": { "type": "TripleConstraint", "predicate": "http://xmlns.com/foaf/0.1/name" } }, { "id": "http://schema.example/EmployeeShape":, "type": "Shape", "expression": { “type": "EachOf", "shapeExprs": [ “http://schema.example/PersonShape", { "type": "TripleConstraint", "predicate": "http://schema.example/employeeNumber" } ] } }] }
  • 16. Decentralized Identifiers • The WebDHT [8] proposes to use the block-chain for as an identifier space with immutable content in the block chain. • Content is a JSON-LD document, so may be used as the target of a @context. • Content will not change, so may be cached or distributed out-of-band. • Content signed to guarantee veracity. 16 [8] http://opencreds.org/specs/source/webdht/
  • 17. Linked Data Signatures • Mechanism for signing Linked Data documents [9] • Part of the work of the Digital Verification Community Group [10] 17 [9] https://w3c-dvcg.github.io/ld-signatures/ [10] https://w3c-dvcg.github.io/ { "@context": "https://w3id.org/identity/v1", "title": "Hello World!", "signature": { "type": "LinkedDataSignature2015", "creator": "http://example.com/i/pat/keys/5", "created": "2011-09-23T20:21:34Z", "domain": "example.org", "nonce": "2bbgh3dgjg2302d-d2b3gi423d42", "signatureValue": "OGQzNGVkMzVm4NTIyZTkZDY...NmExMgoYzI43Q3ODIyOWM32NjI=" } }
  • 18. Verifiable Claims • Close to becoming a Working group [12]. • Could be a source of identity for WoT. • Defines a data model and syntax for making claims [13]. 18 [12] http://w3c.github.io/vctf/charter/proposal.html [13] https://opencreds.github.io/vc-data-model/