- From: Tim Berners-Lee <timbl@w3.org>
- Date: Fri, 15 Mar 2002 16:50:01 -0500
- To: "Dave Beckett" <dave.beckett@bristol.ac.uk>, "Graham Klyne" <Graham.Klyne@MIMEsweeper.com>
- Cc: <w3c-rdfcore-wg@w3.org>
----- Original Message -----
From: "Graham Klyne" <Graham.Klyne@MIMEsweeper.com>
To: "Dave Beckett" <dave.beckett@bristol.ac.uk>
Cc: <w3c-rdfcore-wg@w3.org>; "Tim Berners-Lee" <timbl@w3.org>
Sent: Friday, March 15, 2002 7:57 AM
Subject: Re: NTriples proposed changes summary
> At 11:27 AM 3/15/02 +0000, Dave Beckett wrote:
> >So although Tim has raised a problem with using '-' in the proposed
> >changes, I feel we should make this change for now. We can revisit
> >this later and tweak the format again if and when we get a better way
> >to resolve this encoding of lang-strings (or we make some other change).
FWIW, The encoding of XML IDs which contain "-" is done by encoding them
into "__"
This is described in http://www.w3.org/DesignIssues/Notation3.html#munging.
The same might be appropriate here.
Alternatively (and nicer IMHO) is that,
as these ISO codes which alas do not have a home on the web should have a
namespace
declared for them which is defined to have the set of identifiers
which are the ISO language codes with "_" instead of "-".
(If the ISO folks have used both such that ambiguity arises, I will
[make them] eat my hat ;-)
> I don't feel strongly about this, but in view of Tim's comment would offer
> this suggestion (for use now, later or never):
>
> literal ::= plainstring | langString | xmlString
>
> plainstring ::= '"' string '"'
>
> langString ::= 'lit(' '"' string '"' ',' language ')'
>
> xmlString ::= 'xml(' '"' string '"' (',' language)? ')'
>
> language ::= character+ excluding ',', '(', ')' and ws
>
> I think this avoids confusion with N3 (...) because N3 syntax has that
only
> at the start of a statement. For greater safety, maybe reserve 'xml' and
> 'lit' as keywords?
I am thinking more of a language syntax clash.
Currently, lit("aa","bb") is a symbol folllowed by a list of two
strings.
What I would be very happy to do in N3, would
be to introduce an operator for application of a property (graph
traversal). I have been thinking of "." for forward traversal and
"^" for backward. If the language property has, as subject, the value
and, as object, the string, then the value which is
a language operated on would be a reverse traveral.
So a shorthand N3 notation for it could be
"chat"^lang:en_us
If you wanted to steer clear of possible N3 use to distinguish between
a real property and a special form of literal, then you could use "^^"
in that it would never turn up as a valid combination, and could be
parsed by N3 parsers either a specical literal constructor,
or as ^.
In any event, I don't much like the idea of identifiers cropping
up unless they are in a namespace or they are just strings, for
reasons which will be motherhood and apple pie to this group!
So squeezing in a "lang:" cheers me up no end.
Tim
________________________________________
PS: FoR longer brainstorming on graph traversal syntax (RDFPath 1.0 ;-)
see http://www.w3.org/DesignIssues/N3Alternatives.html
PPS: n functional syntax, One option is to force a space betwen a symbol and
() and use
conventional function notation:
nt:lit("foo" "bar") === [ is lit of ("foo" "bar")]
That is quite hairy as the space is a weaknesss -- terribly easy to get it
wrong
(a b(b d)e) and (a b (c d) e) look awful similar!
Note N3 lists like lisp lists have no ","
>
> The test cases then become:
>
> # XML literals
> <http://example.org/resource21> <http://example.org/property> xml("") .
> <http://example.org/resource22> <http://example.org/property> xml(" ") .
> <http://example.org/resource23> <http://example.org/property> xml("x") .
> <http://example.org/resource23> <http://example.org/property> xml("\"") .
> <http://example.org/resource24> <http://example.org/property> xml("<a/>")
.
> <http://example.org/resource25> <http://example.org/property> xml("a
<b/>") .
> <http://example.org/resource26> <http://example.org/property> xml("a
> <b></b> c") .
> <http://example.org/resource26> <http://example.org/property>
> xml("a\n<b></b>\nc") .
> <http://example.org/resource27> <http://example.org/property> xml("chat")
.
> <http://example.org/resource28> <http://example.org/property>
xml("chat",fr) .
> <http://example.org/resource29> <http://example.org/property>
xml("chat",en) .
>
> # literals with languages
> <http://example.org/resource30> <http://example.org/property>
lit("chat",fr) .
> <http://example.org/resource31> <http://example.org/property>
lit("chat",en) .
>
>
> (Non-language, non-XML literals are unchanged.)
>
> #g
>
>
> -------------------
> Graham Klyne
> <GK@NineByNine.org>
>
Received on Friday, 15 March 2002 16:50:05 UTC