Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

dotNetRDF - A Semantic Web/RDF Library for .Net Developers

A quick overview and introduction to the dotNetRDF Project given in the Technical Lightning Talk session at SemTech West 2011 at the Hilton Union Square, San Fransisco

  • Be the first to comment

  • Be the first to like this

dotNetRDF - A Semantic Web/RDF Library for .Net Developers

  1. 1. A Semantic Web/RDF Library for .Net Developers<br />Rob Vesse<br />ECS, University of Southampton<br /><br />
  2. 2. Motivation<br />Wanted to be able to code PhD Research projects using a .Net technology stack<br />Existing libraries didn’t fit project needs<br />Limited choice of 3rd Party Triple Stores<br />Lack of latest SPARQL Support i.e. 1.1 features<br />Some libraries didn’t really feel like .Net<br />i.e. Java style in design, naming conventions etc.<br />6/6/2011<br /><br />2<br />
  3. 3. About the Library<br />Completely free and open source<br />Triple licensed – pick from GPL, LGPL or MIT depending on your needs<br />Written in C# for .Net 3.5 and higher<br />Builds for standard .Net, Mono, Silverlightand Windows Phone 7 (latter two are cut down and community contributed)<br />6/6/2011<br /><br />3<br />
  4. 4. Design Overview<br />Core RDF Model<br />Nodes, Triples, Graphs and Triple Stores <br />Extensible at almost every level<br />Plug in your own implementations to the API for everything from Graphs to external Triple Stores<br />Uses simple and intuitive .Net features<br />LINQ to Objects, Properties, Indexers, Extension Methods etc.<br />6/6/2011<br /><br />4<br />
  5. 5. Simple Intuitive Code<br />//Load a Graph from a File<br />Graphg = newGraph();<br />g.LoadFromFile("example.rdf");<br />//Print all Triples with a Blank Node Subject<br />NTriplesFormatterformatter = newNTriplesFormatter();<br />foreach(Triple t in g.Triples)<br />{<br />if(t.Subject.NodeType == NodeType.Blank)<br /> {<br />Console.WriteLine(t.ToString(formatter));<br /> }<br />}<br />6/6/2011<br /><br />5<br />
  6. 6. Leviathan - A SPARQL 1.1 Engine<br />Capable of performing SPARQL queries in-memory on small amounts of data (<=1m Triples)<br />Supports both Query and Update including powerful features like:<br />Property Paths<br />Federated Query Extensions<br />Update Transactions<br />6/6/2011<br /><br />6<br />
  7. 7. 3rd Party Triple Store Support<br />Supports a range of well known 3rd Party Triple Stores<br />AllegroGraph, 4store, Fuseki, Joseki, Sesame, Talis, Stardog and Virtuoso<br />Plus generic SPARQL store support<br />All accessed by a common interface i.e. easy to switch in and out different storage as needed<br />6/6/2011<br /><br />7<br />
  8. 8. Tooling<br />We also provide a Toolkit of useful command line and GUI tools<br />Includes utilities like conversion and query<br />Includes rdfEditor our Notepad replacement for RDF and SPARQL editing<br />Designed to make it possible to get you started experimenting with RDF and SPARQL on Windows without having to code yourself<br />6/6/2011<br /><br />8<br />
  9. 9. Coming Soon<br />Improvements and optimisations of our SPARQL Engine<br />Full RDFa 1.1 parsing support including RDFa in SVG, XML etc.<br />Full SPIN (SPARQL Inferencing Notation) implementation<br />Future Plans<br />Refresh of our SQL based storage options<br />OWL Support<br />SPARQL Extensions<br />Full Text search<br />GeoSPARQL<br />6/6/2011<br /><br />9<br />
  10. 10. Questions?<br />Via Email:<br />Via Twitter: @RobVesse<br />Via Website:<br />Via Mailing List:<br />6/6/2011<br /><br />10<br />