wiki/html_assets/hina/hina2_2-rev0_6.txt

320 lines
14 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

朝日奈アンテナ meta data format version 2.2 (HINA/2.2)
Document revision 0.6
2000/09/24
1. 概要
本文書は、更新時刻取得エージェント「朝日奈アンテナ」(http://masshy.fastwave.gr.jp/hina/release/)
におけるmeta data formatである "hina-di" について記述したものである。
2. hina-diとは
この文書では、あるweb上のドキュメントの情報(更新時刻・著者など)を"meta data"と呼称する。
hina-diは朝日奈アンテナにおけるmeta data記述formatである。朝日奈アンテナはhina-diを基本として、
他サイトの朝日奈アンテナ及び更新時刻取得エージェントと情報共有・交換を行う。
3. データ構造
3.1 BNF
本文書において、hina-diの全仕様はBNF(Backus-Naur Form)[RFC822]によって記述される。
3.2 データタイプ
hina-diを構成するデータタイプを以下に挙げる。US-ASCIIのcharacter setはANSI X3.4-1986とする。
OCTET = <any 8-bit sequence of data>
CHAR = <any US-ASCII character (octets 0 - 127)>
UPALPHA = <any US-ASCII uppercase letter "A".."Z">
LOALPHA = <any US-ASCII lowercase letter "A".."Z">
ALPHA = UPALPHA | LOALPHA
DIGIT = <any US-ASCII digit "0".."9">
WORD = <1*(ALPHA|DIGIT) but excluding ":" and "-">
CTL = <any US-ASCII control character (octets 0 - 31) and DEL (127)>
CR = <US-ASCII CR, carriage return (13)>
LF = <US-ASCII LF, linefeed (10)>
SP = <US-ASCII SP, space (32)>
HT = <US-ASCII HT, horizontal-tab (9)>
<"> = <US-ASCII double-quote mark (34)>
CRLF = CR LF
TEXT = <any OCTET except CTLs, but including HT>
TOKEN = <any TEXT, but don't start with SP or HT>
SEPARATOR = ":" 1*( SP | HT )
DELIMITER = "," *(SP|HT)
4. hina-diの構成
hina-diは あるドキュメントの情報「メタデータ(meta data)」をまとめたBlockからなる。
hina-di = Header-block ; 4.2 Header-block
1*( Entity-block ) ; 4.3 Entity-block
4.1 Block
あるドキュメントについて記述されたmeta dataのまとまり。
Blockには「4.2 Header-block」と「4.3 Entity-block」の2つがある。
Blockは行指向フォーマット(Line-format)で記述される。
ただし「5.1 HINA」を除く。
Line-format = field-name SEPARATOR field-value CRLF
field-name = WORD *( "-" WORD)
field-value = TOKEN
field-nameは大文字・小文字の区別なし、field-valueのそれはfield-nameに依存。
4.2 Header-block
hina-diの先頭にあるBlock。hina-di自身の情報を持つ。
Header-block = HINA ; 5.1 HINA
Hinadi-Header
CRLF
Hinadi-header = 1*( User-Agent ; 5.2 User-Agent
| Content-Type ; 5.4 Content-Type
| Date ) ; 5.5 Date
4.3 Entity-block
Header-block以降のBlock。ドキュメントのmeta dataを持つ。
Entity-block = 1*( URL ; 5.3 URL
| Content-Type ; 5.4 Content-Type
| Date ; 5.5 Date
| Title ; 5.6 Title
| Author-Name ; 5.7 Author-Name
| Expires ; 5.8 Expires
| Expire ; 5.9 Expire
| Last-Modified ; 5.10 Last-Modified
| Last-Modified-Detected ; 5.11 Last-Modified-Detected
| Server ; 5.12 Server
| Authorized ; 5.13 Authorized
| Authorized-url ; 5.14 Authorized-url
| Method ; 5.15 Method
| Keyword ; 5.16 Keyword
| Experimental-field ; 6. Experimental-field
| Undefined-field ; 7. Undefined-field
CRLF
5. 定義field
5.1 HINA
自身がhina-diである事と、そのversionを示す。
HINA = "HINA" "/" hinadi-version CRLF
hinadi-version = "2.2"
5.2 User-Agent
hina-diを出力したagent名。このfieldは必須である。
User-Agent = "User-Agent" SEPARATOR TOKEN CRLF
field-valueの大文字小文字区別: あり
5.3 URL
ドキュメントを明示するURL。このfieldは必須である。
URL = "URL" SEPARATOR rfc2396-url CRLF
rfc2396-url = <URI described on "5.1.2 Request-URI" in RFC 2396>
field-valueの大文字小文字区別: RFC 2396に準拠
5.4 Content-Type
hina-diもしくはドキュメントのContent-type。
( Header-block内: hina-di自体のContent-Type
Entity-block内: ドキュメントのContent-Type )
Content-Type = "Content-Type" SEPARATOR rfc1521-type CRLF
rfc1521-type = <Content-Type described in RFC1521>
field-valueの大文字小文字区別: RFC1521に準拠
5.5 Date
そのblockを出力した時刻
Date = "Date" SEPARATOR rfc2616-date CRLF
rfc2616-date = <Date described on "3.3 Date/Time Formats" in RFC2616,
but rfc1123-date is recommended.> [TBD]
field-valueの大文字小文字区別: RFC2616に準拠
5.6 Title
ドキュメントのタイトル
Title = "Title" SEPARATOR TOKEN CRLF
5.7 Author-Name
ドキュメントの著者名
Author-Name = "Author-Name" SEPARATOR TOKEN CRLF
5.8 Expires
そのblockの情報の有効期限
Expires = "Expires" SEPARATOR rfc2616-date CRLF
rfc2616-date = <Date described on "3.3 Date/Time Formats" in RFC2616,
but rfc1123-date is recommended.> [TBD]
5.9 Expire
そのblockの情報の有効期限。Expiresと同一の情報を記載する。
Expire は下位互換性のために記述される。[TBD]
Expire = "Expire" SEPARATOR rfc2616-date CRLF
rfc2616-date = <Date described on "3.3 Date/Time Formats" in RFC2616,
but rfc1123-date is recommended.> [TBD]
5.10 Last-Modified
そのblockが示すドキュメントの更新時刻
Last-Modified = "Last-Modified" SEPARATOR rfc2616-date CRLF
rfc2616-date = <Date described on "3.3 Date/Time Formats" in RFC2616,
but rfc1123-date is recommended.> [TBD]
field-valueの大文字小文字区別: RFC2616に準拠
5.11 Last-Modified-Detected
そのblockのmeta dataの情報取得 [TBD]
Last-Modified-Detected = "Last-Modified-Detected" SEPARATOR rfc2616-date CRLF
rfc2616-date = <Date described on "3.3 Date/Time Formats" in RFC2616,
but rfc1123-date is recommended.> [TBD]
field-valueの大文字小文字区別: RFC2616に準拠
5.12 Server
そのblockが示すドキュメントのmeta dataを取得に使用されたサーバ名
Server = "Server" SEPARATOR TOKEN CRLF
field-valueの大文字小文字区別: あり
5.13 Authorized
そのblockが示すドキュメントのmeta dataを取得したエージェント名
Authorized = "Authorized" SEPARATOR TOKEN CRLF [TBD: TOKEN or WORD?]
field-valueの大文字小文字区別: あり
5.14 Authorized-url
「5.13 Authorized」で示されるエージェントを識別するURL
Authorized-url = "Authorized-url" SEPARATOR rfc2396-url CRLF
rfc2396-url = <URI described on "5.1.2 Request-URI" in RFC 2396>
field-valueの大文字小文字区別: RFC2396に準拠
[TBD:agentだけ動かしてURLで参照できない場合は?]
5.15 Method
TBD
(例) Method: REMOTE/GET/200
5.16 Keyword
そのblockが示すドキュメントの概要を示す任意の単語(複数可)。
Keyword = "Keyword" SEPARATOR keywords CRLF
keywords = word *(DELIMITER word)
word = TOKEN
field-valueの大文字小文字区別: あり
6. Experimental-field
実験的field。情報伝播は保証されない。
Experimental-field = x-field-name SEPARATOR value
x-field-name = "X-" WORD *( "-" WORD)
value = TOKEN
7. Undefined-field
「5. 定義field」「6. Experimental-field」以外のすべてのfield。
情報伝播は保証されない。
undefined-field = undef-field-name SEPARATOR value CRLF
undef-field-name = WORD *( "-" WORD)
value = TOKEN
8. meta dataの正当性の保証
meta dataの情報正当性は、
・「5.13 Authorized」
・「5.14 Authorized-url」
によって示されるエージェントが保証する物とする。
複数のエージェントから取得した、同一「5.3 URL」のmeta dataを混合して
利用・出力してはならない。
他のエージェントより取得したmeta dataは必ずblock単位に出力しなくてはいけない。
また、その内容を改変してはならない。
ただし、「5.15 Method」は例外とする。
9. meta dataの伝播
hina-diに含まれるmeta dataは伝播させることができる。
エージェントは、「8. meta dataの正当性の保証」をする限り、
他のエージェントが出力した meta dataを 自らが出力するhina-diに
含めることができる。
この時Entity-blockのMethod fieldは、「5.15 Method」に準じ処理されなくては
ならない。
9.1 伝播の対象
伝播が許されるblockは、Entity-blockのみである。
他のエージェントが出力したhina-diのHeader-blockを伝播させてはならない。
9.2 伝播の未保証
「6. Experimental-field」「7. Undefined-field」の伝播は保証されない。
(例)
[エージェントA]
(出力)
[hina-di A] ---(取得)-->[エージェントB]
(出力)
[hina-di B] ---(取得)-->[エージェントC]
・エージェントA: Experimental-field、Undefined-fieldを出力する
・エージェントB: 出力しない
上記のような伝播の場合、[hina-di B]には、[hina-di A]に含まれていた
Experimental-field、Undefined-fieldは含まれない。