Coder Social home page Coder Social logo

yangxinyu / r43ples-privat Goto Github PK

View Code? Open in Web Editor NEW

This project forked from plt-tud/r43ples

1.0 2.0 0.0 53.51 MB

Revision Management for the Semantic Web

License: Other

Shell 0.63% Java 46.36% CSS 3.13% JavaScript 47.98% Python 0.96% HTML 0.92% Batchfile 0.02%

r43ples-privat's Introduction

R43ples

R43ples (Revision for triples) is an open source Revision Management Tool for the Semantic Web.

It provides different revisions of named graphs via a SPARQL interface. All information about revisions, changes, commits, branches and tags are stored in additional named graphs beside the original graph in an attached external triple store.

Build Status Coverity Scan Build Status Ohloh Project Status

This project provides an enhanced SPARQL endpoint for revision management of named graphs. R43ples uses an internal Jena TDB is attached to an existing SPARQL endpoint of a Triple Store and acts as another endpoint both for normal SPARQL queries as well as for revision-enhanced SPARQL queries, named R43ples queries. The R43ples endpoint allows to specify revisions which should be queried for each named graph used inside a SPARQL query. The whole revision information is stored in additional graphs in the attached Jena TDB.

The javadoc can be found at the website under http://plt-tud.github.io/r43ples/site/apidocs/.

A running test server should be available under http://eatld.et.tu-dresden.de:9998/r43ples/sparql

Dependencies

  • JDK 1.7
  • Maven
sudo apt-get install maven default-jdk

Releases

Releases are stored on GitHub. They just have to be unzipped and started with Java

java -jar r43ples-*-with-dependencies.jar

Debian packages are going to be deployed soon.

Compiling

Maven is used for compiling

mvn exec:java

Releases can be be built with:

mvn assembly:single

Debian packages can be built with:

mvn package:jdeb

Configuration

There is a configuration file named resources/r43ples.conf. The most important ones are the following:

  • service.port - port under which R43ples provides its services
  • service.uri - URI under which R43ples provides its services
  • revision.graph - named graph which is used by R43ples to store revision graph information
  • sdd.graph - named graph for storing the SDD

R43ples can be attached to different triplestores which need specific parameters specified in the configuration file:

  • Jena TDB
    • jena.tdb.directory (database/dataset)
  • Virtuoso via JDBC
    • virtuoso.url (jdbc:virtuoso://localhost:1111)
    • virtuoso.user (dba)
    • virtuoso.password (dba)
  • HTTP SPARQL endpoint interface (succesfully tested against StarDog)

The logging configuration is stored in resources/log4j.properties

Interfaces

SPARQL endpoint is available at:

[uri]:[port]/r43ples/sparql

The endpoint directly accepts SPARQL queries with HTTP GET or HTTP POST parameters for query and format:

[uri]:[port]/r43ples/sparql?query=[]&format=[]

Supported Formats

The formats can be specified as URL Path Parameter format, as HTTP post paramter format or as HTTP header parameter Accept:

  • text/turtle
  • application/json
  • application/rdf+xml
  • text/html
  • text/plain

R43ples keywords

There are some additional keywords which can be used to control the revisions of graphs:

  • Create graph

      CREATE GRAPH <graph>
    
  • Select query

      SELECT * 
      WHERE { 
      	GRAPH <graph> REVISION "23" {?s ?p ?o}
      }
    
  • Update query

      USER "mgraube" MESSAGE "test commit" 
      INSERT {
          GRAPH <test> REVISION "2" {
              <a> <b> <c> .
          }
      }
    
  • Branching

      USER "mgraube"
      MESSAGE "test commit"
      BRANCH GRAPH <test> REVISION "2" TO "unstable"
    
  • Tagging

      USER "mgraube"
      MESSAGE "test commit"
      TAG GRAPH <test> REVISION "2" TO "v0.3-alpha"
    
  • Merging

      USER "mgraube"
      MESSAGE "merge example"
      MERGE GRAPH <test> BRANCH "branch-1" INTO "branch-2"
    

SPARQL Join option

There is a new option for R43ples which improves the performance. The necessary revision is not temporarily generated anymore. The SPARQL query is rewritten in such a way that the branch and the change sets are directly joined inside the query. This includes the order of the change sets. It is currently under development and further research.

The option can be enabled by passing an additional parameter "join_option=true"

It currently supports:

  • Multiple Graphs
  • Multiple TriplePath
  • FILTER
  • MINUS

For more details, have a look into the doc/ directory.

Used libraries and frameworks

Following libraries are used in R43ples:

r43ples-privat's People

Contributors

markusgraube avatar stephanhensel avatar flugtiger avatar yangxinyu avatar

Stargazers

 avatar

Watchers

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