Skip to main content

Codec Guide

The Context

Communication between entities requires coordination in order to understand eachother. To disseminate information there needs to be some sort of conductor to guarantee a smooth flow. This conductor is the 'context'. A context hold a mapping of aliases to predicate uri's, directives, expected datatypes and containers. This context is a gatekeeper's instruction on what an API is allowed to consume and execute or what it is allowed to produce.

Supported formats

L-space is about semantic graph computing. It expects data to be distributed and hence it should provide for the necessary tools to coop.

Json-ld

The main format used for encoding/decoding information is json-ld. The current implementation takes an interpretation on the current json-ld specs but should read existing json-ld fine. Still working on supporting pure json-ld and creating a custom json-ld-ish version to allow for the full spectrum of L-space.

GraphQL

GraphQL is supported for querying. Responses will be returned as json or json-ld. The GraphQL queries are reinforced by a context which is a replacement for the 'GraphQL Type System'.

Encoding/Decoding

L-space provides for generic type parsers. All logic is available within 'lspace-parse-core'. The main project supports a few implementation, one with Argonaut ('lspace-parse-argonaut') and one with Circe ('lspace-parse-circe'). Implementions with other json-libraries only takes about 20 lines of code.