W3C home > Mailing lists > Public > semantic-web@w3.org > March 2008

Re: is this valid to make a named graph in RDFa?

From: Niklas Lindström <lindstream@gmail.com>
Date: Thu, 6 Mar 2008 15:30:59 +0100
Message-ID: <cf8107640803060630g2c408a26g4f9f55edcff23b23@mail.gmail.com>
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
                    you missed it - it was
                    <span property="cal:dtstart" content="20080222T1300+0200"
                          datatype="xsd:dateTime">Feb 22</span>-25 2008
            <p property="rdf:value">
                no animals were harmed in this rodeo
            <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.

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

    <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 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 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.

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

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

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 08:45:05 UTC