- From: Garret Wilson <garret@globalmentor.com>
- Date: Wed, 08 Aug 2007 07:09:57 -0700
- To: Ivan Herman <ivan@w3.org>
- CC: Semantic Web <semantic-web@w3.org>
Ivan Herman wrote:
> Are you talking about
>
> - an extension/change of the RDF core semantics, or
> - some sort of a design pattern, possibly backed up by some syntactic sugar?
>
I'm talking about both. The bulk of the proposal is the latter: a design
pattern of adding properties that are interpreted to be contextual to
the object as it appears in some other statement. Adding some syntactic
sugar would make this easier to work with, and make it feel closer to
how we think about contextual properties in real life. But obviously
this couldn't be interoperable without the former: in my proposal,
rdf:context and rdf:of would need to be given defined semantics.
Obviously one could do this without touching RDF---the way I structured
my proposal, I can already use this design pattern with my:context and
my:of. In fact, I probably will. But it would be nice if this were part
of RDF, as it is more useful if everyone uses it, and this is a common
use case.
Referring to the former of your options, I'd say this is more of an
"extension" than a "change", although it would be nice if the language
tag were revamped to be a contextual property.
>> Obviously xml:lang is a hack in the RDF model for a single case, forcing
>> the model to carry around language information that isn't a real
>> "property".
>>
>
> is, I am sorry to say, erroneous. The artefact has nothing to do with
> the RDF model.
>
The way I described xml:lang and the way you describe it both are not
completely correct. First let me again apologize profusely for the way I
have been using xml:lang and (in the past) rdf:literal---obviously these
are syntactical details of the RDF/XML serialization. I was using both
of these as a shorthand notation for the things they create in the
abstract model: the language tag and the datatype URI, respectively.
That's what I meant. That's what I will say in the future.
But to say that "xml:lang is ... a syntax issue and not semantics" and
that it "has nothing to do with the RDF model" is not correct. The
xml:lang information isn't in the syntax just to look pretty---it
becomes the language tag in the abstract syntax, and the language tag is
about semantics. The literal identified by the pair ("mais", language
tag fr) is clearly a distinct thing from ("mais", language tag pt), as
stated by http://www.w3.org/TR/rdf-concepts/#section-Literal-Equality .
What I said about the language tag was not completely correct, either. I
initially viewed all references of the plain literal "mais" to be
equivalent, just having a different language tag in different contexts.
After reviewing the above reference, it seems that the literal "mais"
with language tag fr refers to a different literal "mais" with language
tag "pt". This is distinct semantics, but really it's just a sly way of
representing something contextual in the model. You and I still think of
"mais" as the same resource (yes, literals are resources), having
different languages in different contexts. The RDF model doesn't have a
method of saying "this language only in certain contexts", so it
declares the language tag to be part of the thing that identifies the
resources, making the language tag a distinguishing part of the
identifier---a "tag" that gets carried around in the model for
distinguishing among literals. (The language tag is not a property, but
it's still there in the model---somehow.)
My point is that this is a specific hack; I have other things that I'd
like to do the exact same thing with. Let's say I share a house with
Jane Doe, and we both have the same landline. I use that number for my
home number. Jane uses that number as her business number. If we could
hack in a vCard telType "tag" in the same way the language tag is built
into the RDF model, that would mean that (<tel:+1-123-456-7890>, telType
tag "home") identifies a different resource than (<tel:+1-123-456-7890>,
telType tag "work"), just like ("mais", language tag "fr") identifies a
different resource than ("mais", language tag "pt").
But that's still semantically not what we're trying to say. In real life
"mas" is the same literal, whether it's with language tag "es" or
"es_SP"---the RDF model just makes them different resources. The
telephone number <tel:+1-123-456-7890> is the same whether it's for home
or work. We're just trying to specify that these resources have certain
properties that are only valid in certain contexts.
But if the language tag confuses the point, we can drop it and talk of
other examples. Surely you can see how it would be useful to indicate
that "Garret treats <tel:+1-123-456-7890> as his home number, and Jane
treats <tel:+1-123-456-7890> has her business number." Rather than
having an infinite number of properties, each for a specific combination
of all the properties of <tel:+1-123-456-7890> that could be specific to
Garret (e.g. vcard:homeWorkFaxPartyUnpublishedNumber), wouldn't it be
more correct and easier to use if we could specify properties of
<tel:+1-123-456-7890>, but only in the context of Garret's using this
resource has his phone number?
> Again, sorry to be so pedantic, it is not my purpose to be dismissive by
> _any_ means. I would just like to understand what exactly your purpose
> is and to formalize it accordingly...
>
I hope the phone number example helps---it's especially relevant, as
it's actually an issue we're dealing with in vCard. If you still don't
understand what I'm going for, let me know and I'll try again.
> I really do not like this general move of turning everything into '2.0'.
>
Call it what you will---contextual properties is a feature that I need
and I think would be useful. I was using "RDF 2.0" as a shorthand
because of the complaints I had received for complaining about the
current RDF---I was told basically to go propose a new RDF or shut up.
So I chose the easier of the two... ;)
Best,
Garret
Received on Wednesday, 8 August 2007 14:10:11 UTC