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.

Introduction to dotNetRDF


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Introduction to dotNetRDF

  1. 1. Introduction to dotNetRDFŁódzkie Forum Semantic Web, 7.03.2013
  2. 2. About the presenter Studied Computer Science at Wrocław University of Technology Graduated in 2010 Currently works for Infusion Development in Wrocław Over 5 year of experience with .NET and C# 1.5 years of experience with the Semantic Web Contributes to dotNetRDF and side projectsŁódzkie Forum Semantic Web, 7.03.2013
  3. 3. Library overviewŁódzkie Forum Semantic Web, 7.03.2013
  4. 4. Library overview Main author is Rob Vesse Contributor to Jena Active member of Project started in 2009 as part of PhD a project Released for multiple .NET versions including Windows Phone, Silverlight and Mono Actively developed; currently approaching version 1.0 Provides a powerful uniform API Standards-compliantŁódzkie Forum Semantic Web, 7.03.2013
  5. 5. Core conceptsŁódzkie Forum Semantic Web, 7.03.2013
  6. 6. Core concepts Triple IGraph stores INode Graphs INode Triples INode Nodes (subjects, predicate s, objects)Łódzkie Forum Semantic Web, 7.03.2013
  7. 7. Nodes, triples and graphs INode interface: IGraph & INodeFactory interfaces URI node Represents an RDF document Literal node Enumerable collection of Triples Blank node Loaded from documents, triple stores or Variable node as the result of SPARQL queries Nodes are created in scope of a graph Uses namespace mapper to resolve using a node factory prefixed names (QNames) Three nodes form a triple Convenience methods for handling RDF listsŁódzkie Forum Semantic Web, 7.03.2013
  8. 8. Loading and saving graphs Two way support of multiple RDF serializations: Turtle, NTriples, N3 RDF/XML RDF/JSON TriG, TriX, NQuads Graphs can be loaded directly from the web Triple stores can load graphs automatically based on URIŁódzkie Forum Semantic Web, 7.03.2013
  9. 9. Triple store support In memory triple store Support for 3rd party stores SPARQL support Virtuoso Serialization into quad datasets Stardog Multiple interfaces defining store AllegroGraph capabilities Fuseki Transactions Dydra SPARQL Query FourStore SPARQL Update Sesame-compatible stores Inferencing Can use a SPARQL endpoint as read-only triple storeŁódzkie Forum Semantic Web, 7.03.2013
  10. 10. Querying and updating Representing and processing queries Leviathan query processor Uniform API to query graphs and stores Full SPARQL 1.1 support (both in-memory and remote) SPARQL Update support ADO.NET-like parametrized queries Leviathan function library Fluent query API (coming soon) Jena ARQ function library Extensible API for handling queries and XPath function library results Full text queries using Lucene Optimizers available and extensibleŁódzkie Forum Semantic Web, 7.03.2013
  11. 11. Advanced topicsŁódzkie Forum Semantic Web, 7.03.2013
  12. 12. Ontologies and inferencing Ontology API as abstraction over triples Based on Jena’s API Limited reasoning support RDFS resoner @forall :x . SKOS reasoner { :x a ex:Car } => { :x a ex:Vehicle } N3 rules reasoner Remote Pellet Server reasoning Reasoning easily applied to individual graphs, in-memory triple storesŁódzkie Forum Semantic Web, 7.03.2013
  13. 13. Configuration API RDF vocabulary _:store a dnr:TripleStore ; Configure commonly used objects for dnr:type "VDS.RDF.TripleStore" ; easy retrieval at runtime: dnr:usingGraph _:a ; Graphs dnr:usingGraph _:b . Stores Endpoints _:a a dnr:Graph ; Many more dnr:type "VDS.RDF.Graph" ; Can split configuration into multiple files dnr:fromFile "example.rdf" . Easily extensible via IObjectFactory _:b a dnr:Graph ; dnr:type "VDS.RDF.Graph" ; dnr:fromUri dbpedia:Southampton .Łódzkie Forum Semantic Web, 7.03.2013
  14. 14. dotNetRDF toolkit Command line: rdfConvert rdfOptStats rdfQuery soh (SPARQL over HTTP) rdfWebDeploy rdfServer Window: SparqlGUI rdfEditor Store Manager rdfServerGuiŁódzkie Forum Semantic Web, 7.03.2013
  15. 15. What is missing/roadmap Current effort focused on: Key missing reatures Maintenance OWL reasoning W3C standards compatibility SPIN Portable Class Library RDFa JSON-LDŁódzkie Forum Semantic Web, 7.03.2013
  16. 16. My work with dotNetRDFŁódzkie Forum Semantic Web, 7.03.2013
  17. 17. Fluent SPARQL API SELECT ?t ?p QueryBuilder.Select("t", "p") WHERE .Where(tpb => tpb { .Subject("x").PredicateUri("dc:title").Object("t")) ?x dc:title ?t . OPTIONAL .Optional(opt => { { ?x ns:price ?p . opt.Where(tpb => tpb FILTER (?p < 30) .Subject("x").PredicateUri("ns:price").Object("p")); } opt.Filter(eb => eb.Variable("p") < 30); } }).BuildQuery();Łódzkie Forum Semantic Web, 7.03.2013
  18. 18. R2RML processor and API Almost full compliance with R2RML recommendation Default mapping generator RDBMS R2RML RDF Import and export mappings API for creating mapping programatically Processor for actual RDB to RDF conversionŁódzkie Forum Semantic Web, 7.03.2013
  19. 19. SummaryŁódzkie Forum Semantic Web, 7.03.2013
  20. 20. Thank you Question time Łódzkie Forum Semantic Web, 7.03.2013
  21. 21. Useful links http://r2rml.netŁódzkie Forum Semantic Web, 7.03.2013