April 20, 2009
The Union of Domain Modeling, Linked Data, and AtomPub
[2009-04-28 - Replaced the "model" path segment with "view" to reflect the semantics better.]
[2009-04-20 - Added some extra examples for Class Web Document and Instance Web Document to provide additional clues.]
The union of Domain Modeling, Linked Data, and AtomPub results in an complementary set of use cases. To summarize, a domain model is a conceptual model of a system that can be described by visual representations called "class diagrams". Meanwhile, Linked Data establishes the Web identity of Real World Objects as distinct from traditional Web Documents that say something about the Real World Object. And finally, AtomPub establishes HTTP/1.1-compliant create, read, update, and delete (CRUD) operations for Web resources in general.
There are important synergies between these use cases. In essence, domain models identify resources according to semantically-rich categories like "model", "class", "attribute", "datatype", "instance" and "operation". The resources that are identified by the domain model can then be mapped mechanically to globally-unique HTTP URIs and those resources can then be managed with HTTP/AtomPub CRUD operations and discovered by an Atom Service Document and Atom Feeds. My colleague Andrew Houghton and I have identified a limited set of resource categories that are capable of supporting all of the Web application use cases that we can imagine. These use cases include Linked Data and Semantic Web support. We are calling this union of Domain Modeling, Linked Data, and AtomPub, the "Linked Data Architecture" (LDA).
Of the resource categories identified, six are fundamental and their behaviors are self-contained:
|Domain Modeling Concept||LDA Category Name|
|Class||Real World Class|
|Class Generic Document|
|Class Web Document|
|Instance||Real World Instance|
|Instance Generic Document|
|Instance Web Document|
The first set of resource categories map directly to classes in a domain model, while the second set of resource categories map to instances of those classes in the domain model. Each resource category has a distinctive set of HTTP/AtomPub behaviors as expressed in the LDA Fundamental Behaviors table. These resource categories can be mapped onto consistent URI patterns. The following URI patterns are descriptive and designed for maximum "hackability", but are not prescriptive. Other URI patterns could be created, but the resource category behaviors associated with them remain unaffected:
|Domain Modeling Concept||LDA Category Name||Example URI|
|Class||Real World Class||http://example.org/person|
|Class Generic Document||http://example.org/person/|
|Class Web Document||http://example.org/view/person/about.html|
|Instance||Real World Instance||http://example.org/person/alice|
|Instance Generic Document||http://example.org/person/alice/|
|Instance Web Document||http://example.org/person/alice/about.html|
If you imagine truncating the example URIs above you can start to imagine the use cases for some of the other categories which we will discuss in a later article. The information presented here is still in a raw form, but several people have expressed an interest. We are confident enough of the efficacy and consistency of these six categories to start making LDA available.