Distributed Meta Information Abastract Model Ver. 0.02 2000.2.21 janus@hauN.org WWWの普及に伴い、数多くのHyperDocumentが公開されている。 本文書は、それらのHyperDocumentへのアクセスを容易にする ためのMeta Informationの流通に関する抽象モデルを提供し、 具体的なMeta Info.流通の技術的モデルを議論するための基盤 となることを目的としている。  コメントを歓迎する。 History 2000-02-21 時刻差の追加 2000-02-21 誤植の訂正 2000-02-21 pseudo Validateに関する記述を追加 2000-02-20 暫定公開 [抽象モデル定義] Meta Information(以下、Meta Info.)の定義はTerminologyを 参照のこと。 Meta Info.の存在形態は以下のいずれかしかあり得ない。 (1) Meta Info.が存在しない (2) Meta Info.がEmbeded Meta Info.としてHyperDocumentとし    て同時に提供される。 (3) Meta Info.とHyperDocumentが分離しているが、同一のStorage    で提供している(Meta Info.もHyperDocumentの1つ)。 (4) Meta Info.とHyperDocumentが分離しており、異なった    Storageで提供している(Access Protocolが異なる)。 異種分散環境においては、これらの状態が同時に成立することも ある。 HyperDocument Storageは複数存在している。同様にMeta Info. Storageも複数存在すると考えるのが自然である。 以下に、Meta Info.を利用した情報の流れを概略する。 (1) AuthorによりHyperDocumentが生成される (2) HyperDocument Storage ProviderによりHyperDocumentが HyperDocument Storageに蓄積される。 (3) AnnotatorによりHyperDocumentのExternal Meta Info. が生成される。 (4) AnalyzerによりHyperDocumentのInternal Meta Info.が 生成される。 (5) Meta Storage ProviderがMeta Info.をMeta Storageに蓄積する。 (6) Meta Storage ConsumerがMeta StorageからMeta Info.を取得 する。 (7) UserはMeta Info.を参照してHyperDocumentを取得する。 [適用] 1. HTDCPを本抽象モデルを用いて説明する。 HTDCPにおけるサーバは、Meta Storageである。 HTDCPにおけるクライアントは、Meta Storage Consumerであり、 Meta Storage Providerである。 HTDCPはMeta Storage Access Protocolである。 HTDCPにおけるValidatorは、Pass-CodeをHyperDocumentに記述 するためにAuthorとなるが、Pass-Codeがない場合を許容してい るため、Meta Storage中のMeta Info.はValidatedとNone Validated なものが混在する。 2. DIXSを本抽象モデルを用いて説明する。 DICAは、Meta Info. Creatorである。また同時にMeta Info. Providerでもある。 DITAは、Meta Storageである。 DIDAは、Meta Storage Consumerであり、また同時にHyperDocument Storageである。 DIDUは、HyperDocument Storage Consumerである。 ditpは、Inter Meta Storage Protocolである。 dirpは、Meta Storage Access Protocolである。 DIXSにValidatorは存在しない。 [Terminology] Meta Information(Meta Info.): HyperDocumentに関するメタ情報 MIを大きく分類すると3種類ある。 (1)HyperDocumentをAnalyzeして得られる情報 →Internal Meta Information(IMI) (2)HyperDocumentをAnalyzeしても得られない情報 →External Meta Information(EMI) (3)Meta Info.自身の情報 →Meta Info.自身の情報は、Meta Info.のメタ情報    として表現される。これをCoreと呼ぶ。 Meta Info.はMeta Info. Creator(MIC)によりHyperDocument と関係づけられる。Meta Info.はMICが生成する。MICはAuthor と同一人物とは限らず異なる事もある。 IMIとEMIを区別する場合は、それぞれのMeta Info. Creator を、Analyzer, Annotatorと呼ぶ。AnalyzerとAnnotartorが 異なる場合も考えられる。 Author -> HyperDocument Analyzer -> Internal Meta Information Annotator -> External Meta Information Meta Info. Creator = Analyzer + Annotator Analyze IMI HyperDocument ------------> Meta Information Annotate EMI HyperDocument --> Meta Info. --> Core Internal Meta Information(IMI): 内在的メタ情報 HyperDocumentをAnalyzeすることにより抽出することが できるが、処理を単純化するためMIに含めているもの。 Internal Meta Info.をより厳密に区別することを考える と、 (i) Literal Meta Information (ii) Semantic Meta Information の2つに分けられる。 External Meta Information(EMI): 外在的メタ情報 HyperDocumentに対して外部から与えられる情報。EMIは Annotatorによって作られ、HyperDocumentと関係づけら れる。 Literal Meta Information(LMI): HyperDocument中にそのままの形で含まれるものを言う。 Literal Meta Info.は必ずInternal Meta Info.である。 Semantic Meta Infomation(SMI): Literal Meta Info.以外のInternal Meta Info.をSemantic Meta Info.という。HyperDocumentに対してなんらかの解釈 を行わないとSMIを得ることはできない。 Core: メタ情報に関する情報。 これを厳密に定義しておくことで、メタ情報を統一的な 方法で扱うことが可能となる。CoreをValidateできるのは、 Analyzer/Annotatorであるが、Analyzer/Annotatorは、 Meta Storage Managerに権限を委譲できる。Core自体も メタ情報の1つである。 [例] Coreに含まれる情報: 生成者 生成時刻 Meta Information Identifier Validator Meta Info. Creator(MIC): AnalyzerとAnnotatorを総称してMeta Info. Creatorと呼ぶ。 Meta Information Identifier(MII): Meta Info.を一意に識別するもの。識別子をどのように表現 するかは実装による。 Core Identifier(CI): CoreもMeta Info.の一種ではあるが、CoreのMeta Info. Identifierを特にCore Identifierと呼ぶ。従って、Meta Info. Identifierと言った時は、Core Identifierを含まな い。 Embeded Meta Information(EmMI): HyperDocumentがその中に自己のMeta Info.として表現して いるものをEmMIと言う。EmMIはStructured HyperDocumentの 一部を構成する。EmMIはHyperDocumentの一部とは解釈され ない。 Structured HyperDocument(SHD): 自己の中にEmMIを含んでいるHyperDocumentをSHDと言う。 SHD中のEmMIとHyperDocumentの内容を区別する場合は、EmMI をHeader、HyperDocumentの内容をBodyと呼ぶことがある。 Meta Storage: Meta Info.をどのように表すかはいくつかの方法が考えら れるが、Meta Info.をHyperDocumentと分離して蓄積したも のをMeta Storageと呼ぶ。Meta Storageは、Meta Info.の 他に、Meta Relationも含む。MIはHyperDocument Identifier (HDI)をキーにして検索できる。 Meta Storage Manager(MSM): Meta Storageを管理する人(プログラム)。MSMはMeta Info. の正当性を知っている必要がある。MSM自体はValidateを する必要はないが、各HyperDocumentのValidatorを知る必要 がある。 Meta Storage Customer(MSC): Meta Storageの利用者。MSCはMeta Storageに対して、 HyperDocument Identifierをキーにして検索を行うことで Meta Info.を得る。 →Consumer Meta Storage Provider(MSP) Meta StorageにMeta Info.を提供する人(プログラム)。 Meta Info. Creatorと同一の場合もあるが、そうでない 場合もある。Meta Info.がAnalyzerにより出力される場合、 Meta Storageへの転送を受け持つプログラムをMSPと呼ぶ。 →Provider Meta Storage Inventory(MSI): Meta Storageに蓄積されているMeta Info.の一覧あるいは その一部。Meta Storage中のすべてのMeta Info.を指す 場合は、陽にComplete Meta Storage Inventoryと呼ぶ。 Inter Meta Storage Procotol(IMSP): Meta Storage間で情報を交換する際のプロトコル。 Meta Info.やMeta Storage Inventoryの交換を行う。 具体的な方法はここでは規定しない。 HyperDocument Identifier: HyerDocumentを一意に識別するもの。URI/URLなどを指す。 HyperDocument Storage(HDS): HypaerDocumentを蓄積し提供するものをHDSと呼ぶ。 HyperDocument Storage Manager(HDSM): HyperDocument Storageを管理する人(プログラム)。 一般的にはhttpdと考えられる。 HyperDocument Storage Consumer(HDSC): HyperDocument Storageの利用者。HDCはHyperDocumet Storageに対して、HyperDocument Identifierをキーに して検索を行うことで、HyperDocumentを得る。 →Consumer HyperDocument Storage Provider(HDSP): HyperDocument StorageにHyperDocumentを提供する人 (プログラム)。多くの場合、Authorを指すが、HyperDocument がプログラムによって生成される場合、HDPはそのプログラム を指す。 →Provider HyperDocument Storage Inventory: HyperDocument Storageに蓄積されいているHyperDocument の一覧あるいはその一部。HyperDocument Storageのすべて のHyperDocumentを指す場合は、陽にComplete HyperDocument Storage Inventoryと呼ぶ。 Consumer: Storageの利用者。利用者とは、Storageから情報の提供を 受けるだけで、Storageに対して登録・追加・更新などの 変更を行わないものを言う。 Meta Storage ConsumerやHyperDocument Storage Consumer などがある。 Meta Relation: HyperDocumentとMeta Info.の関係を指す。 HyperDocumentに対してMeta Info.は複数存在することがあ る。 Meta Storage Access Protocol(MSAP): Meta Storageから情報を検索するための方法を指す。具体的 な方法は実装によるが、最低限、HyperDocument Identifier をキーとして、Meta Info.を取り出せる必要がある。 User: Hyper DocumentをDocument Access Protocolにより閲覧 する人 Document Access Protocol(DAP): Hyper Documentを閲覧するための方法 本文中ではHTTPを指すと考えて良い。 Annotator: Meta Info.を生成する人間・あるいはプログラム。 Analyzer: HyperDocumentをAnalyzeして、IMIを抽出する人(プログラム)。 HyperDocumentに対する解釈を行う。Analyzer=Authorの こともある。 Analyze: HyperDocumentの内容を解析して、解釈を行うこと。 権限の委譲: 権限を代行を認めること。 Author: Hyper Documentの著者・提供する人・プログラム。Meta Info. のValidationになれる人(プログラム)。ただし、Validation の権限はValidatorに委譲できる。Copyrightを持ち、Copyright を他人に与えることができる。 Copyrighter: HyperDocumentに対するCopyrightを持っている人。 また、さらに他の人(プログラム)にvalidateの権限を委譲 できる。 Copyright: Meta Info.に対するValidateをする権限を他人に委譲でき る権利。情報が作られた時点ではAuthorが持つ。 Writer: Hyper Documentを入力した人。Meta Info.のValidateはで きない。 Hyper Documents: Userにより閲覧の対象となる文書。プログラムにより生成 されるものも含む。 Validation/Validate: 情報の正当性を評価すること。 正当性: 正当であるとは、Authorが自己のHyperDocumentに対する Meta Info.の情報が正しいと表明した状態を言う。 Validationにより正当であると評価されたものをValidated という。評価されていないものはNone Validatedと呼ぶ。 Producerが情報が正しくないと表明したものはInvalidという。 Validator: 情報の正当性を評価する人(プログラム)。ValidatorはAuthor からValidateの権限を委譲されたものをいう。 Validated: Validatorが情報を正しいと表明した状態。 Invalid: Validatorが情報を正しくないと表明した状態。 None Validated: 情報に対して正当性がValidatorから表明されていない状態。 pseudo Validate: 権限の委譲がされていないpseudo Validatorが情報の正当性を 評価すること。 pseudo Validator: Authorにより権限が委譲されることなく情報の正当性を評価す る人(プログラム)。 pseudo Validated: pseudo Validatorが情報を正しいと表明した状態。これは 実際にはNone Validatedである。 pseudo Invalid: pseudo Validatorが情報を正しくないと表明した状態。 Shadow: Validatorによって直接Validateされていないが、Validated な情報のcopyをShadowと呼ぶ。ShadowそのものはNone Validated である。ValidateされたShadowはShadowではなくなる。 dirty Shadow: Validateされていた情報が、何らかの理由でValidatedでなく なった場合は、dirty Shadowと呼ばれる。 dirty Shadowが出来る理由としては、 (a)Validation Expireを過ぎた (b)Provided Dateの新しいValidatedな情報が生成された などが考えられる。 →新しい Inconsistency: Validateされた情報同士が一致しないこと。 Consistent: Validateされた情報が一致すること。 情報の一致: 情報が一致するとは、内容が完全に同じことを意味する。 同一: 同一であるとは情報が一致するこという。 copy: 情報を複製すること。また複製されたもの。 copyした情報は、copyされた情報と一致するが、Validateされ ていないのでConsistentではない。 Validatorがcopyを行った場合は、Consistentである。 Producer: AuthorやAnnotatorなどの情報を生成する人(プログラム)を 指す一般名詞。 Products: Producerにより生成された情報。HyperDocumentやMeta Info. などを指す一般名詞。 時刻: 複数の計算機間で完全に同期した時間を持つことは不可能で あるため、時刻という場合には、対象となる計算機における 時刻を指す。また、計算機で扱う場合には基本的にGMT(UTC) で表現する。 時刻差: 二つの計算機上の時刻の差。これを厳密に計測することは、 ネットワークの遅延等も含めて考えると困難である。しか し厳密な時刻の同期を求めない場合は、Activated Dateの 表示をActivate Dateと比較することによって、二つの計算機 間の時刻差とすることが考えられる。 更新時刻: Modified Dateのこと。 Meta Storage Date: Meta Storage上における時刻。 HyperDocument Storage Date: HyperDocument Storage上における時刻。 Modified Date: 情報が更新された時刻。更新時刻は非常に定義が曖昧である。 情報がファイルの形式をしている場合は、更新時刻は、その ファイルの最終更新時刻を更新時刻と考えることができるが、 情報がプログラムにより動的に生成される場合(例えば、Hyper Document ProviderがHyperDocumentを生成する場合)は、語義 的には、動的に生成された計算機での時刻が更新時刻である。 しかしながら、更新時刻はProviderによってStorageに蓄積さ れた時刻ではなく、HyperDocumentそのものが更新時刻として 持つ時刻を指す場合もある。そのため、単に更新時刻と言った 場合には、どの時刻を指すが分からないため、なるべく使うべ きではない。 この時刻は、その情報が蓄積されているStorage上の計算機 の時刻である。 Meta Information Modified Date: Meta Info.が更新された時刻。 この時刻は、その情報が蓄積されているStorage上の計算機 の時刻である。 HyperDocument Modified Date: HyperDocumentが更新された時刻。 この時刻は、その情報が蓄積されているStorage上の計算機 の時刻である。 Provided Date: 情報がStorageに蓄積された時刻。 この時刻は、その情報が蓄積されているStorage上の計算機 の時刻である。 Meta Information Provided Date: 情報がMeta Storageに蓄積された時刻。 この時刻は、その情報が蓄積されているStorage上の計算機 の時刻である。 HyperDocument Provided Date: 情報がHyperDocument Storageに蓄積された時刻。 この時刻は、その情報が蓄積されているStorage上の計算機 の時刻である。 Access Date: 情報に対してアクセスした時刻。 この時刻は、ConsumerがStorageに対してアクセスしたConsumer の計算機の時刻である。 Accessed Date: 情報に対してアクセスされた時刻。 この時刻は、ConsumerがStorageに対してアクセスしたStorage 上の計算機の時刻である。 新しい: 二つの時刻を比較して、時間的に後にあるものを新しい という。二つの時刻を比較できるのは、その時刻が同じ 計算機上の時刻である場合だけである。 新しいと推定: Action Date: あるアクションの時刻に関しては、それを観測する視点に よって時刻が異なる。これを整理すると、 (a)Activate Date: アクションを行った側における時刻 (b)Activated Date: アクションを行われた側における時刻 (c)Observed Date: アクションに関与していないものの時刻 に分けられる。 Activate Date: アクションを行った側における時刻 Activated Date: アクションを行われた側における時刻 Observed Date: アクションに関与していないものの時刻 Action: ある人(プログラム)が別の人(プログラム)あるいはデータ に対して操作を行うこと。アクションを行う主体は、それ を自発的に行う人(プログラム)である。 Expire: 情報の保持期間。保持期間を過ぎた情報は破棄されることが 期待される。ただし、情報が単一の計算機で生成され、破棄 される場合は問題は発生しないが、情報の生成と破棄が異な る計算機で行われる場合には、正確な情報保持期間を求める ことは困難である。 Validation Expire: Validateの有効期間。有効期間を過ぎたValidatedな情報は、 dirty Shadowとなる。 Validate Date: 情報に対してValidateを行った時刻。 この時刻はValidatorの計算機の時刻である。 Validated Date: 情報に対してValidateが行われた時刻。 この時刻は、情報が蓄積されているStorage上の計算機の時刻 である。 pseudo Validation Expire: pseudo Validateの有効期間。有効期間を過ぎたpseudo Validatedな情報は、dirty Shadowとなる。 pseudo Validate Date: 情報に対してpseudo Validateを行った時刻。 この時刻はpseudo Validatorの計算機の時刻である。 pseudo Validated Date: 情報に対してpseudo Validateが行われた時刻。 この時刻は、情報が蓄積されているStorage上の計算機の時刻 である。