Git Product home page Git Product logo

rdf4h's Introduction

rdf4h - An RDF library for Haskell

Available on Hackage License BSD3 Build Status

rdf4h is a library for working with RDF in Haskell.

For details see the GitHub project page:

http://robstewart57.github.io/rdf4h/

Supports GHC versions from 8.0.2 (stackage lts-9) to 8.8.3 (stackage lts-16.0).

Development with Nix and direnv

To enter a development environment, you can use Nix and direnv which install all required software, also allowing you to use your preferred shell. Once installed, just run

$ direnv allow

and you'll have a working development environment for now and the future whenever you enter this directory.

This development environment allows to use either Stack or Cabal for building the software.

RDF formats

The coverage of the W3C RDF standards are:

Format Parsing Serialising
NTriples complete complete
Turtle complete complete
RDF/XML complete not supported

These results are produced with version 4.0 of this library.

These tests are run on the W3C unit tests for RDF formats: https://github.com/w3c/rdf-tests.

Feature requests

  1. The parsers in this library parse large files/strings contents entirely before generating RDF triples. This doesn't scale for very large files. Implementing stream based RDF parsers would overcome this problem, e.g. by creating input streams enabling output streams in the io-streams library to consume triples on-the-fly during parsing. This is discussed here: robstewart57#56 (comment) and robstewart57#44 (comment)

  2. RDF/XML serialisation of RDF graphs.

Running tests

To run all the tests (parsers and the library API):

$ git submodule update --init --recursive
$ git submodule foreach git pull origin gh-pages
$ stack test --test-arguments="--quickcheck-tests 1000"

To run specific parser tests when bug fixing:

$ stack test --test-arguments="--pattern /parser-w3c-tests-ntriples/"
$ stack test --test-arguments="--pattern /parser-w3c-tests-turtle/"
$ stack test --test-arguments="--pattern /parser-w3c-tests-xml/"

Running benchmarks

To run the bencharks:

$ wget https://www.dropbox.com/s/z1it340emcreowj/bills.099.actions.rdf
$ gzip -d bills.099.actions.rdf.gz
$ stack bench

rdf4h's People

Contributors

amccausl avatar cordawyn avatar ddssff avatar eukaryote avatar fabianmeyer avatar jrp2014 avatar koslambrou avatar leifw avatar maertsen avatar mgmeier avatar robstewart57 avatar tmciver avatar trofi avatar wismill 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.