統一型識別子

Uniform Type Identifier ( UTI ) は、 Apple Inc.が提供するソフトウェアで使用されるテキスト文字列で、特定のクラスまたはアイテムの種類を一意に識別します。Apple は、ドキュメントや画像ファイルの種類、フォルダやアプリケーションバンドル、ストリーミングデータ、クリッピングデータ、ムービーデータなど、一般的なシステムオブジェクトを識別するために組み込みの UTI を提供しており、サードパーティの開発者がアプリケーション固有または独占的な用途のために独自の UTI を追加できるようにしています。UTI のサポートは、Mac OS X 10.4オペレーティングシステムで追加され、ドキュメントを分類するために UTI を使用するSpotlightデスクトップ検索テクノロジに統合されました。UTI の主な設計目標の 1 つは、ファイルの内容をMIME タイプファイル名拡張子、またはタイプコードクリエータコードから推測する際の曖昧さや問題を排除することでした。[1]

UTIは逆DNS命名構造を使用します。名前には、ASCII文字A~Z、a~z、0~9、ハイフン(「-」)、ピリオド(「.」)、およびU+007F以上のすべてのUnicode文字を使用できます。 [1] MacintoshおよびPOSIXファイルパス規約との互換性のため、コロンとスラッシュは使用禁止です。UTIは多重継承をサポートしており、ファイルは含まれるデータに応じて、任意の数の関連する型で識別できます。UTIは大文字と小文字を区別しません。[2]

背景

ユーザーがアクセス可能なオペレーティングシステムを維持する上での難しさの一つは、データの種類と、そのデータを効果的に使用できるアプリケーションまたはプロセスとの関連付けを確立することです。例えば、特定の圧縮形式の画像データを含むファイルは、画像データを処理できるアプリケーションでのみ開いて処理できます。そして、それらのアプリケーションは、そのデータを抽出して操作するために、どの圧縮形式が使用されたかを識別できなければなりません。初期のコンピュータシステムでは、ファイルの関連付けはファイル拡張子によって維持されていました。ファイル名に続く3~4文字のコードは、システムに特定のアプリケーションでファイルを開くように指示します。

System 1以降[3] Macintoshオペレーティングシステムでは、ファイルメタデータの一部としてタイプコードクリエータコードを付加しています。これらの 4 文字のコードは、ファイルを作成したアプリケーション (クリエータコード) とファイルの特定のタイプ (タイプコード) の両方を指定するように設計されており、他のアプリケーションがファイルデータを簡単に開いて処理することができます。しかし、タイプコードとクリエータコードによりシステムの柔軟性が高まり (特定のファイルタイプが特定のアプリケーションでしか開けなくなることはありません)、ファイル拡張子と同じ多くの問題が発生しました。タイプコードとクリエータコードは、ファイルが Macintosh 以外のシステム (Unix ベースのサーバーなど) 間で転送されるときに失われる可能性があり、タイプコードが多すぎると識別が困難になります。

さらに、クラシックMac OSはファイル拡張子を全く認識しなかったため、DOS/Windowsシステムからファイルを転送した際にファイル拡張子が認識されないというエラーが発生していました。Mac OS Xの基盤となったOPENSTEPは拡張子を使用しており、初期のMac OS Xもこれに倣いました。このため、NeXTやWindows系OSからOS Xに移行したユーザーや開発者はファイル拡張子の継続使用を主張し、クラシックMac OSから移行したユーザーはAppleに対し、ファイル拡張子をタイプとクリエータで置き換えるか、補足するよう求めるなど、論争が巻き起こりました。[4]

他にもファイル識別タイプは存在します。たとえば、MIME タイプは Web 上で転送されるデータを識別するために使用されます。ただし、Apple の UTI システムは、データを階層的に記述して分類と検索を向上させ、コンテキスト間でデータ記述を標準化し、データ型を拡張するための統一された方法を提供する柔軟なファイル関連付けシステムを作成するように設計されました。たとえば、public.jpeg UTIとpublic.png UTI はpublic.image UTIを継承しているため、ユーザーは、検索で使用する UTI の詳細度を変更するだけで、JPEG 画像や PNG 画像を狭く検索することも、あらゆる種類の画像を広範に検索することもできます。さらに、新しいデータ型を設計するアプリケーション開発者は、利用可能な UTI を簡単に拡張できます。たとえば、企業が開発した新しい画像フォーマットは、com.company.proprietary-imageという UTI を持ち、 public.imageタイプから継承するように指定できます

Apple のmacOS は、他の形式のファイル関連付けを引き続きサポートしており、それらの間の変換用のユーティリティも含まれていますが、利用可能な場合は UTI を優先的に使用します。

UTI構造

Appleは、すべてのUTIの基本データ型セットとしてpublic.*ドメインを管理しています。他のUTIは、クラス継承に似たシステムである適合性によって、これらの基本UTIに関連付けられています。他のUTIに適合するUTIは基本型を共有しており、一般的に、より汎用的なUTIのデータを扱うアプリケーションは、その汎用UTIに適合するあらゆるUTIのデータも扱えるはずです。

Appleの公開UTI

Apple 階層における最も基本的なパブリック UTI は次のとおりです。

識別子準拠コメント
パブリックアイテム物理階層における基本クラス
公開コンテンツすべてのドキュメントコンテンツの基本クラス
公開データパブリックアイテムすべてのファイル、バイト ストリーム、ペーストボードなどの基本クラス。
公開画像公開データ、公開コンテンツすべての画像の基本クラス

UTI は他のファイル タイプ識別子を識別するためにも使用されます。

識別子準拠コメント
public.ファイル名拡張子公開大文字と小文字を区別しないテキストファイル名拡張子
パブリック.MIMEタイプ公開大文字と小文字を区別しないテキストMIMEタイプ
com.apple.ostype公開テキスト4文字のコード(OSType型)
com.apple.nspboard-type公開テキストNSPasteboardタイプ

動的UTIはアプリケーションの必要に応じて作成できます。これらはdynという接頭辞を持ち、「UTI互換のラッパー」という形式をとります。これは、ファイル名拡張子、MIMEタイプ、OSタイプなどが不明な場合に使用します。[1]

サードパーティ製のUTI

Appleは、システム宣言されたUniform Type Identifier(UTI)の膨大なコレクションを提供しています。サードパーティ製アプリケーションは、アプリケーションパッケージ内で宣言されたUTIを「エクスポート」することで、macOSが管理するデータベースにUTIを追加できます。新しいUTIは既存のシステムUTIに「準拠」するように宣言でき、宣言によって新しいUTIをファイル拡張子に関連付けることができるため、エクスポートされた宣言だけで、新しいファイルタイプに対してQuick Lookを有効にするなど、新しい機能を有効にするのに十分な情報をオペレーティングシステムに提供できます。

一般的なサードパーティ製UTIのリスト

説明尿路感染症拡張機能準拠MIMEタイプ参照
OPML文書org.opml.opml.opmlパブリック.xmltext/xml、text/x-opmlapplication/xml[5]
マークダウン文書net.daringfireball.markdown [6].md、.markdown公開プレーンテキストテキスト/マークダウン[7]
POSIXパスドキュメントcc.utis.paths ファイル.パスpublic.utf8-プレーンテキスト定義されていません[8]
ペーストボードの種類org.nspasteboard.TransientTypeorg.nspasteboard.ConcealedTypeorg.nspasteboard.AutoGeneratedTypeorg.nspasteboard.sourceファイルタイプではありません[9]

尿路感染症を調べる

特定のファイルの UTI を取得するには、ターミナルmdls (メタデータ リスト、Spotlightの一部) コマンドを使用します。

mdls -name kMDItemContentType -name kMDItemContentTypeTree -name kMDItemKind FILE

参考文献

  1. ^ abc 「Uniform Type Identifiers の概要」。ガイドとサンプルコード。Apple Inc. 2007年10月29日。 2016年9月12日閲覧
  2. ^ 「Uniform Type Identifiers — 再紹介 - 技術トーク - ビデオ」Apple Developer . 2022年5月17日閲覧
  3. ^ 「Folklore.org: The Grand Unified Model (2) - The Finder」www.folklore.org . 2018年4月12日閲覧
  4. ^ 「Mac OS X 10.1 ファイル名拡張子ガイドライン - Cocoabuilder」。www.cocoabuilder.com 。 2018年4月12日閲覧
  5. ^ OPML 2.0仕様
  6. ^ 「Markdown用のUniform Type Identifier」Daring Fireball . 2019年8月21日閲覧
  7. ^ 「Markdown」。Daring Fireball
  8. ^ GitHubの DotPathsFileSpec
  9. ^ クリップボード上の一時的または特殊なデータの識別と処理
「https://en.wikipedia.org/w/index.php?title=Uniform_Type_Identifier&oldid=1317884406」より取得