I’ve been fascinated with RDF for years, but I always end up frustrated when I try to use it. How do you read/write/manipulate RDF data in code? Sure, there are lots of libraries, but they all represent RDF data as its primitive structures: statements, resources, literals, etc. Working with data through these APIs feels like… Continue reading Generating Clojure from an Ontology
When storing any large collection of data, one of the most critical decisions one has to make is when to normalize and when to denormalize. Normalized data is good for flexibility — you can write queries to recombine things in any combination. Denormalized data is more efficient when you know, in advance, what the queries… Continue reading Antidenormalizationism
RDF is seductive. I can’t get away from it. Something about the ability to represent anything and everything in one consistent model just tugs at my engineer’s heartstrings. The problem with RDF, as I’ve discovered through painful experience, is that the ability to represent everything sacrifices the ability to represent anything efficiently. Certainly that is… Continue reading Whither RDF?
There’s a school of thought that URIs should be opaque identifiers with no inherent meaning or structure. I think this is clearly a bad idea on the human-facing web, but it is more reasonable for computer-facing web services. However, I’ve been generating a lot of RDF lately, trying to organize piles of metadata in AltLaw.… Continue reading URI Templates for RDF
Let’s have the database models strut down the runway: Relational (SQL): Data consist of rows in tables. Each row has multiple columns. Each column has a fixed type. Queries use filters and joins. Fixed schema is defined separately from the data. User-defined indexes improve query performance. Robust transaction/data-integrity support. Graph (RDF): Data consist of nodes… Continue reading All Your Base
Since I started working on AltLaw.org a little over a year ago, I’ve struggled with the data model. I’ve got around half a million documents, totally unstructured, from a dozen different sources. Each source has its own quirks and problems that have to be corrected before it’s useful. When I started, I was using MySQL… Continue reading In Search of the Grand Unified Data Model