From 8c44bca6783a85ac7d598e50d315e704b0c26ff9 Mon Sep 17 00:00:00 2001 From: lucidiot Date: Sat, 27 Mar 2021 18:20:48 +0100 Subject: [PATCH] Add translated Hina specification --- assets/hina/README.md | 4 + assets/hina/archive-index.html | Bin 0 -> 4240 bytes assets/hina/fw_logo1.gif | Bin 0 -> 1333 bytes assets/hina/hina2_2-rev0_10.txt | Bin 0 -> 17882 bytes assets/hina/hina2_2-rev0_11.txt | Bin 0 -> 17890 bytes assets/hina/hina2_2-rev0_12.txt | Bin 0 -> 19326 bytes assets/hina/hina2_2-rev0_13.html | Bin 0 -> 36642 bytes assets/hina/hina2_2-rev0_5-20000923.txt | Bin 0 -> 14124 bytes assets/hina/hina2_2-rev0_6.txt | Bin 0 -> 14178 bytes assets/hina/hina2_2-rev0_7.txt | Bin 0 -> 15346 bytes assets/hina/hina2_2-rev0_8.txt | Bin 0 -> 16374 bytes assets/hina/hina2_2-rev0_9.txt | Bin 0 -> 16382 bytes assets/hina/normal.css | Bin 0 -> 1238 bytes content/hina/index.md | 135 +++++++ content/hina/specs/0.10.md | 425 ++++++++++++++++++++ content/hina/specs/0.11.md | 425 ++++++++++++++++++++ content/hina/specs/0.12.md | 447 +++++++++++++++++++++ content/hina/specs/0.13.md | 491 ++++++++++++++++++++++++ content/hina/specs/0.5.md | 322 ++++++++++++++++ content/hina/specs/0.6.md | 327 ++++++++++++++++ content/hina/specs/0.7.md | 347 +++++++++++++++++ content/hina/specs/0.8.md | 367 ++++++++++++++++++ content/hina/specs/0.9.md | 368 ++++++++++++++++++ 23 files changed, 3658 insertions(+) create mode 100644 assets/hina/README.md create mode 100644 assets/hina/archive-index.html create mode 100644 assets/hina/fw_logo1.gif create mode 100644 assets/hina/hina2_2-rev0_10.txt create mode 100644 assets/hina/hina2_2-rev0_11.txt create mode 100644 assets/hina/hina2_2-rev0_12.txt create mode 100644 assets/hina/hina2_2-rev0_13.html create mode 100644 assets/hina/hina2_2-rev0_5-20000923.txt create mode 100644 assets/hina/hina2_2-rev0_6.txt create mode 100644 assets/hina/hina2_2-rev0_7.txt create mode 100644 assets/hina/hina2_2-rev0_8.txt create mode 100644 assets/hina/hina2_2-rev0_9.txt create mode 100644 assets/hina/normal.css create mode 100644 content/hina/index.md create mode 100644 content/hina/specs/0.10.md create mode 100644 content/hina/specs/0.11.md create mode 100644 content/hina/specs/0.12.md create mode 100644 content/hina/specs/0.13.md create mode 100644 content/hina/specs/0.5.md create mode 100644 content/hina/specs/0.6.md create mode 100644 content/hina/specs/0.7.md create mode 100644 content/hina/specs/0.8.md create mode 100644 content/hina/specs/0.9.md diff --git a/assets/hina/README.md b/assets/hina/README.md new file mode 100644 index 0000000..0f8fa41 --- /dev/null +++ b/assets/hina/README.md @@ -0,0 +1,4 @@ +This is a local copy of the pages archived by the Wayback Machine for the +Hina-Di documentation. The only change that has been applied is a conversion +to Unicode, as the Wayback Machine pages have a lot of decoding errors with a +modern browser's default encoding settings. diff --git a/assets/hina/archive-index.html b/assets/hina/archive-index.html new file mode 100644 index 0000000000000000000000000000000000000000..14246825993427b17746202f38d6f580616856e8 GIT binary patch literal 4240 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 literal 0 HcmV?d00001 diff --git a/assets/hina/hina2_2-rev0_11.txt b/assets/hina/hina2_2-rev0_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..7ea5a29569bed38eab405a771fe5d6e83512c296 GIT binary patch literal 17890 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 literal 0 HcmV?d00001 diff --git a/assets/hina/hina2_2-rev0_12.txt b/assets/hina/hina2_2-rev0_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..c0abcbc2948c9e7309a8bd6ba2a9c4b2e6ad7d86 GIT binary patch literal 19326 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 literal 0 HcmV?d00001 diff --git a/assets/hina/hina2_2-rev0_6.txt b/assets/hina/hina2_2-rev0_6.txt new file mode 100644 index 0000000000000000000000000000000000000000..a5822fbda91550f74c3906291220b3a4414fab26 GIT binary patch literal 14178 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 literal 0 HcmV?d00001 diff --git a/assets/hina/hina2_2-rev0_7.txt b/assets/hina/hina2_2-rev0_7.txt new file mode 100644 index 0000000000000000000000000000000000000000..7e3fbbfe32ba059f7e07df5f282be6f45b30f8e0 GIT binary patch literal 15346 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 AH~;_u literal 0 HcmV?d00001 diff --git a/assets/hina/hina2_2-rev0_9.txt b/assets/hina/hina2_2-rev0_9.txt new file mode 100644 index 0000000000000000000000000000000000000000..7e73ef8596d510cf6374307c995dbeb0dee4444b GIT binary patch literal 16382 zcmeHOU5K3389p0mb=GXP6vSRg#|6o*%_e6zF(xruvRTu_%+6+iVm7W}vzh(P=r?h9 zqedh#qG+;GWeTZS+CmYkltQ5h^~#IZR`kXjZJ}7&3)^BZ6fCqft@e4&JMW(J{mpKI z+ET(YGduI0?>+DTdCvQu?~{+OpLuU;&!HdMkL<7P8@6cfGgD^KOqimX#Jl`AZE9v7 zSNOeX9>9osvtZ`%YlQDTW&>VD(_!|Qy{2q-nvIR$I!!D7`Y^6yPB_Yuqc9H&58!@J z!-B>(jO{Vj{cSYe_}qxs&5lMZzHh)BMf2F)nX{x?FzaWYochOf&9>OTP5*SNcly?$ zcZR<+{-XVt{ki=S`EG(vAq~oH0{e2yP)eid@q8= zr0uiQ_PTQ)K6B8H+sABVW&9dTsi`5+gK{JH&f1#0UNFPBgL;|4FD-7S2f^b}(^`(~ z&zzM%vcJTb*N$|Lb{N&%1$*%EFFbn8&e={=x9u5T0B-FgBOjhT1m4L@A;Enuq3e8Y zP`1#cRKB>aYBnxm-Tw37`k7gK5ZY;R^S@Jm*}ecPM~Ru=7+%Qrh*>B1{ey*>3-*Qb z?<#d$dTO_mhq~R=(Cx3`L$BI5=Zeqjuieh~dg0x>ofXvkC?)OHlHfM7vx9G!e>+#R za!-fpg|}2p6>+d&x!l_9PPyWF2wI%6WI!EI|1&< z@gls3eA3ewP0j8E@52~XG^0*mn{jV9Vt1?A0uNE|pnnw104R=_JMiMSg1HTM?EuvX z(N@GAUGU2}P!;O;LnBkTR>6A_TA9YX=Ahf5byC=c9J3R8%A%K)qX4&gRcrACEo3NgEJ|DqVomW;B@rDubD0d~jE6qs-`r`UCkI#D{-Nksv zCiq7u?xF8a;=|QnLZIVfgk+)HsIJ7U0*+2IR2=JoN;0_AL8CzQi0u zI(Wo9l6xVGgOeXd{xLcB>7JH#aD2 z9vOoDRGZ98v&L?dLwT6*2EaPBX_bFX_-H7o4<5!3}?-B`V|})g-0Bpf^P~9uitC>UHsn>yK}v}lTjPLk1OcrOw1Bt zg}vq|ucxs@(GVjg@yc5JN36@TmUU!clupxT>-LnLwP%2xdZBS5&#KvH&)Q?l>nA-b zzD|mdQ3HEm%?VhES(U4kQcy1}m|HQ5^7J$rEqc~_xKfKoi_knX5N&iaM!yK}l<`V` z6Yk0ztvXdyqFjnDtk+q0*Bdy!5v6V)@SlCcvX`2a>T&N-GD zMe+%0X3^8Rbp0#3RgZDl<)TS{*Z2!*_?eW7&m!Un;b@hhX4f5ha_ZpN1$*^9{EY1O z;TwmJL1Qg89Pg<|_AtDr7Q3p{s`h&Wqhn%8^^yD-%8K;J?iuWQuIfC(d%~IontuPx zkG~~5mbz`JOa?a0k5`Fi*^g2~`p5W6`bIil_c(uJCYXaQ!dcQ|<93eUISWtFd?J3O znc#p!)XXwF-P+H*AUrCE%rIG_;v5jC?Q*LDF(#>WA*-KsI5a8qmL_ARs?GuGuGC#!ycXRI+Grl?iF2DU@JiqO>j`r<%(tl4~cIc~a@P3ndE88-FphyAYq;O-um;@tw2z zdFb)^^Q7-h&pZs8^Nng?mR=YS;g~dq(2m>_2#-R`bIM4_8o4@pUGS=T_+*kQb72-$ z9iOJ&5B`X)X~8Uc85`l4G=+Vja1t1u2qv2bV zhrCyFM|z$ESWSq8NtHWEBBA&UGRG}$j^?A|)VWIdRkPKt$NcU2v6oK!8MvzGO6@bN zpa>#@QUWDN9dW5V3oLUOSTkOyuG{UXT`KD2Iuv39+5PBm?ck*ybzOeyPC<}BoMtEm zHQsEjtV8XHZ|)u1A)83Yc+XqssWqi3bzW3K2fsVS%CJ-nX#2L2HI`Lhueq9iZT!mT zw5}=|D`a8`axJoFAq~o(g?K&E3^hP*Jr7;T42p%L2I>^dNyNDwlzXw?P%Q{@&=r`J z{NAr_zcfwTEm^s~lC)9-_nf#oI5L3j1r>2dr}w#<>QcF6U#!d?@_PvJRhdiUTy;eB z&<^ghv@#FrE3oY*R57+7RwVC)8X~pqQEG=B4u!C~%E(&)Jx2La7k%8#vntfyhzi+* z4&j$D^FBV4C`o2xJmw*^ z65@5O-R81L8s|m!>9N_tbw}FJ3;FuU8TXB|vk%Y*pNPjtWZ!cApFgA1Azcbn{>!r* zAKA^LSB}&Yks`iDS~XM%SS9Go$Pr1IG-fnkB(LYiO+0&upT&O@f6LECx_j`|P@;4C z1S`tE&Je#YHb~}(mPCe}L57qli0gF5GB3-OeEXDKPv+f$9p^YwY_n9Z+p8xQMzkxC zjLec99qTxF&}p64k-VMfCs9V_qGa33^bh8`bMPbTlol`9V)eGi)ki)U{`aHnj!4}h z$&+MZVvIE2Cbedso5fLN*@fIQsJV(X;+mhaS5%%Kqn5@S87+%Wy-~yPI}_GV()yQ< z7-u;>&~ZW~9!5oGCEed}f1itqmJF&Y1*<=d@sJBySJE?(heBe{68bZDGg8~;x^Ov* z#Q6^hOHQ%cNYA|rcz**egyn|D1g>&lATja9P;6+w0zL?_uRb9$W2 zyCavc?6o>veU;{=uf0kk?latR#H%n#yr@3HEat1(9!2uhgz8mBwH3FTco zD(WTNfp3DBcu9CpMLKg8c;1@<(v5+SUT}5zlChQY7q>5WgJD&Lmf|l( z%o#=%PXN4b|JpbMz|K{?4kLKN|C()0-lu)2Fg6(F9!*~yu4lC-zR&iR9r3$R4xT}2 z8&Q7@cjx{tT2181zMd@`wfJevCe@>O?PsCk0r7Z~+I3_LGp`JNZD#*@l`yOtX?;p$ zi(ko;DKDx*>s^jM>BnU6L1kx?9ev%de-yW`SgyHs*I=g;Rus`28!R`^s5Tb zcsv}A#Qx4+Rqh|C<6P3ZBN5Qy8C#9@w~~3L5UV>%K1=)0W$)psiqAWDOC`5ijWx@c zO0G&3=0rWAr#U0PW~+HIf5c@^`0scEF-tQ~$f~w;)lKG^^zKix3U{2v6bfO7JFkzB zo^fUGN#FC?`ID~lJC?ED=Z_4@!~Zfm>~2)v;ysqM-=uR&+K=k4YEiYUAxLH7Wz^B$ zvL20vvxF;6_@@k$ASX&Rzkb4be&82?IbDccv<o13#IpS*^gwI~l8?EfM%o ztjoL7**D+gqfZpD?+JUv{%+NJJ5JQb&$g{}=FQI_dKWI^nr}rUhz?ikLX%6$YRPVM z8!Fwa@0PdWtm3tYB0TSK61|SF_bOc{?)944{cDa^F#Ej zG!;skS8uO68F)f~815Ll1IfN-!O$}~3!i*?24nWw3J{OaCC%wezb;9YPv`LoKCVV- zj`2KEb$EQ;5s^FVI(d>YoL$Bh%!NkpiM8)Mywc_*4#%#HZFmoDtBwe<|>*X1OA=r-LU~(;nUlzkFm#Jcafuh zkd7LWNX}P@L^sV49f?dAx7x3@t2yPy4n1eeMqz@)sd;uy$4uy@JKe5M5Ds%)(cJTi zj%2ro&qmRw6pKpVwP?P5gC9kjab0rPb{O||xxWs>jM3@-zdbR3Z!o{&EcsME!e7as zaFFCG993B6F8q~urupRjtKoB(<5MiitRL6mcF&}XdU(s%So?bj9 zRWP)(oLnI{9M@XD?p%atc6TGMioeO3mTYPHWKD}rU!%n|^YIkTxZ~l|kgC?mr<(O! G&3^!+6lo^_ literal 0 HcmV?d00001 diff --git a/assets/hina/normal.css b/assets/hina/normal.css new file mode 100644 index 0000000000000000000000000000000000000000..1b3e6ba312bd7dbc0326660b28f57b0923437af4 GIT binary patch literal 1238 zcma)+!A`VjUteZSLoSyZ$jve+IM9Rrm zh&_u;XP@H{1FV@%t!WcW>_eYFXWMCkL1YFO!aAg#8Ka>YRny<|K;=Z zw_ag+4kqMUP`@TiwW=5DP*5V~TVN4XTA#GG9emH3s!|tji7~Q!G*;J(N@i{X^hJ|) z=c@HnEp2i)J?To#Vp_}7-}%l}hncSGovXP@{5CAempWE67rXFOPECj3!3i8xrTX25 z-TVhyY-29%+YNfvVY17%_F*l(s-iaC+!b41p3rK1xg*-k!07i3GsjrF<+onE{T!>Z V6kf{`yYjy1f9a4abh;ex^#!<0# TODO: Document version 1.x + +## Version 2.2 + +### Revision 0.5 + +* Published on 2000-09-23 +* [Original on the Wayback Machine](https://web.archive.org/web/20120220061701if_/http://kohgushi.fastwave.gr.jp/hina-doc/hina2_2-rev0_5-20000923.txt) +* [Local copy](./hina2_2-rev0_5-20000923.txt) +* [English translation](./specs/0.5.html) + +### Revision 0.6 + +* Published on 2000-09-24 +* [Original on the Wayback Machine](https://web.archive.org/web/20120220061608if_/http://kohgushi.fastwave.gr.jp/hina-doc/hina2_2-rev0_6.txt) +* [Local copy](./hina2_2-rev0_6.txt) +* [English translation](./specs/0.6.html) + +Includes small fixes on the BNF grammar, and two new statements: + +* Metadata propagation is explicitly forbidden if the `Authorized` or + `Authorized-url` fields are not specified. +* Propagation of the `Method` field should be done using the process + defined in the Method section, but the Method section remains "TBD", + so there is no actual process. + +### Revision 0.7 + +* Published on 2000-09-24 +* [Original on the Wayback Machine](https://web.archive.org/web/20120220061612if_/http://kohgushi.fastwave.gr.jp/hina-doc/hina2_2-rev0_7.txt) +* [Local copy](./hina2_2-rev0_7.txt) +* [English translation](./specs/0.7.html) + +Adds the `HINA-Version` entity block field, recommends making the `URL` the +first field of an entity block, and adds text encoding considerations. + +### Revision 0.8 + +* Published on 2000-09-30 +* [Original on the Wayback Machine](https://web.archive.org/web/20120220061653if_/http://kohgushi.fastwave.gr.jp/hina-doc/hina2_2-rev0_8.txt) +* [Local copy](./hina2_2-rev0_8.txt) +* [English translation](./specs/0.8.html) + +Includes some BNF fixes and more explicit phrasing, as well as some breaking +changes: + +* The `URL` field becomes the `Virtual` field when it is the only field of an + entity block; the URL then points to a file that holds the entity block, not + to the document itself. This is similar in concept to `rdf:resource`. +* The `Author-Name` field is now case-sensitive. + +### Revision 0.9 + +* Published on 2000-10-05 +* [Original on the Wayback Machine](https://web.archive.org/web/20120220061649if_/http://kohgushi.fastwave.gr.jp/hina-doc/hina2_2-rev0_9.txt) +* [Local copy](./hina2_2-rev0_9.txt) +* [English translation](./specs/0.9.html) + +The `Virtual` name now is truly called Virtual, and not `URL`, which reduces +the confusion. Note that the original version had a type in its BNF grammar, +causing the field to actually be named `Virutal`. + +### Revision 0.10 + +* Published on 2001-02-22 +* [Original on the Wayback Machine](https://web.archive.org/web/20120220061604if_/http://kohgushi.fastwave.gr.jp/hina-doc/hina2_2-rev0_10.txt) +* [Local copy](./hina2_2-rev0_10.txt) +* [English translation](./specs/0.10.html) + +BNF grammar fixes again, as well as some breaking changes and a new feature for +images: + +* Dates are now required to use 4-digit years via RFC 1123, instead of the two + digits permitted by RFC 2616. +* The `Image-Width` and `Image-Height` fields add more optional metadata for + entity blocks describing images. +* Fields are now required to be unique per block; a block with duplicate fields + must be ignored. + +### Revision 0.11 + +* Published on 2001-05-09 +* [Original on the Wayback Machine](https://web.archive.org/web/20120220061618if_/http://kohgushi.fastwave.gr.jp/hina-doc/hina2_2-rev0_11.txt) +* [Local copy](./hina2_2-rev0_11.txt) +* [English translation](./specs/0.11.html) + +HINA 2.2 is retrograded to 2.2 beta. + +### Revision 0.12 + +* Published on 2001-11-07 +* [Original on the Wayback Machine](https://web.archive.org/web/20120220061641if_/http://kohgushi.fastwave.gr.jp/hina-doc/hina2_2-rev0_12.txt) +* [Local copy](./hina2_2-rev0_12.txt) +* [English translation](./specs/0.12.html) + +Another BNF grammar fix; this also defines the use of the URL as a unique +identifier for entity blocks, and explicitly encourages using experimental +fields over undefined fields for data that might not be directly obtained from +the document's metadata. + +### Revision 0.13 + +* Published on 2002-07-19 +* [Original on the Wayback Machine](https://web.archive.org/web/20100527100833/http://kohgushi.fastwave.gr.jp/hina-doc/hina2_2-rev0_13.html) +* [Local copy](./hina2_2-rev0_13.html) +* [English translation](./specs/0.13.html) + +The specification has been converted from a text file to a webpage, and some +BNF grammars have been made more explicit. An appendix was added, which gives +some additional information on the origins of Hina-Di. + +Field names are no longer case-sensitive, and field values are explicitly made +case-insensitive by default. + +## Known implementations + +* [Asahina-Antenna][asahina], the project for which Hina-Di was created, + obviously implements Hina-Di. +* [RSS Panel X][panelx] is a Greasemonkey script that supports, among other + formats, Hina-Di. +* [Kazehakase][kaze] was a GTK+ web browser that used WebKit and Gecko and had + support for RSS, LIRS and Hina-Di. + +[archive]: ./archive-index.html +[asahina]: https://web.archive.org/web/20100623024844/http://masshy.fastwave.gr.jp/hina/release/ +[panelx]: http://xent.com/~bsittler/rsspanel.html +[kaze]: https://web.archive.org/web/20160304235817/http://kazehakase.osdn.jp/ diff --git a/content/hina/specs/0.10.md b/content/hina/specs/0.10.md new file mode 100644 index 0000000..2fa271c --- /dev/null +++ b/content/hina/specs/0.10.md @@ -0,0 +1,425 @@ +--- +title: Asahina Antenna Metadata Format (HINA) 2.2, rev. 0.10 +date: February 2, 2001 +toc: true +--- + +> This document is an unofficial English translation of the original Japanese +> specification made by someone who has no knowledge of Japanese. Implement at +> your own risk. + +## Overview + +This document describes Hina-Di, the metadata format used by [Asahina +Antenna][antenna]. In this document, "metadata" is defined as data on a webpage +such as its last update time or its author. Asahina Antenna acts as a feed +reader for Hina-Di. + +## Conventions used in this document + +This document uses the Backus-Naur notation ([RFC 822][rfc822]) to formally +specify the format. + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", +"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this +document are to be interpreted as described in BCP 14 ([RFC 2119][rfc2119], +[RFC 8174][rfc8174]) when, and only when, they appear in all capitals, as shown +here. + +## Data Types + +The basic data types that constitute Hina-Di are listed below. The US-ASCII +character set is defined by ANSI X3.4-1986. + +``` +OCTET = +CHAR = +UPALPHA = +LOALPHA = +ALPHA = UPALPHA | LOALPHA +DIGIT = +WORD = 1*(ALPHA|DIGIT) + +CTL = +CR = +LF = +SP = +HT = +<"> = + +CRLF = CR LF + +TEXT = +TOKEN = + +SEPARATOR = ":" 1*(SP|HT) +DELIMITER = "," *(SP|HT) +SLASH = "/" *(SP|HT) +``` + +## Structure + +A Hina-Di file consists of a series of blocks that summarize the metadata on a +website: a header block, followed by one or more entity blocks. + +``` +hina-di = header-block + 1*( entity-block ) +``` + +### Block + +A block is a set of metadata for a document. Each metadata is represented as a +single header, in a manner similar to [RFC 822][rfc822], with a field name and a +field value. + +Field names in a block MUST be unique. A block with duplicate field names MUST +be discarded. + +Field names are case-sensitive. Field values may be case-sensitive, +depending on the field. + +``` +line-format = field-name SEPARATOR field-value CRLF +field-name = WORD *( "-" WORD) +field-value = TOKEN +``` + +### Header block + +Exactly one header block MUST appear in a Hina-Di file, and it MUST be the +first block. It holds metadata about the Hina-Di file itself. + +``` +header-block = HINA + Hinadi-Header + CRLF +Hinadi-Header = 1*( User-Agent + | Content-Type + | Date ) +``` + +### Entity block + +One or more entity blocks MUST be present after the header block. Each entity +block defines metadata about a specific document. + +``` +Entity-block = URL ( HINA-Version + | Virtual + | Content-Type + | Date + | Title + | Author-Name + | Expires + | Expire + | Last-Modified + | Last-Modified-Detected + | Server + | Authorized + | Authorized-url + | Method + | Keyword + | Image-Width + | Image-Height + | Experimental-field + | Undefined-field + CRLF ) +``` + +## Fields + +This section defines the various fields that may be found in blocks. +All fields are OPTIONAL and case-insensitive unless otherwise specified. + +### HINA + +Indicates that this is a Hina-Di file, and includes its version. +This field is REQUIRED as the first field of Hina-Di files. + +``` +HINA = "HINA" "/" hinadi-version CRLF +hinadi-version = "2.2" +``` + +### User-Agent + +Name of the user agent that created this Hina-Di file. +This field is REQUIRED in header blocks. +The value of this field is case-sensitive. + +``` +User-Agent = "User-Agent" SEPARATOR TOKEN CRLF +``` + +### URL + +URL of the document, compliant with [RFC 2396][rfc2396]. +This field is REQUIRED in entity blocks. +Making this field the first field of an entity block is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +URL = "URL" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +### HINA-Version + +Specifies that the integrity of the entity block was guaranteed according to +the specification of a specific Hina-Di version. +If this field is missing from an entity block, it means the block might be +incomplete. + +``` +HINA-Version = "HINA-Version" SEPARATOR version +version = "HINA" "/" 1*( DIGIT ) "." 1*( DIGIT ) +``` + +### Virtual + +URL of another Hina-Di file that holds the entity block, compliant with +[RFC 2396][rfc2396]. + +If there are fields in the entity block other than `Virtual`, then it takes the +same meaning as the regular `URL` field. + +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +Virtual = "Virtual" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +> Note that the original version of the document defines the `Virtual` feed +> as `Vitural`. + +### Content-Type + +MIME type of the Hina-Di file or the document, as described in +[RFC 1521][rfc1521]. +The value of this field is case-sensitive to the extent defined by RFC 1521. + +``` +Content-Type = "Content-Type" SEPARATOR rfc1521-type +rfc1521-type = +``` + +### Date + +The date and time when the block or the Hina-Di file was generated. +The dates MUST comply with [RFC 1123][rfc1123], better described in section 3.3 +of [RFC 2616][rfc2616]. +The value of this field is case-sensitive. + +``` +Date = "Date" SEPARATOR rfc1123-date CRLF +rfc1123-date = +``` + +### Title + +The title of the document. + +``` +Title = "Title" SEPARATOR TOKEN CRLF +``` + +### Author-Name + +Name of the author of the document. +The value of this field is case-sensitive. + +``` +Author-Name = "Author-Name" SEPARATOR TOKEN CRLF +``` + +### Expires + +Expiration date for the block. The dates MUST comply with [RFC 1123][rfc1123], +better described in section 3.3 of [RFC 2616][rfc2616]. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Expires = "Expires" SEPARATOR rfc1123-date CRLF +``` + +### Expire + +Alias for the `Expires` field, included for backwards compatibility. + +``` +Expire = "Expire" SEPARATOR rfc1123-date CRLF +``` + +### Last-Modified + +Date and time when the document was last updated. The dates MUST comply with +[RFC 1123][rfc1123], better described in section 3.3 of [RFC 2616][rfc2616]. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified = "Last-Modified" SEPARATOR rfc1123-date CRLF +``` + +### Last-Modified-Detected + +Date and time representing when the user agent retrieved the document's +metadata. The dates MUST comply with [RFC 1123][rfc1123], better described +in section 3.3 of [RFC 2616][rfc2616]. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified-Detected = "Last-Modified-Detected" SEPARATOR rfc1123-date CRLF +``` + +### Server + +User agent string of the server used to retrieve the metadata of the document +described by this entity block. + +``` +Server = "Server" SEPARATOR TOKEN CRLF +``` + +### Authorized + +The user agent that retrieved the metadata of the document described by this +entity block. + +``` +Authorized = "Authorized" SEPARATOR TOKEN CRLF WORD +``` + +### Authorized-url + +URL of a page describing the user agent referred to in the `Authorized` field, +compliant with [RFC 2396][rfc2396]. +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +Authorized-url = "Authorized-url" SEPARATOR rfc2396-url CRLF +``` + +### Method + +Describes the chain of propagation that this entity block went through. + +``` +Method = "Method" SEPARATOR method-type *(SLASH method-type) (SLASH result-code) +method-type = "GET" | "HEAD" | "FILE" | "REMOTE" +result-code = +``` + +#### Method types + +GET +: Metadata retrieved using a HTTP GET request. +HEAD +: Metadata retrieved using a HTTP HEAD request. +FILE +: Metadata retrieved from a local file's timestamp. +REMOTE +: Metadata retrieved from an entity block generated by another agent. + +#### Example + +``` +Method: REMOTE/REMOTE/GET/200 +``` + +1. A first user agent retrieved the metadata on the document using a HTTP GET + and got a 200 response code (`GET/200`). +2. A second user agent retrieved the first user agent's Hina-Di file, then + propagated it to its own file (`REMOTE`). +3. A third user agent retrieved the second user agent's Hina-Di file, then + propogated it to its own file (`REMOTE`). + +### Keyword + +Words that can be used to give an overview of the document described by this +entity block; tags, categories, etc. The value of this field is case-sensitive. + +``` +Keyword = "Keyword" SEPARATOR keywords CRLF +keywords = TOKEN *(SEPARATOR TOKEN) +``` + +### Image-Width + +Width of an image described by an entity block, in pixels. + +This field MUST NOT be used for entity blocks that do not describe images. + +``` +Image-Width = "Image-Width" SEPARATOR width CRLF +width = DIGIT +``` + +### Image-Height + +Height of an image described by an entity block, in pixels. + +This field MUST NOT be used for entity blocks that do not describe images. + +``` +Image-Height = "Image-Height" SEPARATOR width CRLF +height = DIGIT +``` + +### Experimental fields + +Implementations MAY define custom fields with an X- prefix to provide +additional metadata not covered in this specification. Implementations MUST NOT +assume that all clients will use each of those fields. Clients that do not +support any experimental field SHOULD ignore them. + +``` +Experimental-field = x-field-name SEPARATOR TOKEN +x-field-name = "X-" WORD *("-" WORD) +``` + +### Undefined fields + +Any field that is not defined in this specification. Implementations that +encounter such fields and do not support them SHOULD ignore them. + +``` +Undefined-field = undef-field-name SEPARATOR TOKEN CRLF +undef-field-name = WORD *("-" WORD) +``` + +## Encoding + +The character encoding of the Hina-Di file SHOULD be specified as a parameter +of the `Content-Type` field of the header block. If it is not specified, +it defaults to `EUC-JP`. + +## Propagation + +In Hina-Di, metadata propagation consists in acquiring metadata from other +agents, then sharing it as it is in the user agent's own Hina-Di file. +This can be used for aggregation services or a peer-to-peer network. + +The `Authorized` and `Authorized-url` fields allow indicating the user agent +from which the metadata originally came from to help ensure its legitimacy. +Propagating MUST only be performed if both fields are defined and if the user +agent is trusted. + +When propagating, all fields of an entity block defined in this specification, +with the exception of experimental and undefined fields or of fields with empty +values, MUST be reproduced without modification. +Propagating experimental or undefined fields is not guaranteed. +A header block, or any field that is part of it, MUST NOT be propagated. + +The `Method` field MUST be processed according to the process described in the +Method section. + +[antenna]: http://masshy.fastwave.gr.jp/hina/release/ +[rfc822]: https://tools.ietf.org/html/rfc822 +[rfc1123]: https://tools.ietf.org/html/rfc1123 +[rfc1521]: https://tools.ietf.org/html/rfc1521 +[rfc2119]: https://tools.ietf.org/html/rfc2119 +[rfc2396]: https://tools.ietf.org/html/rfc2396 +[rfc2616]: https://tools.ietf.org/html/rfc2616 +[rfc8174]: https://tools.ietf.org/html/rfc8174 diff --git a/content/hina/specs/0.11.md b/content/hina/specs/0.11.md new file mode 100644 index 0000000..9edd90c --- /dev/null +++ b/content/hina/specs/0.11.md @@ -0,0 +1,425 @@ +--- +title: Asahina Antenna Metadata Format (HINA) 2.2, rev. 0.11 +date: May 9, 2001 +toc: true +--- + +> This document is an unofficial English translation of the original Japanese +> specification made by someone who has no knowledge of Japanese. Implement at +> your own risk. + +## Overview + +This document describes Hina-Di, the metadata format used by [Asahina +Antenna][antenna]. In this document, "metadata" is defined as data on a webpage +such as its last update time or its author. Asahina Antenna acts as a feed +reader for Hina-Di. + +## Conventions used in this document + +This document uses the Backus-Naur notation ([RFC 822][rfc822]) to formally +specify the format. + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", +"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this +document are to be interpreted as described in BCP 14 ([RFC 2119][rfc2119], +[RFC 8174][rfc8174]) when, and only when, they appear in all capitals, as shown +here. + +## Data Types + +The basic data types that constitute Hina-Di are listed below. The US-ASCII +character set is defined by ANSI X3.4-1986. + +``` +OCTET = +CHAR = +UPALPHA = +LOALPHA = +ALPHA = UPALPHA | LOALPHA +DIGIT = +WORD = 1*(ALPHA|DIGIT) + +CTL = +CR = +LF = +SP = +HT = +<"> = + +CRLF = CR LF + +TEXT = +TOKEN = + +SEPARATOR = ":" 1*(SP|HT) +DELIMITER = "," *(SP|HT) +SLASH = "/" *(SP|HT) +``` + +## Structure + +A Hina-Di file consists of a series of blocks that summarize the metadata on a +website: a header block, followed by one or more entity blocks. + +``` +hina-di = header-block + 1*( entity-block ) +``` + +### Block + +A block is a set of metadata for a document. Each metadata is represented as a +single header, in a manner similar to [RFC 822][rfc822], with a field name and a +field value. + +Field names in a block MUST be unique. A block with duplicate field names MUST +be discarded. + +Field names are case-sensitive. Field values may be case-sensitive, +depending on the field. + +``` +line-format = field-name SEPARATOR field-value CRLF +field-name = WORD *( "-" WORD) +field-value = TOKEN +``` + +### Header block + +Exactly one header block MUST appear in a Hina-Di file, and it MUST be the +first block. It holds metadata about the Hina-Di file itself. + +``` +header-block = HINA + Hinadi-Header + CRLF +Hinadi-Header = 1*( User-Agent + | Content-Type + | Date ) +``` + +### Entity block + +One or more entity blocks MUST be present after the header block. Each entity +block defines metadata about a specific document. + +``` +Entity-block = URL ( HINA-Version + | Virtual + | Content-Type + | Date + | Title + | Author-Name + | Expires + | Expire + | Last-Modified + | Last-Modified-Detected + | Server + | Authorized + | Authorized-url + | Method + | Keyword + | Image-Width + | Image-Height + | Experimental-field + | Undefined-field + CRLF ) +``` + +## Fields + +This section defines the various fields that may be found in blocks. +All fields are OPTIONAL and case-insensitive unless otherwise specified. + +### HINA + +Indicates that this is a Hina-Di file, and includes its version. +This field is REQUIRED as the first field of Hina-Di files. + +``` +HINA = "HINA" "/" hinadi-version CRLF +hinadi-version = "2.2beta" +``` + +### User-Agent + +Name of the user agent that created this Hina-Di file. +This field is REQUIRED in header blocks. +The value of this field is case-sensitive. + +``` +User-Agent = "User-Agent" SEPARATOR TOKEN CRLF +``` + +### URL + +URL of the document, compliant with [RFC 2396][rfc2396]. +This field is REQUIRED in entity blocks. +Making this field the first field of an entity block is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +URL = "URL" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +### HINA-Version + +Specifies that the integrity of the entity block was guaranteed according to +the specification of a specific Hina-Di version. +If this field is missing from an entity block, it means the block might be +incomplete. + +``` +HINA-Version = "HINA-Version" SEPARATOR version +version = "HINA" "/" 1*( DIGIT ) "." 1*( DIGIT ) +``` + +### Virtual + +URL of another Hina-Di file that holds the entity block, compliant with +[RFC 2396][rfc2396]. + +If there are fields in the entity block other than `Virtual`, then it takes the +same meaning as the regular `URL` field. + +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +Virtual = "Virtual" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +> Note that the original version of the document defines the `Virtual` feed +> as `Vitural`. + +### Content-Type + +MIME type of the Hina-Di file or the document, as described in +[RFC 1521][rfc1521]. +The value of this field is case-sensitive to the extent defined by RFC 1521. + +``` +Content-Type = "Content-Type" SEPARATOR rfc1521-type +rfc1521-type = +``` + +### Date + +The date and time when the block or the Hina-Di file was generated. +The dates MUST comply with [RFC 1123][rfc1123], better described in section 3.3 +of [RFC 2616][rfc2616]. +The value of this field is case-sensitive. + +``` +Date = "Date" SEPARATOR rfc1123-date CRLF +rfc1123-date = +``` + +### Title + +The title of the document. + +``` +Title = "Title" SEPARATOR TOKEN CRLF +``` + +### Author-Name + +Name of the author of the document. +The value of this field is case-sensitive. + +``` +Author-Name = "Author-Name" SEPARATOR TOKEN CRLF +``` + +### Expires + +Expiration date for the block. The dates MUST comply with [RFC 1123][rfc1123], +better described in section 3.3 of [RFC 2616][rfc2616]. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Expires = "Expires" SEPARATOR rfc1123-date CRLF +``` + +### Expire + +Alias for the `Expires` field, included for backwards compatibility. + +``` +Expire = "Expire" SEPARATOR rfc1123-date CRLF +``` + +### Last-Modified + +Date and time when the document was last updated. The dates MUST comply with +[RFC 1123][rfc1123], better described in section 3.3 of [RFC 2616][rfc2616]. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified = "Last-Modified" SEPARATOR rfc1123-date CRLF +``` + +### Last-Modified-Detected + +Date and time representing when the user agent retrieved the document's +metadata. The dates MUST comply with [RFC 1123][rfc1123], better described +in section 3.3 of [RFC 2616][rfc2616]. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified-Detected = "Last-Modified-Detected" SEPARATOR rfc1123-date CRLF +``` + +### Server + +User agent string of the server used to retrieve the metadata of the document +described by this entity block. + +``` +Server = "Server" SEPARATOR TOKEN CRLF +``` + +### Authorized + +The user agent that retrieved the metadata of the document described by this +entity block. + +``` +Authorized = "Authorized" SEPARATOR TOKEN CRLF WORD +``` + +### Authorized-url + +URL of a page describing the user agent referred to in the `Authorized` field, +compliant with [RFC 2396][rfc2396]. +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +Authorized-url = "Authorized-url" SEPARATOR rfc2396-url CRLF +``` + +### Method + +Describes the chain of propagation that this entity block went through. + +``` +Method = "Method" SEPARATOR method-type *(SLASH method-type) (SLASH result-code) +method-type = "GET" | "HEAD" | "FILE" | "REMOTE" +result-code = +``` + +#### Method types + +GET +: Metadata retrieved using a HTTP GET request. +HEAD +: Metadata retrieved using a HTTP HEAD request. +FILE +: Metadata retrieved from a local file's timestamp. +REMOTE +: Metadata retrieved from an entity block generated by another agent. + +#### Example + +``` +Method: REMOTE/REMOTE/GET/200 +``` + +1. A first user agent retrieved the metadata on the document using a HTTP GET + and got a 200 response code (`GET/200`). +2. A second user agent retrieved the first user agent's Hina-Di file, then + propagated it to its own file (`REMOTE`). +3. A third user agent retrieved the second user agent's Hina-Di file, then + propogated it to its own file (`REMOTE`). + +### Keyword + +Words that can be used to give an overview of the document described by this +entity block; tags, categories, etc. The value of this field is case-sensitive. + +``` +Keyword = "Keyword" SEPARATOR keywords CRLF +keywords = TOKEN *(SEPARATOR TOKEN) +``` + +### Image-Width + +Width of an image described by an entity block, in pixels. + +This field MUST NOT be used for entity blocks that do not describe images. + +``` +Image-Width = "Image-Width" SEPARATOR width CRLF +width = DIGIT +``` + +### Image-Height + +Height of an image described by an entity block, in pixels. + +This field MUST NOT be used for entity blocks that do not describe images. + +``` +Image-Height = "Image-Height" SEPARATOR width CRLF +height = DIGIT +``` + +### Experimental fields + +Implementations MAY define custom fields with an X- prefix to provide +additional metadata not covered in this specification. Implementations MUST NOT +assume that all clients will use each of those fields. Clients that do not +support any experimental field SHOULD ignore them. + +``` +Experimental-field = x-field-name SEPARATOR TOKEN +x-field-name = "X-" WORD *("-" WORD) +``` + +### Undefined fields + +Any field that is not defined in this specification. Implementations that +encounter such fields and do not support them SHOULD ignore them. + +``` +Undefined-field = undef-field-name SEPARATOR TOKEN CRLF +undef-field-name = WORD *("-" WORD) +``` + +## Encoding + +The character encoding of the Hina-Di file SHOULD be specified as a parameter +of the `Content-Type` field of the header block. If it is not specified, +it defaults to `EUC-JP`. + +## Propagation + +In Hina-Di, metadata propagation consists in acquiring metadata from other +agents, then sharing it as it is in the user agent's own Hina-Di file. +This can be used for aggregation services or a peer-to-peer network. + +The `Authorized` and `Authorized-url` fields allow indicating the user agent +from which the metadata originally came from to help ensure its legitimacy. +Propagating MUST only be performed if both fields are defined and if the user +agent is trusted. + +When propagating, all fields of an entity block defined in this specification, +with the exception of experimental and undefined fields or of fields with empty +values, MUST be reproduced without modification. +Propagating experimental or undefined fields is not guaranteed. +A header block, or any field that is part of it, MUST NOT be propagated. + +The `Method` field MUST be processed according to the process described in the +Method section. + +[antenna]: http://masshy.fastwave.gr.jp/hina/release/ +[rfc822]: https://tools.ietf.org/html/rfc822 +[rfc1123]: https://tools.ietf.org/html/rfc1123 +[rfc1521]: https://tools.ietf.org/html/rfc1521 +[rfc2119]: https://tools.ietf.org/html/rfc2119 +[rfc2396]: https://tools.ietf.org/html/rfc2396 +[rfc2616]: https://tools.ietf.org/html/rfc2616 +[rfc8174]: https://tools.ietf.org/html/rfc8174 diff --git a/content/hina/specs/0.12.md b/content/hina/specs/0.12.md new file mode 100644 index 0000000..30713d4 --- /dev/null +++ b/content/hina/specs/0.12.md @@ -0,0 +1,447 @@ +--- +title: Asahina Antenna Metadata Format (HINA) 2.2, rev. 0.12 +date: November 7, 2001 +toc: true +--- + +> This document is an unofficial English translation of the original Japanese +> specification made by someone who has no knowledge of Japanese. Implement at +> your own risk. + +## Overview + +This document describes Hina-Di, the metadata format used by [Asahina +Antenna][antenna]. In this document, "metadata" is defined as data on a webpage +such as its last update time or its author. Asahina Antenna acts as a feed +reader for Hina-Di. + +## Conventions used in this document + +This document uses the Backus-Naur notation ([RFC 822][rfc822]) to formally +specify the format. + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", +"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this +document are to be interpreted as described in BCP 14 ([RFC 2119][rfc2119], +[RFC 8174][rfc8174]) when, and only when, they appear in all capitals, as shown +here. + +## Data Types + +The basic data types that constitute Hina-Di are listed below. The US-ASCII +character set is defined by ANSI X3.4-1986. + +``` +OCTET = +CHAR = +UPALPHA = +LOALPHA = +ALPHA = UPALPHA | LOALPHA +DIGIT = +WORD = 1*(ALPHA|DIGIT) + +CTL = +CR = +LF = +SP = +HT = +<"> = + +CRLF = CR LF + +TEXT = +TOKEN = + +SEPARATOR = ":" 1*(SP|HT) +DELIMITER = "," *(SP|HT) +SLASH = "/" *(SP|HT) +``` + +## Structure + +A Hina-Di file consists of a series of blocks that summarize the metadata on a +website: a header block, followed by one or more entity blocks. + +``` +hina-di = header-block + 1*( entity-block ) +``` + +### Block + +A block is a set of metadata for a document. Each metadata is represented as a +single header, in a manner similar to [RFC 822][rfc822], with a field name and a +field value. + +Field names in a block MUST be unique. A block with duplicate field names MUST +be discarded. + +Field names are case-sensitive. Field values may be case-sensitive, +depending on the field. + +``` +line-format = field-name SEPARATOR field-value CRLF +field-name = WORD *( "-" WORD) +field-value = TOKEN +``` + +### Header block + +Exactly one header block MUST appear in a Hina-Di file, and it MUST be the +first block. It holds metadata about the Hina-Di file itself. + +``` +header-block = HINA + Hinadi-Header + CRLF +Hinadi-Header = 1*( User-Agent + | Content-Type + | Date ) +``` + +### Entity block + +One or more entity blocks MUST be present after the header block. Each entity +block defines metadata about a specific document. + +``` +Entity-block = URL ( HINA-Version + | Virtual + | Content-Type + | Date + | Title + | Author-Name + | Expires + | Expire + | Last-Modified + | Last-Modified-Detected + | Server + | Authorized + | Authorized-url + | Method + | Keyword + | Image-Width + | Image-Height + | Experimental-field + | Undefined-field ) + CRLF +``` + +## Fields + +This section defines the various fields that may be found in blocks. +All fields are OPTIONAL and case-insensitive unless otherwise specified. + +### HINA + +Indicates that this is a Hina-Di file, and includes its version. +This field is REQUIRED as the first field of Hina-Di files. + +``` +HINA = "HINA" "/" hinadi-version CRLF +hinadi-version = "2.2beta" +``` + +### User-Agent + +Name of the user agent that created this Hina-Di file. +This field is REQUIRED in header blocks. +The value of this field is case-sensitive. + +``` +User-Agent = "User-Agent" SEPARATOR TOKEN CRLF +``` + +### URL + +URL of the document, compliant with [RFC 2396][rfc2396]. + +This field is REQUIRED in entity blocks. +Making this field the first field of an entity block is RECOMMENDED. + +The scheme and domain portions of the URL are not case-sensitive. +If the other portions of the URL are not case-insensitive, they SHOULD be +written using lowercase characters. + +``` +URL = "URL" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +Implementations can use this field as a unique key that distinguishes the +entity block from other blocks. To ensure proper uniqueness of this field, +the following conditions MUST be respected by the providing Hina-Di user +agents or their administrators: + +* If the URL can end in a slash (`/`), then it SHOULD end in a slash. + Prefer `http://www.hoge.jp/foo/` over `http://www.hoge.jp/foo` +* If the URL includes a file name, but the file name can be omitted, + then it SHOULD be omitted. + Prefer `http://www.hoge.jp/foo/` over `http://www.hoge.jp/foo/index.html` + +### HINA-Version + +Specifies that the integrity of the entity block was guaranteed according to +the specification of a specific Hina-Di version. +If this field is missing from an entity block, it means the block might be +incomplete. + +``` +HINA-Version = "HINA-Version" SEPARATOR version +version = "HINA" "/" 1*( DIGIT ) "." 1*( DIGIT ) +``` + +### Virtual + +URL of another Hina-Di file that holds the entity block, compliant with +[RFC 2396][rfc2396]. + +If there are fields in the entity block other than `Virtual`, then it takes the +same meaning as the regular `URL` field. + +The case-sensitivity and URL uniqueness conditions defined for the `URL` field +MUST be followed for this field. + +``` +Virtual = "Virtual" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +> Note that the original version of the document defines the `Virtual` feed +> as `Vitural`. + +### Content-Type + +MIME type of the Hina-Di file or the document, as described in +[RFC 1521][rfc1521]. +The value of this field is case-sensitive to the extent defined by RFC 1521. + +``` +Content-Type = "Content-Type" SEPARATOR rfc1521-type +rfc1521-type = +``` + +### Date + +The date and time when the block or the Hina-Di file was generated. +The dates MUST comply with [RFC 1123][rfc1123], better described in section 3.3 +of [RFC 2616][rfc2616]. +The value of this field is case-sensitive. + +``` +Date = "Date" SEPARATOR rfc1123-date CRLF +rfc1123-date = +``` + +### Title + +The title of the document. + +``` +Title = "Title" SEPARATOR TOKEN CRLF +``` + +### Author-Name + +Name of the author of the document. +The value of this field is case-sensitive. + +``` +Author-Name = "Author-Name" SEPARATOR TOKEN CRLF +``` + +### Expires + +Expiration date for the block. The dates MUST comply with [RFC 1123][rfc1123], +better described in section 3.3 of [RFC 2616][rfc2616]. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Expires = "Expires" SEPARATOR rfc1123-date CRLF +``` + +### Expire + +Alias for the `Expires` field, included for backwards compatibility. + +``` +Expire = "Expire" SEPARATOR rfc1123-date CRLF +``` + +### Last-Modified + +Date and time when the document was last updated. The dates MUST comply with +[RFC 1123][rfc1123], better described in section 3.3 of [RFC 2616][rfc2616]. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified = "Last-Modified" SEPARATOR rfc1123-date CRLF +``` + +### Last-Modified-Detected + +Date and time representing when the user agent retrieved the document's +metadata. The dates MUST comply with [RFC 1123][rfc1123], better described +in section 3.3 of [RFC 2616][rfc2616]. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified-Detected = "Last-Modified-Detected" SEPARATOR rfc1123-date CRLF +``` + +### Server + +User agent string of the server used to retrieve the metadata of the document +described by this entity block. + +``` +Server = "Server" SEPARATOR TOKEN CRLF +``` + +### Authorized + +The user agent that retrieved the metadata of the document described by this +entity block. + +``` +Authorized = "Authorized" SEPARATOR TOKEN CRLF WORD +``` + +### Authorized-url + +URL of a page describing the user agent referred to in the `Authorized` field, +compliant with [RFC 2396][rfc2396]. + +The case-sensitivity and URL uniqueness conditions defined for the `URL` field +MUST be followed for this field. + +``` +Authorized-url = "Authorized-url" SEPARATOR rfc2396-url CRLF +``` + +### Method + +Describes the chain of propagation that this entity block went through. + +``` +Method = "Method" SEPARATOR method-type *(SLASH method-type) (SLASH result-code) +method-type = "GET" | "HEAD" | "FILE" | "REMOTE" +result-code = +``` + +#### Method types + +GET +: Metadata retrieved using a HTTP GET request. +HEAD +: Metadata retrieved using a HTTP HEAD request. +FILE +: Metadata retrieved from a local file's timestamp. +REMOTE +: Metadata retrieved from an entity block generated by another agent. + +#### Example + +``` +Method: REMOTE/REMOTE/GET/200 +``` + +1. A first user agent retrieved the metadata on the document using a HTTP GET + and got a 200 response code (`GET/200`). +2. A second user agent retrieved the first user agent's Hina-Di file, then + propagated it to its own file (`REMOTE`). +3. A third user agent retrieved the second user agent's Hina-Di file, then + propogated it to its own file (`REMOTE`). + +### Keyword + +Words that can be used to give an overview of the document described by this +entity block; tags, categories, etc. The value of this field is case-sensitive. + +``` +Keyword = "Keyword" SEPARATOR keywords CRLF +keywords = TOKEN *(SEPARATOR TOKEN) +``` + +### Image-Width + +Width of an image described by an entity block, in pixels. + +This field MUST NOT be used for entity blocks that do not describe images. + +``` +Image-Width = "Image-Width" SEPARATOR width CRLF +width = DIGIT +``` + +### Image-Height + +Height of an image described by an entity block, in pixels. + +This field MUST NOT be used for entity blocks that do not describe images. + +``` +Image-Height = "Image-Height" SEPARATOR width CRLF +height = DIGIT +``` + +### Experimental fields + +Implementations MAY define custom fields with an X- prefix to provide +additional metadata not covered in this specification. Implementations MUST NOT +assume that all clients will use each of those fields. Clients that do not +support any experimental field SHOULD ignore them. + +Experimental fields MAY include data that is not directly related to metadata +that the document has, and SHOULD be used shall a field for that purpose be +created by an implementor. + +``` +Experimental-field = x-field-name SEPARATOR TOKEN +x-field-name = "X-" WORD *("-" WORD) +``` + +### Undefined fields + +Any field that is not defined in this specification. Implementations that +encounter such fields and do not support them SHOULD ignore them. + +``` +Undefined-field = undef-field-name SEPARATOR TOKEN CRLF +undef-field-name = WORD *("-" WORD) +``` + +## Encoding + +The character encoding of the Hina-Di file SHOULD be specified as a parameter +of the `Content-Type` field of the header block. If it is not specified, +it defaults to `EUC-JP`. + +## Propagation + +In Hina-Di, metadata propagation consists in acquiring metadata from other +agents, then sharing it as it is in the user agent's own Hina-Di file. +This can be used for aggregation services or a peer-to-peer network. + +The `Authorized` and `Authorized-url` fields allow indicating the user agent +from which the metadata originally came from to help ensure its legitimacy. +Propagating MUST only be performed if both fields are defined and if the user +agent is trusted. + +When propagating, all fields of an entity block defined in this specification, +with the exception of experimental and undefined fields or of fields with empty +values, MUST be reproduced without modification. +Propagating experimental or undefined fields is not guaranteed. +A header block, or any field that is part of it, MUST NOT be propagated. + +The `Method` field MUST be processed according to the process described in the +Method section. + +[antenna]: http://masshy.fastwave.gr.jp/hina/release/ +[rfc822]: https://tools.ietf.org/html/rfc822 +[rfc1123]: https://tools.ietf.org/html/rfc1123 +[rfc1521]: https://tools.ietf.org/html/rfc1521 +[rfc2119]: https://tools.ietf.org/html/rfc2119 +[rfc2396]: https://tools.ietf.org/html/rfc2396 +[rfc2616]: https://tools.ietf.org/html/rfc2616 +[rfc8174]: https://tools.ietf.org/html/rfc8174 diff --git a/content/hina/specs/0.13.md b/content/hina/specs/0.13.md new file mode 100644 index 0000000..c3e6ccf --- /dev/null +++ b/content/hina/specs/0.13.md @@ -0,0 +1,491 @@ +--- +title: Asahina Antenna Metadata Format (HINA) 2.2, rev. 0.13 +date: July 19, 2002 +toc: true +--- + +> This document is an unofficial English translation of the original Japanese +> specification made by someone who has no knowledge of Japanese. Implement at +> your own risk. + +## Overview + +This document describes Hina-Di, the metadata format used by [Asahina +Antenna][antenna]. In this document, "metadata" is defined as data on a webpage +such as its last update time or its author. Asahina Antenna acts as a feed +reader for Hina-Di. + +## Conventions used in this document + +This document uses the Backus-Naur notation ([RFC 822][rfc822]) to formally +specify the format. + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", +"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this +document are to be interpreted as described in BCP 14 ([RFC 2119][rfc2119], +[RFC 8174][rfc8174]) when, and only when, they appear in all capitals, as shown +here. + +## Data Types + +The basic data types that constitute Hina-Di are listed below. The US-ASCII +character set is defined by ANSI X3.4-1986. + +``` +OCTET = +CHAR = +UPALPHA = +LOALPHA = +ALPHA = UPALPHA | LOALPHA +DIGIT = +WORD = 1*(ALPHA|DIGIT) + +CTL = +CR = +LF = +SP = +HT = +<"> = + +CRLF = CR LF + +TEXT = +TOKEN = + +SEPARATOR = ":" 1*(SP|HT) +DELIMITER = "," *(SP|HT) +SLASH = "/" *(SP|HT) +``` + +## Structure + +A Hina-Di file consists of a series of blocks that summarize the metadata on a +website: a header block, followed by one or more entity blocks. + +``` +hina-di = header-block + 1*( entity-block ) +``` + +### Block + +A block is a set of metadata for a document. Each metadata is represented as a +single header, in a manner similar to [RFC 822][rfc822], with a field name and a +field value. + +Field names in a block MUST be unique. A block with duplicate field names MUST +be discarded. + +Field names are case-insensitive. Unless explicitly stated for a particular +field, a field's value is case-insensitive. + +``` +line-format = field-name SEPARATOR field-value CRLF +field-name = WORD *( "-" WORD) +field-value = TOKEN +``` + +### Header block + +Exactly one header block MUST appear in a Hina-Di file, and it MUST be the +first block. It holds metadata about the Hina-Di file itself. + +``` +header-block = HINA + Hinadi-Header + CRLF +Hinadi-Header = 1*( User-Agent + | Content-Type + | Date ) +``` + +### Entity block + +One or more entity blocks MUST be present after the header block. Each entity +block defines metadata about a specific document. + +``` +Entity-block = URL ( HINA-Version + | Virtual + | Content-Type + | Date + | Title + | Author-Name + | Expires + | Expire + | Last-Modified + | Last-Modified-Detected + | Server + | Authorized + | Authorized-url + | Method + | Keyword + | Image-Width + | Image-Height + | Experimental-field + | Undefined-field ) + CRLF +``` + +## Fields + +This section defines the various fields that may be found in blocks. +All fields are OPTIONAL and case-insensitive unless otherwise specified. + +### HINA + +Indicates that this is a Hina-Di file, and includes its version. +This field is REQUIRED as the first field of Hina-Di files. + +``` +HINA = "HINA" "/" hinadi-version CRLF +hinadi-version = "2.2beta" +``` + +### User-Agent + +Name of the user agent that created this Hina-Di file. +This field is REQUIRED in header blocks. +The value of this field is case-sensitive. + +``` +User-Agent = "User-Agent" SEPARATOR TOKEN CRLF +``` + +### URL + +URL of the document, compliant with [RFC 2396][rfc2396]. + +This field is REQUIRED in entity blocks. +Making this field the first field of an entity block is RECOMMENDED. + +The scheme and domain portions of the URL are not case-sensitive. +If the other portions of the URL are not case-insensitive, they SHOULD be +written using lowercase characters. + +``` +URL = "URL" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +Implementations can use this field as a unique key that distinguishes the +entity block from other blocks. To ensure proper uniqueness of this field, +the following conditions MUST be respected by the providing Hina-Di user +agents or their administrators: + +* If the URL can end in a slash (`/`), then it SHOULD end in a slash. + Prefer `http://www.hoge.jp/foo/` over `http://www.hoge.jp/foo` +* If the URL includes a file name, but the file name can be omitted, + then it SHOULD be omitted. + Prefer `http://www.hoge.jp/foo/` over `http://www.hoge.jp/foo/index.html` + +### HINA-Version + +Specifies that the integrity of the entity block was guaranteed according to +the specification of a specific Hina-Di version. +If this field is missing from an entity block, it means the block might be +incomplete. + +``` +HINA-Version = "HINA-Version" SEPARATOR version +version = "HINA" "/" 1*( DIGIT ) "." 1*( DIGIT ) +``` + +### Virtual + +URL of another Hina-Di file that holds the entity block, compliant with +[RFC 2396][rfc2396]. + +If there are fields in the entity block other than `Virtual`, then it takes the +same meaning as the regular `URL` field. + +The case-sensitivity and URL uniqueness conditions defined for the `URL` field +MUST be followed for this field. + +``` +Virtual = "Virtual" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +> Note that the original version of the document defines the `Virtual` feed +> as `Vitural`. + +### Content-Type + +MIME type of the Hina-Di file or the document, as described in +[RFC 1521][rfc1521]. +The value of this field is case-sensitive to the extent defined by RFC 1521. + +``` +Content-Type = "Content-Type" SEPARATOR rfc1521-type CRLF +rfc1521-type = "Content-Type" ":" type "/" subtype *(";"parameter) +type = "application" + | "audio" + | "image" + | "message" + | "multipart" + | "text" + | "video" + | extension-token +extension-token = x-token / iana-token +iana-token = +x-token = +subtype = TOKEN +parameter = attribute "=" value +attribute = TOKEN ; case-insensitive + +value = token / quoted-string + +token = 1* + +tspecials = "(" / ")" / "<" / ">" / "@" + / "," / ";" / ":" / "¥" / <"> + / "/" / "[" / "]" / "?" / "=" + ; Must be in quoted-string to use within parameter values +``` + +### Date + +The date and time when the block or the Hina-Di file was generated. +The dates MUST comply with [RFC 1123][rfc1123]. +The value of this field is case-sensitive. + +``` +Date = "Date" SEPARATOR rfc1123-date CRLF +rfc1123-date = wkday "," SP day-month-year SP time SP "GMT" +wkday = "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat" | "Sun" +day-month-year = 2*DIGIT SP month SP 4*DIGIT ; day month year (e.g. 02 Jun 1982) +time = 2*DIGIT ":" 2*DIGIT ":" 2*DIGIT ; 00:00:00 - 23:59:59 +month = "Jan" | "Feb" | "Mar" | "Apr" + | "May" | "Jun" | "Jul" | "Aug" + | "Sep" | "Oct" | "Nov" | "Dec" +``` + +### Title + +The title of the document. + +``` +Title = "Title" SEPARATOR TOKEN CRLF +``` + +### Author-Name + +Name of the author of the document. +The value of this field is case-sensitive. + +``` +Author-Name = "Author-Name" SEPARATOR TOKEN CRLF +``` + +### Expires + +Expiration date for the block. The dates MUST comply with [RFC 1123][rfc1123]. +The value of this field is case-sensitive to the extent defined by RFC 1123. + +``` +Expires = "Expires" SEPARATOR rfc1123-date CRLF +``` + +### Expire + +Alias for the `Expires` field, included for backwards compatibility. + +``` +Expire = "Expire" SEPARATOR rfc1123-date CRLF +``` + +### Last-Modified + +Date and time when the document was last updated. The dates MUST comply with +[RFC 1123][rfc1123]. +The value of this field is case-sensitive to the extent defined by RFC 1123. + +``` +Last-Modified = "Last-Modified" SEPARATOR rfc1123-date CRLF +``` + +### Last-Modified-Detected + +Date and time representing when the user agent retrieved the document's +metadata. The dates MUST comply with [RFC 1123][rfc1123]. +The value of this field is case-sensitive to the extent defined by RFC 1123. + +``` +Last-Modified-Detected = "Last-Modified-Detected" SEPARATOR rfc1123-date CRLF +``` + +### Server + +User agent string of the server used to retrieve the metadata of the document +described by this entity block. + +``` +Server = "Server" SEPARATOR TOKEN CRLF +``` + +### Authorized + +The user agent that retrieved the metadata of the document described by this +entity block. + +``` +Authorized = "Authorized" SEPARATOR TOKEN CRLF WORD +``` + +### Authorized-url + +URL of a page describing the user agent referred to in the `Authorized` field, +compliant with [RFC 2396][rfc2396]. + +The case-sensitivity and URL uniqueness conditions defined for the `URL` field +MUST be followed for this field. + +``` +Authorized-url = "Authorized-url" SEPARATOR rfc2396-url CRLF +``` + +### Method + +Describes the chain of propagation that this entity block went through. + +``` +Method = "Method" SEPARATOR method-type *(SLASH method-type) (SLASH result-code) +method-type = "GET" | "HEAD" | "FILE" | "REMOTE" +result-code = +``` + +#### Method types + +GET +: Metadata retrieved using a HTTP GET request. +HEAD +: Metadata retrieved using a HTTP HEAD request. +FILE +: Metadata retrieved from a local file's timestamp. +REMOTE +: Metadata retrieved from an entity block generated by another agent. + +#### Example + +``` +Method: REMOTE/REMOTE/GET/200 +``` + +1. A first user agent retrieved the metadata on the document using a HTTP GET + and got a 200 response code (`GET/200`). +2. A second user agent retrieved the first user agent's Hina-Di file, then + propagated it to its own file (`REMOTE`). +3. A third user agent retrieved the second user agent's Hina-Di file, then + propogated it to its own file (`REMOTE`). + +### Keyword + +Words that can be used to give an overview of the document described by this +entity block; tags, categories, etc. The value of this field is case-sensitive. + +``` +Keyword = "Keyword" SEPARATOR keywords CRLF +keywords = TOKEN *(SEPARATOR TOKEN) +``` + +### Image-Width + +Width of an image described by an entity block, in pixels. + +This field MUST NOT be used for entity blocks that do not describe images. + +``` +Image-Width = "Image-Width" SEPARATOR width CRLF +width = DIGIT +``` + +### Image-Height + +Height of an image described by an entity block, in pixels. + +This field MUST NOT be used for entity blocks that do not describe images. + +``` +Image-Height = "Image-Height" SEPARATOR width CRLF +height = DIGIT +``` + +### Experimental fields + +Implementations MAY define custom fields with an X- prefix to provide +additional metadata not covered in this specification. Implementations MUST NOT +assume that all clients will use each of those fields. Clients that do not +support any experimental field SHOULD ignore them. + +Experimental fields MAY include data that is not directly related to metadata +that the document has, and SHOULD be used shall a field for that purpose be +created by an implementor. + +``` +Experimental-field = x-field-name SEPARATOR TOKEN +x-field-name = "X-" WORD *("-" WORD) +``` + +### Undefined fields + +Any field that is not defined in this specification. Implementations that +encounter such fields and do not support them SHOULD ignore them. + +``` +Undefined-field = undef-field-name SEPARATOR TOKEN CRLF +undef-field-name = WORD *("-" WORD) +``` + +## Encoding + +The character encoding of the Hina-Di file SHOULD be specified as a parameter +of the `Content-Type` field of the header block. If it is not specified, +it defaults to `EUC-JP`. + +## Propagation + +In Hina-Di, metadata propagation consists in acquiring metadata from other +agents, then sharing it as it is in the user agent's own Hina-Di file. +This can be used for aggregation services or a peer-to-peer network. + +The `Authorized` and `Authorized-url` fields allow indicating the user agent +from which the metadata originally came from to help ensure its legitimacy. +Propagating MUST only be performed if both fields are defined and if the user +agent is trusted. + +When propagating, all fields of an entity block defined in this specification, +with the exception of experimental and undefined fields or of fields with empty +values, MUST be reproduced without modification. +Propagating experimental or undefined fields is not guaranteed. +A header block, or any field that is part of it, MUST NOT be propagated. + +The `Method` field MUST be processed according to the process described in the +Method section. + +## Appendix: Related terms + +Asahina-Antenna +: Metadata acquisition agent based on Hina-Di. +metadata +: Information about the content, such as the author, title and update time. +hina-di +: Metadata transfer format used by Asahina-Antenna 2.x. +hina.txt +: Metadata transfer format used by Asahina-Antenna 1.x, +: made obsolete by hina-di. +DI +: Document Information. Metadata transfer format used by [DIXS][dixs]. +: Hina-Di has been influenced by DI. + +[antenna]: http://masshy.fastwave.gr.jp/hina/release/ +[dixs]: https://web.archive.org/web/20040726230104/http://docinfo.jin.gr.jp/ +[rfc822]: https://tools.ietf.org/html/rfc822 +[rfc1123]: https://tools.ietf.org/html/rfc1123 +[rfc1521]: https://tools.ietf.org/html/rfc1521 +[rfc2119]: https://tools.ietf.org/html/rfc2119 +[rfc2396]: https://tools.ietf.org/html/rfc2396 +[rfc8174]: https://tools.ietf.org/html/rfc8174 diff --git a/content/hina/specs/0.5.md b/content/hina/specs/0.5.md new file mode 100644 index 0000000..7e70946 --- /dev/null +++ b/content/hina/specs/0.5.md @@ -0,0 +1,322 @@ +--- +title: Asahina Antenna Metadata Format (HINA) 2.2, rev. 0.5 +date: September 23, 2000 +toc: true +--- + +> This document is an unofficial English translation of the original Japanese +> specification made by someone who has no knowledge of Japanese. Implement at +> your own risk. + +## Overview + +This document describes Hina-Di, the metadata format used by [Asahina +Antenna][antenna]. In this document, "metadata" is defined as data on a webpage +such as its last update time or its author. Asahina Antenna acts as a feed +reader for Hina-Di. + +## Conventions used in this document + +This document uses the Backus-Naur notation ([RFC 822][rfc822]) to formally +specify the format. + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", +"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this +document are to be interpreted as described in BCP 14 ([RFC 2119][rfc2119], +[RFC 8174][rfc8174]) when, and only when, they appear in all capitals, as shown +here. + +## Data Types + +The basic data types that constitute Hina-Di are listed below. The US-ASCII +character set is defined by ANSI X3.4-1986. + +``` +OCTET = +CHAR = +UPALPHA = +LOALPHA = +ALPHA = UPALPHA | LOALPHA +DIGIT = +WORD = <1*(ALPHA|DIGIT) but excluding ":" and "-"> + +CTL = +CR = +LF = +SP = +HT = +<"> = + +CRLF = CR LF + +TEXT = +TOKEN = + +SEPARATOR = ":" 1*( SP | HT ) +DELIMITER = "," *(SP|HT) +``` + +## Structure + +A Hina-Di file consists of a series of blocks that summarize the metadata on a +website: a header block, followed by one or more entity blocks. + +``` +hina-di = header-block + 1*( entity-block ) +``` + +### Block + +A block is a set of metadata for a document. Each metadata is represented as a +single header, in a manner similar to [RFC 822][rfc822], with a field name and a +field value. Field names are case-sensitive. Field values may be +case-sensitive, depending on the field. + +``` +line-format = field-name SEPARATOR field-value CRLF +field-name = WORD *( "-" WORD) +field-value = TOKEN +``` + +### Header block + +Exactly one header block MUST appear in a Hina-Di file, and it MUST be the +first block. It holds metadata about the Hina-Di file itself. + +``` +header-block = HINA + Optional-Header + CRLF +Optional-Header = 1*( User-Agent + | Content-Type + | Date ) +``` + +### Entity block + +One or more entity blocks MUST be present after the header block. Each entity +block defines metadata about a specific document. + +``` +Entity-block = 1*( URL + | Content-Type + | Date + | Title + | Author-Name + | Expires + | Expire + | Last-Modified + | Last-Modified-Detected + | Server + | Authorized + | Authorized-url + | Method + | Keyword + | Experimental-field + | Undefined-field + CRLF ) +``` + +## Fields + +This section defines the various fields that may be found in blocks. +All fields are OPTIONAL and case-insensitive unless otherwise specified. + +### HINA + +Indicates that this is a Hina-Di file, and includes its version. +This field is REQUIRED as the first field of Hina-Di files. + +``` +HINA = "HINA" "/" hinadi-version CRLF +hinadi-version = "2.2" +``` + +### User-Agent + +Name of the user agent that created this Hina-Di file. +This field is REQUIRED in header blocks. +The value of this field is case-sensitive. + +``` +User-Agent = "User-Agent" SEPARATOR TOKEN CRLF +``` + +### URL + +URL of the document, compliant with [RFC 2396][rfc2396]. +This field is REQUIRED in entity blocks. +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +URL = "URL" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +### Content-Type + +MIME type of the Hina-Di file or the document, as described in +[RFC 1521][rfc1521]. +The value of this field is case-sensitive to the extent defined by RFC 1521. + +``` +Content-Type = "Content-Type" SEPARATOR rfc1521-type +rfc1521-type = +``` + +### Date + +The date and time when the block was generated. The dates MUST comply with +section 3.3 of [RFC 2616][rfc2616], but [RFC 1123][rfc1123] compliance is +RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Date = "Date" SEPARATOR rfc2616-date CRLF +rfc2616-date = +``` + +### Title + +The title of the document. + +``` +Title = "Title" SEPARATOR TOKEN CRLF +``` + +### Author-Name + +Name of the author of the document. + +``` +Author-Name = "Author-Name" SEPARATOR TOKEN CRLF +``` + +### Expires + +Expiration date for the block. The dates MUST comply with section 3.3 of +[RFC 2616][rfc2616], but [RFC 1123][rfc1123] compliance is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Expires = "Expires" SEPARATOR rfc2616-date CRLF +``` + +### Expire + +Alias for the `Expires` field, included for backwards compatibility. + +``` +Expire = "Expire" SEPARATOR rfc2616-date CRLF +``` + +### Last-Modified + +Date and time when the document was last updated. The dates MUST comply with +section 3.3 of [RFC 2616][rfc2616], but [RFC 1123][rfc1123] compliance is +RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified = "Last-Modified" SEPARATOR rfc2616-date CRLF +``` + +### Last-Modified-Detected + +Date and time representing when the user agent retrieved the document's +metadata. The dates MUST comply with section 3.3 of [RFC 2616][rfc2616], but +[RFC 1123][rfc1123] compliance is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified-Detected = "Last-Modified-Detected" SEPARATOR rfc2616-date CRLF +``` + +### Server + +User agent string of the server used to retrieve the metadata of the document +described by this entity block. + +``` +Server = "Server" SEPARATOR TOKEN CRLF +``` + +### Authorized + +The user agent that retrieved the metadata of the document described by this +entity block. + +``` +Authorized = "Authorized" SEPARATOR TOKEN CRLF +``` + +### Authorized-url + +URL of a page describing the user agent referred to in the `Authorized` field, +compliant with [RFC 2396][rfc2396]. +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +Authorized-url = "Authorized-url" SEPARATOR rfc2396-url CRLF +``` + +### Method + +To be determined. Example: `Method: REMOTE/GET/200` + +### Keyword + +Words that can be used to give an overview of the document described by this +entity block; tags, categories, etc. The value of this field is case-sensitive. + +``` +Keyword = "Keyword" SEPARATOR keywords CRLF +keywords = TOKEN *(DELIMITER TOKEN) +``` + +### Experimental fields + +Implementations MAY define custom fields with an X- prefix to provide +additional metadata not covered in this specification. Implementations MUST NOT +assume that all clients will use each of those fields. Clients that do not +support any experimental field SHOULD ignore them. + +``` +Experimental-field = x-field-name SEPARATOR TOKEN +x-field-name = "X-" WORD *("-" WORD) +``` + +### Undefined fields + +Any field that is not defined in this specification. Implementations that +encounter such fields and do not support them SHOULD ignore them. + +``` +Undefined-field = undef-field-name SEPARATOR TOKEN CRLF +undef-field-name = WORD *("-" WORD) +``` + +## Propagation + +In Hina-Di, metadata propagation consists in acquiring metadata from other +agents, then sharing it as it is in the user agent's own Hina-Di file. This can +be used for aggregation services or a peer-to-peer network. + +The `Authorized` and `Authorized-url` fields allow indicating the user agent +from which the metadata originally came from to help ensure its legitimacy. + +When propagating, all fields of an entity block defined in this specification, +with the exception of experimental and undefined fields, MUST be reproduced +without modification. Propagating experimental or undefined fields is not +guaranteed. A header block MUST NOT be propagated. + +[antenna]: http://masshy.fastwave.gr.jp/hina/release/ +[rfc822]: https://tools.ietf.org/html/rfc822 +[rfc1123]: https://tools.ietf.org/html/rfc1123 +[rfc1521]: https://tools.ietf.org/html/rfc1521 +[rfc2119]: https://tools.ietf.org/html/rfc2119 +[rfc2396]: https://tools.ietf.org/html/rfc2396 +[rfc2616]: https://tools.ietf.org/html/rfc2616 +[rfc8174]: https://tools.ietf.org/html/rfc8174 diff --git a/content/hina/specs/0.6.md b/content/hina/specs/0.6.md new file mode 100644 index 0000000..a32bab2 --- /dev/null +++ b/content/hina/specs/0.6.md @@ -0,0 +1,327 @@ +--- +title: Asahina Antenna Metadata Format (HINA) 2.2, rev. 0.6 +date: September 24, 2000 +toc: true +--- + +> This document is an unofficial English translation of the original Japanese +> specification made by someone who has no knowledge of Japanese. Implement at +> your own risk. + +## Overview + +This document describes Hina-Di, the metadata format used by [Asahina +Antenna][antenna]. In this document, "metadata" is defined as data on a webpage +such as its last update time or its author. Asahina Antenna acts as a feed +reader for Hina-Di. + +## Conventions used in this document + +This document uses the Backus-Naur notation ([RFC 822][rfc822]) to formally +specify the format. + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", +"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this +document are to be interpreted as described in BCP 14 ([RFC 2119][rfc2119], +[RFC 8174][rfc8174]) when, and only when, they appear in all capitals, as shown +here. + +## Data Types + +The basic data types that constitute Hina-Di are listed below. The US-ASCII +character set is defined by ANSI X3.4-1986. + +``` +OCTET = +CHAR = +UPALPHA = +LOALPHA = +ALPHA = UPALPHA | LOALPHA +DIGIT = +WORD = <1*(ALPHA|DIGIT) but excluding ":" and "-"> + +CTL = +CR = +LF = +SP = +HT = +<"> = + +CRLF = CR LF + +TEXT = +TOKEN = + +SEPARATOR = ":" 1*( SP | HT ) +DELIMITER = "," *(SP|HT) +``` + +## Structure + +A Hina-Di file consists of a series of blocks that summarize the metadata on a +website: a header block, followed by one or more entity blocks. + +``` +hina-di = header-block + 1*( entity-block ) +``` + +### Block + +A block is a set of metadata for a document. Each metadata is represented as a +single header, in a manner similar to [RFC 822][rfc822], with a field name and a +field value. Field names are case-sensitive. Field values may be +case-sensitive, depending on the field. + +``` +line-format = field-name SEPARATOR field-value CRLF +field-name = WORD *( "-" WORD) +field-value = TOKEN +``` + +### Header block + +Exactly one header block MUST appear in a Hina-Di file, and it MUST be the +first block. It holds metadata about the Hina-Di file itself. + +``` +header-block = HINA + Hinadi-Header + CRLF +Hinadi-Header = 1*( User-Agent + | Content-Type + | Date ) +``` + +### Entity block + +One or more entity blocks MUST be present after the header block. Each entity +block defines metadata about a specific document. + +``` +Entity-block = 1*( URL + | Content-Type + | Date + | Title + | Author-Name + | Expires + | Expire + | Last-Modified + | Last-Modified-Detected + | Server + | Authorized + | Authorized-url + | Method + | Keyword + | Experimental-field + | Undefined-field + CRLF ) +``` + +## Fields + +This section defines the various fields that may be found in blocks. +All fields are OPTIONAL and case-insensitive unless otherwise specified. + +### HINA + +Indicates that this is a Hina-Di file, and includes its version. +This field is REQUIRED as the first field of Hina-Di files. + +``` +HINA = "HINA" "/" hinadi-version CRLF +hinadi-version = "2.2" +``` + +### User-Agent + +Name of the user agent that created this Hina-Di file. +This field is REQUIRED in header blocks. +The value of this field is case-sensitive. + +``` +User-Agent = "User-Agent" SEPARATOR TOKEN CRLF +``` + +### URL + +URL of the document, compliant with [RFC 2396][rfc2396]. +This field is REQUIRED in entity blocks. +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +URL = "URL" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +### Content-Type + +MIME type of the Hina-Di file or the document, as described in +[RFC 1521][rfc1521]. +The value of this field is case-sensitive to the extent defined by RFC 1521. + +``` +Content-Type = "Content-Type" SEPARATOR rfc1521-type +rfc1521-type = +``` + +### Date + +The date and time when the block was generated. The dates MUST comply with +section 3.3 of [RFC 2616][rfc2616], but [RFC 1123][rfc1123] compliance is +RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Date = "Date" SEPARATOR rfc2616-date CRLF +rfc2616-date = +``` + +### Title + +The title of the document. + +``` +Title = "Title" SEPARATOR TOKEN CRLF +``` + +### Author-Name + +Name of the author of the document. + +``` +Author-Name = "Author-Name" SEPARATOR TOKEN CRLF +``` + +### Expires + +Expiration date for the block. The dates MUST comply with section 3.3 of +[RFC 2616][rfc2616], but [RFC 1123][rfc1123] compliance is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Expires = "Expires" SEPARATOR rfc2616-date CRLF +``` + +### Expire + +Alias for the `Expires` field, included for backwards compatibility. + +``` +Expire = "Expire" SEPARATOR rfc2616-date CRLF +``` + +### Last-Modified + +Date and time when the document was last updated. The dates MUST comply with +section 3.3 of [RFC 2616][rfc2616], but [RFC 1123][rfc1123] compliance is +RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified = "Last-Modified" SEPARATOR rfc2616-date CRLF +``` + +### Last-Modified-Detected + +Date and time representing when the user agent retrieved the document's +metadata. The dates MUST comply with section 3.3 of [RFC 2616][rfc2616], but +[RFC 1123][rfc1123] compliance is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified-Detected = "Last-Modified-Detected" SEPARATOR rfc2616-date CRLF +``` + +### Server + +User agent string of the server used to retrieve the metadata of the document +described by this entity block. + +``` +Server = "Server" SEPARATOR TOKEN CRLF +``` + +### Authorized + +The user agent that retrieved the metadata of the document described by this +entity block. + +``` +Authorized = "Authorized" SEPARATOR TOKEN CRLF +``` + +### Authorized-url + +URL of a page describing the user agent referred to in the `Authorized` field, +compliant with [RFC 2396][rfc2396]. +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +Authorized-url = "Authorized-url" SEPARATOR rfc2396-url CRLF +``` + +### Method + +To be determined. Example: `Method: REMOTE/GET/200` + +### Keyword + +Words that can be used to give an overview of the document described by this +entity block; tags, categories, etc. The value of this field is case-sensitive. + +``` +Keyword = "Keyword" SEPARATOR keywords CRLF +keywords = TOKEN *(SEPARATOR TOKEN) +``` + +### Experimental fields + +Implementations MAY define custom fields with an X- prefix to provide +additional metadata not covered in this specification. Implementations MUST NOT +assume that all clients will use each of those fields. Clients that do not +support any experimental field SHOULD ignore them. + +``` +Experimental-field = x-field-name SEPARATOR TOKEN +x-field-name = "X-" WORD *("-" WORD) +``` + +### Undefined fields + +Any field that is not defined in this specification. Implementations that +encounter such fields and do not support them SHOULD ignore them. + +``` +Undefined-field = undef-field-name SEPARATOR TOKEN CRLF +undef-field-name = WORD *("-" WORD) +``` + +## Propagation + +In Hina-Di, metadata propagation consists in acquiring metadata from other +agents, then sharing it as it is in the user agent's own Hina-Di file. This can +be used for aggregation services or a peer-to-peer network. + +The `Authorized` and `Authorized-url` fields allow indicating the user agent +from which the metadata originally came from to help ensure its legitimacy. +Propagating MUST only be performed if both fields are defined and if the user +agent is trusted. + +When propagating, all fields of an entity block defined in this specification, +with the exception of experimental and undefined fields, MUST be reproduced +without modification. Propagating experimental or undefined fields is not +guaranteed. A header block MUST NOT be propagated. + +The `Method` field MUST be processed according to the process described in the +Method section. + +[antenna]: http://masshy.fastwave.gr.jp/hina/release/ +[rfc822]: https://tools.ietf.org/html/rfc822 +[rfc1123]: https://tools.ietf.org/html/rfc1123 +[rfc1521]: https://tools.ietf.org/html/rfc1521 +[rfc2119]: https://tools.ietf.org/html/rfc2119 +[rfc2396]: https://tools.ietf.org/html/rfc2396 +[rfc2616]: https://tools.ietf.org/html/rfc2616 +[rfc8174]: https://tools.ietf.org/html/rfc8174 diff --git a/content/hina/specs/0.7.md b/content/hina/specs/0.7.md new file mode 100644 index 0000000..fdd3f5d --- /dev/null +++ b/content/hina/specs/0.7.md @@ -0,0 +1,347 @@ +--- +title: Asahina Antenna Metadata Format (HINA) 2.2, rev. 0.7 +date: September 24, 2000 +toc: true +--- + +> This document is an unofficial English translation of the original Japanese +> specification made by someone who has no knowledge of Japanese. Implement at +> your own risk. + +## Overview + +This document describes Hina-Di, the metadata format used by [Asahina +Antenna][antenna]. In this document, "metadata" is defined as data on a webpage +such as its last update time or its author. Asahina Antenna acts as a feed +reader for Hina-Di. + +## Conventions used in this document + +This document uses the Backus-Naur notation ([RFC 822][rfc822]) to formally +specify the format. + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", +"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this +document are to be interpreted as described in BCP 14 ([RFC 2119][rfc2119], +[RFC 8174][rfc8174]) when, and only when, they appear in all capitals, as shown +here. + +## Data Types + +The basic data types that constitute Hina-Di are listed below. The US-ASCII +character set is defined by ANSI X3.4-1986. + +``` +OCTET = +CHAR = +UPALPHA = +LOALPHA = +ALPHA = UPALPHA | LOALPHA +DIGIT = +WORD = <1*(ALPHA|DIGIT) but excluding ":" and "-"> + +CTL = +CR = +LF = +SP = +HT = +<"> = + +CRLF = CR LF + +TEXT = +TOKEN = + +SEPARATOR = ":" 1*( SP | HT ) +DELIMITER = "," *(SP|HT) +``` + +## Structure + +A Hina-Di file consists of a series of blocks that summarize the metadata on a +website: a header block, followed by one or more entity blocks. + +``` +hina-di = header-block + 1*( entity-block ) +``` + +### Block + +A block is a set of metadata for a document. Each metadata is represented as a +single header, in a manner similar to [RFC 822][rfc822], with a field name and a +field value. Field names are case-sensitive. Field values may be +case-sensitive, depending on the field. + +``` +line-format = field-name SEPARATOR field-value CRLF +field-name = WORD *( "-" WORD) +field-value = TOKEN +``` + +### Header block + +Exactly one header block MUST appear in a Hina-Di file, and it MUST be the +first block. It holds metadata about the Hina-Di file itself. + +``` +header-block = HINA + Hinadi-Header + CRLF +Hinadi-Header = 1*( User-Agent + | Content-Type + | Date ) +``` + +### Entity block + +One or more entity blocks MUST be present after the header block. Each entity +block defines metadata about a specific document. + +``` +Entity-block = 1*( URL + | HINA-Version + | Content-Type + | Date + | Title + | Author-Name + | Expires + | Expire + | Last-Modified + | Last-Modified-Detected + | Server + | Authorized + | Authorized-url + | Method + | Keyword + | Experimental-field + | Undefined-field + CRLF ) +``` + +## Fields + +This section defines the various fields that may be found in blocks. +All fields are OPTIONAL and case-insensitive unless otherwise specified. + +### HINA + +Indicates that this is a Hina-Di file, and includes its version. +This field is REQUIRED as the first field of Hina-Di files. + +``` +HINA = "HINA" "/" hinadi-version CRLF +hinadi-version = "2.2" +``` + +### User-Agent + +Name of the user agent that created this Hina-Di file. +This field is REQUIRED in header blocks. +The value of this field is case-sensitive. + +``` +User-Agent = "User-Agent" SEPARATOR TOKEN CRLF +``` + +### URL + +URL of the document, compliant with [RFC 2396][rfc2396]. +This field is REQUIRED in entity blocks. +Making this field the first field of an entity block is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +URL = "URL" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +### HINA-Version + +Specifies that the integrity of the entity block was guaranteed according to +the specification of a specific Hina-Di version. +If this field is missing from an entity block, it means the block might be +incomplete. + +``` +HINA-Version = "HINA-Version" SEPARATOR version +version = "HINA" "/" 1*( DIGIT ) "." 1*( DIGIT ) +``` + +### Content-Type + +MIME type of the Hina-Di file or the document, as described in +[RFC 1521][rfc1521]. +The value of this field is case-sensitive to the extent defined by RFC 1521. + +``` +Content-Type = "Content-Type" SEPARATOR rfc1521-type +rfc1521-type = +``` + +### Date + +The date and time when the block was generated. The dates MUST comply with +section 3.3 of [RFC 2616][rfc2616], but [RFC 1123][rfc1123] compliance is +RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Date = "Date" SEPARATOR rfc2616-date CRLF +rfc2616-date = +``` + +### Title + +The title of the document. + +``` +Title = "Title" SEPARATOR TOKEN CRLF +``` + +### Author-Name + +Name of the author of the document. + +``` +Author-Name = "Author-Name" SEPARATOR TOKEN CRLF +``` + +### Expires + +Expiration date for the block. The dates MUST comply with section 3.3 of +[RFC 2616][rfc2616], but [RFC 1123][rfc1123] compliance is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Expires = "Expires" SEPARATOR rfc2616-date CRLF +``` + +### Expire + +Alias for the `Expires` field, included for backwards compatibility. + +``` +Expire = "Expire" SEPARATOR rfc2616-date CRLF +``` + +### Last-Modified + +Date and time when the document was last updated. The dates MUST comply with +section 3.3 of [RFC 2616][rfc2616], but [RFC 1123][rfc1123] compliance is +RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified = "Last-Modified" SEPARATOR rfc2616-date CRLF +``` + +### Last-Modified-Detected + +Date and time representing when the user agent retrieved the document's +metadata. The dates MUST comply with section 3.3 of [RFC 2616][rfc2616], but +[RFC 1123][rfc1123] compliance is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified-Detected = "Last-Modified-Detected" SEPARATOR rfc2616-date CRLF +``` + +### Server + +User agent string of the server used to retrieve the metadata of the document +described by this entity block. + +``` +Server = "Server" SEPARATOR TOKEN CRLF +``` + +### Authorized + +The user agent that retrieved the metadata of the document described by this +entity block. + +``` +Authorized = "Authorized" SEPARATOR TOKEN CRLF +``` + +### Authorized-url + +URL of a page describing the user agent referred to in the `Authorized` field, +compliant with [RFC 2396][rfc2396]. +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +Authorized-url = "Authorized-url" SEPARATOR rfc2396-url CRLF +``` + +### Method + +To be determined. Example: `Method: REMOTE/GET/200` + +### Keyword + +Words that can be used to give an overview of the document described by this +entity block; tags, categories, etc. The value of this field is case-sensitive. + +``` +Keyword = "Keyword" SEPARATOR keywords CRLF +keywords = TOKEN *(SEPARATOR TOKEN) +``` + +### Experimental fields + +Implementations MAY define custom fields with an X- prefix to provide +additional metadata not covered in this specification. Implementations MUST NOT +assume that all clients will use each of those fields. Clients that do not +support any experimental field SHOULD ignore them. + +``` +Experimental-field = x-field-name SEPARATOR TOKEN +x-field-name = "X-" WORD *("-" WORD) +``` + +### Undefined fields + +Any field that is not defined in this specification. Implementations that +encounter such fields and do not support them SHOULD ignore them. + +``` +Undefined-field = undef-field-name SEPARATOR TOKEN CRLF +undef-field-name = WORD *("-" WORD) +``` + +## Encoding + +The character encoding of the Hina-Di file SHOULD be specified as a parameter +of the `Content-Type` field of the header block. If it is not specified, +it defaults to `EUC-JP`. + +## Propagation + +In Hina-Di, metadata propagation consists in acquiring metadata from other +agents, then sharing it as it is in the user agent's own Hina-Di file. +This can be used for aggregation services or a peer-to-peer network. + +The `Authorized` and `Authorized-url` fields allow indicating the user agent +from which the metadata originally came from to help ensure its legitimacy. +Propagating MUST only be performed if both fields are defined and if the user +agent is trusted. + +When propagating, all fields of an entity block defined in this specification, +with the exception of experimental and undefined fields, MUST be reproduced +without modification. Propagating experimental or undefined fields is not +guaranteed. A header block MUST NOT be propagated. + +The `Method` field MUST be processed according to the process described in the +Method section. + +[antenna]: http://masshy.fastwave.gr.jp/hina/release/ +[rfc822]: https://tools.ietf.org/html/rfc822 +[rfc1123]: https://tools.ietf.org/html/rfc1123 +[rfc1521]: https://tools.ietf.org/html/rfc1521 +[rfc2119]: https://tools.ietf.org/html/rfc2119 +[rfc2396]: https://tools.ietf.org/html/rfc2396 +[rfc2616]: https://tools.ietf.org/html/rfc2616 +[rfc8174]: https://tools.ietf.org/html/rfc8174 diff --git a/content/hina/specs/0.8.md b/content/hina/specs/0.8.md new file mode 100644 index 0000000..86840ba --- /dev/null +++ b/content/hina/specs/0.8.md @@ -0,0 +1,367 @@ +--- +title: Asahina Antenna Metadata Format (HINA) 2.2, rev. 0.8 +date: September 30, 2000 +toc: true +--- + +> This document is an unofficial English translation of the original Japanese +> specification made by someone who has no knowledge of Japanese. Implement at +> your own risk. + +## Overview + +This document describes Hina-Di, the metadata format used by [Asahina +Antenna][antenna]. In this document, "metadata" is defined as data on a webpage +such as its last update time or its author. Asahina Antenna acts as a feed +reader for Hina-Di. + +## Conventions used in this document + +This document uses the Backus-Naur notation ([RFC 822][rfc822]) to formally +specify the format. + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", +"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this +document are to be interpreted as described in BCP 14 ([RFC 2119][rfc2119], +[RFC 8174][rfc8174]) when, and only when, they appear in all capitals, as shown +here. + +## Data Types + +The basic data types that constitute Hina-Di are listed below. The US-ASCII +character set is defined by ANSI X3.4-1986. + +``` +OCTET = +CHAR = +UPALPHA = +LOALPHA = +ALPHA = UPALPHA | LOALPHA +DIGIT = +WORD = 1*(ALPHA|DIGIT) + +CTL = +CR = +LF = +SP = +HT = +<"> = + +CRLF = CR LF + +TEXT = +TOKEN = + +SEPARATOR = ":" 1*(SP|HT) +DELIMITER = "," *(SP|HT) +``` + +## Structure + +A Hina-Di file consists of a series of blocks that summarize the metadata on a +website: a header block, followed by one or more entity blocks. + +``` +hina-di = header-block + 1*( entity-block ) +``` + +### Block + +A block is a set of metadata for a document. Each metadata is represented as a +single header, in a manner similar to [RFC 822][rfc822], with a field name and a +field value. Field names are case-sensitive. Field values may be +case-sensitive, depending on the field. + +``` +line-format = field-name SEPARATOR field-value CRLF +field-name = WORD *( "-" WORD) +field-value = TOKEN +``` + +### Header block + +Exactly one header block MUST appear in a Hina-Di file, and it MUST be the +first block. It holds metadata about the Hina-Di file itself. + +``` +header-block = HINA + Hinadi-Header + CRLF +Hinadi-Header = 1*( User-Agent + | Content-Type + | Date ) +``` + +### Entity block + +One or more entity blocks MUST be present after the header block. Each entity +block defines metadata about a specific document. + +``` +Entity-block = 1*( URL + | HINA-Version + | Virtual + | Content-Type + | Date + | Title + | Author-Name + | Expires + | Expire + | Last-Modified + | Last-Modified-Detected + | Server + | Authorized + | Authorized-url + | Method + | Keyword + | Experimental-field + | Undefined-field + CRLF ) +``` + +## Fields + +This section defines the various fields that may be found in blocks. +All fields are OPTIONAL and case-insensitive unless otherwise specified. + +### HINA + +Indicates that this is a Hina-Di file, and includes its version. +This field is REQUIRED as the first field of Hina-Di files. + +``` +HINA = "HINA" "/" hinadi-version CRLF +hinadi-version = "2.2" +``` + +### User-Agent + +Name of the user agent that created this Hina-Di file. +This field is REQUIRED in header blocks. +The value of this field is case-sensitive. + +``` +User-Agent = "User-Agent" SEPARATOR TOKEN CRLF +``` + +### URL + +URL of the document, compliant with [RFC 2396][rfc2396]. +This field is REQUIRED in entity blocks. +Making this field the first field of an entity block is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +URL = "URL" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +### HINA-Version + +Specifies that the integrity of the entity block was guaranteed according to +the specification of a specific Hina-Di version. +If this field is missing from an entity block, it means the block might be +incomplete. + +``` +HINA-Version = "HINA-Version" SEPARATOR version +version = "HINA" "/" 1*( DIGIT ) "." 1*( DIGIT ) +``` + +### Virtual + +URL of another Hina-Di file that holds the entity block, compliant with +[RFC 2396][rfc2396]. + +If there are fields in the entity block other than `Virtual`, then it takes the +same meaning as the regular `URL` field. + +The value of this field is case-sensitive to the extent defined by RFC 2396. + +Both `Virtual` and `URL` MUST NOT be defined simultaneously. + +``` +Virtual = "URL" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +### Content-Type + +MIME type of the Hina-Di file or the document, as described in +[RFC 1521][rfc1521]. +The value of this field is case-sensitive to the extent defined by RFC 1521. + +``` +Content-Type = "Content-Type" SEPARATOR rfc1521-type +rfc1521-type = +``` + +### Date + +The date and time when the block or the Hina-Di file was generated. +The dates MUST comply with section 3.3 of [RFC 2616][rfc2616], but +[RFC 1123][rfc1123] compliance is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Date = "Date" SEPARATOR rfc2616-date CRLF +rfc2616-date = +``` + +### Title + +The title of the document. + +``` +Title = "Title" SEPARATOR TOKEN CRLF +``` + +### Author-Name + +Name of the author of the document. +The value of this field is case-sensitive. + +``` +Author-Name = "Author-Name" SEPARATOR TOKEN CRLF +``` + +### Expires + +Expiration date for the block. The dates MUST comply with section 3.3 of +[RFC 2616][rfc2616], but [RFC 1123][rfc1123] compliance is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Expires = "Expires" SEPARATOR rfc2616-date CRLF +``` + +### Expire + +Alias for the `Expires` field, included for backwards compatibility. + +``` +Expire = "Expire" SEPARATOR rfc2616-date CRLF +``` + +### Last-Modified + +Date and time when the document was last updated. The dates MUST comply with +section 3.3 of [RFC 2616][rfc2616], but [RFC 1123][rfc1123] compliance is +RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified = "Last-Modified" SEPARATOR rfc2616-date CRLF +``` + +### Last-Modified-Detected + +Date and time representing when the user agent retrieved the document's +metadata. The dates MUST comply with section 3.3 of [RFC 2616][rfc2616], but +[RFC 1123][rfc1123] compliance is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified-Detected = "Last-Modified-Detected" SEPARATOR rfc2616-date CRLF +``` + +### Server + +User agent string of the server used to retrieve the metadata of the document +described by this entity block. + +``` +Server = "Server" SEPARATOR TOKEN CRLF +``` + +### Authorized + +The user agent that retrieved the metadata of the document described by this +entity block. + +``` +Authorized = "Authorized" SEPARATOR TOKEN CRLF +``` + +### Authorized-url + +URL of a page describing the user agent referred to in the `Authorized` field, +compliant with [RFC 2396][rfc2396]. +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +Authorized-url = "Authorized-url" SEPARATOR rfc2396-url CRLF +``` + +### Method + +To be determined. Example: `Method: REMOTE/GET/200` + +### Keyword + +Words that can be used to give an overview of the document described by this +entity block; tags, categories, etc. The value of this field is case-sensitive. + +``` +Keyword = "Keyword" SEPARATOR keywords CRLF +keywords = TOKEN *(SEPARATOR TOKEN) +``` + +### Experimental fields + +Implementations MAY define custom fields with an X- prefix to provide +additional metadata not covered in this specification. Implementations MUST NOT +assume that all clients will use each of those fields. Clients that do not +support any experimental field SHOULD ignore them. + +``` +Experimental-field = x-field-name SEPARATOR TOKEN +x-field-name = "X-" WORD *("-" WORD) +``` + +### Undefined fields + +Any field that is not defined in this specification. Implementations that +encounter such fields and do not support them SHOULD ignore them. + +``` +Undefined-field = undef-field-name SEPARATOR TOKEN CRLF +undef-field-name = WORD *("-" WORD) +``` + +## Encoding + +The character encoding of the Hina-Di file SHOULD be specified as a parameter +of the `Content-Type` field of the header block. If it is not specified, +it defaults to `EUC-JP`. + +## Propagation + +In Hina-Di, metadata propagation consists in acquiring metadata from other +agents, then sharing it as it is in the user agent's own Hina-Di file. +This can be used for aggregation services or a peer-to-peer network. + +The `Authorized` and `Authorized-url` fields allow indicating the user agent +from which the metadata originally came from to help ensure its legitimacy. +Propagating MUST only be performed if both fields are defined and if the user +agent is trusted. + +When propagating, all fields of an entity block defined in this specification, +with the exception of experimental and undefined fields or of fields with empty +values, MUST be reproduced without modification. +Propagating experimental or undefined fields is not guaranteed. +A header block, or any field that is part of it, MUST NOT be propagated. + +The `Method` field MUST be processed according to the process described in the +Method section. + +[antenna]: http://masshy.fastwave.gr.jp/hina/release/ +[rfc822]: https://tools.ietf.org/html/rfc822 +[rfc1123]: https://tools.ietf.org/html/rfc1123 +[rfc1521]: https://tools.ietf.org/html/rfc1521 +[rfc2119]: https://tools.ietf.org/html/rfc2119 +[rfc2396]: https://tools.ietf.org/html/rfc2396 +[rfc2616]: https://tools.ietf.org/html/rfc2616 +[rfc8174]: https://tools.ietf.org/html/rfc8174 diff --git a/content/hina/specs/0.9.md b/content/hina/specs/0.9.md new file mode 100644 index 0000000..f50fe7b --- /dev/null +++ b/content/hina/specs/0.9.md @@ -0,0 +1,368 @@ +--- +title: Asahina Antenna Metadata Format (HINA) 2.2, rev. 0.9 +date: October 5, 2000 +toc: true +--- + +> This document is an unofficial English translation of the original Japanese +> specification made by someone who has no knowledge of Japanese. Implement at +> your own risk. + +## Overview + +This document describes Hina-Di, the metadata format used by [Asahina +Antenna][antenna]. In this document, "metadata" is defined as data on a webpage +such as its last update time or its author. Asahina Antenna acts as a feed +reader for Hina-Di. + +## Conventions used in this document + +This document uses the Backus-Naur notation ([RFC 822][rfc822]) to formally +specify the format. + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", +"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this +document are to be interpreted as described in BCP 14 ([RFC 2119][rfc2119], +[RFC 8174][rfc8174]) when, and only when, they appear in all capitals, as shown +here. + +## Data Types + +The basic data types that constitute Hina-Di are listed below. The US-ASCII +character set is defined by ANSI X3.4-1986. + +``` +OCTET = +CHAR = +UPALPHA = +LOALPHA = +ALPHA = UPALPHA | LOALPHA +DIGIT = +WORD = 1*(ALPHA|DIGIT) + +CTL = +CR = +LF = +SP = +HT = +<"> = + +CRLF = CR LF + +TEXT = +TOKEN = + +SEPARATOR = ":" 1*(SP|HT) +DELIMITER = "," *(SP|HT) +``` + +## Structure + +A Hina-Di file consists of a series of blocks that summarize the metadata on a +website: a header block, followed by one or more entity blocks. + +``` +hina-di = header-block + 1*( entity-block ) +``` + +### Block + +A block is a set of metadata for a document. Each metadata is represented as a +single header, in a manner similar to [RFC 822][rfc822], with a field name and a +field value. Field names are case-sensitive. Field values may be +case-sensitive, depending on the field. + +``` +line-format = field-name SEPARATOR field-value CRLF +field-name = WORD *( "-" WORD) +field-value = TOKEN +``` + +### Header block + +Exactly one header block MUST appear in a Hina-Di file, and it MUST be the +first block. It holds metadata about the Hina-Di file itself. + +``` +header-block = HINA + Hinadi-Header + CRLF +Hinadi-Header = 1*( User-Agent + | Content-Type + | Date ) +``` + +### Entity block + +One or more entity blocks MUST be present after the header block. Each entity +block defines metadata about a specific document. + +``` +Entity-block = 1*( URL + | HINA-Version + | Virtual + | Content-Type + | Date + | Title + | Author-Name + | Expires + | Expire + | Last-Modified + | Last-Modified-Detected + | Server + | Authorized + | Authorized-url + | Method + | Keyword + | Experimental-field + | Undefined-field + CRLF ) +``` + +## Fields + +This section defines the various fields that may be found in blocks. +All fields are OPTIONAL and case-insensitive unless otherwise specified. + +### HINA + +Indicates that this is a Hina-Di file, and includes its version. +This field is REQUIRED as the first field of Hina-Di files. + +``` +HINA = "HINA" "/" hinadi-version CRLF +hinadi-version = "2.2" +``` + +### User-Agent + +Name of the user agent that created this Hina-Di file. +This field is REQUIRED in header blocks. +The value of this field is case-sensitive. + +``` +User-Agent = "User-Agent" SEPARATOR TOKEN CRLF +``` + +### URL + +URL of the document, compliant with [RFC 2396][rfc2396]. +This field is REQUIRED in entity blocks. +Making this field the first field of an entity block is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +URL = "URL" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +### HINA-Version + +Specifies that the integrity of the entity block was guaranteed according to +the specification of a specific Hina-Di version. +If this field is missing from an entity block, it means the block might be +incomplete. + +``` +HINA-Version = "HINA-Version" SEPARATOR version +version = "HINA" "/" 1*( DIGIT ) "." 1*( DIGIT ) +``` + +### Virtual + +URL of another Hina-Di file that holds the entity block, compliant with +[RFC 2396][rfc2396]. + +If there are fields in the entity block other than `Virtual`, then it takes the +same meaning as the regular `URL` field. + +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +Virtual = "Virtual" SEPARATOR rfc2396-url CRLF +rfc2396-url = +``` + +> Note that the original version of the document defines the `Virtual` feed +> as `Vitural`. + +### Content-Type + +MIME type of the Hina-Di file or the document, as described in +[RFC 1521][rfc1521]. +The value of this field is case-sensitive to the extent defined by RFC 1521. + +``` +Content-Type = "Content-Type" SEPARATOR rfc1521-type +rfc1521-type = +``` + +### Date + +The date and time when the block or the Hina-Di file was generated. +The dates MUST comply with section 3.3 of [RFC 2616][rfc2616], but +[RFC 1123][rfc1123] compliance is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Date = "Date" SEPARATOR rfc2616-date CRLF +rfc2616-date = +``` + +### Title + +The title of the document. + +``` +Title = "Title" SEPARATOR TOKEN CRLF +``` + +### Author-Name + +Name of the author of the document. +The value of this field is case-sensitive. + +``` +Author-Name = "Author-Name" SEPARATOR TOKEN CRLF +``` + +### Expires + +Expiration date for the block. The dates MUST comply with section 3.3 of +[RFC 2616][rfc2616], but [RFC 1123][rfc1123] compliance is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Expires = "Expires" SEPARATOR rfc2616-date CRLF +``` + +### Expire + +Alias for the `Expires` field, included for backwards compatibility. + +``` +Expire = "Expire" SEPARATOR rfc2616-date CRLF +``` + +### Last-Modified + +Date and time when the document was last updated. The dates MUST comply with +section 3.3 of [RFC 2616][rfc2616], but [RFC 1123][rfc1123] compliance is +RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified = "Last-Modified" SEPARATOR rfc2616-date CRLF +``` + +### Last-Modified-Detected + +Date and time representing when the user agent retrieved the document's +metadata. The dates MUST comply with section 3.3 of [RFC 2616][rfc2616], but +[RFC 1123][rfc1123] compliance is RECOMMENDED. +The value of this field is case-sensitive to the extent defined by RFC 2616. + +``` +Last-Modified-Detected = "Last-Modified-Detected" SEPARATOR rfc2616-date CRLF +``` + +### Server + +User agent string of the server used to retrieve the metadata of the document +described by this entity block. + +``` +Server = "Server" SEPARATOR TOKEN CRLF +``` + +### Authorized + +The user agent that retrieved the metadata of the document described by this +entity block. + +``` +Authorized = "Authorized" SEPARATOR TOKEN CRLF +``` + +### Authorized-url + +URL of a page describing the user agent referred to in the `Authorized` field, +compliant with [RFC 2396][rfc2396]. +The value of this field is case-sensitive to the extent defined by RFC 2396. + +``` +Authorized-url = "Authorized-url" SEPARATOR rfc2396-url CRLF +``` + +### Method + +To be determined. Example: `Method: REMOTE/GET/200` + +### Keyword + +Words that can be used to give an overview of the document described by this +entity block; tags, categories, etc. The value of this field is case-sensitive. + +``` +Keyword = "Keyword" SEPARATOR keywords CRLF +keywords = TOKEN *(SEPARATOR TOKEN) +``` + +### Experimental fields + +Implementations MAY define custom fields with an X- prefix to provide +additional metadata not covered in this specification. Implementations MUST NOT +assume that all clients will use each of those fields. Clients that do not +support any experimental field SHOULD ignore them. + +``` +Experimental-field = x-field-name SEPARATOR TOKEN +x-field-name = "X-" WORD *("-" WORD) +``` + +### Undefined fields + +Any field that is not defined in this specification. Implementations that +encounter such fields and do not support them SHOULD ignore them. + +``` +Undefined-field = undef-field-name SEPARATOR TOKEN CRLF +undef-field-name = WORD *("-" WORD) +``` + +## Encoding + +The character encoding of the Hina-Di file SHOULD be specified as a parameter +of the `Content-Type` field of the header block. If it is not specified, +it defaults to `EUC-JP`. + +## Propagation + +In Hina-Di, metadata propagation consists in acquiring metadata from other +agents, then sharing it as it is in the user agent's own Hina-Di file. +This can be used for aggregation services or a peer-to-peer network. + +The `Authorized` and `Authorized-url` fields allow indicating the user agent +from which the metadata originally came from to help ensure its legitimacy. +Propagating MUST only be performed if both fields are defined and if the user +agent is trusted. + +When propagating, all fields of an entity block defined in this specification, +with the exception of experimental and undefined fields or of fields with empty +values, MUST be reproduced without modification. +Propagating experimental or undefined fields is not guaranteed. +A header block, or any field that is part of it, MUST NOT be propagated. + +The `Method` field MUST be processed according to the process described in the +Method section. + +[antenna]: http://masshy.fastwave.gr.jp/hina/release/ +[rfc822]: https://tools.ietf.org/html/rfc822 +[rfc1123]: https://tools.ietf.org/html/rfc1123 +[rfc1521]: https://tools.ietf.org/html/rfc1521 +[rfc2119]: https://tools.ietf.org/html/rfc2119 +[rfc2396]: https://tools.ietf.org/html/rfc2396 +[rfc2616]: https://tools.ietf.org/html/rfc2616 +[rfc8174]: https://tools.ietf.org/html/rfc8174