JSON-LD with preloaded contexts.
This gem uses the preloading capabilities in JSON::LD::Context
to create ruby context definitions for common JSON-LD contexts to dramatically reduce processing time when any preloaded context is used in a JSON-LD document. As a consequence, changes made to these contexts after the gem release will not be loaded.
Contexts are taken from https://github.com/json-ld/json-ld.org/wiki/existing-contexts:
- Linked Open Vocabularies (LOV)
- http://lov.okfn.org/dataset/lov/context
- Schema.org
- http://schema.org (needs content negotiation)
- Hydra
- http://www.w3.org/ns/hydra/core
- LDP
- work in progress
- ActivityStreams 2.0
- http://asjsonld.mybluemix.net/
- Open Badges (OBI)
- https://openbadgespec.org/v1/context.json
- issues: https://github.com/openbadges/openbadges-specification/issues
- vCard Ontology
- http://www.w3.org/2006/vcard/ns (needs content negotiation)
- FOAF
- http://xmlns.com/foaf/context
- GeoJSON-LD
- https://raw.githubusercontent.com/geojson/geojson-ld/master/contexts/geojson-base.jsonld
- IIIF Image API
- http://iiif.io/api/image/2/context.json
- IIIF Presentation API
- http://iiif.io/api/presentation/2/context.json
- RDFa Core Initial Context
- http://www.w3.org/2013/json-ld-context/rdfa11
- Web Payments
- multiple, see specs
- package.json
- Research Object Bundle
- https://w3id.org/bundle/context
- prefix.cc
- http://prefix.cc/context (and subsets using URLs of the form http://prefix.cc/foaf,rdf,rdfs.file.jsonld)
- CultureGraph EntityFacts
- http://hub.culturegraph.org/entityfacts/context/v1/entityfacts.jsonld
- RDF Data Cube
- http://pebbie.org/context/qb
- CSVW Namespace Vocabulary Terms
- https://www.w3.org/ns/csvw
require 'rubygems'
require 'json/ld/preloaded'
require 'rdf/turtle'
require 'rdf/vocab'
input = JSON.parse %({
"@context": "https://schema.org/",
"@id": "https://github.com/ruby-rdf/json-ld-preloaded",
"@type": "SoftwareApplication",
"name": "JSON-LD Preloaded",
"description": "A meta-release of the json-ld gem including preloaded vocabularies.",
"author": {
"@id": "https://greggkellogg.net/foaf#me",
"@type": "Person",
"name": "Gregg Kellogg"
}
})
RDF::Turtle::Writer.new(STDOUT, standard_prefixes: true) do |w|
w << JSON::LD::API.toRdf(input)
end
- Do your best to adhere to the existing coding conventions and idioms.
- Don't use hard tabs, and don't leave trailing whitespace on any line.
- Do document every method you add using YARD annotations. Read the tutorial or just look at the existing code for examples.
- Don't touch the
json-ld.gemspec
,VERSION
orAUTHORS
files. If you need to change them, do so on your private branch only. - Do feel free to add yourself to the
CREDITS
file and the corresponding list in the theREADME
. Alphabetical order applies. - Do note that in order for us to merge any non-trivial changes (as a rule of thumb, additions larger than about 15 lines of code), we need an explicit public domain dedication on record from you.
This is free and unencumbered public domain software. For more information, see https://unlicense.org/ or the accompanying {file:UNLICENSE} file.