JSON-LD - csee.umbc.edu€¦ · Evaluaon l JSON is simpler than XML and more compact – No closing...

Preview:

Citation preview

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)

Recommended