.NET Framework RDF APIs

                                 Andrei IACOB

                    Universitatea ”Alexandru Ioan ...
1.3   Performance
At version 0.85, the project owner used a single core 1.8 Ghz AMD with Fedora
Core 6 and Mono 1.2.3 to r...
2     ROWLEX
Project URI: http://rowlex.nc3a.nato.int/
Author: NATO C3 Agency
First released: could not be determined, but...
3     Intellidimension Semantics.SDK
Project URI: http://www.intellidimension.com/products/semantics-sdk/
Author: Intellid...
4     LinqToRdf
Project URI: http://code.google.com/p/linqtordf/
Author: Andrew Matthews
First released: June 2007
Latest ...
5     Other smaller project worth looking at in the future
5.1   dotNetRDF

Project URI: http://www.dotnetrdf.org/
Latest ...
6    Conclusion
The following table summarises all the features described in the paper for all the
APIs.

                ...
Upcoming SlideShare
Loading in …5
×

.NET RDF APIs

1,873 views
1,807 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,873
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

.NET RDF APIs

  1. 1. .NET Framework RDF APIs Andrei IACOB Universitatea ”Alexandru Ioan Cuza”, Iasi Abstract. This paper aims at comparing the set of options that a .NET Framework developer has when he chooses to work with semantic web, particularly with RDF. There will be 4 APIs reviewed, both FOSS and proprietary, that will then be analysed and graded by the following cri- teria: means of tuple storage, SPARQL support, performance, IDE inte- gration, project maturity, level of documentation and finally licensing. 1 SemWeb Project URI: http://razor.occams.info/code/semweb/ Author: Joshua Tauberer First released: June 10 2005 Latest release: May 11 2009 Latest stable version: 1.064 Project status: dead SemWeb was a library developed by Joshua Tauberer (http://razor.occams.info/) between 2005 and 2009. It is used by Gnome F-Spot and was preferred by the author in 2008 while developing his BSc degree project. Other projects using SemWeb are ROWLEX (discussed further in the paper), Gnome Beagle and Sentient Knowledge Explorer. 1.1 Storage The library supports memory files, disk files but can also be backed by a either a MySQL Server, Microsoft SQL Server or PostgreSQL engine. The implemen- tation for each of these stores can be studied further from the source code [3] or the documentation [4]. The storage class can be extended so that the client can implement its own storage method. 1.2 SPARQL support The SPARQL library included in SemWeb is a fork of the Java Sparql Engine [2] which has been converted to C# using http://www.ikvm.net/. Therefore, SemWeb has full SPARQL support, including translation of SPARQL into SQL when possible. The author made available two modules in addition, a remote SPARQL data source client and an ASP.NET SPARQL Protocol Server handler. Further references can be found here [5] .
  2. 2. 1.3 Performance At version 0.85, the project owner used a single core 1.8 Ghz AMD with Fedora Core 6 and Mono 1.2.3 to run the LUBM benchmarks. The tests were 6.9 million statements over 1000 files totaling 540 MB. The results are as following [1]: Storage Time Storage size reading 5 min (23k stmts/sec) n/a N3 file on disk 9 min (12k stmts/sec) n/a mysql 30 min (3.8k stmts/sec) 769MB (117 stmts/sec) sqlite 72 min (1.6k stmts/sec) 1.1GB (162 bytes/stmt) postgresql 94 min (1.2k stmts/sec) 1.6MB (238 bytes/stmt) Later, another benchmark was ran, using the Berlin SPARQL Benchmark, on a Intel Core 2 Duo at 3.00 Ghz, 2GB RAM and 32 bit Ubuntu 8.04. The results are detailed by the library author [6]. 1.4 IDE Integration SemWeb has no IDE integration. It is distributed as a binary dll or as a Visual Studio project along with a set of binary command line tools for quick querying of data stores or document conversion. 1.5 Documentation The source code (http://razor.occams.info/code/repo/?/semweb/) is poorly com- mented, but very clear and simple. The author of the library compiled an API reference that can be found here [7], a ”getting started” guide [8] and a series of sample C# programs [9] . 1.6 Licesing SemWeb is licensed under GNU GPL v2. The SPARQL engine is licensed under GNU LGPL, the Euler proof mechanism is under W3C Software License.
  3. 3. 2 ROWLEX Project URI: http://rowlex.nc3a.nato.int/ Author: NATO C3 Agency First released: could not be determined, but the first version targeted .NET Framework 1.1 Latest release: July 15 2009 Latest stable version: 2.0.1 Project status: Under development ROWLEX stands for Relaxed OWL EXperience and it has been developed by NATO’s C3 Agency as a MVC system that abstracts RDF tripes, making it easier to work with OWL using C#. 2.1 Storage ROWLEX doesn’t provide a data store, as it is targeted at reading and writing RDF documents and ontologies. 2.2 SPARQL support No SPARQL support 2.3 Performance N/A 2.4 IDE Integration No IDE integration, as the library is distributed as source code and binary, along with a set of GUI utilities for extracting ontologies. 2.5 Documentation Despite the fact that the project is quite old, the creators compiled a set of ”How to” guides [10] but no API reference. The project is officially using Stackoverflow to offer support, using the ROWLEX tag [11]. 2.6 Licesing The code is licensed under GNU LGPL.
  4. 4. 3 Intellidimension Semantics.SDK Project URI: http://www.intellidimension.com/products/semantics-sdk/ Author: Intellidimension First released: Could not be determined Latest release: October 28 2009 Latest stable version: 1.2.0.43 Project status: Under development Intellidimension is a company which is developing an integrated system tar- geting semantic applications. The company claims it has worked closely with Microsoft [12] to create a system for manipulating data formats using industry standard technologies. 3.1 Storage Intellidimension provides an efficient in-memory graph storage for the SDK and a Micorosft SQL Server backend persistance for the Semantic Server. The Server also supports file based persistance for large dynamic RDF models. 3.2 SPARQL support Full SPARQL support is provided, along with integration with T-SQL. Also, T-SQL can be used to join both relational and semantic data. The feature of distributed RDF graphs (graphs that are partitioned across multiple servers) implies distributed SPARQL, using a in-memory cache [13] 3.3 Performance The vendor never made public any information about benchmark tests or overall performance, except for the words used to describe the products. 3.4 IDE Integration Intellidimension developed a set of tools for Visual Studio and a set of extensions for SQL Server to integrate seemlessly with the usual .NET developer’s workflow. The Visual Studio Designer uses Silverlight for the presentation, and also the reports and drawings use the same RIA technology. 3.5 Documentation The project is heavily documented [14] and the company maintains a small blog with which it hopes to gain more popularity [15]. 3.6 Licesing Proprietary, with a 60 day trial evaluation period.
  5. 5. 4 LinqToRdf Project URI: http://code.google.com/p/linqtordf/ Author: Andrew Matthews First released: June 2007 Latest release: August 2008 - version 0.8 Latest stable version: none Project status: dead LinqToRdf is a new project that uses the LINQ query provider to integrate the semantic web into .NET applications, along with a set of extensions to the Visual Studio environment. 4.1 Storage It uses in-memory stores, but mentions and recommends the SemWeb library for this issue. 4.2 SPARQL support Full SPARQL support for generating SPARQL from code. 4.3 Performance N/A 4.4 IDE Integration Very easy integration with Visual Studio, as a plugin that installs a designer for RDF with code generation [16]. The library is distributed as a msi, not as a simple dll. 4.5 Documentation Poorly documented, and using the Google Code wiki as a support [17]. 4.6 Licesing The project is licensed under the BSD License.
  6. 6. 5 Other smaller project worth looking at in the future 5.1 dotNetRDF Project URI: http://www.dotnetrdf.org/ Latest release: September 25 2009 - Version 0.0.1 Alpha The library is the result of Rob Vesse’s PhD work. It’s an immature library, but it has been contributed to very often by the author. It has full SPARQL support, and also integrates with the Talis platform and Virtuoso. 5.2 Greengrass Project URI: http://freshmeat.net/projects/greengrass/ A small but quick API for the CLR (with implementations in C#, Boo, IronPython) that supports .NET class serialization into RDF and OWL.
  7. 7. 6 Conclusion The following table summarises all the features described in the paper for all the APIs. SemWeb RowLex Intellidimension LinqToRdf Author Joshua Tauberer NATO C3 Agency Intellidimension Andrew Matthews Latest ver. 1.064 (May, 2009) 2.01 (July, 2009) 1.2.0.43 (October, 0.8 (August 2008) 2009) Storage memory, file, N/A Memory, dis- memory MySql, SQL server, tributed, file, SQL Postgres Server SPARQL full N/A full generating only IDE support N/A N/A full code designer Documentation full api and usage very little full api and usage very little guide guide License GPL LGPL Proprietary BSD References 1. Joshua Tauberer, http://razor.occams.info/code/semweb/ 2. http://sparql.sourceforge.net/ 3. http://razor.occams.info/code/repo/?/semweb/src/ 4. http://razor.occams.info/code/semweb/semweb- current/apidocs/SemWeb/Store.html 5. http://razor.occams.info/code/semweb/ semweb-current/apidocs/SemWeb.Query/SparqlProtocolServerHandler.html 6. http://razor.occams.info/code/semweb/semweb-current/doc/bsbm.html 7. http://razor.occams.info/code/semweb/semweb-current/apidocs/index.html 8. http://razor.occams.info/code/semweb/semweb-current/doc/index.html 9. http://razor.occams.info/code/repo/?/semweb/examples 10. http://rowlex.nc3a.nato.int/HowToUse.aspx 11. http://stackoverflow.com/search?q=rowlex 12. http://www.intellidimension.com/products/semantics-sdk/ 13. http://www.intellidimension.com/developers/library/semantic-computing.aspx 14. http://www.intellidimension.com/developers/ 15. http://www.semanticsdotnet.blogspot.com/ 16. http://code.google.com/p/linqtordf/ 17. http://code.google.com/p/linqtordf/w/list This article was processed using the L TEX macro package with LLNCS style and it is A released under the Creative Commons Attribution-Share Alike 3.0 license http://creativecommons.org/licenses/by-sa/3.0/

×