Copyright © 2003 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3Cの責任範囲, 商標, 文書の利用, そしてライセンスに関する規則が適用されます.
Copyright © 2003 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
このメモは, コンテントMathMLにおける束縛変数の取り扱いを考案しています. 束縛変数は, 数学の言葉において, 主要な表現の基本となるものです. これらは, 関数, 量化, 修飾要素付きの演算子を表現する事を認めています. MathML2.0勧告の第1版[MathML2]は, 束縛変数の同一性の条件についてややあいまいで, 結果として, コンテントMathMLのソフトウェアは, 正確な意味を推測することを避けていました. このメモは, どのようにこれらの意味が第2版[MathML22e]で明確化されたか, その背景にある根拠をいくつか提供します.
This Note examines the treatment of bound variables in Content MathML. Bound variables are central representational primitives in mathematical languages. They allow one to express functions, quantification, and operators with qualifiers. The first edition of the MathML 2.0 Recommendation [MathML2] was somewhat vague about the identity conditions on bound variables, and as a consequence Content MathML applications were left to guess the exact meaning. This Note provides some of the rationale behind how this has been clarified in the second edition [MathML22e].
この節では, 公表された時点でのこの文書の位置付けについて述べます. 他の文書がこの文書に取って代わってもよいです. 現時点でのW3Cの公表した文書の一覧とこの技術報告書の最新版は, W3C技術報告書の索引(http://www.w3.org/TR/)で見ることができます.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
このメモは, コンテントMathMLにおける束縛変数の独立した説明を提供します. また, MathML2.0勧告(第2版)[MathML22e]の規範ではない解決を含み, コンテントMathMLで数学事象を表現する手引きを提供します. この文書(英語版)に対する意見や間違いの報告は, www-math@w3.orgに報告して下さい.(訳注:この文書(日本語版)に対する意見や間違いの報告は, soco__kankyo@hotmail.comに報告して下さい.)
This Note provides a self-contained explanation of bound variables in Content MathML. It contains non-normative interpretations of the MathML 2.0 Recommendation (Second Edition) [MathML22e] and it provides guidelines for representing mathematical objects in Content MathML. Please direct comments and report errors in this document to www-math@w3.org.
この文書は, W3C数学作業部会により, W3C数学事業(事業の声明)の一部として発表されました. この作業部会の目標は, 作業部会憲章の中で述べています. W3C数学作業部会の参加者の一覧は, 見ることが可能です.
This document has been produced by the W3C Math Working Group as part of the W3C Math Activity (Activity statement). The goals of the Working Group are discussed in the Working Group Charter. A list of participants in the W3C Math Working Group is available.
作業部会のメモとしての公表は, W3C会員の賛成を得たものではありません. この文書は草稿であり, いつでも他の文書により, 更新されたり, 置き換えられたり, 破棄されたりしてもよいです. 作業の経過によらず, この文書を掲載することが不適当になります. このメモに関係のある特許開示は, 数学作業部会の特許開示のページで見つけられるでしょう.
Publication as a Working Group Note does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress. Patent disclosures relevant to this Note may be found on the Math Working Group's patent disclosure page.
1 導入
Introduction
2 課題
The problem
3
論理学や数学的基盤における束縛変数の背景
Background on bound variables in logics and mathematical foundations
4 分析
Analysis
5 束縛変数の同一性証明のためのdefinitionURL利用
Using definitionURL for Bound Variable Identification.
5.1 なぜdefinitionURLなのか?
Why definitionURL?
5.2 MathMLにおけるdefinitionURLの役割の明確化
Clarifying the Role of definitionURL in MathML
6 結論
Conclusion
束縛変数は, 数学の言葉において, 主要な表現の基本となるものです. これらは, 関数, 量化, 修飾要素付きの演算子を表現する事を認めています. MathML2.0勧告の第1版[MathML2]は, 束縛変数の同一性の条件についてややあいまいでした. 例えば, その勧告の全ての例で単純なci
要素が使われています. そのため, 束縛変数の実例が定義出現として同じものか疑う余地がありません. 実際のところ, 同一性の問題は, ci
要素の中でより精密な表現を使用し始めたときにのみ深刻に生じます. コンテントMathMLのソフトウェアは, semantics
タグや書式属性の大量の利用の影響下にある場合に, できる限り2つの表現が等しいと決めようとするのを避けていました. どのくらい広範囲にわたって, ci
要素を数学的に変更すること無しに, (たとえ, 表示目的であっても)修正できるでしょうか?
Bound variables are central representational primitives in
mathematical languages. They allow one to express functions, quantification,
and operators with qualifiers. The first edition of the MathML 2.0
Recommendation [MathML2] was vague about the identity conditions on bound
variables. For example, all examples in that Recommendation use simple
ci
elements, for which there is never any doubt when
an instance of the bound variable is the same as the defining
occurrence. In fact, the question of identity only seriously arises
when one starts to use more elaborate presentations inside of the ci
elements. Content MathML
applications were left trying to decide
when two presentations are equal, possibly in the presence of
heavy use of semantics
tags and/or styling attributes.
How extensively could a ci
element be modified (even for
presentational purposes) without changing it mathematically?
この問題に対する安全な回答は"少しもない"でした. ただし, 少なくとも表現の1つは, 数学的同一性を保ったまま説明的な目的で変更される必要があり, そのような正式な例が存在しました. さらにMathML2.0勧告の第1版[MathML2]は, この点で精巧なものではありませんでした.
The safe answer to this question was "not at all", but there were legitimate examples where at very least one of the presentations needed to be changed for expository purposes while retaining the mathematical identity. Furthermore, the first edition of the MathML 2.0 Recommendation [MathML2] did not elaborate on this point.
このメモは, 束縛変数の実例の承認を確実にし, どのように意味情報を扱う既存の仕組みがプレゼンテーションマークアップの直接比較に依存せずに, そのような同一性説明を行うために利用できるか示します. このことは, MathML2.0勧告の第2版[MathML22e]における束縛変数の同一性の概念を明確にするのに用いられる手法です.
This Note investigates the recognition of instances of bound variables and shows how existing mechanisms for dealing with semantics can be used to make such identifications explicit without depending on the direct comparison of the presentational markup. This is the approach that has been used to clarify the notion of identity of bound variables in the second edition of the MathML 2.0 Recommendation [MathML22e].
複雑なプレゼンテーションMathMLの付加情報が使われる場合, bvar要素で定義出現が生じていないciの特定の実例と結び付けることは, 確立しづらいでしょう. また, MathML2.0勧告の第1版[MathML2]は, そのような方法を指定しませんでした. 単独でXML構造に基づいた(ひょっとしたらXML情報セットに基づいた)同一性の厳密な定義は, とても制限されるであろうことに注意して下さい.
When complex Presentation MathML annotations are used, the association of a particular instance of a ci with its defining occurrence in the bvar element can be difficult to establish, and the first edition of the MathML 2.0 Recommendation [MathML2] did not specify a way to do so. Note that a strict definition of identity based solely on the XML structure (possibly based on the XML Information Set) would be too restrictive.
(MathML2.0勧告の第1版[MathML2]での全ての例を含め)最も純粋なコンテントMathMLの場合は, 何も問題はありません. bvar要素の中身は単独のciで, その中身は単独な文字列です. 空白を正規化した後に同じ名前を持つapply要素の中のci
がbvar
宣言によって束縛される場合, 若干の疑いが生じます.
In most purely Content MathML cases (including all the examples
in the the first edition of the MathML 2.0 Recommendation [MathML2])
there is no problem; the content of the bvar element
is a single ci,
whose content is just a simple character string. There is little doubt that
any ci
in the body of the apply element
that have the same name after whitespace normalizations is bound by the bvar
declaration.
<apply> <int/> <bvar><ci>x</ci></bvar> <interval><cn>0</cn><cn>1</cn></interval> <apply> </plus> <apply><power/><ci>x</ci><cn>2</cn></apply> <apply><times/><cn>2</cn><ci>x</ci></apply> <cn>5</cn> </apply> </apply>
しかしながら, 勧告は, ci
要素の中に任意のプレゼンテーションMathMLを入れることを認めており, この機能は, 下付き・上付き添え字や別のフォントの変数に対してよく用いられます. これらの場合に, どの変数がbvar
宣言によって束縛されているか, より明確でなくなります. 例えば, 単純な色の変更は, 上の例の変形である次の例の中で, 束縛変数の実例の1つに注意を引くのに用いられるかもしれません.
However, the Recommendation does allow arbitrary Presentation MathML inside a
ci
,
element and this feature is often used for variables with
sub/superscripts, or variables in different font families. In these cases,
it becomes less clear which variables are bound by the
bvar
declaration. For example a simple color change might be used
to draw attention to one of the instances of a bound variable as in the
following variant of the the above example.
<apply> <int/> <bvar> <ci> <mstyle color="red"> <msub><mi>x</mi><mn>2</mn></msub> </mstyle> </ci> </bvar> <interval><cn>0</cn><cn>1</cn></interval> <apply> </plus> <apply><power/><ci><msub><mi>x</mi><mn>2</mn></msub></ci><cn>2</cn></apply> <apply><times/><cn>2</cn><ci><msub><mi>x</mi><mn>2</mn></msub></ci></apply> <cn>5</cn> </apply> </apply>
このメモの目標は, 束縛変数としての主要な役割を無くすこと無しに, どのように束縛変数の表示情報を用いるかを明確にすることです.
The goal is to clarify how to use presentational information on bound variables without losing track of their essential role as bound variables.
束縛変数を取り扱う際の課題は, ここ百年の間, 論理学や数学的基盤において幅広く研究されてきました. 実際のところ, 束縛変数の取り扱いは, 数学的基盤の集合論の基本となる一階論理学のフレーゲによる取り扱いによって寄与された部分が大きいです。この節は, この文書の残りの部分で使用する用語を定義します.
The problem of handling bound variables has been studied extensively in logic and the foundations of mathematics in the last one hundred years. In fact the handling of bound variables was the main contribution of Frege's treatment of first-order logic that is the basis for the set-theoretic foundation of mathematics. This section defines the terminology that will be used in the rest of this document.
O x.B[x]という形の式において, Oが束縛する演算子であるなら, 変数は[定義: 束縛変数]と呼ばれます. B[x]を識別子xを含んでもよい([定義: 本体]と呼ばれる)式に対して使用します. 演算子Oの後に直接xが出現することを[定義: 宣言出現]と呼び, 本体の中での出現を[定義: 束縛出現]と呼びます.
A variable is called a [Definition: bound variable] in an expression of the form O x.B[x] , if O is a binding operator. We use B[x] for an expression (called the [Definition: body]) that may contain the identifier x. The occurrence of x directly after the operator O is called the [Definition: declaring occurence] and those in the body are called the [Definition: bound occurrences].
一階論理学(および全ての他の数学的基盤)において, 束縛変数は, 2つの決定的な性質を持っています.
In first-order logic (and all other foundations of mathematics), bound variables have two crucial properties:
[定義: 束縛変数識別子] 束縛変数識別子(BVI)は, 量化記号(または, 総和, 総積, 極限,...といった一般的な束縛する演算子)によって宣言され, 束縛変数の全ての他の出現は, その"宣言"出現への単なる参照です. 束縛する演算子の影響範囲外では, 束縛変数は見えません.
[Definition: Bound Variable Identity ] Bound variables (BVI) are declared by the quantifier (or generally the binding operator such as a sum, product, limit,...) and all other occurrences of the bound variable are just references to this "declaring" occurrence. Outside the scope of the binding operators, bound variables are invisible.
[定義: 束縛変数名称] 束縛変数名称(BVN)は, 伝統的な記号表現のために提供されています. このことは, 式のツリー構造の中で機能的に依存した, 線形化した(数式のような)表現を認めています. 例えば, 次のようにです.
[Definition: Bound Variable Names ] A bound variable name (BVN) is provided for the traditional symbolic presentation. This allows for a linearized (formula-like) representation of the functional dependency in formula-trees, as in
全てのxに対して x > 1 → x2 > x
For all x. x > 1 → x2 > x
これらの変数名は定義範囲外では本質的に重要でないという論理学の要件に矛盾しないように, 文字による名前変更の決まりは, 体系的に束縛変数の名前を変更することを認めています. 特に, 上の式は, 次の式に数学的に等しいです.
To be consistent with the logical requirement that names are essentially irrelevant outside their scope, the rule of alphabetic renaming allows one to systematically rename bound variables. In particular, the expression above is mathematically equivalent to
全てのyに対して y > 1 → y2 > y
For all y. y > 1 → y2 > y
束縛変数識別子(BVI)と束縛変数名称(BVN)は, 両方とも束縛変数の本質的な側面です.
Both bound variable identity (BVI) and bound variable names (BVN) are essential aspects of bound variables.
束縛変数識別子は, 束縛変数の意味している本質を提供します. (明確な)束縛変数の無い数学(圏論, 組合せ論理, ド・ブラウン・インデックス)の式がありますが, それらは, 人が理解するにはたいてい難しいです.
Bound variable identity provides the semantical essence of bound variables. There are formulations of mathematics without (explicit) bound variables (Category theory, combinatory logic, De Bruijn Indices), but they are usually hard for humans to understand.
束縛変数名称は, 人が関係する式を理解することを手助けします. 実際のところ, 直観的でない名前の変更は, 理解できない複雑な式を描くでしょう. このことは, 上で説明された変数が自由な論理学が, 意思疎通の道具ではなく理論的な道具に留まっている理由でもあります.
Bound variable names help humans understand the formulae involved. In fact, un-intuitive renaming can render complex formulae unintelligible. This is also the main reason why the variable-free logics mentioned above have remained theoretical tools rather than communication devices.
MathML2.0勧告の第1版[MathML2]において, コンテントMathMLは, 明確にBVNに基づいた束縛変数の表現にのみ対応していました(プレゼンテーションMathMLであるci
の中身のみが, 同一性証明のために用いられていました). 結果として, 同一性の問題を解決することは困難で, その問題の解決が, コンテントMathMLの式・オブジェクトの正式な取り扱いには必要でした.
In the first edition of MathML 2.0 [MathML2]
Content MathML only explicitly supported a
BVN-based
representation of bound variables (only the Presentation MathML ci
content could be used for identification). As a consequence, it was
difficult to decide the identity question, a resolution of which
was needed for formal treatment of Content MathML formulae/objects.
このことは, 名前が単純である限りは, ほとんどの場合に問題にはなりません. ただし, 名前が複雑な(プレゼンテーションMathMLの)オブジェクトを含む場合, BVNに基づいた仕様書は, 束縛出現が宣言出現を参照しているときの課題に取り組むことを潜在的に避けてきました. 例えば, 式の意味をコード化するために解決されるべき主要な課題に対してです.
This is not a problem in most cases, where names are simple. However, when names involve complex (Presentation MathML) objects, the BVN-based specification potentially leaves open the issue of when a bound occurrence refers to a declaring occurrence -- the central question to be resolved in order to decode the meaning of the expression.
実をいうと, 束縛変数をその定義出現と一緒に特定するために, 若干の賢明な選択肢があります. これらは次のものを含みます.
There are really only a few sensible choices for identifying a bound variable with its defining occurrence. They include:
XML情報セットが同等: 2つのプレゼンテーションMathMLの名前は, それらの情報セットが等しい場合に等しいです. この基準は, おそらくXMLによって最も対応されています. (付録Aと同等の一般的な議論を参照して下さい.)
XML-Infoset-equality: two Presentation MathML names are equal, if and only if their infosets are. This criterion is probably best supported by XML. (See appendix A and a general discussion of equality)
明確なリンク: (HELMプロジェクト(注釈:数学のハイパーテキスト電子図書館プロジェクト)で使われているような)宣言出現または束縛変数への特定のリンクを導入します.
Explicit links: introducing some specific link to the declaring occurrence or the binding operator (such as used in the HELM project).
表現が同等かどうかの全ての課題は, 画像が等しいかどうかの課題のように複雑になるので, XML情報セットによる手法は, 複雑な表現に対しては非現実的です. このBVNに基づいた同一性証明の枠組みは, せいぜい電算上で高価な等しい表記を導き出すだけです.
The XML-Infoset-equality approach is impractical for complicated presentations where the whole issue of equivalence of presentations becomes as complicated as the issue of equivalence of images. This BVN-based identification schema leads at best to computationally expensive equality notions.
しかしながら, 束縛変数の定義出現への明確なリンクは, 特により困難な状況での利用に対して選択可能な代わりの同一性の証明の枠組みを提供できます. それらのリンクは, 束縛変数識別子(BVI)を明確にし, 実装は, MathMLの既存の枠組みを自然に直観的に利用するものになります. このような手法の有利な点は次のものを含みます.
However, explicit links back to the defining occurrence of a bound variable can provide an optional alternative identification schema especially for use in the more difficult cases. These links make the bound variable identification (BVI) explicit and the implemenation makes natural and intuitive use of existing machinery in MathML. The advantages of such an approach include:
設計によって, プレゼンテーションMathMLは, 2つのかなり制御された方法でコンテントMathMLの中で許されています. このことは, (しばしば画像のように)ci
要素の中で起こってもよいですし, semantics
要素を通じて結び付けられてもよいです. やっかいな状況は, ci
要素の中身の場合です. このことが導入されたときの見た目は, プレゼンテーションMathMLが埋め込まれた画像に類似したようなものです. 分析できない素子要素になったでしょう. より複雑なものは, semanticsタグを利用して対応されるべきです. 画像と同じように, 2つのci
要素は, 等しいsrc
属性によって正式に定義されているような本質的に同一な場合のみ等しいです. (視覚的に見分けが付かないにも関わらず)2つの完全に異なるプレゼンテーションMathMLの中身を持つci
要素を等しいと思うことは, 2つの異なるファイルや書式を持つ画像を同一と思うことと同じです. そのオブジェクトを"分析"することや潜在的に複雑な分析を行うこと無しでは, 等しいことを決定することは不可能です.
By design, presentation is permitted in Content MathML in only two rather
controlled ways. It may occur (much like an image) inside a
ci
element, or it may be tied in via the semantics
element. The troublesome case is the content of ci
.
The view taken when this was introduced was that such
presentation was analogous to embedding an image.
It was to be an indecomposable token. Anything more complicated
was to be done using semantics tags. By analogy with images,
two ci
elements are equal just if they are essentially
identical which may formally defined by equality of the src
attributes.
Expecting ci
elements with two completely different
presentation contents (albeit visually indistinguishable) to be
equivalent would be the same as expecting images in two different
files and/or formats to be identical. Short of
"decomposing" the objects and doing some potentially
complicated analysis, equivalence could not possibly be
determined.
コンテントMathMLの表現を他の内容の書式に変換する必要がある場合, 束縛変数の束縛関係は, 特定されなければなりません. BVNに基づいた手法では, このことは, プレゼンテーションMathMLの表現として変数名の等しさを計算する必要が生じるでしょう. ここで必要とされるであろう洗練された同等かの試験は, XMLソフトウェアでよく対応されている訳ではありません. 特別なXML差分プログラムの中には, 暗に実装しているように見えるものもあります. したがって, このことがより正式な設定の中でコンテントMathMLを採用する深刻な課題であるように, とてもたくさんの要因があります.
When there is a need to transform Content MathML representation into other content formats, the binding relation of the bound variables must be identified. In a BVN-based approach, this entails the need to compute the equivalence of variable names as Presentation MathML representations. The sophisticated equality tests that may be needed here are not very well-supported by XML tools - some sort of specialized XML diff program appears to be implied. Thus, there are too many factors such This is a serious problem the adoption of Content MathML in more formal settings.
OpenMath [OpenMath]は, BVIに基づいた手法に基づいています. OMV
要素は空要素で, 名前を持ちません.
OpenMath [OpenMath] is based on a BVI-based
approach; OMV
elements are empty, they do not have names.
definitionURL
利用definitionURL
for Bound Variable Identification.既存のソフトウェアとの互換性は重要です. よって, 解決策は, 束縛変数の既存のBVNに基づいた取り扱いを, 利用者に対し束縛変数の同一の条件を明確にするBVIに基いた取り扱いと同様に, 名前だけから明らかでない場合, 改良しなければなりません.
Compatibility with existing applications is important. Thus the solution must augment the existing BVN-based treatment of bound variables with a BVI-based treatment that allows the user to make the identity condition of bound variables clear, where it is not obvious from the name alone.
このことは, 束縛されたci
要素でbvar
要素によって特定されている宣言の実例を指し示すdefinitionURL
属性の利用を通じて, 次の例のように成し遂げられます.
This can be accomplished through the use of the definitionURL
attribute on the
bound ci
element to point to the declaring instance
as identified by the bvar
element, as in the following example
<lambda> <bvar> <ci id="the-boundvar">complex presentation</ci> </bvar> <apply> <plus/> <ci definitionURL="#the-boundvar">complex presentation</ci> <ci definitionURL="#the-boundvar">complex presentation</ci> </apply> </lambda>
"複雑な表現"が出現の度に同一かどうか計算する代わりに, definitionURL
属性が同じ宣言されたci
要素を指し示しているかどうか確認するだけで済みます. definitionURL
の中身はURIで, (URLはウェブの基本であり)よく理解された同一の条件です.
Instead of computing whether "complex presentation" is
identical in each occurrence, it is only necessary to check whether the
definitionURL
point to the same declared ci
. The
content of the definitionURL
is a URI, which has well-understood
identity conditions (URIs are the basis of the Web).
もちろん, 束縛変数に対するこのBVIに基いた手法の利用は, 束縛変数の意味を明らかにする方法として, 厳密に選択可能なだけです.
Of course, use of this BVI-based approach to bound variables is a strictly optional way of clarifying bound variable semantics.
definitionURL
なのか?definitionURL
?definitionURL属性は, コンテントMathMLで演算子の(外部の)定義を指し示すのに利用されます. 勧告の関係する部分は, 4.3.2.3で次のように言っています.
The definitionURL attribute is used in Content MathML to point to the (external) definition of an operator. The relevant part of the Recommendation is 4.3.2.3, where it says
"definitionURL
[中略] は, 記号の意味や宣言された構造の外部定義を指し示します. 値は, 定義の何らかの種類を指し示すべきURLまたはURIです. この定義は, MathMLの通常の意味を上書きします. [中略]"
"
definitionURL
[...] points to an external definition of the
semantics of the symbol or construct being declared. The value is
a URL or URI that should point to some kind of definition. This
definition overrides the MathML default semantics. [...]
"
ここでの主題は, definitionURL
属性の値が, 要素の意味の定義を指し示すURLであるということです. 束縛変数が単に記号・定数のように挙動するという事実を受け入れる数学的基盤において, 束縛変数の適用範囲(や値域)のみが, 記号・定数より局所的です. 実際のところ, ほとんどの基盤となる体系は, 記号・定数が定理の水準で束縛されているとして扱います. (MathMLのbvar
要素の中で)宣言された実例は, 記号の(局所的な)定義のように挙動します. 実際のところ, たくさんの近代的な基盤をなる体系は, それらの実例を鍵となる設計の決定事項としています.
The main statement here is that the value of the definitionURL
attribute is a URI points to a definition of the semantics of the
element. In the foundation of mathematics it is an accepted fact that
bound variables behave just like symbols/constants, only that the
scope (and definition) of bound variables are more local than
symbols/constants. In fact most foundational systems treat the
symbols/constants as bound at the theory level. There is a very clear
understanding that the declaring instance (in MathML the bvar
element) behaves like the (local) definition of the symbol. In fact
many modern foundational systems make this a key design decision.
definitionURL
を用いることは, 現在のDTDやコンテントMathMLの文法に適合します.
Using definitionURL
is conformant to the current DTD and content
grammar.
definitionURL
の役割の明確化definitionURL
in MathMLときどき次のようなコンテントMathMLの表現を見かけます.
One sometimes sees Content MathML representations like the following one.
<declare definitionURL=".../formalpowerseries"><ci>F</ci></declare> <apply> <set/> <bvar><ci>F</ci></bvar> <condition> <apply> <in/> <ci>F</ci> <csymbol definitionURL="XXX">My Special Formal PSeries</csymbol> </apply> </condition> <ci>x</ci> </apply>
ここでは, declare
要素が, 束縛変数ci
要素に, MathML要素(この場合, 形式的べき級数)に性質を付け加えるdefinitionURL
を与えるために, ひょっとしたら, 表示アルゴリズムがいろいろな方法でci
を表示する追加知識を利用してもよいように, 使用されています.
Here the declare
element is used to give the bound variable
ci
element a definitionURL
to attribute a property to a
MathML element (in this case being a formal power series), possibly to allow
presentation algorithms may make use of this extra knowledge to display the
ci
s in a different manner.
このことは, 上で推奨したようなdefinitionURL
の利用ともちろん衝突します. それ以降, ひょっとするとbvarの定義した実例を参照するのにdefinitionURL
を利用できなくなり, 同時に, 形式的べき級数の外部定義を参照するのに利用できなくなります.
This of course
conflicts with the use of definitionURL
as recommended above, since
then one cannot possibly use definitionURL
to refer back to the
defining instance of the bvar, and at the same time to the external definition
of the special formal power series.
この例は, definitionURL
が型宣言の精神の中で使われる中で, いくぶん考慮されています. ある意味で, この例は, definitionURL
属性の誤解を実際に反映しています. definitionURL
は, おそらく"定義"を保有します. すなわち, 構文の中で(ひょっとしたら同じ型に)要素の意味を固定します.
This example is somewhat contrived in that the definitionURL
is being used in the spirit of a type declaration.
In some sense, this example actually reflects a misunderstanding
of the definitionURL
attribute. The definitionURL
is supposedly reserved for "Definitions", i.e. for
statements that fix the meaning of an element (possibly up to isomorphism).
たとえ, この点がどのように論じられたとしても, この例は, 無理のない編集の必要性を表しており, いくつかの決まりに適応しなければなりません. 衝突は, リンクする束縛変数のBVI形式を利用しようとするときのみ起こります. 幸運にも, この状況では, この例は, コンテントMathMLに対する新しい一般的な型情報の仕組み[MathMLTypes]の利用を通じて, 型情報の主な候補になります. そのため, 何も機能性は失われていません. 上の例は明示的に次のように表現し直せます.
No matter how the points are argued, the example represents a legitimate authoring need and must be accommodated in some manner. The only conflict comes when one tries to use the BVI style of linking bound variables. Fortunately, in that case, it is a prime candidate for the typing through the use of the new general typing mechanism for Content MathML [MathMLTypes], so no functionality is lost: the above example can be re-represented explicitly by
<declare> <ci definitionURL="#the-bvar">F</ci> <semantics> <ci definitionURL="#the-bvar">F</ci> <annotation-xml definitionURL="types.html#type_of"> <csymbol definitionURL=".../formalpowerseries"/> </annotation-xml> </semantics> </declare> <apply> <set/> <bvar><ci id="the-bvar">F</ci></bvar> <condition> <apply> <in/> <ci definitionURL="#the-bvar">F</ci> <csymbol definitionURL="XXX">My Special Formal PSeries</csymbol> </apply> </condition> <ci>x</ci> </apply>
declare要素は, わずかにci
要素に型情報を提供する適切なsemanticsタグを付加し, 全体として適切になっています. この状況でdeclare
要素の最初の子要素であるci
要素は, bvar
要素の中のci
要素をリンクしていることに注意して下さい. 明確に, declare
要素の最初の子要素であるci
要素のdefinitionURL
属性は, 同一のdefinitionURL
属性を参照しているそれらのci
要素への代入置換を制限しています. このこと無しに, 代入置換は, 一番上のapply
要素の適用範囲外にある他の<ci> F </ci>
要素に影響しないでしょう. ただし, declare
要素の適応範囲を管理しているmath
要素の中においてです.
The declare merely associates the ci
element with an appropriate semantics tag which provides the type and
all is well. Note that in this case, the ci
element that is the
first child of the declare
element also links back to the
ci
element in the bvar
element. Clearly, the
definitionURL
attribute on the ci
element in the first
child of the declare
element restricts the substitution to those
ci
that carry a matching definitionURL
attribute. Without this, the substitution would have affected other
<ci> F </ci>
elements outside the scope of the
top apply
element shown in the example, but inside the math
element that governs the scope of the declare
.
このメモは, コンテントMathMLにおける束縛変数を含む数学事象を表現するための手引きです. このメモは, ワールド・ワイド・ウェブ・コンソーシアム(W3C)の数学作業部会の現時点の合意を表していますが, 規範ではありません.
This Note provides guidelines for representing mathematical objects containing bound variables in Content MathML. The Note represents the current consensus in the Math Working Group of the World Wide Web Consortium (W3C), but is not normative.
bvar
とdeclare
の目的に対する式が同等であることの定義は, ci
要素の中身が式の画像のように扱われず, アスキー文字としての要素の中身が同等であるとても単純な表記の例全てに体系的に基いていること以上には, 勧告の第2版の中で議論されていませんでした. このことは, XML情報セットの同等のとても単純な例である一方, 厳密に言ったところで否定できない数々のいろいろな定義があります. それは, 次のものを含むたくさんの妥当な基準の1つになるでしょう.
The definition of equality of expressions for purposes of
bvar
and declare
is not discussed in version 2.0 of the
Recommendation beyond noting that the content of ci
elements is treated much like an image of the formula and
then systematically basing all examples on a very simple
notion of equality of the element content as ASCII strings.
While this is a very simple example of XML information set
equality, there are a number of different definitions that
strictly speaking could not be ruled out.
This could be one of many plausible criteria, including:
文字列が同等: 2つのプレゼンテーションMathMLの文字列の値が(全ての要素の影響を単に無視して)同等であれば, それらの名前は同等とします. この方法は, 電算上最も単純な基準ですが次の区別が付きません.
string equality: two Presentation MathML names are equal, iff their string values (just throw away all element contributions) are. This is the simplest criterion computationally, but it confuses
<math> <msup> <mi>x</mi> <mn>2</mn> </msup> </math>
および
and
<math> <msub> <mi>x</mi> <mn>2</mn> </msub> </math>
は両方とも文字列の値x2
を持ちます.
which both have the string value x2
.
XML情報セットが同等: 2つのプレゼンテーションMathMLのXML情報セットが同等であれば, それらの名前は同等とします. この基準は, ひょっとしたら自明でない方法の中でXMLによって最も対応されているかもしれません.
XML-Infoset-equality: two Presentation MathML names are equal, if and only if their infosets are. This criterion is probably best supported by XML, among the non-trivial ones.
MathML情報セットが同等: 2つのプレゼンテーションMathMLのXML情報セットが, text
ノードの中身の空白を正規化したうえで同等であれば, それらの名前は同等とします. この方法は, 対象がMathML素子要素であると考えられる場合の方法です.
MathML-Infoset equality: two Presentation
MathML names are equal, if and only if their infosets are equal after
whitespace-normalizing text
node content. This is
the equality that is suggested for MathML token
elements.
観察に基づいた同等: 2つのプレゼンテーションMathMLの(MathML仕様書によって)推奨される描画が同等であれば, それらの名前は同等とします. この方法は, (全てのBVNの手法が人に順応しているのだから)ひょっとしたら最も有能な方法かもしれません. ただし, この方法は電算したり, さらに明確に指定したりすることがとても大変です.
observational equality: two Presentation MathML names are equal, if and only if their recommended rendering (according to the MathML specification) are equal. This is probably the most adequate one (after all BVN approaches are geared towards humans), but this is very hard to compute and even specify unambiguously.
このメモの目的から言って, 同等の表記は, 一般に空白を正規化した後のXML情報セットに基いています. 大まかに言えば, このことは, 存在する全ての属性が文字列として同じ値を持っていて, 要素の中身が再帰的に同じならば, そのオブジェクトは特定されることを意味しています.
For purposes of this Note, the notion of equality has generally been based on XML information sets after white space normalization. Roughly speaking, this means that if all attributes that are present have the same value as strings, and recursively, the element content is the same the same, then the objects are identical.