f you've been following semantic web technologies, then by now you're no doubt aware of semantic web data languages like the Resource Description Framework (RDF)
and the Web Ontology Language (OWL)
. When you're talking about storing semantic web data, usually you're talking about RDF triples
, which are facts about URI-addressable resources.
Why RDF triple stores? To efficiently store and query RDF, you are most likely not going to want to use relational databases directly. It isn't that there is something inherently wrong with relational databases; it's just that the more general RDF model doesn't fit efficiently within a table structure, and the web moves faster than your schemas can keep up.
A relational database works because you tell it what relationships exist in your data. With these relationships fixed in time, you are able to efficiently store and retrieve instance information that fits into that structure. If you ever change your mind about how to structure that data, you need to modify how you describe it to the relational database management system (RDBMS) and massage the old structure into the new. This process can be an expensive and time-consuming effort even if you understand how to do it.
In a single organization this process is difficult, but a sense of common purpose (or a strong-willed and empowered few) can usually bring about a consensus of what the structure should be. As the world changes around you, your needs will change. Even if you could slow down the influence of external events, you see the past and the future through the lens of the present. You are constantly assessing and reassessing your understanding of the world, and you'll certainly change your understanding of your domains, their terms, their relationships, and so on.
Now imagine trying to bridge the chasms of language, culture, competing values, different business priorities, and downright obstinacy. These will be among your challenges when trying to share data across the web. Attempting to get people to agree to most things is a difficult task. One of the most successful and widely used RDF vocabularies is the Dublin Core Metadata Initiative. This effort defined terms and relationships for publication metadata, and is a reasonably well-understood domain that was considered by a reasonably well-functioning standards body. Still, it took approximately seven years to agree on a set of around fifteen terms!
The point is simply that sharing data on the web requires an extensible, open-world model that allows people to agree to disagree. This characteristic is what RDF was designed to provide. After you commit to using the RDF graph model, you need someplace to put it efficientlytriple stores give you this ability. Several systems work well at this functionality, but the focus here will be on a particular solution, called Mulgara.