[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] RE: A valuable lesson on the difference between XMLSchemas and ontologies
- From: Kurt Cagle <kurt.cagle@gmail.com>
- To: "Costello, Roger L." <costello@mitre.org>
- Date: Sun, 6 Nov 2011 12:37:19 -0500
Roger,
I'm actually coming to believe that the nature of data modeling is even deeper than that.
I've been thinking hard about the nature of resources, qnames and ontologies, and especially how they relate to REST.
One of the more intriguing results of this exploration is that if you do treat a qname as an identifier for a resource that can be addressed over the web, then among other things you have the ability to deduce a model of that resource through reflection and introspection. Additionally, it becomes possible to deal with the resource not as a static entity but as a dynamic one, with both volatile properties and associated resources. This to me has always been the Achilles Heel of traditional RDF - it assumes that data models themselves are static, when in fact entities undergo state changes all the time - one of the fundamental lessons of REST - not only of individual properties but also even of what specifically is modeled.
I'm currently working on an SPL content modeling system for Reed Elsevier, and have introduced a RESTful architecture which incorporates revisioning (non-destructive PUTs, in effect), which has, among other things, forced me to think about how revisions fit into REST. A given resource, such as a contact or company, has an associated URL and by extension qualified name (qname), yet the resource in turn provides an interface for its associated revisions, which are themselves resources. The revisions are static - they are a given representation of state, and once created, revisions can never be updated, only superseded or derived from.
Once consequence of this, though, is that the data instance, if not necessarily the data model, is transitory. This is consistent with the web, but much of SemWeb is really built on the data models and corresponding instances that are fixed..
This is apropos of nothing, other than the idea that even OWL modeling needs to incorporate state transients before it becomes sufficiently descriptive.
On the flip-side, both XSD schemas and OWL ontologies serve only to create bindings between qnames, the principle difference being that OWL binding predicates are generally more comprehensive than XSD ones are (XSD enables an implicit container/contained relationship and an ordering relationship, and XSD 1.1 provides additional constraint bindings). I think its disingenuous to say that schemas do not impute semantics to data model structures - they do establish relationships, which is a form of semantic binding, and they also provide a mechanism to bind a secondary human semantics through annotations. Whether XSD models are complete is a different issue, but this gets back to the ultimate role of what a data model does. A data model, any data model, is simply a reflection of a given resource's properties and relationships relative to a given application context. If the context model changes, so does the data model requirements, and as a consequence so do the properties/relationships that get mapped. Again, I think this gets back to too traditional a view in the semantics community about the fungibility of the application context, and is a blind spot that limits the utility of either schemas or RDF/OWL as a tool.
Kurt Cagle
Invited Expert, XForms Working Group, W3C
Managing Editor, XMLToday.org
On Sun, Nov 6, 2011 at 8:48 AM, Costello, Roger L.
<costello@mitre.org> wrote:
Hi Folks,
I added the following section to the paper:
------------------------------
What Kind Of Thing Is It?
------------------------------
Suppose processing of XML instance documents requires answers to these questions:
- What kind of thing is Book?
- What kind of thing is Person?
- What kind of thing is title?
- What kind of thing is author?
- What kind of thing is name?
Here are the answers we expect to get:
- Book is an Object
- Person is an Object
- title is a property
- author is a property
- name is a property
In this paper I have attempted to persuade you that "what-kind-of-thing-is-it" questions are best answered with an ontology, not an XML Schema. The relationship of each element to a semantic identifier such as Object or property is readily expressed in an RDF Schema, as shown below. The below RDF Schema is read as: "A Book is a subclass of Object (i.e., a Book is an Object). A Person is an Object. A title is a property. An author is a property. A name is a property."
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdfs:Class rdf:ID="Object">
</rdfs:Class>
<rdfs:Class rdf:ID="property">
</rdfs:Class>
<rdfs:Class rdf:ID="Book">
<rdfs:subClassOf rdf:resource="#Object"/>
</rdfs:Class>
<rdfs:Class rdf:ID="Person">
<rdfs:subClassOf rdf:resource="#Object"/>
</rdfs:Class>
<rdfs:Class rdf:ID="title">
<rdfs:subClassOf rdf:resource="#property"/>
</rdfs:Class>
<rdfs:Class rdf:ID="author">
<rdfs:subClassOf rdf:resource="#property"/>
</rdfs:Class>
<rdfs:Class rdf:ID="name">
<rdfs:subClassOf rdf:resource="#property"/>
</rdfs:Class>
</rdf:RDF>
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]