Home > Project Outline
View Printer Friendly Version
The main Aims of this Project are as follows:
- To provide a lightweight easy to use API for working with RDF in .Net
- To provide a C#.Net library which is based on the latest .Net releases
- To provide an API which is extensible to allow novel applications to be based upon it
You can find our source code hosted both via our SourceForge Project Page and via our Mercurial Repository.
Also you can Download dotNetRDF Source which contains the source distribution for our most recent public release.
The dotNetRDF Library is designed to be relatively simplistic at it's core but highly extensible. The classes are fairly self explanatory and relate directly to the core concepts of RDF such as Graphs (IGraph) and Nodes (INode) and use a variety of standard interfaces such as IRdfReader to allow users to write code which is independent of underlying implementations of Parsers etc.
We take an approach broadly similar to the Jena API in that you create a Graph (a Model in Jena's terms) and use this to create Nodes and assert them as Triples into the Graph. Our Triples are in fact Quads since all Triples created will have a reference back to the Graph they were created for (though in the current implementation this may not be the Graph they are actually asserted in). See the Library Overview at the start of our User Guide for more information on this.
We provide support for adding custom Contexts to Triples to allow you to work with annotated Quads (which are needed for some advanced applications) but our default Serializers don't support saving this information to disk.
The current feature set of the Library is as follows, please see the Project Status and Project Roadmap pages to see the exact status of some of these features and when we plan to finish them or add additional features.
- RDF Representation as Nodes, Triples, Graphs and Triple Stores
- Support for arbitrary Context information on Triples
- Parsing Concrete RDF Syntaxes
- Notation 3
- RDFa in HTML/XHTML
- TriG (Turtle with Named Graphs)
- Serializing to Concrete RDF Syntaxes and other formats
- Notation 3
- GraphViz DOT Format (Including Generating Graph 'images' directly)
- SQL Backed Storage using our SQL Backend
- Storage in native Triple Stores
- Dataset Files e.g. TriG files (Read-Only in-memory)
- SPARQL Query Protocol Stores (Read-Only)
- SPARQL Graph Store HTTP Protocol Stores
- Virtuoso Universal Server
- Querying RDF
- Support for the all of SPARQL 1.0 and SPARQL 1.1 Query
- SPARQL Queries over local Triple Stores which are loaded in memory
- SPARQL Query over remote endpoints
- Support for some simple reasoners
- Support for Pellet Server to provide access to OWL reasoning on external knowledge bases
- Updating RDF
- Support for SPARQL 1.1 Update
- Support for SPARQL 1.1 Graph Store HTTP Protocol
- ASP.Net Integration
- Variety of HTTP Handlers that can be used to integrate SPARQL Endpoints and Graph publishing into ASP.Net applications