JSON-LD
JSONasanXMLAlterna3vel Light-weightXMLalterna0vefordata-interchange
l JSON=JavaScriptObjectNota0on– It’sreallylanguageindependent– Mostprogramminglanguagescaneasilyreaditandinstan0ateobjects
l DefinedinRFC4627l Startedgainingtrac0on~2006,nowwidelyused
l hQp://json.org/hasmoreinforma0on
Example{"firstName":"John","lastName":"Smith","age":25,"address":{"streetAdr”:"212ndStreet","city":"NewYork","state":"NY",”zip":"10021"},"phoneNumber":[{"type":"home","number":"212555-1234"},{"type":"fax","number”:"646555-4567"}]}
l ThisisaJSONobjectwithfivekey-valuepairs
l Objectsarewrappedbycurlybraces
l TherearenoobjectIDsl Keysarestringsl Valuesarenumbers,strings,objectsorarrays
l Arraysarewrappedbysquarebrackets
TheBNFissimple
Evalua3onl JSONissimplerthanXMLandmorecompact
– Noclosingtags,butifyoucompressXMLandJSONthedifferenceisnotsogreat
– XMLparsingishardbecauseofitscomplexity
l JSONhasabeQerfitforOOsystemsthanXML,butnotasextensible
l Preferredforsimpledataexchangebymanyl MongoDB:‘NoSQL’databaseforJSONobjectsl Elas0cSearch:Lucene-basedIRsystemusingJSONtorepresentdocuments
JSON-LD
JSON-LD:2014W3Crecommenda0onforrepresen0ngRDFdataasJSONobjects{"@context":{"name":"hQp://xmlns.com/foaf/0.1/name","homepage":{"@id":"hQp://xmlns.com/foaf/0.1/workplaceHomepage","@type":"@id"},"Person":"hQp://xmlns.com/foaf/0.1/Person"},"@id":"hQp://me.markus-lanthaler.com","@type":"Person","name":"MarkusLanthaler","homepage":"hQp://www.tugraz.at/"}
Inthebeginning
{"name":"ManuSporny","homepage":"hQp://manu.sporny.org/","image":"hQp://manu.sporny.org/images/manu.png"}
AbitbeCer
{"hQp://schema.org/name":"ManuSporny","hQp://schema.org/url":{"@id":"hQp://manu.sporny.org/"}"hQp://schema.org/image":{"@id":"hQp://manu.sporny.org/images/manu.png"}}
l The'@id'keywordmeans'Thisvalueisaniden0fierthatisanIRI'
Defineacontext{"@context":{"name":"hQp://schema.org/name",%[1]"image":{"@id":"hQp://schema.org/image",%[2]"@type":"@id"%[3]},"homepage":{"@id":"hQp://schema.org/url",%[4]"@type":"@id"%[5]}}}
[1]Thismeansthat'name'isshorthandfor'hQp://schema.org/name'[2]Thismeansthat'image'isshorthandfor'hQp://schema.org/image'[3]Thismeansthatastringvalueassociatedwith'image'shouldbeinterpretedasaniden0fierthatisanIRI[4]Thismeansthat'homepage'isshorthandfor'hQp://schema.org/url'[5]Thismeansthatastringvalueassociatedwith'homepage'shouldbeinterpretedasaniden0fierthatisanIRI
Referenceanexternalcontext
{"@context":"hQp://json-ld.org/contexts/person.jsonld","name":"ManuSporny","homepage":"hQp://manu.sporny.org/","image":"hQp://manu.sporny.org/images/manu.png"}
Addcontextinline{"@context":{"name":"hQp://schema.org/name","image":{"@id":"hQp://schema.org/image","@type":"@id"},"homepage":{"@id":"hQp://schema.org/url","@type":"@id"}},"name":"ManuSporny","homepage":"hQp://manu.sporny.org/","image":"hQp://manu.sporny.org/images/manu.png"}
ExternalContext?
l FetchhQp://json-ld.org/contexts/person.jsonldcurlhQp://json-ld.org/contexts/person.jsonldReturnsaJSONobjectdefiningthecontext
l FetchhQp://schema.org/curl–LhQp://schema.org/L– ReturnsHTMLpage,sinceitsdefaultapplica0on/typeisHTML
l Fetchcurl--header"Accept:applica0on/ld+json"-LhQp://schema.org/
Makingasser3onsaboutthings
{"@context":{..."Restaurant":"hQp://schema.org/Restaurant","Brewery":"hQp://schema.org/Brewery"}"@id":"hQp://example.org/places#BrewEats","@type":["Restaurant","Brewery"],...}
Addingadefaultvocabulary
{"@context":{"@vocab":"hQp://schema.org/"}"@id":"hQp://example.org/places#BrewEats","@type":"Restaurant","name":"BrewEats"...}
Mixingvocabularies{"@context":{"xsd":"hQp://www.w3.org/2001/XMLSchema#","foaf":"hQp://xmlns.com/foaf/0.1/","foaf:homepage":{"@type":"@id"},"picture":{"@id":"foaf:depic0on","@type":"@id"}},"@id":"hQp://me.markus-lanthaler.com/","@type":"foaf:Person","foaf:name":"MarkusLanthaler","foaf:homepage":"hQp://www.markus-lanthaler.com/","picture":"hQp://twiQer.com/account/profile_image/markuslanthaler"}
Embeddingotherobjects
{..."name":"ManuSporny","foaf:knows":{"@type":"Person","name":"GreggKellogg",}...}
GooglelooksforJSON-LD
l GooglelooksforandusessomeJSON-LDmarkup(e.g.,fororganiza0ons)
l PutaJSON-LDobjectinheadorbodyofwebpagewrappedwithscripttags:<scripttype="applica0on/ld+json">{...}</script>
https://search.google.com/structured-data/testing-tool
hCp://json-ld.org/
JSON-LDPlayground
Conclusion
l JSON-LDisagoodsolu0ontopuzngblocksofseman0cdataonwebpages
l Aimedatpublishlinkeddata,notontologies,i.e.,ABOXnotTBOX
l Toolsavailableforextrac0ngRDFtriplesl SearchcompanieslookforandJSON-LDthatusevocabulariestheyunderstand(i.e.,schema.org)