Re: lang

On 12/12/2013 12:22 PM, Pat Hayes wrote:
>> >(Personally I've never liked the current design.   My preference was to use predicates ( _:someAbstractMessage)---expressedInEnglish--->"....")
> Abstract messages, poppycock:-)

You scoff, but consider:

Right now, we have rdfs:comment.    This connects resources with 
comments on them.   There are allowed to be multiple comments.  And 
comments can be in multiple languages.

So we might have:

     :someEvent rdfs:comment "This is good!"@en,

                             "C'est bon!"@fr,

                             "This happened last year"@en.


There's no way for code trying to display these comments to see the 
first two are the same message expressed in different languages, while 
the 3rd is a different message.  It would make much more sense to have:

    :someEvent rdfs:comment [ lang:en "This is good!"; lang:fr "C'est bon!],

                            [ lang:en "This happened last year" ].

This is a problem I'm wrestling with right now with our namespace 
documents.    The only solution I can see is to use the "best practice" 
that predicates like rdfs:comment, whose values are human-readable text, 
be pseudo-Functional: consider the multiple values to be equivalent 
natural language representations of that one value.   If there are two 
comments in the same language, that's a violation of this "best practice".

This is the only way I can make sense of existing use of language 
tags.   It works, but it means these predicate, whose range in practice 
is langString, have to always have unlimited maxCardinality, while 
conceptually being Functionally (maxCardinality=1).    It's a hack.    
If you want to have multiple distinct comments, you can't use 
rdfs:comment.    *shrug*.

Is this best practice documented somewhere, or is this something people 
are just supposed to figure out for themselves each time? Is there some 
other approach that works better?

     -- Sandro

Received on Thursday, 12 December 2013 18:12:53 UTC