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
dotNetRDF - A Semantic Web/RDF Library for .Net Developers
1. A Semantic Web/RDF Library for .Net Developers Rob Vesse ECS, University of Southampton rvesse@dotnetrdf.org
2. Motivation Wanted to be able to code PhD Research projects using a .Net technology stack Existing libraries didn’t fit project needs Limited choice of 3rd Party Triple Stores Lack of latest SPARQL Support i.e. 1.1 features Some libraries didn’t really feel like .Net i.e. Java style in design, naming conventions etc. 6/6/2011 http://www.dotnetrdf.org 2
3. About the Library Completely free and open source Triple licensed – pick from GPL, LGPL or MIT depending on your needs Written in C# for .Net 3.5 and higher Builds for standard .Net, Mono, Silverlightand Windows Phone 7 (latter two are cut down and community contributed) 6/6/2011 http://www.dotnetrdf.org 3
4. Design Overview Core RDF Model Nodes, Triples, Graphs and Triple Stores Extensible at almost every level Plug in your own implementations to the API for everything from Graphs to external Triple Stores Uses simple and intuitive .Net features LINQ to Objects, Properties, Indexers, Extension Methods etc. 6/6/2011 http://www.dotnetrdf.org 4
5. Simple Intuitive Code //Load a Graph from a File Graphg = newGraph(); g.LoadFromFile("example.rdf"); //Print all Triples with a Blank Node Subject NTriplesFormatterformatter = newNTriplesFormatter(); foreach(Triple t in g.Triples) { if(t.Subject.NodeType == NodeType.Blank) { Console.WriteLine(t.ToString(formatter)); } } 6/6/2011 http://www.dotnetrdf.org 5
6. Leviathan - A SPARQL 1.1 Engine Capable of performing SPARQL queries in-memory on small amounts of data (<=1m Triples) Supports both Query and Update including powerful features like: Property Paths Federated Query Extensions Update Transactions 6/6/2011 http://www.dotnetrdf.org 6
7. 3rd Party Triple Store Support Supports a range of well known 3rd Party Triple Stores AllegroGraph, 4store, Fuseki, Joseki, Sesame, Talis, Stardog and Virtuoso Plus generic SPARQL store support All accessed by a common interface i.e. easy to switch in and out different storage as needed 6/6/2011 http://www.dotnetrdf.org 7
8. Tooling We also provide a Toolkit of useful command line and GUI tools Includes utilities like conversion and query Includes rdfEditor our Notepad replacement for RDF and SPARQL editing Designed to make it possible to get you started experimenting with RDF and SPARQL on Windows without having to code yourself 6/6/2011 http://www.dotnetrdf.org 8
9. Coming Soon Improvements and optimisations of our SPARQL Engine Full RDFa 1.1 parsing support including RDFa in SVG, XML etc. Full SPIN (SPARQL Inferencing Notation) implementation Future Plans Refresh of our SQL based storage options OWL Support SPARQL Extensions Full Text search GeoSPARQL 6/6/2011 http://www.dotnetrdf.org 9
10. Questions? Via Email: rvesse@dotnetrdf.org Via Twitter: @RobVesse Via Website: http://www.dotnetrdf.org Via Mailing List: dotnetrdf-support@lists.sf.net 6/6/2011 http://www.dotnetrdf.org 10
Hinweis der Redaktion
Introduce myself and affiliationNote that I intend to go through the slides reasonably fast
Lack of existing technology in the .Net space that did what I wantedIn particular 3rd party triple store and SPARQL 1.1 supportWanted library to feel .Net and use latest features
Project Started January 2009FOSSNote library runs on .Net and Mono nativelySilverlight/Windows Phone 7 community contribs so not as heavily tested – also cut down
Support standard RDF and common extensions to RDF e.g. N3 Graph Literals and VariablesSupports named graphs and quadsKey design aim was to make it feel very .Net and make good use of available features
As you can see... (run through the example quickly)
Introduce LeviathanMention scalability in-memoryCan be applied to out of memory datasets but currently slower than in-memory (will be modified to address this in future releases)Note support for UpdateNote support for Federated Query ExtensionsNote support for Transactions for Update
One of our key aims was always to make it easy to move your data in and out of different Triple storesWe are working on adding more e.g. Dydra
We don’t just provide a libraryOur toolkit provides a variety of tools which are useful for day to day non-coding work with RDF e.g. rdfEditorWe eat our own dogfood – any RDF we add to our codebase is almost certainly created and validated using rdfEditor
This is a quick overview of a few of the things we’re currently working onMost new features are driven either by user request e.g. Optimiser API in latest release