Hydra is a lightweight vocabulary that enables the creation of hypermedia-driven web APIs by enriching data with machine-readable semantics. It has two main building blocks - JSON-LD as the serialization format and the Hydra Core Vocabulary, which is a small extension of RDF Schema that describes application domains and API behaviors. The Hydra project provides specifications, implementations, and a community for developing APIs based on this standard.
2. Abstract
Hydra
is a lightweight vocabulary to create hypermedia-driven Web
APIs
it enables the creation of generic API clients
Authors
Markus Lanthaler, Graz University of Technology
Christian Gütl, Curtin University of Technology
3. Basic ideas of Hydra
With Hydra, a server is able to publish all possible state transitions a client
can perform on the server
Data is enriched with machine-readable semantics which enable
interaction
Hydra APIs base upon
REST architectural style
HTTP
4. Building blocks of Hydra
Hydra consists of two fundamental parts:
JSON-LD
It’s the serialization format used in the communication between the server and its
clients
Hydra Core Vocabulary
represents the shared vocabulary between server and client
5. JSON-LD
http://www.w3.org/TR/json-ld/
JSON-LD stands for Javascript Object Notation – Linked Data
JSON-LD is an extension of JSON
JSON-LD is a serialization-format
Use-cases:
Enables the expression of linked data
Makes data self-descriptive
8. Hydra Core Vocabulary
A small vocabulary extending RDF Schema ( http://www.w3.org/TR/rdf-
schema/ )
Hydra Core Vocabulary is used to
describe an application-domain with semantic aspects
express the behaviour of the Web-API
9. Hydra Core Vocabulary
Simple example: issue-tracking-system
GET http://example.com/issues/123
What‘s the model of comments
or how to add comments ?
13. Hydra Project
Hydra W3C Community Group (http://www.w3.org/community/hydra/)
Mailing List
Wiki
Chat
Implementations
HydraBundle: a bundle for Symfony2 to create Web APIs based on Hydra
HydraConsole: a generic API console for Hydra-powered Web APIs
HydraClient: a PHP client library to access Hydra-powered Web APIs