Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Title (Goal)Amherst - JSON-LD compaction service
Primary ActorDeveloper
Scope Component
Level 
Author Unknown User (acoburn)
Story (A paragraph or two describing what happens)In order to improve front-end (read) performance, it would be useful to store fedora resources as JSON in a key-value store (riak, mongodb, couchdb, etc, etc). That way, the objects can be more efficiently delivered to a web-based framework without needing to access fedora at all. Fedora will already generate JSON-LD in expanded form, but for application-specific use (applications that don't necessarily understand RDF), a compact form would be preferred. This would simply involve applying a context file to the expanded JSON-LD form.

A sample implementation is available here: https://github.com/acoburn/repository-extension-services/, in particular the acrepo-jsonld-service and acrepo-jsonld-cache modules.

Web Resource interaction

This service would expose an HTTP endpoint to convert fedora resources into a compact JSON-LD representation.

Deployment or Implementation notes

This service would be deployed separately from fedora, possibly on a separate machine. I envision that this would be implemented as a combination of OSGi services and camel routes that can be deployed in any OSGi container, written in Java and Blueprint XML. The implementation would require access to Fedora's HTTP API.

API-X Value Proposition

The primary use of this service in the context of API-X would be to allow for service discovery.