- From: Niklas Lindström <lindstream@gmail.com>
- Date: Thu, 6 Mar 2008 15:30:59 +0100
- To: "Story Henry" <henry.story@bblfish.net>
- Cc: "Golda Velez" <gv@btucson.com>, "Ivan Herman" <ivan@w3.org>, semantic-web@w3.org, ben@adida.net, michael.hausenblas@joanneum.at
Hi all! I mostly agree that reification is an advanced topic for which syntactic shorthands are rarely needed (nor desired). It has its place to provide a sound theoretical foundation, but I don't think reification should be encouraged for "regular" RDF usage at all. (To manage graphs and subgraphs (e.g. source documents), the use of contexts in quad stores is often good enough.) In this specific use case, using tdl:commentsOn (as I believe should be used; tdl:Post is an owl:Class) and its subproperties such as tdl:respondsPositivelyTo and tdl:respondsNegativelyTo (see <http://www.eyrie.org/~zednenem/2002/web-threads/tdl-3.ttl>) seem good enough to model the discussion without making statements about statements. With these you can establish some (at least normatively) useful relations between Posts. Unless you want to assign e.g. probability or trust values to individual statements, this approach is reasonably simpler ("pragmatic" as opposed to say "formal"). I was intrigued by the example, so here is an attempt to rewrite the original: <div instanceof="tdl:Thread" rel="tdl:inThread" xml:lang="en"> <div id="tucsonrodeo08" about="#tucsonrodeo08" instanceof="tdl:Post"> <h1>Tucson Rodeo -08</h1> <div rel="skos:subject" instanceof="cal:Vevent"> <p property="cal:summary"> bull riding, calf roping, barrel racing and other fun cowboy stuff </p> <p> you missed it - it was <span property="cal:dtstart" content="20080222T1300+0200" datatype="xsd:dateTime">Feb 22</span>-25 2008 </p> </div> <p property="rdf:value"> no animals were harmed in this rodeo </p> </div> <h2>Comments:</h2> <div> <div id="comment1" about="#comment1" instanceof="tdl:Post"> <h3>Comment 1</h3> <a rel="tdl:respondsNegativelyTo" resource="#tucsonrodeo08"> (in response to "Tucson Rodeo -08")</a> <p property="rdf:value"> I was at the rodeo 2/23/08 and did not see any animals harmed, though the goat used in the kid section at 2PM was thrown down pretty hard a few times. </p> </div> </div> </div> Some remarks: - I use a hanging @rel here to make all @about in the tdl:Thread work as objects for multiple tdl:inThread about the event (cal:Vevent); .. @xml:lang to have the texts as English language literals by default; .. and other minor tweaks to satisfy my sometimes painfully pedantic needs.. - I established a relation between the original post and the event it describes with <http://www.w3.org/2004/02/skos/core#subject>. - The original post is here determined as the one member of the tdl:Thread which isn't a subject of a tdl:respondsTo statement.. (with no regard for the Open World Assumption..) - I found no property to capture the textual value of a tdl:Post, so I used rdf:value (there should be a more suitable one though..). - The chain/tree is determined via the semantics of tdl:respondsTo (a subPropertyOf (two steps up) of tdl:follows) and not via e.g. RDF collections. The hanging rel establishes no order, only a relation to the thread. Following is a (very primitive) attempt to use the power of reification instead (as was originally asked for) to capture something similar. This one is much more flat -- and omits the TDL semantics -- since it quickly becomes cumbersome to do all that with reified statements: <div id="tucsonrodeo08" about="#tucsonrodeo08" xml:lang="en"> <div rel="skos:subject" instanceof="cal:Vevent"> <p property="cal:summary"> bull riding, calf roping, barrel racing and other fun cowboy stuff </p> ... </div> <p about="#opinion1" instanceof="rdf:Statement"> <span rel="rdf:subject" resource="#tucsonrodeo08"/> <span rel="rdf:predicate" resource="[rdfs:comment]"/> <p rel="rdf:object"> no animals were harmed in this rodeo </p> </p> </div> <div> <p about="#opinion2" instanceof="rdf:Statement"> <span rel="rdf:subject" resource="#opinion1"/> <span rel="rdf:predicate" resource="[rdfs:comment]"/> <p rel="rdf:object"> [...] though the goat [...] was thrown down pretty hard a few times. </p> </p> </div> This seems both too general and overly (scientifically) precise.. Indeed, if this formal power is required for analysis of large amounts of threads, I believe I would write something like N3 formulae to express a way to infer "higher order" information from my first example, writing rules to reify e.g. the object of tdl:respondsNegativelyTo and assign statements about that (with it as subject) some form of truth or trust "modification" (for use in some kind of bayesian computation). But this is high science mostly beyond me. Please note that I wasn't previously familiar with the TDL vocabulary, so I'm not certain I've used it properly. I'm fairly familiar with RDFa though (and to some extent the theory of RDF I daringly wield), so I really hope I made no fundamental errors in those departments. ;) Best regards, Niklas Lindström (Technical Consultant @ Valtech Sweden) [BTW: should this be CC:ed to the RDFa list as well..?] On Thu, Mar 6, 2008 at 11:18 AM, Story Henry <henry.story@bblfish.net> wrote: > > On 6 Mar 2008, at 05:04, Golda Velez wrote: > > Hi Ivan - sure, of course the tag is not the point - > > > > But, if assigning a URI to a statement in a standard way is not the > > way to > > address the statement, is there any way to do it? And why not use a > > URI that > > refers to the start of the individual triple statement? > > > > I read the post about using <u1 u2 u3> but I think that could get > > cumbersome > > quickly. Naming things is just so fundamental to programming, > > language, > > abstract thinking, math etc it seems absurd to not be able to simply > > name a > > statement... > > If you want to make statements as complex as that then you should use > N3. It is perhaps not a bad thing that the more widespread RDF > serialisations do not make it easy to make statements about > statements. Life is already complicated enough with getting people to > express what they believe. Having people start making statements about > what they believe other people believe, or statements about what they > believe other people should assume other people believe, would really > make things a lot more complicated, and not necessarily any better. > > But if you really need to play with that use N3. The best is to try to > keep things as simple as possible. > > Henry > > > Home page: http://bblfish.net/ > >
Received on Thursday, 6 March 2008 14:31:19 UTC