All Projects → filip26 → titanium-json-ld

filip26 / titanium-json-ld

Licence: Apache-2.0 license
A JSON-LD 1.1 Processor & API

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to titanium-json-ld

twinql
A graph query language for the semantic web
Stars: ✭ 17 (-78.48%)
Mutual labels:  linked-data, rdf, semantic-web, json-ld
Hypergraphql
GraphQL interface for querying and serving linked data on the Web.
Stars: ✭ 112 (+41.77%)
Mutual labels:  linked-data, rdf, semantic-web, json-ld
Rdflib
RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information.
Stars: ✭ 1,584 (+1905.06%)
Mutual labels:  linked-data, rdf, semantic-web, json-ld
Jsonld.js
A JSON-LD Processor and API implementation in JavaScript
Stars: ✭ 1,212 (+1434.18%)
Mutual labels:  linked-data, rdf, semantic-web, json-ld
jsonld-context-parser.js
Parses JSON-LD contexts
Stars: ✭ 20 (-74.68%)
Mutual labels:  linked-data, rdf, semantic-web, json-ld
Hypergraphql
GraphQL interface for querying and serving linked data on the Web.
Stars: ✭ 120 (+51.9%)
Mutual labels:  linked-data, rdf, semantic-web, json-ld
Pyld
JSON-LD processor written in Python
Stars: ✭ 413 (+422.78%)
Mutual labels:  linked-data, rdf, semantic-web, json-ld
YALC
🕸 YALC: Yet Another LOD Cloud (registry of Linked Open Datasets).
Stars: ✭ 14 (-82.28%)
Mutual labels:  linked-data, rdf, semantic-web, json-ld
Php Json Ld
PHP implementation of a JSON-LD Processor and API
Stars: ✭ 246 (+211.39%)
Mutual labels:  linked-data, rdf, semantic-web, json-ld
Web Client
Generic Linked Data browser and UX component framework. Apache license.
Stars: ✭ 105 (+32.91%)
Mutual labels:  linked-data, rdf, semantic-web
Processor
Ontology-driven Linked Data processor and server for SPARQL backends. Apache License.
Stars: ✭ 54 (-31.65%)
Mutual labels:  linked-data, rdf, semantic-web
Rdf Ext
RDF library for NodeJS and the Browsers
Stars: ✭ 97 (+22.78%)
Mutual labels:  linked-data, rdf, json-ld
Limes
Link Discovery Framework for Metric Spaces.
Stars: ✭ 94 (+18.99%)
Mutual labels:  linked-data, rdf, semantic-web
Informationmodel
The Information Model of the International Data Spaces implements the IDS reference architecture as an extensible, machine readable and technology independent data model.
Stars: ✭ 27 (-65.82%)
Mutual labels:  linked-data, rdf, semantic-web
Grafter
Linked Data & RDF Manufacturing Tools in Clojure
Stars: ✭ 174 (+120.25%)
Mutual labels:  linked-data, rdf, semantic-web
Rdf4j
Eclipse RDF4J: scalable RDF for Java
Stars: ✭ 242 (+206.33%)
Mutual labels:  linked-data, rdf, semantic-web
OLGA
an Ontology SDK
Stars: ✭ 36 (-54.43%)
Mutual labels:  rdf, semantic-web, jsonld
ControlledVocabularyManager
Rails application with Blazegraph for managing controlled vocabularies in RDF.
Stars: ✭ 20 (-74.68%)
Mutual labels:  linked-data, rdf, json-ld
Dokieli
💡 dokieli is a clientside editor for decentralised article publishing, annotations and social interactions
Stars: ✭ 582 (+636.71%)
Mutual labels:  linked-data, rdf, semantic-web
mayktso
🌌 mayktso: encounters at an endpoint
Stars: ✭ 19 (-75.95%)
Mutual labels:  linked-data, rdf, semantic-web

Titanium JSON-LD 1.1 Processor & API

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

The goals of Titanium are:

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

Java 11 CI Android (Java 8) CI Language grade: Java Maintainability Rating Codacy Badge Maven Central License

Table of Contents

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 371 371 100%
Compaction 242 242 100%
Flattening 55 55 100%
JSON-LD to RDF 451 449 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.

CLI

JSON-LD-CLI is a native command line utility for Ubuntu, Mac, Windows

Extensions

Usage

Installation

Titanium

Maven

<!-- Java 11 -->
<dependency>
    <groupId>com.apicatalog</groupId>
    <artifactId>titanium-json-ld</artifactId>
    <version>1.3.1</version>
</dependency>

or

<!-- Android (Java 8, OkHtttp) -->
<dependency>
    <groupId>com.apicatalog</groupId>
    <artifactId>titanium-json-ld-jre8</artifactId>
    <version>1.3.1</version>
</dependency>

Gradle

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

JSON-P Provider

Add JSON-P provider, if it is not on the classpath already.

Maven

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>jakarta.json</artifactId>
    <version>2.0.1</version>
</dependency>

Gradle

compile group: 'org.glassfish', name: 'jakarta.json', version: '2.0.1'

Documentation

javadoc

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 = JsonDocument.of(InputStream) or JsonDocument.of(Reader) ...

JsonLd.expand(document).get();

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

Contributing

All PR's welcome!

  • develop
    • implement a new feature
    • fix an existing issue
    • improve an existing implementation
  • test
    • report a bug
    • implement a test case
  • document
    • write javadoc
    • write a tutorial
    • proofread an existing documentation
  • promote
    • star, share, the project
    • write an article
  • sponsor
    • your requests get top priority
    • you will get a badge

Building

Fork and clone the project repository.

Java 11

> cd titanium-json-ld
> ./mvnw clean package

Java 8

> cd titanium-json-ld
> ./mvnw -f pom_jre8.xml clean package

Resources

Commercial Support

Commercial support is available at [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].