Giter Site home page Giter Site logo

titanium-json-ld's Introduction

JSON-LD 1.1 Processor & API

An implementation of the JSON-LD 1.1 (JSON-based Serialization for Linked Data) specification in Java utilizing JSONP (JSR 374 - Java API for JSON Processing).

Build Language grade: Java Codacy Badge Maven Central License

Goals

  • conformance to the specification
  • secure, stable, fast, A+ code
  • minimal external dependencies
    • only javax.json:javax.json-api is required now
  • simple to use

Conformance

The goal is to pass the official test suite and conform to the JSON-LD 1.1 specification.

Status

Feature Tests Pass Status Notes
Expansion 369 369 100%
Compaction 239 239 100%
Flattening 55 55 100%
JSON-LD to RDF 449 447 99.5%
RDF to JSON-LD 51 51 100%
Framing 89 88 98.8%
Remote Document and Context Retrieval 18 17 94.4%

See EARL results from the JSON-LD 1.1 Test Suite for more details.

Installation

Titanium JSON-LD

Maven

<dependency>
    <groupId>com.apicatalog</groupId>
    <artifactId>titanium-json-ld</artifactId>
    <version>0.8</version>
</dependency>

Gradle

compile group: 'com.apicatalog', name: 'titanium-json-ld', version: '0.8'

JSONP Provider

Add JSONP provider, if it is not on the classpath already.

Maven

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.json</artifactId>
    <version>1.1.4</version>
</dependency>

Gradle

compile group: 'org.glassfish', name: 'javax.json', version: '1.1.4'

Documentation

Javadoc

TBD

Examples

Titanium provides high-level JsonLd API to interact with the processor.

// Expansion
JsonLd.expand("https://w3c.github.io/json-ld-api/tests/expand/0001-in.jsonld")
      .ordered()
      .get();

JsonLd.expand("file:/home/filip/document.json")    // HTTP(S) and File schemes supported
      .context("file:/home/filip/context.jsonld")  // external context
      .get();

// Compaction
JsonLd.compact("https://example/expanded.jsonld", "https://example/context.jsonld")
      .compactToRelative(false)
      .get();

// Flattening
JsonLd.flatten("https://example/document.jsonld").get();

// JSON-LD to RDF
JsonLd.toRdf("https://example/document.jsonld").get();

// RDF to JSON-LD
JsonLd.fromRdf("https://example/document.nq").options(options).get();

// Framing
JsonLd.frame("https://example/document.jsonld", "https://example/frame.jsonld").get();
// Local document
Document document = Document.of(InputStream) or Document.of(Reader) ...

JsonLd.expand(document).get();

JsonLd.compact(document, contextDocument).get();
...

Contributing

Your contribution is welcome.

Roadmap

Building

Fork and clone the project repository:

> git clone [email protected]:filip26/titanium-json-ld.git

Compile sources:

> cd titanium-json-ld
> mvn package

titanium-json-ld's People

Contributors

filip26 avatar dependabot[bot] avatar codacy-badger avatar kevinpeterson avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.