
識別子とは、オブジェクトの固有のクラス、またはそのようなオブジェクトの固有のインスタンスを識別する(つまり、その同一性を示す)名前です。クラスまたはインスタンスは、概念、人物、物理的な可算オブジェクト(またはそのクラス)、または物理的な不可算物質(またはそのクラス)である可能性があります。「 ID 」という略語は、アイデンティティ、識別(識別するプロセス)、または識別子(つまり、識別のインスタンス)を指す場合があります。
識別子は、単語、数字、文字、記号、またはそれらの任意の組み合わせである。識別子が符号化システムに従う場合(識別子の一部が概念やより長い名前を表す場合)、それはコードまたはID コードと呼ばれることが多い。[ a ]符号化方式に従わない識別子は、それ以上の意味を持たないため、しばしば任意の IDと呼ばれる。 [ b ]
固有識別子(UID)とは、宇宙に存在するたった一つのインスタンス、つまり特定のオブジェクトだけを指す識別子です。部品番号は識別子ではありますが、固有識別子ではありません。固有識別子となるには、部品設計の各インスタンスを識別するためのシリアル番号が必要です。例えば、「モデルT」という識別子は、フォードのモデルTが属する自動車のクラス(またはモデル)を識別します。一方、 「モデルTシリアル番号159,862」という固有識別子は、そのクラスの特定のメンバー、つまり特定の人物が所有する特定のモデルT車を識別します。
メタデータにおいて、識別子とは、識別スキーム内でオブジェクトを一意に識別する、言語に依存しないラベル、記号、またはトークンのことです。接尾辞「識別子」は、データ要素に名前を付ける際の表現用語としても使用されます。
IDコードには、メタデータが付随している場合があります。たとえば、食品パッケージに識別子が付いている場合2011-09-25T15:42Z-MFR5-P02-243-45、そのデータだけでなく、(そのデータがどのように情報をエンコードしているかを知っていれば)2011年9月25日午後3時42分(UTC)に米国イリノイ州ピオリアの工場、第2棟でライセンスベンダー番号5によって製造され、そのシフトでラインから出荷された243番目のパッケージであり、検査員番号45によって検査されたことを示すメタデータも得られます。
任意の識別子にはメタデータが欠けている可能性があります。たとえば、食品パッケージに「100054678214」とだけ記載されている場合、そのIDは識別情報以外何も示さない可能性があります。日付、製造者名、製造順序のランク、検査員番号などは含まれません。場合によっては、連番などの任意の識別子から情報が漏洩することもあります(ドイツの戦車問題など)。不透明な識別子、つまり、わずかな情報漏洩さえも回避するように設計された識別子には、「非常に不透明なポインタ」やバージョン4のUUIDなどがあります。
コンピュータ科学において、識別子(ID)とは、実体を表す字句の ことです。識別子は、事実上あらゆる情報処理システムで広く用いられています。実体を識別することで、それらを参照することが可能になり、これはあらゆる種類の記号処理にとって不可欠です。
コンピュータ言語において、識別子は言語エンティティに名前を付けるトークン(シンボルとも呼ばれる)です。識別子が示す可能性のあるエンティティの種類には、変数、型、ラベル、サブルーチン、パッケージなどがあります。
リソースは複数の識別子を持つ場合があります。典型的な例は次のとおりです。
逆の場合も可能であり、複数のリソースが同じ識別子で表される場合がある(後述)。
多くのコードや命名体系は、小さな名前空間内で生まれます。長年にわたり、それらのいくつかはより大きな名前空間へと広がっていきます(人々が以前はなかった方法で交流するようになるにつれて、例えば、国境を越えた貿易、科学協力、軍事同盟、一般的な文化的相互接続や同化など)。このような普及が起こると、以前は潜在的で問題視されていなかった元の命名規則の限界が痛々しいほど明らかになり、多くの場合、レトロニミー、同義語、翻訳/トランスコーディングなどが必要になります。このような限界は、一般的に、元のコンテキストからより広いコンテキストへの移行に伴って生じます。通常、このシステムは暗黙のコンテキスト(以前は想定されていた狭いコンテキスト)、容量不足(例えば、時代遅れの狭いコンテキストを反映した、可能なIDの数が少ない)、拡張性の欠如(将来のニーズに備えて定義および予約された機能がない)、および特異性と曖昧さ解消能力の欠如(長年の一意性が新しい非一意性に遭遇するコンテキストの移行に関連)を示します。コンピュータサイエンスの分野では、この問題は命名衝突と呼ばれています。CODENシステムの起源と拡張の物語は、ここ数十年の技術用語の文脈において良い事例となります。特定の指定子に見られる大文字小文字のバリエーションは、この問題が自然言語で発生している例を示しており、そこでは固有名詞と普通名詞の区別(およびその複雑さ)に対処しなければなりません。すべてのオブジェクトがUIDを持つ世界であれば、名前空間は必要なくなり、つまり、それは1つの巨大な名前空間を構成することになります。しかし、人間の心は、それほど多くのUIDを追跡したり、意味的に相互に関連付けたりすることは決してできません。
名前と識別子の概念は指示的には同等であり、したがって指示的には同義語ですが、暗示的には必ずしも同義語ではありません。なぜなら、コード名やID番号は、伝統的な自然言語における命名の意味での名称とは暗示的に区別されることが多いからです。例えば、「Jamie Zawinski」と「Netscape社員番号20」はどちらも同じ人物の識別子ですが、通常の英語の暗示では「Jamie Zawinski」は「識別子」ではなく「名前」とみなされるのに対し、「Netscape 社員 番号 20」は「識別子」ではなく「名前」とみなされます。これは、外的区別ではなく、内的区別です。