Infra

Infra Standard

[15] Infra Standard は、 Web技術仕様書で共通して参照される概念を規定する仕様書です。

[16] 文字列リストなど Web の特定の技術の領域に属するというよりは様々な技術の基礎となる事項が規定されています。 アルゴリズムの記述や適合性の解釈など仕様書の記述方法に関する事項も含まれています。 HTML StandardDOM StandardCSP などから参照されています。

仕様書

内容

[78] 次の目標が掲げられています >>14

[84] 具体的には次のような内容が含まれます。

[18] Infra Standard の規定

利用

[85] Infra Standard を使う仕様書は、 「仕様書名 depends on the Infra Standard.」 と書くことになっています >>14

[86] Infra Standard を使う仕様書は、 Infra StandardGitHub Wiki のページ >>22 に名前を掲載するべき (encourage) とされています >>14 が、実際には掲載されていない仕様書の方が多いです。

[87] また、曖昧性をなくすため、用語相互参照するべき (encourage) です >>14

[88] Infra Standard に限らずですが、 ハイパーリンクによる相互参照を使って意味を明確化しているため、 文面上は語尾が違ったり (活用していたり、 名詞形動詞形だったり)、用語の一部が省略されて用いられたりしています。 Hixie 時代からそうした利用法はそれなりに見られましたが、 annevk らが多用するようになったように感じられ、 Infra Standard用語は基本的なものが多いだけに一層その傾向が進んでいるように見受けられます。

歴史

[19] Anne は複数の仕様書で同じ基本概念を定義していて他の仕様書からどう参照するべきかわからない、 といったような問題に対して、基盤となる仕様書を設けることを何度か提唱していました。

[17] HTML StandardEncoding Standard などの色々な WHATWG仕様書でそれぞれ別個に定義されていた事項をまとめる形で Infra Standard が新設されました。

[73] W3C 時代にはこうした基本的な事項は暗黙の了承とされたり、 そもそもこうした事項が議論できるほどの正確性を仕様書が有していなかったりしました。 HTML5仕様書の厳密性を高める中で、 そうした事項の明文化を進めました。 ( Web Applications 1.0 )

[74] その後 WHATWG の扱う仕様書HTML5 以後世代の厳密性を増した W3C仕様書が増加するにつれ、 HTML5 の基本事項の規定を適宜コピペしたり、 時には引用したりするようにもなりました。 しかし、厳密に言えば HTML に含まれず、 Web platform の共通の事項や仕様書上の表記法に関する事項を HTML にどんどん追加していくことには無理があり、 HTML のそれ以外の機能を使っていない仕様書HTML を参照することには抵抗感も持たれていました。 また HTML英語と計算機技術者の常識に依拠した暗黙の部分が (現在となってみれば) 少なくありませんでした。 こうした状況から、基本事項や暗黙の了承となっていた部分は仕様書ごとに扱いがまちまちで、 その違いに意味があるのかどうかも定かでなく、不明瞭となってしまっていました。

[75] そこで複数の Web platform から参照される基本記述や仕様書の表記法に関する事項をまとめた単独の仕様書として Infra が創設されました。 WHATWG の各仕様書が採用したのはもちろん、 WHATWG仕様書と同様に厳密性を有する W3C などの Web platform 技術の仕様書にも採用されるようになりました。

[76] なお、 Infra を採用した仕様書であっても、 すべての部分が Infra の概念をベースに記述されているとは限りません。 HTML を始めとする多くの仕様書が既に Infra 以前に書かれていましたから、 Infra ベースへの書き換えによる明確化は漸進的に行われています。

[77] アルゴリズムの決まり文句の置き換えなど一気に変更できるものは一斉に置換された例もありますが、 リスト写像の用語など個別に詳細な検討が必要なものは、 他の変更と共に修正するなど徐々に置き換えられています。

[1] Infra Standard () https://infra.spec.whatwg.org/

[2] whatwg/infra: Infra Standard () https://github.com/whatwg/infra

[3] Start using the Infra Standard · Issue #2053 · whatwg/html () https://github.com/whatwg/html/issues/2053

[4] The WHATWG Blog — Infra () https://blog.whatwg.org/infra

[5] Editorial: refactor modules to use Infra Standard data structures (domenic著, ) https://github.com/whatwg/html/commit/37ea5ac07f36b71b1b9e3861804f623752ed210d

[6] Editorial: refactor to depend on the Infra Standard (domenic著, ) https://github.com/whatwg/html/commit/4ac633e08c2c9430853fc8322943bc2438ed36a3

[7] Editorial: start using the Infra Standard (annevk著, ) https://github.com/whatwg/encoding/commit/a26f76889bf393999e9caad84a3647ab09c39e09

[8] Editorial: start using the Infra Standard (annevk著, ) https://github.com/whatwg/fetch/commit/9ba4e78e5cb5fc1132f89d7e344cd2c2e1950c67

[9] Editorial: make use of the Infra Standard (annevk著, ) https://github.com/whatwg/dom/commit/bb2890beed2be14d2f7633ec89e2bbb88ec7fdcd

[10] Editorial: start using the Infra Standard (annevk著, ) https://github.com/whatwg/url/commit/9001b9be7475fdf4a7a2757b5417aa4a9f06b3b6

[11] Editorial: use the Infra Standard (annevk著, ) https://github.com/whatwg/fullscreen/commit/06ae8faa6335bfdcc5c9d9e643c0cb797efbc9d9

[12] Editorial: use the Infra Standard (annevk著, ) https://github.com/whatwg/notifications/commit/b9b20eeec611cc5156cc0b331b7ce60a963054ba

[13] Editorial: use the Infra Standard (annevk著, ) https://github.com/whatwg/storage/commit/b67910830cdb8f4c29a2094648d72049940de43b

[20] Use INFRA. (mikewest著, ) https://github.com/w3c/webappsec-csp/commit/8a2b0ebd25ea8d0e793ab48a1c51a6d45834fab5

[21] Meta: encourage tracking of dependent specifications (domenic著, ) https://github.com/whatwg/infra/commit/a9809e160e536c3b283a690087b88802de905153

[22] Dependent specs · whatwg/infra Wiki () https://github.com/whatwg/infra/wiki/Dependent-specs

[23] Intersection of serialized source lists (#157) (Sun77789著, ) https://github.com/w3c/webappsec-csp/commit/59b2839f98e491d0170d1389c6fd857d44b92247

[24] Editorial: let Infra define byte-lowercasing/uppercasing (domenic著, ) https://github.com/whatwg/fetch/commit/4b165c215787ea18a610481508f8d575263e0959

[25] [css-paint-api] Convert spec to using whatwg infra maps. (bfgeek著, ) https://github.com/w3c/css-houdini-drafts/commit/1d186e58df344a0a2f4b12c215482e9710ea61d7

[26] Large rewrite/refactoring of the spec (#156) (tobie著, ) https://github.com/w3c/sensors/commit/615141fdd299e63e221a87d27f83766f345829e9

[27] Move string algorithms to Infra (shekyan著, ) https://github.com/whatwg/infra/commit/b8444dba3d774144c91982298ef663d196e12084

[28] Editorial: use more terms from the Infra Standard (annevk著, ) https://github.com/whatwg/html/commit/104bd78697738af2eab61740a2f1421ae49a3c95

[29] Editorial: use the Infra Standard for URL's path (annevk著, ) https://github.com/whatwg/url/commit/2f99502dc12b781f5bf6a062257ba031c7129c1e

[30] Meta: update spec deploy and editing infrastructure (annevk著, ) https://github.com/whatwg/infra/commit/d147492a6ca47249054017710046cb09f6b273ae

[31] Meta: enable PR preview (annevk著, ) https://github.com/whatwg/infra/commit/3af939f5982a32353d25c77fe5d394d50615838a

[32] Fixing references to infra/fetch. (mikewest著, ) https://github.com/w3c/webappsec-csp/commit/95f7715e9562f33b2009257a41a321ad95e170c1

[33] Editorial: use Infra "for each" as IDL "mapping" got removed (annevk著, ) https://github.com/whatwg/url/commit/8386c7a20435b2fb300038e8f1346dc6254ac710

[34] Add some infrastructure notes. (@annevk著, ) https://github.com/w3c/webappsec-csp/commit/40d2e607855b91f91cfb0f1a183be1b3ce209553

[35] Editorial: use Infra to define the ordered set parser (annevk著, ) https://github.com/whatwg/dom/commit/a149b84dc99e82ad3a8c35d5e8193a93f2676770

i

[36] Editorial: use Infra to define the ordered set parser (annevk著, ) https://github.com/whatwg/dom/commit/a149b84dc99e82ad3a8c35d5e8193a93f2676770

[37] Clarify that the conformance section is widely applicable (annevk著, ) https://github.com/whatwg/infra/commit/fc952b8110467bd4357cf9d3ce97d430117918ee

[38] Add a goal about helping to write clear and readable prose (tobie著, ) https://github.com/whatwg/infra/commit/6b7bffa207fc16fda0a7f4c4a62a3f53eab61923

[39] Editorial: format bytes and code points per Infra (annevk著, ) https://github.com/whatwg/url/commit/91cb2aa532bc2b217e6237d23649aed0d2c566bb

[40] Editorial: let code point and friends be defined by Infra (annevk著, ) https://github.com/whatwg/html/commit/59595d9c2ccadb9332c15048be5d30174532ee70

[41] [cssom-view] Move tokenizing of window.open's features arg to HTML (zcorpan著, ) https://github.com/w3c/csswg-drafts/commit/48c88c28bdc9a1ef2e52e38544cf7f90517b72e0

[42] Editorial: use noncharacter from Infra (annevk著, ) https://github.com/whatwg/url/commit/4a4c55959bec4f091373723bd0d507432d4b3dac

[43] Always update a DOMTokenList (annevk著, ) https://github.com/whatwg/dom/commit/d396872f847d63b803393092eb81843e80d566b7

[44] Editorial: use Infra in a/x-www-form-urlencoded (TimothyGu著, ) https://github.com/whatwg/url/commit/1cdcab314ed539a1b26f53a2618ef480708eb297

[45] Fixes "Does path A match path B?" (#183) (shekyan著, ) https://github.com/w3c/webappsec-csp/commit/6ae1d7688d0cdb933706ae589aa8012087a76fbb

[46] Editorial: use Infra for ordered sets and control flow (foolip著, ) https://github.com/whatwg/fullscreen/commit/50efe9774f5a17227e0b8fe0c8ca35b97dbc1a0a

[47] Editorial: use Infra's remove operation for top layer (foolip著, ) https://github.com/whatwg/html/commit/48132f23e64b5b3a3ef426eb3b45d4c35ad83c0d

[48] GPHemsley/WHATWG-Infra: A Perl implementation of the WHATWG Infra standard () https://github.com/GPHemsley/WHATWG-Infra

[49] [css-syntax] Remove 'code point' and 'surrogate code point' in favor … (tabatkins著, ) https://github.com/w3c/csswg-drafts/commit/320a990184a331057a56a17cdf627fee81bdc5d3

[50] Feedback from @reschke. (@reschke著, ) https://github.com/w3c/webappsec-clear-site-data/commit/9f20dcc7580e241636c4787b6cf852a7e6258d63

[51] Editorial: Refactor overloading section using infra types (#392) (tobie著, ) https://github.com/heycam/webidl/commit/bfd0151e59b03639f9fae30da91ecf5e10d7c2af

[52] Editorial: remove "rethrow" per Infra (annevk著, ) https://github.com/whatwg/fetch/commit/829e56dd47534b8e6725ce0c56c5bdea6e23d222

[53] Use proper list and for each definitions from infra. (mkruisselbrink著, ) https://github.com/w3c/FileAPI/commit/b02f1c6d9133d2106017f17ec17399d7581f81f9

[54] Meta: update whatwg/meta references in the README (snuggs著, ) https://github.com/whatwg/infra/commit/aeadb8b937b23013d6bee5943aa6b1032ce275ac

[55] Editorial: Update whatwg/meta references in README.md by snuggs · Pull Request #170 · whatwg/infra () https://github.com/whatwg/infra/pull/170

[56] Use Infra notation for strings (TimothyGu著, ) https://github.com/heycam/webidl/commit/3fd171268407a34e28a4b32269031e3c0bd5ca94

[57] Add space to class string of iterator objects by TimothyGu · Pull Request #483 · heycam/webidl () https://github.com/heycam/webidl/pull/483

[58] Meta: use new WHATWG boilerplate and license (domenic著, ) https://github.com/whatwg/infra/commit/16de554be911fb6a46377f71a89c550f3421bfb9

[59] Meta: use new WHATWG boilerplate and license by domenic · Pull Request #184 · whatwg/infra () https://github.com/whatwg/infra/pull/184

[60] Meta: update maintainers link (snuggs著, ) https://github.com/whatwg/infra/commit/09a4b97ff908cd8cc2f6e61b53ddac7d6ee29f2f

[61] State that we depend on Infra (domenic著, ) https://github.com/whatwg/streams/commit/9f1652d2923be3d8dfbca316a2dfb1c8d7b81d76

[62] A variety of clarity and documentation improvements by domenic · Pull Request #875 · whatwg/streams () https://github.com/whatwg/streams/pull/875

[63] Editorial: use Infra to define mutation observers (annevk著, ) https://github.com/whatwg/dom/commit/50b3051320e9617e1b2ff899dfef6f8dc5255bdf

[64] Use infra spec and data-cite (kenchris著, ) https://github.com/w3c/manifest/commit/3612bb15b81290fee9f99aa6782bb5bc2dd33a41

[65] Use infra spec and data-cite by kenchris · Pull Request #655 · w3c/manifest () https://github.com/w3c/manifest/pull/655

[66] Review Draft Publication: July 2018 (annevk著, ) https://github.com/whatwg/infra/commit/49cfbc0b9616de99c98863dc6187ef1df4170491

[67] Review Draft Publication: July 2018 by annevk · Pull Request #208 · whatwg/infra () https://github.com/whatwg/infra/pull/208

[68] Review Draft Publication: July 2018 by annevk · Pull Request #208 · whatwg/infra () https://github.com/whatwg/infra/pull/208

[69] Infra Standard Review Draft July 2018 () https://infra.spec.whatwg.org/review-drafts/2018-07/

[70] Editorial: use Infra maps for dictionaries (annevk著, ) https://github.com/whatwg/fetch/commit/3ca2ee5968a60883c9e302f296047d539337b6dd

[71] Linkify "present" for dictionaries · Issue #513 · whatwg/fetch () https://github.com/whatwg/fetch/issues/513

[72] Editorial: use Infra maps for dictionaries by annevk · Pull Request #794 · whatwg/fetch () https://github.com/whatwg/fetch/pull/794

[89] Editorial: use Infra maps for dictionaries (annevk著, ) https://github.com/whatwg/fetch/commit/3ca2ee5968a60883c9e302f296047d539337b6dd

[90] Linkify "present" for dictionaries · Issue #513 · whatwg/fetch () https://github.com/whatwg/fetch/issues/513

[91] Editorial: use Infra maps for dictionaries by annevk · Pull Request #794 · whatwg/fetch () https://github.com/whatwg/fetch/pull/794

[92] Review Draft Publication: January 2019 (annevk著, ) https://github.com/whatwg/infra/commit/b49b463a666b26fa230ac583ee9a15f9836deabe

[93] Review Draft Publication: January 2019 by annevk · Pull Request #237 · whatwg/infra () https://github.com/whatwg/infra/pull/237

[94] Infra Standard Review Draft January 2019 () https://infra.spec.whatwg.org/review-drafts/2019-01/

[95] Use Infra terms to simplify text. (inexorabletash著, ) https://github.com/w3c/IndexedDB/commit/1e1241f34ceabe2a39750f1f6910163bf4b53b24

[96] Use Infra terms to simplify text. by inexorabletash · Pull Request #275 · w3c/IndexedDB () https://github.com/w3c/IndexedDB/pull/275

[97] Review Draft Publication: July 2019 (annevk著, ) https://github.com/whatwg/infra/commit/d890198e7ccef358473985f3ec421f0e06277c7f

[98] Review Draft Publication: July 2019 by annevk · Pull Request #261 · whatwg/infra () https://github.com/whatwg/infra/pull/261

[99] Infra Standard Review Draft July 2019 () https://infra.spec.whatwg.org/review-drafts/2019-07/

[100] Meta: fix and prevent Bikeshed warnings (domenic著, ) https://github.com/heycam/webidl/commit/8c71e7c7c8df10b6cecdbf164e89f43c96835faf

[101] Define "user agent" · Issue #1021 · whatwg/html () https://github.com/whatwg/html/issues/1021