What are Microsoft's offerings in the semantic world?

I am convinced that the semantic web will one day become mainstream. That being said, my company is a Microsoft shop. If we use semantic web technology it has to work very well with the .Net framework. Preferably it should come from the mothership self.

On the internet there are some articles claiming that Microsoft is investing in research, but I cannot find anything tangible. What are Microsoft's offerings in the semantic world? Does Microsoft have some sort of roadmap? Is there anything happening at all?

Hi Florian,

I produced LinqToRdf in 06/07 because I wanted to learn LINQ and RDF and SPARQL, but also because there was nothing working at the level I wanted at the time (SemWeb.NET is a nice framework, but I wanted to work at the level of classes, not triples so I had to build on top of it.)

I was told, indirectly, that the head of the VS dev tools team had no intention of working on RDF at the time, but that may have changed since then. Spoon16's answers on this site, seem to imply that that policy has not really changed. It seems that MS would rather partner with intellidimension. For me, the price tag of intellidimension's SDK is prohibitive, so you're left with LinqToRdf (that bundles SemWeb.NET) providing low- and high-level APIs. There are other low-level APIs out there, but they are AFAIK less mature.

Andrew is entirely right in that there's not lots of stuff on offer for .Net right now. You have his LinqToRdf, Intellidimension's (heavily overpriced IMHO) Semantics SDK offering, SemWeb which is fairly mature and you have my dotNetRDF library which is very immature by comparison with the others. Though I'm probably the most active in terms of new development at the moment.

Stuff like Andrews LinqToRdf is more high level and works at the level of classes while stuff like SemWeb and dotNetRDF are much more low level API frameworks that work at the level of Triples and Graphs.

Disclaimer - Plugging my own API time...

In terms of my own API it is fairly immature (current release is 0.1.3 Alpha) but a lot of the core functionality you need is there i.e. parses and serializes to almost all common formats (except RDFa), connects to 6 different proven Triple Stores (AllegroGraph, 4store, Joseki, Sesame, Talis and Virtuoso) and has own SPARQL engine which is a reasonably good SPARQL implementation. Plus it's very much designed for .Net 3.5, uses LINQ heavily and has lots of stuff in the API that lets you do LINQ stuff over RDF data.

If you aren't looking to do anything in the next few months and can wait for later releases you might be interested to know that I'm currently doing a major clean-up of the API and serious revision of the SPARQL engine for the 0.2.x releases (which should start late Jan/early Feb) so the API will change somewhat (mostly class renaming to more consistent conventions and some namespace reorganisation for the SPARQL engine) but will result in a more stable platform to work from. Once these releases start the API will be unlikely to change significantly for the forseeable future and the SPARQL engine will support a lot of SPARQL 1.1 and have feature parity with many of the extensions present in ARQ (the SPARQL engine used by the main Java semantic web framework Jena)

Back on topic...

Then again if you are a big development house (or one that has customers with money to burn) then Intellidimension's stuff is probably well worth a look. And I know from experience that some companies are somewhat reluctant to use open source stuff particularly in customer facing products.

A number of years back I wrote Spiral RDF but it is not currently maintained:


Check out OData.

It is an open protocol for sharing data. It provides a way to break down data silos and increase the shared value of data by creating an ecosystem in which data consumers can interoperate with data producers in a way that is far more powerful than currently possible, enabling more applications to make sense of a broader set of data. Every producer and consumer of data that participates in this ecosystem increases its overall value.

The OData specification is available under the Microsoft Open Specification Promise (OSP). Microsoft has released an OData software development kit (SDK) consisting of libraries for .NET, PHP, Java, JavaScript, webOS, and the iPhone. (Wiki)

This is pretty similar to the spirit of Linked Data.

A major effort from MS is Trinity. Trinity is a graph database and computation platform over distributed memory cloud. As a database, it provides features such as highly concurrent query processing, transaction, consistency control. As a computation platform, it provides synchronous and asynchronous batch-mode computations on large scale graphs. Trinity can be deployed on one machine or hundreds of machines. It could be used for storing RDF data.

Searching of job sites for the word "SPARQL" has been turning up Microsoft postings for a few months now. Here's an interesting one: http://bit.ly/nu4U9m. It talks about taking SQL Server "beyond relational," and among the areas where they want someone with "experience/expertise/interest" they list "OWL/SPARQL/RDF."

OREChem Project by Microsoft Research.


Its about Integrating Chemistry Scholarship with the Semantic Web.