テクノロジーと数学が入り混じった話題を語るとき、「オブジェクト」とか「リレーション」のような言葉を使うのはリスキーです。どう解釈されるか予測できないし、語り手の意図とはまったく違った解釈をされてトンデモナイ誤解・曲解をまねくかも知れません。
字面は同じ言葉でも、分野/コミュニティ/流儀/場面などにより解釈が異なります。一方で、字面が違う言葉でも、実際には同じ意味のこともあります。複数の分野にまたがる話題を語るときは、同義語・多義語は錯綜した状況を呈します。ほんとに悩まされます、ホトホト困ってますわ。
決定的な解決策は無さそうですが、なにかしらの対策を考えます。
内容:
はじめに
同義語・多義語を問題にしますが、“言葉”としては専門用語〈テクニカルターム〉だけを考えます。専門用語を単に「用語」とも書きます。同義語・多義語〈曖昧語〉への対策として次の2つの方法を考えます。
- 用語を、付加的な情報で修飾する。区切り記号にアットマーク「@」とスラッシュ「/」)を使う。
- 2つの用語のあいだの関係を考える。関係記号に「≡」「=✗=」「≡<」「~」を使う。
関連する過去記事に次があります。
- 用語のバリエーション記述のための正規表現 同義語達の集合を正規表現で表す話
- 曖昧さを減少させるために、式にフォーマット指定 式〈expression〉の解釈のヒントにフォーマット〈構文〉を付加する話
用語の修飾と同義関係
例えば、「フィールド」という用語をそれだけ単独で出されても解釈に困りますよね。付加情報として分野を付けることにしましょう。「フィールド@物理」のように。視認性〈みやすさ〉のために、アットマークの前後に空白を入れてもいいとします。「フィールド @ 物理」のように。
分野による修飾で、「フィールド」を次のように区別できるようになります。
- フィールド @ 物理
- フィールド @ 代数
- フィールド @ データベース
国語辞書的な意味・用法は扱いませんが、特定分野に属さないけど一般的に使われる言葉なら「フィールド @ 一般」のように書きます。「フィールド @ 一般」は「分野」という意味だと解釈すれば、次のように言えます。
- 「フィールド @ 物理」は、物理という“フィールド @ 一般”で使われる用語「フィールド」のことである。
2つの用語が同義であることは、関係記号「≡」で表すことにします。例えば:
- フィールド @ 物理 ≡ 場 @ 物理
- フィールド @ 代数 ≡ 体 @ 代数
記号「=✗=」は、同義関係「≡」の否定ですが、それだけではなくて警告の意図を持ちます。
- フィールド @ 代数 =✗= フィールド @ データベース
原則として、同義だと明示されない限り同義ではないと解釈しますが、「=✗=」により「違うから注意」と伝えます。(上の例は、注意することもないですが。)
関係記号「≡」で同義だと宣言された2つの用語は置き換え可能です。物理の文脈で出現した「フィールド」は「場」に置き換え可能です。しかし、代数の文脈で出現した「フィールド」を「場」に置き換えることはできません。
「≡」で表される同義関係は、(修飾された)用語の集合の上の同値関係です。「=✗=」は、論理的には「≡」の否定ですが、先に述べたように警告の意図があります。
嗜好順序と類似性
フィールドの原綴である「field」も入れると、次の3つの用語は同義です。
- field @ 物理
- フィールド @ 物理
- 場 @ 物理
同義関係という同値関係の同値類を同義語類〈synonym class〉と呼ぶことにします。記号「≡<」により、各同義語類ごとに定義される順序関係を表すことにします。例えば:
- field @ 物理 ≡< フィールド @ 物理
- フィールド @ 物理 ≡< 場 @ 物理
「≡<」は、同義語のなかでも、右辺がより好まれる、使用例が多いことを意味します。「≡<」で表される順序関係を嗜好順序〈preference order〉と呼ぶことにします。嗜好順序は順序関係なので、推移律〈transitive law〉は使えます。上の2つから、次を導けます。
- field @ 物理 ≡< 場 @ 物理
しかし、全順序であることは要求しません。「どっちともいえない」ことが多いからです。
話は変わって、「フィールド @ データベース」は「プロパティ」という言葉と同義でしょうか? 同義だという人もいそうですが、同義だと断言するのは難しい。そんなとき、次のように書きます。
- フィールド @ データベース ~ プロパティ @ IT一般
「~」で表される関係は同値関係ではありません。推移律は成立せず、対称性〈双方向性〉があるだけです。「無関係でもない」といった意味合いです。この関係は類似関係〈similarity relation〉と呼ぶことにします。
「類似性の程度を記述する」とか言い出すと、話がとてもややこしくなりそうなので、類似関係を精密化することはしません。「~」は、参考のために双方向リンクを張る、という感じで使います。
修飾の精密化
「デジタル文書の概念が変わる」で触れたように、最近、Obsidianというソフトウェアを使い始めました。で、Obsidianで“データベース機能”を実現するプラグインなんつーのがあるわけです。類似(ライバル?)のソフトウェアであるNotionのデータベース機能をエミュレートしよう、ということらしいです。
Notionのデータベースで使われている用語法はRDB〈リレーショナル・データベース〉とはだいぶ違います。分野/コミュニティ/流儀などを表す修飾子を階層的にしましょう。
- データベース/RDB : データベース分野のなかでも特にリレーショナル・データベース
- データベース/Notion : データベース分野のなかでも特にNotionのデータベース
Notionコミュニティの「データベース」は、RDBの「テーブル」のことのように思えます。
- データベース @ データベース/Notion ≡ テーブル @ データベース/RDB
ただし、僕の知見が浅いだけで、Notionの「データベース」はRDBの「テーブル」に似てるだけかも知れません。そのときは「≡」は不適切で、類似関係です。
- データベース @ データベース/Notion ~ テーブル @ データベース/RDB
Notionの「プロパティ」とRDBの「カラム」は似てる気がします。同義である自信がないので:
- プロパティ @ データベース/Notion ~ カラム @ データベース/RDB
ところで、クリス・デイト〈C.J. Date〉に言わせると、「テーブル」「カラム」は真正RDBの用語ではないそうです。真正RDB用語では「関係」「属性」というべきだ、と。僕は、デイトの原理主義的態度が好きじゃないのですが、まー、そういう人々〈コミュニティ〉もいるわけです。
- テーブル @ データベース/RDB ≡ 関係 @ データベース/RDB/原理主義
- カラム @ データベース/RDB ≡ 属性 @ データベース/RDB/原理主義
デイトは、概念的にも「テーブル ≠ 関係」「カラム ≠ 属性」と言っているので、「≡」は怒られるかも知れません。でも、類似関係はあるでしょうから:
- テーブル @ データベース/RDB ~ 関係 @ データベース/RDB/原理主義
- カラム @ データベース/RDB ~ 属性 @ データベース/RDB/原理主義
RDB原理主義者であっても、漢字表記とカタカナ表記の違いは同義と認めてくれるでしょうから:
- 関係 @ データベース/RDB/原理主義 ≡ リレーション @ データベース/RDB/原理主義
- 属性 @ データベース/RDB/原理主義 ≡ アトリビュート @ データベース/RDB/原理主義
ちなみに、Notionデータベースの「リレーション」は、RDBの「外部キーによる参照」に対応するようです。
- リレーション @ データベース/Notion ≡ 外部キーによる参照 @ データベース/RDB
用法による修飾
「関係 @ データベース/RDB/原理主義」は、数学の「関係」と同じだという主張をよく見かけます。
- 関係 @ データベース/RDB/原理主義 ≡ 関係 @ 数学
これは間違いとも言いにくいけど、完全には肯首したがいですね。
数学で「関係」というとき、多くの場合は「ニ項関係」です。RDBの関係は、一般的なn項関係です。これは、形容詞無しの「関係」に対するデフォルトの解釈が違う、という状況です。
状況による言葉の使い方の約束〈用法〉にまでイチイチ名前を付けるのは面倒(ほぼ不可能)なので、用法は番号で識別することにします。
用法1 :
- 関係 @ 数学 ≡ 二項関係 @ 数学
用法2 :
- 関係 @ 数学 ≡ n項関係 @ 数学
用法(この場合は形容詞無しの場合のデフォルト規則)にも嗜好順序があって、用法1のほうが好まれていて多数派です。「関係 @ データベース/RDB/原理主義」は、少数派の用法である用法2での「関係 @ 数学」と同義です。
- 関係 @ データベース/RDB/原理主義 ≡ 用法2:関係 @ 数学
分野やコミュニティの違いというより、その場の状況により変わってくる用法の違いは厄介です。型理論の「項」や「インスタンス」がミスリーディングで使いにくい言葉である理由は、運用状況ごとに意味が変わるからです。
「集合論・圏論 vs. 型理論」において、「要素」と「インスタンス」は違う、と言いましたが、区別されないこともあります。
用法1 :
- インスタンス @ 型理論 ≡ 要素 @ 集合論
インスタンスを圏の射と解釈する場合でも、終対象からの射に限定することもあります。
用法2 :
- インスタンス @ 型理論 ≡ 終対象からの射 @ 圏論
終対象に限定しないで「インスタンス」を使うときもあります。
用法3 :
- インスタンス @ 型理論 ≡ 射 @ 圏論
依存型理論では、インスタンスとはセクションのことだと定義することもあります。
用法4 :
- インスタンス @ 型理論/依存型理論 ≡ セクション @ 圏論
さらには、インスタンスを公理的に定義することもあります。この場合は、インスタンスの実体は不明なので、「セクションと同義だ」といった主張は無意味になります。
そしてそれから
用語にも、国文法や英文法でいう品詞のような概念があります。例えば、固有名詞と一般名詞のような分類は適用できます。特に、モノの種別・特徴の呼び名と、モノの相対役割りの呼び名の区別は重要です。
用語も、構文的・文法的な分類規準で分類する必要があるでしょう。
また、表記・表現の“ゆれ”の問題もあります。例を挙げると:
- ベクトル
- ベクター
- ベクタ
- ヴェクトル
“ゆれ”も考慮すると、用語の組み合わせが爆発してやってられない感じです。正規表現を使うと(「用語のバリエーション記述のための正規表現」参照)ある程度はコンパクトに書けますが。
- {ヒルベルト | Hilbert}{ベクトル | ベクター | ベクタ | ヴェクトル | 線形 | 線型}?{空間 | スペース}
分野/コミュニティ/流儀や用法で用語を修飾するということは、用語を収納する名前空間の構造を決めるということです。多くの人が納得するような、名前空間の組織化は難しいですね。
用語ではなくて、記法の同義性・多義性〈曖昧性〉の問題は「曖昧さを減少させるために、式にフォーマット指定」に書いています。これも厄介な問題です。