- From: <bugzilla@wiggum.w3.org>
- Date: Tue, 09 May 2006 07:59:53 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=3211 Summary: [FS] editorial: B.2 Mapping of Overloaded Internal Functions Product: XPath / XQuery / XSLT Version: Candidate Recommendation Platform: All OS/Version: All Status: NEW Severity: minor Priority: P2 Component: Formal Semantics AssignedTo: simeon@us.ibm.com ReportedBy: jmdyck@ibiblio.org QAContact: public-qt-comments@w3.org B.2 Mapping of Overloaded Internal Functions STA "The following static typing rules apply generically to all the fs: special functions." This should be conveyed by the inference rules too. I.e., add expanded-QName = (FS-URI,String) String in {"plus","minus","times","idiv","div", ...} (directly or indirectly) to each rule. (leftover from Bug 1580) STA / rule 1 The top set of premises is only satisfied if every Typei is a union of the same number (m) of OptAtomicTypes, which is not what you want. You could fix this by making the m's distinct: ... OptAtomicType<sub>m<sub>1</sub>,1</sub> ... OptAtomicType<sub>m<sub>n</sub>,1</sub> But then what would you do in the second set of premises? If you want the rule to consider all possible combinations of argument types, you probably need a recursive rule, e.g. Typei = (OptAtomicType1 | ... | OptAtomicTypem) statEnv |- expanded-QName(Type1, ..., OptAtomicType1, ..., Typen) : Type1' ... statEnv |- expanded-QName(Type1, ..., OptAtomicTypem, ..., Typen) : Typem' ----------------------------------------------- statEnv |- expanded-QName(Type1, ..., Typen) : (Type1' |...| Typem') If you concede that the only possibilities are n=1 or n=2, you could split this rule into three simpler rules. STA / rule (2|3|4|5|6|7) / conclusion HTML source: <em><a href="#id-expanded-qnames"><em>expanded-QName</em></a></em> Remove outer <em></em>. STA / rule (4|5|6|8|9) "AtomicType" AtomicType is a SequenceType, not a Formal Type. Instead, you probably mean AtomicTypeName, which *is* a Formal Type. STA / rule 7 The rule needs a premise: Type1 = empty Notation 2 / rule (1|2) "AtomicType" As above, change to AtomicTypeName.
Received on Tuesday, 9 May 2006 08:03:07 UTC