- From: Felix Sasaki <fsasaki@w3.org>
- Date: Thu, 30 Mar 2006 01:41:05 +0900
- To: "Lieske, Christian" <christian.lieske@sap.com>
- Cc: Yves Savourel <ysavourel@translate.com>, public-i18n-its@w3.org
- Message-ID: <442AB8A1.9000809@w3.org>
Hi Christian, all
Although I made the proposal for the "locale" category, I'll take it
back again.
The reason: As Yves pointed out, the concept "local" is not yet well
understood in the XML world (and elsewhere). I talked a lot about this
to Addison Phillips. He is co-editor of the RFC 3066bis document for
language tags, see
http://www.ietf.org/internet-drafts/draft-ietf-ltru-registry-14.txt .
He and Mark Davis (the other co-editor) pointed me to various problems:
- relation between language and locale?
- should a locale identifier be a stable, registered unit, like language
identifier, or an adoptable set of properties
- what properties should be included in the unit / the set?
etc.
The funny thing: Both of them don't agreed yet on a single point yet,
and so do many others.
Addison warned me a lot that ITS should not try to define s.t. in this
area, and I agree.
Let's hope that Addison etc. will have a solution with a wide base of
consensus soon. Maybe we can point to them in ITS 2.0 ...
A comment below.
Lieske, Christian wrote:
> Hello everyone,
>
> On the issue of "locale" information:
>
>>From my understanding, ITS should provide a data category which captures the
> source locale and possibly even the target locale(s). I would derive the
> requirement related to target locales for example from the comments which
> Felix got during his visit to Xerox. Furthermore, I guess that
> http://esw.w3.org/topic/its0503ReqLangLocale really is about that flavour
> of locale requirement (which corresponds to what I have in mind):
>
> If a localizer does not know that a certain bit of content initially was meant
> for a certain locale, or now has to go into a different locale, then the localizer
> cannot work the way he would need to work.
>
> Example: If a certain bit of content only was created for Germany in German, then
> a localizer possibly would need to adapt that content if it were to be used in
> Austria (since in that country people might be more familiar with the term "Mistkübel"
> than with the term "Papierkorb" which from my understanding roughly correspond to "recycle bin").
you can express that difference with a language identifier, since it
provides a region subtag, see sec. 2.2.4. in
http://www.ietf.org/internet-drafts/draft-ietf-ltru-registry-14.txt .
>
> I would argue that the availability of this type of locale information would be valuable
> even it cannot yet be provided by means of standard values.
>
> I am not sure whether Richard had this kind of information in mind for the language information
> http://www.w3.org/International/its/itstagset/itstagset.html#datacat-lang
I agree it would be nice to have a means to differentiate between
language and locale more clearly. It is just not possible yet :( , and
I'm afraid we are not in the position to make new ground here.
Regards, Felix.
>
> Best regards,
> Christian
> -----Original Message-----
> From: public-i18n-its-request@w3.org [mailto:public-i18n-its-request@w3.org] On Behalf Of Felix Sasaki
> Sent: Mittwoch, 29. März 2006 03:52
> To: Yves Savourel
> Cc: public-i18n-its@w3.org
> Subject: Re: New ITS syntax
>
> Hi Yves,
>
> Many thanks!
>
> Yves Savourel wrote:
>> Hi Felix, all,
>>
>> Looking at
>> http://lists.w3.org/Archives/Public/public-i18n-its/2006JanMar/0301.html
>> For tomorrow item #4 of the agenda.
>>
>> Here are some comments:
>>
>>> #About rubyRule:
>>> ...
>>> <its:rubyRule its:selector="//span[class='ruby']"
>>> its:rubyBaseMap="span[class='rubyBase']"
>>> its:rubyTextMap="span[class='rubyText']"/>
>> Just a reminder: Don't forget the <rp> element that exists in the W3C ruby module.
>> (And what about complex ruby constructs?)
>
> thanks for the reminder. I have integreated
> http://www.w3.org/TR/ruby/#abstract-def below. I used "xyzPointer", see
> discussion at http://www.w3.org/Bugs/Public/show_bug.cgi?id=3017 .
>
> I also created localRuby, see below.
>
>>
>>> #About langRule: The element langRule is used to express
>>> that a given piece of content (selected by the attribute langMap)
>>> is used to express language information as defined by RFC 3066
>>> or its successor. Example:
>>> <its:langRule its:selector="//p" its:langMap="@mylangattribute"/>
>>> ...
>>> #About localeRule: The element localeRule is used to express that
>>> a given piece of content (selected by the attribute localeMap) is
>>> used to express locale information. Example: <its:localeRule
>>> its:selector="//p" its:langMap="@mylocaleattribute"/>.
>> Mmmm... I guess langMap and localeMap stay named like this while the other change to xyzPointer/PassThrough/Etc.
>
> no, I would change everything to "pointer", hence: its:langPointer .
>
> One question: if
>> the content of langMap is always an attribute, why the '@'? Is the value an XPath expression or the name of the equivalent
>> attribute/element?
>
> an XPath expression. It has the same meaning as all "pointer"
> attributes: an XPath expression relative to the node(s) selected by
> its:select, e.g.
>
> <ns1:p myLangAtt=".."> ...
>
> would be
> <its:langRule its:select="//ns1:p" its:langPointer="//@myLangAtt"/>
>
>> Something tells me involving 'locale' before there is a clear consensus in the XML world on what is it and have a RFC3066-like
>> reference for the values, is a bad idea.
>
> you are right, I have dropped locale. Btw., Addison Philipps has given
> me the same feedback :(
>
>> When you say "The value of @mylocaleattribute might be compliant to RFC 3066 bis, but this is not mandatory." then it means
>> basically "use whatever value you want", and that makes it non-interoperable. I can understand <langRule> because it maps to
>> XML/ITS-recommended way to specify language and there is value set define for it. But what is the use case for mapping a
>> user-defined locale to ...nothing interoperable. Knowing the name of the attribute used for specifying the locale is not enough: one
>> needs a defined set of values. To me, having localeMap may raise the false hope that ITS provides some kind of interoperable locale
>> concept.
>>
>>
>> Cheers,
>> -yves
>>
>>
>
> Below the corrected syntax. A question: What is the latest state for
> withinTextRule?
>
> cheers,
>
> Felix
>
>
> namespace its = "http://www.w3.org/2005/11/its"
>
> # having itsGlobal as the entry point of the schema serves as a wrapper
> schema
> # for an external rules file.
>
> start = itsGlobal
>
> itsGlobal = element its:rules { ns*, rule+ }
>
> ns = element its:ns { attribute its:prefix { xsd:NCName }, attribute
> its:uri {
> xsd:anyURI } }
>
> selector = attribute its:selector { text }
>
> rule = translateRule | locInfoRule | dirRule | termRule |
> langRule | rubyRule | withinTextRule
>
> translateRule = element its:translateRule { selector, attribute
> its:translate {
> "yes" | "no" } }
>
> #About locInfoRule: At the locInfoRule element, there must be either a
> #locInfo element [not attribute] or a locInfoRef attribute. If neither is
> #present, there must be either a locInfoPointer attribute or a
> locInfoRefPointer
> #attribute. There is an optional locInfoType attribute.
>
> locInfoRule = element its:locInfoRule { selector, attribute its:locInfoRef {
> xsd:anyURI }?, attribute its:locInfoRefPointer { text }?, attribute
> its:locInfoPointer {
> text }?, attribute its:locInfoType { "alert" | "description" }?, element
> locInfo { text }? }
>
> dirRule = element its:dirRule { selector, attribute its:dir { "ltr" |
> "rtl" |
> "lro" | "rlo" } }
>
> #About termRule: In an instance document, we would need an attribute
> #term="yes" to indicate a term. In the global rule, "being" a term is
> #expressed via the name of the element termRule, hence the attribute
> #term="yes" is not necessary any more. The attributes termRef and
> #termRefPointer are alternatives. It is an error if they occur at the same
> #termRule element.
>
> termRule = element its:termRule { selector, attribute its:termRef {
> xsd:anyURI
> }?, attribute its:termRefPointer { text } }
>
> #About langRule: The element langRule is used to express that a given
> #piece of content (selected by the attribute langPointer) is used to express
> #language information as defined by RFC 3066 or its successor. Example:
> #<its:langRule its:selector="//p" its:langPointer="@mylangattribute"/>
> #expresses that all p elements (including attributes and textual content
> #of child elements) have a language value conformant to RFC 3066 or its
> #successor. The value is given by the @mylangattribute attached to the p
> #elements.
> langRule = element its:langRule { selector, attribute its:langPointer {
> text } }
>
>
> #About rubyRule: The element rubyRule is used (1) to map existing ruby
> #"markup to ITS ruby, which itself is defind in terms of the W3C ruby
> #specification, or (2) to add ruby text to attribute values. Example for
> #(1): <its:rubyRule its:selector="//span[class='ruby']"
> #its:rbPointer="span[class='rubyBase']"
> #its:rtPointer="span[class='rubyText']"/> . Example for (2):
> #<its:rubyRule its:selector="/body/img[1]/@alt" its:rbPointer="."
> #its:rt="World Wide Web Consortium"/> . It is an error if both an
> #its:rt attribute and an its:rtPointer attribute occur at the
> #same <its:rubyRule> element.
> rubyRule = element its:rubyRule { selector, attribute its:rubyPointer {
> text }?,
> attribute its:rbPointer { text }?, attribute its:rtPointer { text }?,
> attribute its:rpPointer { text } ?,
> attribute its:rbcPointer { text } ?, attribute its:rtcPointer { text }?,
> attribute its:rubyText { text }? }
>
>
>
> #About withinTextRule: withinTextRule is based on Yves / AZ proposal,
> #see http://www.w3.org/Bugs/Public/show_bug.cgi?id=2878
> withinTextRule = element its:withinTextRule { selector }
>
> #locale usage of ITS are itsLocalAttributes, or ruby. Just for
> #convinience, the span element contains the itsLocalAttributes.
> itsLocal = element its:span { itsLocalAttributes, text } | rubyLocal
>
> itsLocalAttributes = translateLocal | locInfoLocal | dirLocal | termLocal
> translateLocal = attribute its:translate { "yes" | "no" }?
>
> #About locInfoLocal: There must be either a a locInfo attribute or a
> #locInfoRef attribute. There is an optional locInfoType attribute.
> locInfoLocal = attribute its:locInfo { text }?, attribute its:locInfoRef {
> xsd:anyURI }?, attribute its:locInfoType { "alert" | "description" }
>
> dirLocal = attribute its:dir { "ltr" | "rtl" | "lro" | "rlo" }?
>
> #About termLocal: the attribute term is mandatory, the attribute termRef
> #is optional.
> termLocal = attribute its:term { "yes" }?, attribute its:termRef {
> xsd:anyURI }?
>
> #On ruby: todo: still need to write the ruby content model, which is
> #identical to w3c ruby, and global ruby rules.
>
> # rubyLocal is defined in terms of
> http://www.w3.org/TR/ruby/\#definition. The (rbc, rtc, rtc?) alternative
> of the content model for the ruby element corresponds to complex ruby
> markup. The minimal content model for the ruby element is (rb, (rt |
> (rp, rt, rp))).
> rubyLocal = element its:ruby { RubyCommonAtts, ((rb, (rt | (rp, rt,
> rp))) | (rbc, rtc, rtc?)) }
> rbc = element its:rbc { RubyCommonAtts, rb+ }
> rtc = element its:rtc { RubyCommonAtts, rt+ }
> rb = element its:rb { RubyCommonAtts, inline* }
> rt = element its:rt { RubyCommonAtts, attribute its:rbspan { text },
> inline* }
> rp = element its:rp { RubyCommonAtts, text }
> inline = text
> RubyCommonAtts = itsLocalAttributes
>
>
Received on Wednesday, 29 March 2006 16:41:25 UTC