TOC 
ZedneWebD. Menendez
 ZedneWeb
 January 2004

Thread Description Language 3

Abstract

TDL is an RDF[1] vocabulary for describing threaded discussions.

Status of this document

This is a working draft. The declared vocabulary terms are mostly stable at this point, but documentation is still skeletal in places.

© 2004 David Menendez

$Id: tdl3.xml,v 1.5 2004/02/02 03:09:17 dave Exp $



Table of Contents

1.  Background
2.  Vocabulary
2.1  Classes
2.1.1  Post
2.1.2  Thread
2.2  Properties
2.2.1  follows
2.2.2  mentions
2.2.3  discusses
2.2.4  respondsTo
2.2.5  agreesWith
2.2.6  disagreesWith
2.2.7  partOf
§  References
§  Author's Address
A.  Extracting TDL from existing data
B.  Concerns and techniques
B.1  Indicating sub-threads
B.2  Untangling circular references
C.  Changes from TDL 2
D.  Potential vocabulary extensions
D.1  content
D.2  excerpt
D.3  initialPost
D.4  finalPost
E.  Revision history




 TOC 

1. Background

[Not yet written. In short, TDL's goals are (1) to provide a simple framework for discussion threads that works across as many online forums as possible, so that, e.g., one can read a weblog post and find responses to it at a message board on another site; and (2) to provide a framework whereby a message board's content can be described with sufficient detail that it can be reconstituted somewhere else (insert refs to David Weinberger's essay and ThreadsML?).]



 TOC 

2. Vocabulary

The terms defined by TDL 3 are in an as-yet-undetermined namespace. To avoid redefining existing data, it will not be the same namespace used by TDL 2[3].

2.1 Classes

TDL defines two classes, Post and Thread. They are disjoint.

2.1.1 Post

A post is an individual contribution to a discussion, such as an e-mail, usenet post, weblog entry, or message board posting.

2.1.2 Thread

A thread collects several related posts via the partOf relation

2.2 Properties

2.2.1 follows

A transitive object property.

Domain:
Resource
Range:
Resource

Relates a resource to another resource which precedes it chronologically. More precisely, it indicates that the object resource does not follow the subject (see below). This is the weakest way to relate posts in a thread, but in cases such as linear message boards or e-mail discussions, it may be all that's available.

In certain media, it is possible for posts to be modified after their initial creation, which can lead to cases where post B refers to post A, which is subsequently modified to refer back to post B. Because mentions is a sub-property of follows, we must allow A to follow B and B to follow A simultaneously. A circle of follows relationships effectively indicates that the resources are at roughly the same place chronologically. (Appendix B.2 examines the issues circular relationships raise and techniques to avoid them.)

It is sometimes possible to derive follows from creation dates. A mailing list archive, for example, knows the chronological order of its posts but may not have explicit clues as to which posts mention or respond to others. This is discouraged for distributed forums such as usenet and the blogosphere, as there is no centralized clock.

2.2.2 mentions

An object property.

Domain:
Post
Range:
Resource
Sub-property of:
follows

Relates a post to a resource that it refers to. This can be explicit, like a hypertext link in a weblog post, or implicit in the content of the post.

2.2.3 discusses

An object property.

Domain:
Post
Range:
Resource
Sub-property of:
mentions

Relates a post to something it discusses. This is a stronger connection than mentions by itself; it indicates that the post provides information about or an opinion on the resource. For example, a post which includes TDL in a list of projects relating to discussion threads would be related with "mentions", while a post which explains why TDL is superior/inferior to some other system would be related with "discusses".

The sense of discusses overlaps somewhat with respondsTo. Where appropriate, both may be used. As a rule, a post which responds to another post addresses the ideas of the earlier post, whereas one which discusses the earlier post is addressing the post itself (perhaps complaining about its grammar or noting a quirk of its author).

[Note: The sense of discusses is fairly similar to foaf:topic or a generalized variant of dc:subject. Currently, we need discusses because foaf:topic doesn't work with OWL DL[2] and dc:subject relates resources to subject codes, rather than the subjects themselves. That doesn't mean we'll keep it.]

2.2.4 respondsTo

An object property.

Domain:
Post
Range:
Post
Sub-property of:
mentions

Relates a post to an earlier post, to which it is a direct response.

2.2.5 agreesWith

An object property.

Domain:
Post
Range:
Post
Sub-property of:
respondsTo

Relates a post to an earlier post, to which it is a direct, concurring response.

2.2.6 disagreesWith

An object property.

Domain:
Post
Range:
Post
Sub-property of:
respondsTo

Relates a post to an earlier post, to which it is a direct, dissenting response.

2.2.7 partOf

An object property.

Domain:
Post
Range:
Thread

Relates a post to a thread it contributes to.



 TOC 

References

[1] Manola, F. and E. Miller, "RDF Primer", December 2003.
[2] McGuinness, D. and F. van Harmelen, "OWL Web Ontology Language Overview", December 2003.
[3] Menendez, D., "Thread Description Language (Version 2)", November 2002.


 TOC 

Author's Address

  David Menendez
  ZedneWeb
  8 University Ave
  Chatham, NJ 07928
  US
Phone:  +1 973 635 7491
EMail:  zednenem@psualum.com
URI:  http://www.eyrie.org/~zednenem/


 TOC 

Appendix A. Extracting TDL from existing data



 TOC 

Appendix B. Concerns and techniques

B.1 Indicating sub-threads

Unlike TDL 2[3], TDL 3 defines no terms for describing thread/subthread relationships. Since threads (unlike tdl2:topics) are unordered sets, it is possible to use OWL[2] constructs to state that all the members of a given thread belong to a larger thread or to provide a closed list of posts.

Saying that thread B is a subthread of thread A can be translated into a subclass relation between the class of posts belonging to thread B and the class of posts belonging to thread A. In OWL, this becomes:

[ a owl:Restriction
; owl:onProperty tdl:partOf
; owl:hasValue ex:B
; rdfs:subClassOf
  [ a owl:Restriction
  ; owl:onProperty tdl:partOf
  ; owl:hasValue ex:A
  ]
].  

[@@ General sense is correct, but need to find out if that specifically is legal OWL.]

The disadvantage of that technique is that it requires seven triples to assert that ex:B is a subthread of ex:A and doesn't assert an easily-queried relation between ex:B and ex:A (contrast with TDL 2: "ex:B tdl2:subtopicOf ex:A.").

The proposals for OWL Rules would permit a term such as subthreadOf to have the impact of the graph given above.

OWL restrictions can also assert that a topic contains a given set of posts and only those posts by explicitly stating the membership of the class of posts belonging to the topic. For example:

[ a owl:Restriction
; owl:onProperty tdl:partOf
; owl:hasValue ex:A
; owl:oneOf ( ex:P1 ex:P2 ex:P3 )
].

[@@ need to check whether that's valid]

Note that this technique is equivalent to tdl2:hasPosts. The order of the posts must still be given separately, if known.

B.2 Untangling circular references



 TOC 

Appendix C. Changes from TDL 2

TDL 3 represents a simplification of the model used by TDL 2[3]

A mapping from TDL 2 terms to their approximate TDL 3 equivalents:

TDL 2 TDL 3 Notes
v2:Post v3:Post Largely the same, but v3:Post is not limited to texts.
v2:Topic v3:Thread Individual v2:Topics may not qualify as v3:Threads. In particular, v3:Thread does not have an ordering component and is disjoint with v3:Post.
v2:refersTo v3:mentions  
v2:commentsOn v3:respondsTo or v3:discusses Choose one or both depending on the sense. Note that v3:respondsTo relates a v3:Post to another v3:Post.
v2:agreesWith v3:agreesWith  
v2:disagreesWith v3:disagreesWith  
v2:pointsTo v3:mentions This does not capture the sense that the subject is not commenting on the object, but that sense does not seem particularly useful anyway.
v2:quotes v3:mentions The sense that the subject is quoting the object is lost, but probably wasn't that useful.
v2:content   See Appendix D.1.
v2:excerpt   See Appendix D.2.
v2:partOf v3:partOf  
v2:hasPosts   See Appendix B.1 for some possible ways to get this sense.
v2:hasPostSequence   See Appendix B.1. Note that post order is global in TDL 3, so not all v2:Topics with a defined v2:hasPostSequence property can be directly translated.
v2:initialPost   See Appendix D.3
v2:finalPost   See Appendix D.4
v2:subtopicOf   See Appendix B.1
v2:selectionFrom   See Appendix B.1
v2:segmentOf   See Appendix B.1
v2:hasTopics   No current way to represent this, which may be a bug (see requirements)


 TOC 

Appendix D. Potential vocabulary extensions

These properties from TDL 2[3] do not have a ready equivalent in TDL 3 and are being considered for adoption.

D.1 content

A datatype property.

Domain:
Post
Range:
Literal

The content property relates a post to a literal representation of its content, usually a plain or XML literal. With this property, it is possible to use TDL to create an RDF/XML file describing a thread and including its content. The question remains whether this should be defined as part of TDL or some more general specification.

Alternately, this might be a valid use for rdf:value.

D.2 excerpt

A datatype property.

Domain:
Post
Range:
Literal

The excerpt property relates a post to a literal representation of a portion of its content, usually a plain or XML literal. This can be useful when creating syndication feeds (e.g., in RSS). As with content, it is not clear whether this term belongs in TDL or elsewhere.

D.3 initialPost

A functional object property.

Domain:
Thread
Range:
Post

Relates a thread to its first post. This is a sub-property of the inverse of partOf.

Axiom: Given a topic T and post I such that T initialPost I: for any post P, if P partOf T then P follows I.

D.4 finalPost

A functional object property.

Domain:
Thread
Range:
Post

Relates a thread to its concluding post. This is a sub-property of the inverse of partOf.

Axiom: Given a topic T and post F such that T finalPost F: for any post P, if P partOf T then F follows P.



 TOC 

Appendix E. Revision history

$Log: tdl3.xml,v $
Revision 1.5  2004/02/02 03:09:17  dave
Fixed URI for TDL 2

Revision 1.4  2004/01/27 03:13:06  dave
More info for follows and mentions
Spelling check
Some rewording

Revision 1.3  2004/01/26 06:03:11  dave
Descriptions for follows, discusses
Wrote content for "Indicating subthreads"
Filled out and corrected references to RDF and OWL

Revision 1.2  2004/01/25 20:31:09  dave
Added conceptual mapping to TDL 2
Listed content, excerpt, initialPost, and finalPost as potential terms
Some more (incomplete) description of the terms themselves

Revision 1.1  2003/12/13 02:39:05  dave
Initial revision