It’s dangerous to go alone

New TDL 3 draft and schema

By Dave Menendez
Sunday, August 29, 2004, at 9:57 PM

Summary: I’ve posted a new draft of the TDL 3 specification and new OWL DL schemas for TDL 1–3 in RDF/XML and Turtle.

I’ve put up a second spec for TDL 3. It’s still a bit sketchy in areas, but I think it has enough information to be useable. The biggest change since the last update is that I’ve decided not to switch to a new namespace. Despite having a new threading model, TDL 3 doesn’t actually redefine any of the terms in the TDL namespace; it just drops old terms and introduces new ones. Thus, it can coexist with the older TDL vocabularies in the same namespace.

This has meant that I ended up changing a few more terms than I anticipated. For example, the TDL 2 schema defines the range of tdl:agreesWith as rdf:Resource, which means I can’t make it a sub-property of tdl:respondsTo in TDL 3, because its range is narrower (tdl:Post). Thus, I’ve introduced a new term, tdl:respondsPositivelyTo, which is a sub-property of tdl:respondsTo and tdl:agreesWith.

That brings me to my other semi-exciting news: I’ve posted OWL DL schemas for all three versions of TDL in RDF/XML and RDF/Turtle formats (see the TDL home page). This is mostly for the benefit of OWL DL users, who can use TDL without having to enter the scary world of OWL Full. Unfortunately, OWL’s power doesn’t really apply to relation-oriented vocabularies like TDL.


In addition to not changing the namespace, I’ve taken steps to provide some forward- and backward-compatibility. As I see it, there are two scenarios to be concerned about.

An example of a backward-compatibility scenario is a TDL 2-aware processor coming across some TDL 3 data:

@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix tdl: <http://www.eyrie.org/~zednenem/2002/web-threads/>.

<> owl:imports

<http://example.org/post/53> a tdl:Post
    ; tdl:respondsTo <http://example.org/post/49>
    ; tdl:mentions <http://example.org/post/10>

Without doing anything, it knows that <a href="http://example.org/post/53">http://example.org/post/53</a> is a Post, because TDL 2 and 3 use the same term. The tdl:respondsTo and tdl:mentions relations aren’t defined by TDL 2, but if the agent imports the TDL 3 schema, it can determine that tdl:respondsTo is a sub-property of tdl:commentsOn, which is defined by TDL 2. The tdl:mentions relation, however, can’t be described in terms of TDL 2.

An example of the forward-compatibility case is a TDL 3-aware processor encountering TDL 1 data. In theory, a TDL 3 processor could be programmed to understand TDL 1, but TDL 1 is so bloated that skipping support for it is reasonable. Using the TDL 3 schema, some terms can be understood anyway. For example:

@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix tdl: <http://www.eyrie.org/~zednenem/2002/web-threads/>.

<> owl:imports

<http://example.org/post/10> a tdl:Post
    ; tdl:prev <http://example.org/post/9>
    ; tdl:commentsOn <http://example.org/post/5>

Again, tdl:Post is the same for every version of TDL. Using the forward-compatibility hooks in the TDL 3 schema along with the TDL 1 schema, a TDL 3 agent could determine that tdl:prev and tdl:commentsOn are sub-properties of tdl:follows and tdl:mentions, respectively.