Thursday, October 25, 2007

SPARQL, SharePoint and IMM?

 

From the IMM (Interactive Media Manager) blog comes a post on how they made the screenshot above here possible.. here are some snippets to attract you to their post and become as enthusiastic about it as I am :)

we aren’t using a list to store our data. Instead what we decided to do with IMM is to store all of our metadata in Resource Description Framework (RDF). RDF is a specification outlined by the W3C at http://www.w3.org/RDF/. Since RDF by itself can be a very unstructured way of describing things a Web Ontology Language (OWL) (http://www.w3.org/2004/OWL/) was created by the W3C to create a vocabulary so that things could be described consistently and related to each other. In this article I don't want to go into all of the details on why we chose RDF over using a SharePoint list or something else. This is saved for another day.

As I mentioned earlier the data is stored in an RDF store that we have running outside of SharePoint. In order to get to this data we use SPARQL queries. SPARQL is a W3C specification (http://www.w3.org/TR/rdf-sparql-query/) that specifies how to query RDF data. For the media library these queries are stored in the Data Source section of the template XML file.

The syntax for these queries appears to be similar to SQL but that is as far as it goes. The similarity is truly only skin deep. Does this make it a shallow language? Not really as SPARQL is only able to do perform SELECT queries but it provides a lot of power around it.

 

In case you wondering what IMM is, it's a solution developed by Microsoft for media and entertainment companies which use SharePoint for their collaboration environment.

 

Technorati tags: , ,

5 comments:

Anonymous said...

Sounds pretty cool. I wonder if you could use LINQ to query the data easily(it is essentially text after all - and structured to boot)

Travis Spencer said...

I've heard from some colleagues that are implementing a solution in partnership w/ Microsoft, that a LINQ to RDF provider is being created by the IMM team.

Robin Meuré said...

Sounds cool! Got any more information about this? ;)

Travis Spencer said...

Ya, check out this page: http://www.intellidimension.com/developers/library/semantic-computing.aspx. That is how LINQ to RDF is being done in IMM IINM.

IMM is built atop Intellidimension RDF Gateway (which stores RDF triples in SQL Server 2005/2008). This application server is accessible via HTTP, OLEDB, etc. IMM's DAM service is passing off RDF queries to that. This is kind of a pain because you have to know RDF, which most developers don't. Intellidimension provides a way to generate .NET classes from OWL ontologies that can serialize themselves into RDF. This is owl.exe, IINM, which you can read about on the IMM wiki at CodePlex. Using these generated .NET classes, you can use LINQ w/ them as you can w/ any objects that support IEnumerable.

Be advised, this is all stuff that I've pieced together from the Net and other various sources, so take it w/ a grain of salt.

electronic signature in word said...

Thank you so much for taking the time to share this information. A great read. I’ll certainly be back.