BrightstarDB the First Decent RDF Storage For .NET Projects

In recent Hanselminutes podcast episode Scott Hanselman was talking about a new NoSQL database BrightstarDB. It is interesting that this is graph DB based on RDF (Resource Definition Framework, a data format from Semantic Web world).

I was learning Semantic Web and assessed it for one of my projects back in 2010. Then I needed to develop a solution to manage data for agricultural companies: knowledge about plants, diseases, pests, chemicals to fight diseases and pests, their relative efficiency, etc. I found that a graph representation could be good enough for this task, and made a research of available libraries which could be used in .NET application to read/write/process RDF. I posted results of that research in my Russian blog: In short, there were some quite expensive solutions (up to $160,000), and few free ones. At that time the best free library was SemWeb.NET:

“SemWeb.NET is a Semantic Web/RDF library written in C# for Mono or Microsoft’s .NET. The library can be used for reading and writing RDF (XML, N3), keeping RDF in persistent storage (memory, MySQL, etc.), querying persistent storage via simple graph matching and SPARQL, and making SPARQL queries to remote endpoints. Limited RDFS and general-purpose inferencing is also possible.”

However, prototyping showed that it is extremely inconvenient to use. Code is verbose, queries are hard: you can use SPARQL, but there is nothing like Linq2Sparql functionality, and Sparql is ugly by itself. In the end my team considered to abandon semantic web and use relational SQL Server database and Entity Framework to access it.

Four years after, all these libraries are still there. Last changes in SemWeb were in 2010, Linq2Rdf project is dead.

BrightstarDB is something different. It is an RDF triple store which supports SPARQL queries and provides .NET client API for data access. A custom LINQ provider translates queries to SPARQL. It is open source, published under MIT license. Source code is on github. Check it out, maybe it is somewhat useful for your projects!