- From: Felix Sasaki <fsasaki@w3.org>
- Date: Wed, 25 Apr 2007 22:47:55 +0900
- To: Addison Phillips <addison@inter-locale.com>
- CC: Eric Prud'hommeaux <eric@w3.org>, jjc@hpl.hp.com, public-rdf-dawg-comments@w3.org, public-i18n-core@w3.org
(Forwarded to the lists) Addison Phillips wrote: > Eric Prud'hommeaux wrote: > >>>> 1. Language matching in RFC 4647 is defined in terms of "language >>>> priority lists" made up of "language ranges". It may be useful to >>>> incorporate this concept into SPARQL query. If necessary, you may >>>> limit the list to a single range. >>>> >> >> That is the intention. Multiple ones may be expressed as multiple >> langMatches tests: >> >> FILTER (langMatches(lang(?x), "en") || langMatches(lang(?x), "es")) >> >> >> > > The problem I see with this is that implementations of matching may > already be in terms of language priority lists. Also, note that the > range can be an expression---taking its value, for example, from HTTP > Accept-Language. Ideally I'd like to see a language priority list here. > >>>> 2. The special range "*" usually matches all language tags, >>>> including the empty tag. If it didn't, you would have the problem >>>> of not being able to select contents with no tag except explicitly. >>>> That is, to select everything, you'd need two queries: one for "*" >>>> and one for the empty tag. (Obviously, omitting the langmatches >>>> statement has the same effect, so your current text may be by >>>> design??) >>>> >> >> Yes, lang("abc") returns an empty string as giving type errors would >> make the language more cumbersome. The use case for looking for >> anything with a language tag drove langMatche("", "*") => false. >> >> > > Okay, that makes sense. But it should be documented clearly, since it > isn't quite RFC 4647. This suggests, please note, something that I > should take back to the LTRU WG at IETF (where 4647 is maintained). > >> >> >>>> 3. You don't have a way of specifying the empty tag, or at least >>>> you don't enumerate it. The empty tag only matches itself. That is: >>>> >>>> FILTER langMatches( lang(?title), "") >>>> >>>> only matches items with an xml:lang="" >>>> >>>> You should call this fact out. >>>> >> >> RDF literals with empty language tags are treated as literals >> with no language tag. >> http://www.w3.org/TR/rdf-syntax-grammar/#section-literal-node >> so <rdf:Description><some:predicate xml:lang="">abc</...></...> >> exactly equals <rdf:Description><some:predicate >> >abc</...></...> >> >> >> > Yes, but you have no way to select *only* the items with no language > tag? ("*" is available to find any non-empty value). > > I know that your examples are equal: I want to select those distinct > from: > > <rdf:Description><some:predicate xml:lang="de">foo</...></...> > > >> [[ >> Returns true if language-range (second argument) matches language-tag >> (first argument) according to the Basic Filter matching scheme in >> Matching of Language Tags [RFC 4647] Section 3.3.1. language-range is >> a basic language range per RFC 4647 Section 2.1. The special range "*" >> matches any non-empty language-tag string. >> ]] >> >> I am content with either of these configurations, though slightly >> prefer the one just uttered. If you are content with this wording, >> please respond with a Subject: prefixed by "[CLOSED]". If not, let's >> negotiate some more. >> >> > The wording is not the big issue to me. It's fine as long as > technically correct: it's editorial and I'm not concerned about how > you phrase it so much. I would reverse the range and tag in the first > sentence (as a nit). Maybe the following (text in {{{}}} is optional > per above): > > -- > Returns true if the language-tag (first argument) matches the > language-range {{{s in the language priority list}}} (second > argument). The matching scheme is based on Basic Filtering from > Matching of Language Tags [RFC 4647, Section 3.3.1], with some minor > modifications. The special range "*" matches any non-empty > language-tag string. Unlike in RFC 4647, it does not match the empty > string. The empty range matches only items with an empty language-tag > or lacking the language attribute altogether. > --- > > > > ~Addison >
Received on Wednesday, 25 April 2007 13:48:07 UTC