json-ld - csee.umbc.edu€¦ · google looks for json-ld lgoogle looks for and uses some json-ld...
TRANSCRIPT
JSON-LD
JSONasanXMLAlternativel Light-weightXMLalternativefordata-interchange
l JSON=JavaScriptObjectNotation– It’sreallylanguageindependent– Mostprogramminglanguagescaneasilyreaditandinstantiateobjects
lDefinedinRFC4627lStartedgainingtraction~2006,nowwidelyused
lhttp://json.org/ hasmoreinformation
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
Evaluation
l JSONissimplerthanXMLandmorecompact– Noclosingtags,butifyoucompressXMLandJSONthedifferenceisnotsogreat
– XMLparsingishardbecauseofitscomplexity
l JSONhasabetterfitforOOsystemsthanXML,butnotasextensible
lPreferredforsimpledataexchangebymanylMongoDB:‘NoSQL’databaseforJSONobjectslElasticSearch:Lucene-basedIRsystemusingJSONtorepresentdocuments
JSON-LD
JSON-LD:2014W3Crecommendation forrepresentingRDFdataasJSONobjects{"@context":{"name":"http://xmlns.com/foaf/0.1/name","homepage":{"@id":"http://xmlns.com/foaf/0.1/workplaceHomepage","@type":"@id"},"Person":"http://xmlns.com/foaf/0.1/Person"},"@id":"http://me.markus-lanthaler.com","@type":"Person","name":"MarkusLanthaler","homepage":"http://www.tugraz.at/"}
Inthebeginning
{"name":"ManuSporny","homepage":"http://manu.sporny.org/","image":"http://manu.sporny.org/images/manu.png"}
Abitbetter
{"http://schema.org/name":"ManuSporny","http://schema.org/url":{"@id":"http://manu.sporny.org/"}"http://schema.org/image":
{"@id":"http://manu.sporny.org/images/manu.png"}}
lThe'@id'keywordmeans'ThisvalueisanidentifierthatisanIRI'
Defineacontext{"@context":{"name":"http://schema.org/name",%[1]"image":{"@id":"http://schema.org/image",%[2]"@type":"@id"%[3]},"homepage":{"@id":"http://schema.org/url",%[4]"@type":"@id" %[5]}}}
[1]means'name'isshortfor'http://schema.org/name'[2]means'image'isshortfor'http://schema.org/image'[3]meansastringvalueassociatedwith'image'shouldbeinterpretedasanidentifierthatisanIRI[4]means'homepage'isshortfor'http://schema.org/url'[5]meansastringvalueassociatedwith'homepage'shouldbeinterpretedasanidentifierthatisanIRI
Referenceanexternalcontext
{"@context":"http://json-ld.org/contexts/person.jsonld","name":"ManuSporny","homepage":"http://manu.sporny.org/","image":"http://manu.sporny.org/images/manu.png"}
Addcontextinline{"@context":{"name":"http://schema.org/name","image":{"@id":"http://schema.org/image","@type":"@id"},"homepage":{"@id":"http://schema.org/url","@type":"@id"}},"name":"ManuSporny","homepage":"http://manu.sporny.org/","image":"http://manu.sporny.org/images/manu.png"}
ExternalContext?
lFetchhttp://json-ld.org/contexts/person.jsonldcurlhttp://json-ld.org/contexts/person.jsonldReturns aJSONobjectdefiningthecontext
lFetchhttp://schema.org/curl–Lhttp://schema.org/– ReturnsHTMLpage,sinceitsdefaultapplication/typeisHTML
lFetchcurl--header"Accept:application/ld+json"-Lhttp://schema.org/
Makingassertionsaboutthings
{"@context":{..."Restaurant":"http://schema.org/Restaurant","Brewery":"http://schema.org/Brewery"}"@id":"http://example.org/places#BrewEats","@type":["Restaurant","Brewery"],...}
Addingadefaultvocabulary
{"@context":{"@vocab":"http://schema.org/"}"@id":"http://example.org/places#BrewEats","@type":"Restaurant","name":"BrewEats"...}
Mixingvocabularies{"@context":{"xsd":"http://www.w3.org/2001/XMLSchema#","foaf":"http://xmlns.com/foaf/0.1/","foaf:homepage":{"@type":"@id"},"picture":{"@id":"foaf:depiction","@type":"@id"}},"@id":"http://me.markus-lanthaler.com/","@type":"foaf:Person","foaf:name":"MarkusLanthaler","foaf:homepage":"http://www.markus-lanthaler.com/","picture":"http://twitter.com/account/profile_image/markuslanthaler"}
Embeddingotherobjects
{..."name":"ManuSporny","foaf:knows":{"@type":"Person","name":"GreggKellogg",}...}
GooglelooksforJSON-LD
lGooglelooksforandusessomeJSON-LDmarkup(e.g.,fororganizations)
lPutaJSON-LDobjectinheadorbodyofwebpagewrappedwithscripttags:<scripttype="application/ld+json">{...}</script>
https://search.google.com/structured-data/testing-tool
http://json-ld.org/
JSON-LDPlayground
Conclusion
l JSON-LDisagoodsolutiontoputtingblocksofsemanticdataonwebpages
lAimedatpublishinglinkeddata,notontologies,i.e.,ABOXnotTBOX
lToolsavailableforextractingRDFtripleslSearchengineslookforanduseJSON-LDthatusevocabulariestheyunderstand(i.e.,schema.org)