TOC |
|
TDL is an RDF[1] vocabulary for describing threaded discussions.
This is a working draft. The declared vocabulary terms are mostly stable at this point, but documentation is still skeletal in places.
$Id: tdl3.xml,v 1.5 2004/02/02 03:09:17 dave Exp $
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 |
[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 |
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].
TDL defines two classes, Post and Thread. They are disjoint.
A post is an individual contribution to a discussion, such as an e-mail, usenet post, weblog entry, or message board posting.
A thread collects several related posts via the partOf relation
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.
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.
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.]
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.
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.
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.
An object property.
- Domain:
- Post
- Range:
- Thread
Relates a post to a thread it contributes to.
TOC |
[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 |
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 |
TOC |
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.
TOC |
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 |
These properties from TDL 2[3] do not have a ready equivalent in TDL 3 and are being considered for adoption.
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.
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.
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.
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 |
$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