Re: RDF 2.0 proposal: contextual properties

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