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
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
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://www.eyrie.org/~zednenem/2002/web-threads/tdl-3.rdf>. <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: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
tdl:commentsOn, which is defined by TDL 2. The
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://www.eyrie.org/~zednenem/2002/web-threads/tdl-1.rdf>. <http://example.org/post/10> a tdl:Post ; tdl:prev <http://example.org/post/9> ; tdl:commentsOn <http://example.org/post/5> .
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:commentsOn are sub-properties of