[7] [DFN[[[Unicode Character Database]]]] は、 [[Unicode]] の[[文字]]に関するデータを集めた[[データベース]]です。 [[Unicode]] の仕様の一部を構成する[[規定]]のデータと、それ以外の[[参考]]のデータが共に含まれています。 [[UCD]] は [[Unicode Consortium]] により管理、配布されていて、 [[Unicode]] 本体と連動して改訂されています。 [8] 現代の[[言語]]や[[プロトコル]]の多くは、利用可能な[[文字]]の定義や[[正規化]]・[[照合順序]]などの[[アルゴリズム]]で利用するデータとして、 直接的または間接的に [[UCD]] のデータを参照しています。最近の多くの [[OS]] や[[プログラミング言語]]の実行環境には [[UCD]] やそこから派生したデータが含まれています。 * 仕様書 [REFS[ -[4] [CITE@en-us[UAX #44: Unicode Character Database]] ( ([TIME[2013-09-27 22:15:15 +09:00]] 版)) -[5] [CITE@en-us[Unicode Character Database]] ( ([TIME[2013-06-04 18:08:12 +09:00]] 版)) -[6] [CITE[Index of /Public/UCD/latest/ucd]] ( ([TIME[2013-10-30 14:15:11 +09:00]] 版)) ]REFS] * ファイル [9] [[UCD]] のデータは[[テキストファイル]]として提供されています。その書式はファイルにより異なり、 >>4 で説明されています。 [FIG[ [FIGCAPTION[ [10] [[UCD]] の主なファイル ]FIGCAPTION] - [[UnicodeData.txt]] - [[NamesList.txt]] - [[CaseFolding.txt]] - [[PropList.txt]] ]FIG] * 特性 [11] [[Unicode Standard]] および [[Unicode Character Database]] では、[[文字]]に関するデータを[[文字]] ([[符号位置]]) の[DFN[[RUBYB[[[特性]]]@en[property]]]]と呼んでいます。[[特性]]にはそれぞれ [CODE@en[[[General_Category]]]] や [CODE@en[[[Age]]]] のような名前がついています。 [12] [[文字]]と[[特性]]のデータは >>9 の各ファイルに含まれています。どのように記述されているかはそれぞれの[[特性]]により異なり、 >>4 などに説明があります。最終的な定義であるような[[特性]]もあれば、他の[[特性]]の組み合わせや[[演算]]により導かれる二次的な[[特性]]もあります。 * Unicode の版 [13] [[UCD]] は [[Unicode]] が改版される度に併せて改訂されています。特に小改訂は [[UCD]] の更新が主目的であることもあります。 [14] [[Unicode]] の版によって値が変化する(可能性のある)[[特性]]もあれば、 不変であることが保証されている[[特性]]もあります。[[特性]]自体も改版により増えたり、減ったりしています。 [15] >>8 の通り、多くの言語やプロトコルには何らかの形で [[UCD]] のデータや [[Unicode]] の[[演算]]の実装が含まれています。それぞれが対応している [[Unicode]] の版に違いがあると、 正しくない結果が得られる可能性もあります。 * UCD のライセンス [1] [CITE@en-us[Unicode Terms of Use]] ([TIME[2011-02-17 08:57:14 +09:00]] 版) [2] [CITE@en[Various Licenses and Comments about Them - GNU Project - Free Software Foundation (FSF)]] ([TIME[2011-04-04 23:42:47 +09:00]] 版) [3] >>2 によればこのライセンスは [[GPL]] と互換性があります。 * メモ [16] [[符号化文字集合]]の実装のためには、[[仕様書]]本文だけでなく、含まれている各[[文字]]の詳細な情報が必要になります。 旧来の[[符号化文字集合]]は比較的小規模で性質の似た[[文字]]のみを含んでいたこともあり、 そのような情報をほとんど提供してきませんでした。 [[UCD]] のような形で[[機械可読]]な実装用の情報を提供する[[符号化文字集合]]は他に無く、 これが [[Unicode]] の成功の要因の1つと言えるかもしれません。 ([[ISO/IEC 10646]] も単独では十分な実装が困難でしょう。)