OpenIDDelicate Balance of Social Networking and Mobile Devices

# Amazon SimpleDB

academic, databases, semweb @ 15 December 2007

Hi all, I’m not feeling very well, but I have found enough energy to work today and I wanted to blog about Amazons new Web Service called SimpleDB. SimpleDB is a database with a webservice interface.

I’m not going to go into too much detail about how it works, or what it does. I just want to find out whether it is more compatible with Semantic Web technology, so lets think about this:

There is a blog post by someone called Charles Ying, titled “What you need to know about Amazon SimpleDB“, he says that Amazon SimpleDB is built using a programming language called Erlang. Erlang is a functional programming language, I feel that it resembles Haskell. Now, during my undergraduate degree at Oxford Brookes University I did a module titled “Advanced Topics in Databases”, which covered Object-Relational Databases and Object-Oriented Database, but the most interesting thing it covered was Functional Databases. We were using Haskell to make a Functional Database, unfortunately we didn’t go into to much detail, but we managed to query static data with yet more Haskell.

After a good look around I believe that SimpleDB is a dynamic functional database system, which can be queried using HTTP commands instead of using Erlang or SQL. I think this is probably a good thing, because it will get the “relational databases work for every situation” or “there are only relational databases” thought out of the heads of the people that believe such a thing.

But does a Functional Database / SimpleDB Model fit in with the Semantic Web? I believe so, and here are my reasons:

  • Functional Programming languages have Semantic Web libraries, e.g. Swish and Trinity for Haskell, Wilbur for CLOS, (can’t find any for Erlang yet, let me know if you know of any RDF tools for Erlang). Obviously you can’t play with functional libraries through SimpleDB, because its all hidden behind webservices, which brings me to my next point.
  • SimpleDB is hidden behind webservices, and you access it via HTTP. This means that any semantic web application that you may want to build can use the address of a query to a SimpleDB instance as a URI to an object.
  • SimpleDB works using domains instead of tables, this is probably the most important of my points here. As it says on the SimpleDB website, you can go into a certain item of a domain and add a new property to that item without adding it to any other items. This is a key attribute of the semantic web, its not a typical relational database, you can add more information about an object if you need to, something a lot harder to do in a relational database.

The Functional Database Model is a nice one, and I hope that I have shown you that it does fit with the Semantic Web. However, in my opinion, Semantic Web technology is probably best suited with an Object-Oriented Database backend, as RDF describes objects (or alternatively with a triple store).

Technorati Tags: simpledb, amazon, functional, semweb, objectoriented, erlang

Leave a Reply