W3C home > Mailing lists > Public > w3c-rdfcore-wg@w3.org > November 2001

Re: datatypes and MT (#rdfms-graph)

From: Pat Hayes <phayes@ai.uwf.edu>
Date: Thu, 8 Nov 2001 18:58:38 -0600
Message-Id: <p0510101bb810d484bfe1@[65.212.118.147]>
To: Dan Connolly <connolly@w3.org>
Cc: w3c-rdfcore-wg@w3.org
>[This message is as much about issue
>http://www.w3.org/2000/03/rdf-tracking/#rdfms-graph
>as anything else...]
>
>Pat Hayes wrote:
>>
>>  >  > >abstract syntax:
>>  >>  >       terms:
>>  >>  >               constants (URIs w/fragids)
>>  >>  >               string literals
>>  >>  >               bnodes (existentially quantified variables)
>>  >>  >       statement:
>>  >>  >               term term term.
>>  >>
>>  >>  We've already gone into why this simple a syntax does not work.
>>  >
>>  >Really? pointer? example?
>>
>>  It's in the archive somewhere.
>
>OK, I'm aware there has been discussion along those lines;
>I haven't been convinced by it.
>
>I thought you were suggesting that the WG had made a decision
>along those lines.

I thought we had a kind of working consensus to use the graph as the 
'primary' syntax.

>  > First, having literals on arcs doesn't
>>  make sense.
>
>Er... do you mean you don't find it appealing or intuitive,
>or that it conflicts with something in a technical sense?

As far as I can see, any such arc, and hence any graph containing any 
such arc, will be false in every interpretation. It seems daft to 
allow a syntactic construction whose only possible purpose is to make 
a graph inconsistent: its a bit like including 'wrong' in the syntax 
so that we can say things that are wrong.

>I suggest IEXT("foo") is empty, and similarly for all literals;
>I think that captures the intuition that literals shouldn't
>be used as properties.
>

Yes, it does, but then why allow them to be used that way in the 
syntax? Is having a trivial BNF really worth allowing this much 
potential pain and misunderstanding?

>  > Next, we need a way to say when the same node is being
>>  used in two places, so we need nodeIDs or some such, even on
>>  literals.
>
>We do? I don't think we need anything called "node" in
>the abstract syntax at all, let alone "a way to say when
>the same node is being used in two places."

Well, let me back up. If literals are things like Patrick's URVs, ie 
if they have their datatypes included in the literal label itself, 
then we wouldn't need this, since in that case we could have strict 
tidiness on all nodes, no matter what their label is. (In effect this 
would remove literals altogether, to be replaced by a special kind of 
'literal URI'.) Similarly if we make the blanket assumption that all 
literals are strings which denote themselves. But in all other cases, 
we have to allow the same literal to be given different datatyping, 
so we have to allow two different nodes to have the same literal 
label; and in that case, any triples-style lexicalization will need 
to have some way to indicate whether or not two occurrences of a 
literal label are supposed to be on the same node or not.

>  >  Third, most seriously, having bnode labels on arcs
>>  requires some notion of scope (in the graph, not the Ntriples doc.)
>
>
>It's there in my message; you left it out:
>
>>  >  > >       formula:
>  > >>  >               statement*

Oh, I see, so formula is a definite syntactic form. What happens when 
I have two or more formulae? How do I merge information from two 
different formulae? Its not valid to simply concatenate their 
statements. Can I make a larger formula out of them? That would seem 
to require something like
biggerformula:
      formula*
in addition.

>
>>  I
>>  would add that it forces us to incorporate nodeIDs (actually better
>>  called arcIDs in this case) into the RDF graph itself
>
>Really?

Sure, if we have 'blank arcs' then we have to have some way to 
indicate which of those arcs are part of the same 'blank property' 
and which are part of some other 'blank property' (Unless we assume 
that there is only one blank property per graph, maybe?)

>
>>, which is a
>>  'slippery slope' idea that several people didn't like: Frank Manola,
>>  I believe, was one.
>
>I don't like the idea of arcIDs either.
>
>>  >It works to my satisfaction, after considerable study
>>  >and implementation experience. At least two other
>>  >WG members also said they prefer this abstract syntax.
>  > >
>>
>>  I would like it too if it could be made to work.
>
>I don't see why it cannot.

The blank arcs is the main issue.

>
>>  If we weren't
>>  restricted to simple graphs and obliged to only use urirefs as names,
>>  then it would work fine.
>
>I don't understand what you mean here.

I was referring to the possibility of having some kind of inner 
scoping mechanism, as in CG graphs, or using 'contexts' as in N3, or 
some such. These all break the simple graph model in one way or 
another. Once you allow almost any extension like this which allows 
the local scopes to be nested, you can make recursive models of 
almost any kind of structure. But then the elegant simplicity of the 
RDF graph model is gone, and we are back to having to parse things.

Pat
-- 
---------------------------------------------------------------------
IHMC					(850)434 8903   home
40 South Alcaniz St.			(850)202 4416   office
Pensacola,  FL 32501			(850)202 4440   fax
phayes@ai.uwf.edu 
http://www.coginst.uwf.edu/~phayes
Received on Thursday, 8 November 2001 19:58:32 EST

This archive was generated by hypermail pre-2.1.9 : Wednesday, 3 September 2003 09:42:35 EDT