Wrappers for converting, expanding and compacting JSON-LD documents. All parameters and return values must be JSON strings. Use jsonlite::toJSON and jsonlite::fromJSON to convert between R objects and JSON format. The readme has basic examples.
Usage
jsonld_compact(doc, context, options = NULL)
jsonld_expand(compacted, options = NULL)
jsonld_flatten(doc, context = NULL, options = NULL)
jsonld_frame(doc, frame, options = NULL)
jsonld_from_rdf(rdf, options = list(format = "application/nquads"))
jsonld_to_rdf(doc, options = list(format = "application/nquads"))
jsonld_normalize(doc, options = list(algorithm = "URDNA2015", format =
"application/nquads"))
Examples
# Example from https://github.com/digitalbazaar/jsonld.js#quick-examples
doc <- '{
"http://schema.org/name": "Manu Sporny",
"http://schema.org/url": {"@id": "http://manu.sporny.org/"},
"http://schema.org/image": {"@id": "http://manu.sporny.org/images/manu.png"}
}'
context <- '{
"name": "http://schema.org/name",
"homepage": {"@id": "http://schema.org/url", "@type": "@id"},
"image": {"@id": "http://schema.org/image", "@type": "@id"}
}'
# Compact and expand:
(out <- jsonld_compact(doc, context))
#> {
#> "@context": {
#> "name": "http://schema.org/name",
#> "homepage": {
#> "@id": "http://schema.org/url",
#> "@type": "@id"
#> },
#> "image": {
#> "@id": "http://schema.org/image",
#> "@type": "@id"
#> }
#> },
#> "image": "http://manu.sporny.org/images/manu.png",
#> "name": "Manu Sporny",
#> "homepage": "http://manu.sporny.org/"
#> }
(expanded <- jsonld_expand(out))
#> [
#> {
#> "http://schema.org/url": [
#> {
#> "@id": "http://manu.sporny.org/"
#> }
#> ],
#> "http://schema.org/image": [
#> {
#> "@id": "http://manu.sporny.org/images/manu.png"
#> }
#> ],
#> "http://schema.org/name": [
#> {
#> "@value": "Manu Sporny"
#> }
#> ]
#> }
#> ]
# Convert between JSON and RDF:
cat(nquads <- jsonld_to_rdf(doc))
#> _:b0 <http://schema.org/image> <http://manu.sporny.org/images/manu.png> .
#> _:b0 <http://schema.org/name> "Manu Sporny" .
#> _:b0 <http://schema.org/url> <http://manu.sporny.org/> .
jsonld_from_rdf(nquads)
#> [
#> {
#> "@id": "_:b0",
#> "http://schema.org/image": [
#> {
#> "@id": "http://manu.sporny.org/images/manu.png"
#> }
#> ],
#> "http://schema.org/name": [
#> {
#> "@value": "Manu Sporny"
#> }
#> ],
#> "http://schema.org/url": [
#> {
#> "@id": "http://manu.sporny.org/"
#> }
#> ]
#> }
#> ]
# Other utilities:
jsonld_flatten(doc)
#> [
#> {
#> "@id": "_:b0",
#> "http://schema.org/image": [
#> {
#> "@id": "http://manu.sporny.org/images/manu.png"
#> }
#> ],
#> "http://schema.org/name": [
#> {
#> "@value": "Manu Sporny"
#> }
#> ],
#> "http://schema.org/url": [
#> {
#> "@id": "http://manu.sporny.org/"
#> }
#> ]
#> }
#> ]
cat(jsonld_normalize(doc))
#> _:c14n0 <http://schema.org/image> <http://manu.sporny.org/images/manu.png> .
#> _:c14n0 <http://schema.org/name> "Manu Sporny" .
#> _:c14n0 <http://schema.org/url> <http://manu.sporny.org/> .