vote up 6 vote down
star
6

Which tools in which languages do you use for development ? Are they open source or commercial ? Which features do you like about them ?

I think this is a good question, to gather some overview of available tools which can be helpful for beginners. I'll be incorporating the answers into the question, as they come.

Java

  • Jena Semantic Web Framework - a framework providing support for RDF parsing, storage and querying (SPARQL)
  • Joseki - a SPARQL server for Jena
  • Pellet - an open source OWL reasoner
  • Open Virtuoso - a object-relational SQL database, supporting RDF storage and SPARQL querying

PHP

  • ARC2 - a semantic web PHP framework

C/C++

  • Redland - a set of libraries for RDF handling and querying

Python

  • rdflib - a library for handling RDF

Services

  • Talis Platform - a service for cloudbased storing and querying of semantic data
flag

17 Answers

vote up 3 vote down
  • Command line (conversion, validation, query): apt-get install redland-utils;
  • Conversion webservices: Morph, triplr;
  • ORM (Python): RDFAlchemy and SURF;
  • General Python framework: rdflib;
  • Namespace lookup: prefix.cc;
  • Quick registration of properties: OpenVocab;
  • Testing schema publication/linked data: Vapour;
  • Browsing links, de-referencing, ... : Tabulator.
link|flag
vote up 3 vote down

For most day to day activities I'm using the Talis Platform, accessed by my Ruby client Pho. (Disclaimer: I work for Talis) Pho also includes a general purpose SPARQL client.

I also use Redland very heavily both on the command-line (rapper is great) and via its Ruby bindings which I use in Pho.

When programming in Java I use Jena and in particular its TDB backend which is a native triple store. TDB has some command-line scripts that make it very easy to process, munge, and query data from the command-line.

link|flag
vote up 3 vote down

Not necessarily complete, but still a good reference for tools is the tool list maintained at W3C. And it is a wiki, so if something is missing, add it!

link|flag
vote up 2 vote down

You can use an abstraction over Jena or Sesame, like RDF2Go (Java); or you can use Jena or Sesame APIs directly.

Other notable Java triple/quadstores are JRDF (jrdf.sourceforge.net) and Mulgara (www.mulgara.org).

Most of the stores can provide their own HTTP endopoint for SPARQL queries and even for updates (in various flavors), therefore you can program in anything that can do HTTP requests and can parse XML or JSON.

link|flag
vote up 2 vote down

I use Sesame and Virtuoso, with queries directed through the HTTP SPARQL interface on Virtuoso instead of the other possible methods.

link|flag
vote up 2 vote down

Using right now:

  • Blipkit (Prolog based package tailored to the life sciences. LGPL)
link|flag
vote up 2 vote down

There are, of course, commercial solutions available as well.

My company, Cambridge Semantics, offers a few products known collectively as Anzo that our customers use to build solutions using Semantic Web technologies. The center of our software is our server component, which is also available as open-source at http://openanzo.org . The server provides:

  • Client development libraries in Java, JavaScript, and .NET
  • A named-graph-based RDF store
  • Access control at the named graph level
  • Versioning (keep past histories of graphs)
  • Notification (subscription to real-time events when graphs or patterns change)
  • Replication (maintain local caches/replicas of subsets of the server database)
  • Standard stuff: read graphs, write graphs, query graphs with SPARQL

We've built and sell two products on top of this server:

  • Anzo for Excel - take arbitrary spreadsheet data and link it to schemas/ontologies, turning the spreadsheet into a user interface for RDF data (and pulling RDF data out of existing spreadsheets)
  • Anzo on the Web - let non-technical users build views (lenses) of their RDF data with an Exhibit-like faceted-browsing interface
link|flag
vote up 2 vote down

I'm using several triple stores. And actually still evaluating them. So far I got some experience with:

Currently looking into:

link|flag
vote up 2 vote down

In PHP, ARC, Moriarty, with Talis store as backend, morph.talis.com as JSONP proxy, and prefix.cc for cutting and pasting namespace URIs (rdf, rdfs and owl ns uris are long to type). RdfQuery for javascript ?

link|flag
vote up 1 vote down

Important are C libraries Redland, which also have bindings for Perl, PHP, Python and Ruby.

PHP+MySQL developers will be interested in ARC2.

link|flag
vote up 1 vote down

Obviously I am biased because I'm CTO at Talis, but I use the Talis Platform (http://www.talis.com/platform)

link|flag
vote up 1 vote down

For creating some of my linked data sites I've used:

Talis Platform Paget Moriarty Arc2

For ontology editting/reasoning:

Protege 4 Pellet Fact++ Hermit

Triplestores:

4store Sesame TDB

link|flag
vote up 1 vote down

I use(d):

Not used yet, but looking interesting:

  • RDF2Go: uniform API to Jena and Sesame (Java, New-BSD license)
  • Java-RDFa: RDF extraction from HTML+RDFa documents (Java, MIT or BSD?)
link|flag
vote up 1 vote down

I'm working on my own .Net library which is in fairly early Alpha still:

I also use Talis and Virtuoso which are both supported in my library and I use Jena sometimes

link|flag
vote up 1 vote down

Using:

  • SuRF, Object - RDF Mapper built on top of rdflib
  • Virtuoso open-source edition (via its HTTP SPARQL endpoint)
link|flag
vote up 1 vote down

I generally use Jena for work-based projects.

I've also dabbled with Redland in an Objective-C project.

link|flag
vote up 1 vote down

Javascript libraries

For web apps in the past I have used RDF Parser Thingy http://www.jibbering.com/rdf-parser/ (BSD license)

More recently I prefer the excellent jQuery plugin rdfquery, which supports parsing and creating RDFa in web pages, as well as parsing, manipulating, querying and serializing RDF. (linked in kwijibo's post)(MIT license)

link|flag

Your Answer

Get an OpenID
or

Not the answer you're looking for? Browse other questions tagged or ask your own question.