All Projects → Callidon → joseki

Callidon / joseki

Licence: MIT License
Pure Go library for working with RDF, a powerful framework for representing informations as graphs.

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to joseki

basex-rdf
RDF parsing for BaseX
Stars: ✭ 16 (-40.74%)
Mutual labels:  rdf, turtle, n-triples
rio
RDF parsers library
Stars: ✭ 56 (+107.41%)
Mutual labels:  rdf, turtle, n-triples
Rdflib
RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information.
Stars: ✭ 1,584 (+5766.67%)
Mutual labels:  rdf, rdflib, turtle
ont-api
ONT-API (OWL-API over Apache Jena)
Stars: ✭ 20 (-25.93%)
Mutual labels:  rdf, turtle
stardog-language-servers
Language Servers for Stardog Languages
Stars: ✭ 19 (-29.63%)
Mutual labels:  rdf, turtle
semantic-web
Storing ontologies/vocabularies from the web. Wish anybody can translate some of them.
Stars: ✭ 114 (+322.22%)
Mutual labels:  rdf, turtle
rdfshape-api
API for validating and transforming RDF, ShEx, SHACL and more.
Stars: ✭ 31 (+14.81%)
Mutual labels:  rdf, turtle
rdflib-hdt
A Store back-end for rdflib to allow for reading and querying HDT documents
Stars: ✭ 18 (-33.33%)
Mutual labels:  rdf, rdflib
ProvBook
The provenance of a Jupyter Notebook
Stars: ✭ 29 (+7.41%)
Mutual labels:  rdf, rdflib
shex.js
shex.js javascript package
Stars: ✭ 45 (+66.67%)
Mutual labels:  rdf
rdf-canonize
An implementation of the RDF Dataset Normalization Algorithm in JavaScript.
Stars: ✭ 14 (-48.15%)
Mutual labels:  rdf
GeoTriples
Publishing Big Geospatial data as Linked Open Geospatial Data
Stars: ✭ 32 (+18.52%)
Mutual labels:  rdf
YALC
🕸 YALC: Yet Another LOD Cloud (registry of Linked Open Datasets).
Stars: ✭ 14 (-48.15%)
Mutual labels:  rdf
rss-button-for-safari
Safari web extension for news feed discovery of RSS, Atom, JSON Feed & RDF+RSS.
Stars: ✭ 16 (-40.74%)
Mutual labels:  rdf
awesome-ontology
A curated list of ontology things
Stars: ✭ 73 (+170.37%)
Mutual labels:  rdf
jekyll-rdf
📃 A Jekyll plugin to include RDF data in your static site or build a complete site for your RDF graph
Stars: ✭ 46 (+70.37%)
Mutual labels:  rdf
SEPA
Get notifications about changes in your SPARQL endpoint.
Stars: ✭ 21 (-22.22%)
Mutual labels:  rdf
Sessel
Document RDFizer for CouchDB
Stars: ✭ 22 (-18.52%)
Mutual labels:  rdf
sparql-micro-service
SPARQL micro-services: A lightweight approach to query Web APIs with SPARQL
Stars: ✭ 22 (-18.52%)
Mutual labels:  rdf
jsonld-streaming-serializer.js
A fast and lightweight streaming JSON-LD serializer for JavaScript
Stars: ✭ 20 (-25.93%)
Mutual labels:  rdf

joseki license GoDoc Build Status Coverage Status

Joseki is a pure Go library for working with RDF, a powerful framework for representing informations as graphs.

For more informations about RDF itself, please see https://www.w3.org/TR/rdf11-concepts

Features

Joseki provides the following features to work with RDF :

  • Structures to represent and manipulate the RDF model (URIs, Literals, Blank Nodes, Triples, etc)
  • RDF Graphs to store data, with several implentations provided.
  • A Low level API to query data stored in graphs.
  • A High level API to query data using the SPARQL 1.1 query language. (WIP - Unstable)
  • Query processing using modern techniques such as join ordering or optimized query execution plans.
  • Load RDF data stored in files in various formats (N-Triples, Turtle, etc) into any graph.

Getting Started

This package aims to work with RDF graphs, which are composed of RDF Triple {Subject Object Predicate}. Using joseki, you can represent an RDF Triple as followed :

import (
    "github.com/Callidon/joseki/rdf"
    "fmt"
)
subject := rdf.NewURI("http://example.org/book/book1")
predicate := rdf.NewURI("http://purl.org/dc/terms/title")
object := rdf.NewLiteral("Harry Potter and the Order of the Phoenix")
triple := rdf.NewTriple(subject, predicate, object)
fmt.Println(triple)
// Output : {<http://example.org/book/book1> <http://purl.org/dc/terms/title> "Harry Potter and the Order of the Phoenix"}

You can also store your RDF Triples in a RDF Graph, using various type of graphs. Here, we use a Tree Graph to store our triple :

import (
    "github.com/Callidon/joseki/rdf"
    "github.com/Callidon/joseki/graph"
)
subject := rdf.NewURI("http://example.org/book/book1")
predicate := rdf.NewURI("http://purl.org/dc/terms/title")
object := rdf.NewLiteral("Harry Potter and the Order of the Phoenix")
graph := graph.NewTreeGraph()
graph.Add(rdf.NewTriple(subject, predicate, object))

You can also query any triple from a RDF Graph, using a low level API or a SPARQL query.

import (
    "github.com/Callidon/joseki/rdf"
    "github.com/Callidon/joseki/graph"
    "fmt"
)
graph := graph.NewTreeGraph()
// Datas stored in a file can be easily loaded into a graph
graph.LoadFromFile("datas/awesome-books.ttl", "turtle")
// Let's fetch the titles of all the books in our graph !
subject := rdf.NewVariable("title")
predicate := rdf.NewURI("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")
object := rdf.NewURI("https://schema.org/Book")
for bindings := range graph.Filter(subject, predicate, object) {
    fmt.Println(bindings)
}

For more informations about specific features, see the documentation

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].