Profile

head 要素 profile 属性 (HTML)

[15] HTMLhead 要素の profile 属性は、 プロファイル (メタ情報の名前付き辞書) を参照するために使うものでした。

プロファイルについて詳しくはHTMLメタ情報プロファイルをご覧下さい。

属性値

これ以降の項を整理する

[34] 値は空白で分離した一つ以上の URI参照の並びで、 大文字・小文字が区別されます。但し、二つ目以降の URI 参照は無視されます。詳しくは >>3-14 を参照。

[17] ここで指定したプロファイルは、すべての meta 要素, link 要素に適用されます。 IW:HTML4:"struct/global.html#edef-META" HTML 4 ではプロファイルは最初の1つの URI 参照しか意味を持ちませんから、そのプロファイルですべてのメタ・データ特性を定義しないといけないことになります。

A URI or URIs?

  • [3] HTML 4 本文では、値は複数指定できる (最初の1つしか意味は持たないが。) と明記されています: The global structure of an HTML document IW:HTML4:"struct/global.html#adef-profile"
  • [4] しかし DTD%URI; の注釈は、 a URI になっています: HTML 4 Document Type Definition IW:HTML4:"sgml/dtd.html#URI"
  • [5] %URI; に対応する本文の説明は URIs になっていますが、複数 URI ではなく指定できる値の集合として複数形になっていると思われます (他の型や属性との関係上。): Basic HTML data types IW:HTML4:"types.html#type-uri"
  • [6] 意図的なのか誤りなのかは不明ですが、本文ではっきり複数書けると明記されていますから、 DTD が間違いの可能性が高いでしょう。
  • [7] DTD の内容はほぼそのまま XHTML 1.0, XHTML m12n に受け継がれていますから、同様の問題があります。 XHTML 1 は要素の具体的定義は HTML4 参照でして、仕様書に全く明記されてないのが更に問題。
  • [8] XHTML 2.0 (WD) では値の定義が URI とは別の URIs に改められているので、この問題は解決しそうです。
  • [9] >>6-7 HTML4 にはないが XHTML には %URIs; 系のものがあるんだから、それを参照していないのは問題だよなあ

[14] >>3-9 属性値は空白分離の URI の並びだけど、 HTML 4 では最初のものだけが意味を持つと書いてあります。 複数個の URI が書かれたときの解釈は将来の版で規定する (かもしれない) ということで、 このようなごちゃごちゃしたことになっているのでしょう。

  • HTML 4 適合 UA は一つ以上の URI 参照の並びとみなすが、 意味解釈時には最初のもの以外は捨てる。
  • HTML 4 文書の著者は URI 参照を一つだけ書く。
  • HTML 4 妥当性検証器は複数個の URI 参照があっても妥当とするが、意味がないと警告する。

が適当な対処だと思われます。

[25] ちょっとしたメモ - 困ったちゃんのprofile属性 http://www.kanzaki.com/memo/2004/03/17-1

これと同じ話。 (名無しさん 2004-03-18 01:10:42 +00:00)

[35] 複数の URI 参照が認められるとすると、 相互の関係が問題になってきます。 XMDP XMDP は、 HTML 4 が最初の URI 参照だけを使用すると規定していることから、 最初の URI 参照のプロファイルが一番優先度が高く、 最後の URI 参照のプロファイルが一番低いと解釈する (同じ語彙が複数のプロファイルで定義されていれば、最初の方のものとみなす) ことを提案しています。

[36] HTML 4.0 で object 要素の archive 属性が %URI なのは間違いで、 複数の URI 参照を書けるとして HTML 4.01 で CDATA に修正されました HTML 4.01 A.1.1.14profile 属性も同様に間違いで見落としただけの可能性があります。

[37] GeckoDOMhead 要素の profile DOM 属性を取得すると絶対URI参照が得られますが、 間隔%20 になります。 どうやら Geckoa URI として実装しているようです。

WinIE 6profile DOM 属性要素属性の値が得られるのでどう考えているのかは分かりません。 (名無しさん 2005-05-07 05:56:20 +00:00)

[38] Opera 8WinIE 6 と同じ結果。 (名無しさん 2005-05-07 05:57:47 +00:00)

[39] Bjoern Hoehrmannが、いつまで種々の問題を放置しておく気だよとTAG公開メイリング・リストで指摘しました。

それに対してSteven Pembertonは、問題は解決したけど追跡システムで閉じておくのを忘れただけだと書きました。

そしてその後、追跡システムには

The datatype for the profile was indeed changed to URI in M12N on purpose, specifically so that it would be possible to use it as a possible means to identify compound document profiles in the future.

profileデータ型は確かにURIに変更されたが、これは特に将来複合文書プロファイルの識別に使えるようにと考えてのことだ。

というメモが書かれたようです。

(名無しさん 2006-02-15 08:18:17 +00:00)

[40] http://htmlwg.mn.aptest.com/cgi-bin/voyager-issues/Modularization-abstractions?id=8168 のコメントは変わっていませんが、 XHTML m12n 1.1 LC WDURIs に変えちゃってます。

XHTML Modularization 1.1 - XHTML Abstract Modules http://www.w3.org/TR/2006/WD-xhtml-modularization-20060705/abstract_modules.html#s_structuremodule (名無しさん 2006-07-07 15:25:28 +00:00)

[47] >>39 確かに DTD モジュール IW:XHTML1m12n:"dtd_module_defs.html#dtdelement_head.qname" には、

<!-- reserved for future use with document profiles
-->
<!ENTITY % profile.attrib
     "profile      %URI.datatype;           '%XHTML.profile;'"
>

とあります。 XHTML m12nprofileHTML 4profile とは別の属性のようです。

[51] >>47 のような定義になっており、かつ XHTML 1.1XHTML-PrintDTD駆動器では %XHTML.profile;空文字列として定義されているので、それらの DTD参照している文書では profile 属性既定値空文字列になってしまいます。属性値URI らしいので、基底URI文書プロファイルとやらとして指定されていることになってしまいます。 (名無しさん)

[57] [markup]head要素のprofile属性 http://web.g.hatena.ne.jp/vantguarde/20070516#1179298617

(名無しさん 2007-05-17 11:12:12 +00:00)

文脈

[2] HTML 由来で DTBook にもありました。

プロファイル

[18] IW:HTML4:"struct/global.html#profiles" によれば、利用者エージェントは profile URI を2種類の方法で利用できます。

大域固有名
profile URI を名前として扱い、そのプロファイル (別にそれを URL として資源取り出しに使う必要はない。) の知識を使って何かするとか。 XML名前空間名前空間名のような使い方。
リンク
profile URI を資源取り出しに使って、その実際の定義に基づいて何かするとか。

[19] HTMLメタ情報プロファイルの項もご覧下さい。

相対 URI 参照

[20] HTML 4 では、相対URI参照が認められるのかどうか明記されてはいませんが、 HTML 4 における「URI」の定義からすると認められるとみなすのが適当でしょうね。

実際上は XML名前空間名前空間名と同じように、 相対 URI 参照は使わないことにした方が都合がいいかもしれません。 (たとえば CSS選択子に使うこととか考えると。)

[21] 相対 URI 参照が使われていたとして、 何を基底としたらよいのでしょう。 HTTPMIME のような上位プロトコルの情報はもちろん (必要なら) 使うとして、 あるいは XML 応用であれば (その定義に依っては) xml:base 属性を考慮してもよいかもしれませんが、 それよりもなによりも、 HTML の base 要素の影響がどうなるか気になるところ。

[27] base 要素の規定 (IW:HTML4:"struct/links.html#h-12.4") には、 profile への適用を妨害するものは何もないようです。

但し、相対URI参照よりも base 要素による基底URI の定義は文書順で先に無ければならないことになっていますが、 base 要素を head 要素よりも前に持ってくることは不可能です。

実際に使われている Profile

[1] HTMLメタ情報プロファイルに移動しました。

歴史

HTML4 におけるプロファイル

HTML4 & XHTML1 の定義に関してはすべてこの項に移動する

[33] 仕様書:

W3C と IETF におけるプロファイル

[12] W3C HTML WG (当時、後の XHTML2 WG) は XHTML で少し異なる意味に「プロファイル」を置き換えることを試みました。 これは SMILXHTML2 のような他の XML マーク付け言語にも適用されました。 しかしあくまで W3C 内の理論的なものに過ぎず、実際に使うために十分な規定はなされず実装不能でした。

[13] その延長線上にある定義が時代はかなり後になってなぜか IETFWeb Linking フレームワーク上に再登場したり、 JSON-LD で採用されたりしています。

[32] RFC 4536: The application/smil and application/smil+xml Media Types, https://www.rfc-editor.org/rfc/rfc4536.html#section-5

XHTML2 html 要素時代

[16] 実際には head 要素の属性というよりは文書全体を通した属性とする方が適切であるので、 XHTML 2 の最初の作業原案では html 要素の属性になっていました。

[65] 最初の作業原案での規定内容は HTML4 の頃とほとんど同じで、複数の URL を指定しても最初のものだけ使えるという点も同じでした (構文は1つの URL になっていました)。 例示中で head 要素属性が指定されているものが残っていたりもしました。

[66] 第5次案で属性型が複数の URL に変更されました。 (意味的には依然、予約のままでした。)

XHTML2 リンク型時代

[49] XHTML2 第6次案で html 要素version 属性は削除されました。 代わりに htmlには version 属性が追加されると共に、大域属性 rel の値に QName profile が追加されました。

profile は過去の定義の面影を残してはいるものの、 「Refers to a document that defines relationships or provides metadata, for instance in RDF, about the document.」 ともされており、HTML4 の定義とはもはや違うもののようにも思えます。

XHTML2 head 要素時代

[67] しかしその後の XHTML2 編集者案でなぜか head 要素に復活しています。

GRDDL との関係を簡潔に

RDFa

[22] RDFaprofile 属性を (RDFa が定義する属性として) 任意の要素で利用できるように拡張することを試みました。

[24] その属性は当時の RDFa 仕様上の概念である「RDFa Profiles」 を指定するものでした >>23。これはその後の仕様における「initial context>>26 に相当するものです (2011年3月の WD >>23 を最後に profile 属性が削除され、 evaluation context との整合性から改称されたようです)。

[28]XHTML2 WG の流れを汲む RDFa WG の仕様ですが、 HTML4 の本来の profile 属性とも XHTML における XHTML2 WG の解釈による profile 属性とも意味が異なるもので (当事者は XHTML2 WG属性と同じ意味と解釈していた可能性はあります)、 既存の HTML文書との互換性を一切考慮せず既存の属性の名前だけ借りて似て非なるコンセプトに置き換える RDFa の設計方針の見本のような存在の一つでした。

[30] なお、 RDF WGRDFa のこの仕組みを RDF または Turtle に取り込むことも検討していたようです >>29 が、実現していません。

microformats & HTML5

[53] profile URI が指すものは実質的に未定義でしたが、 Tantek &#199;elik は 2003年、 XMDP という書式を提案します。 XMDPHTML をベースにした書式で、 プロファイルを記述するための要素class 属性の使い方を定めていました。

[54] 更に、 HTML 4 で挙げられた meta nameリンク型だけではなく、 クラス名をもプロファイルとして定義することが提案されました。 XMDPmicroformats の記述言語として、 またそれ自体が最初の microformats として注目されることになります。

[55] Web Applications 1.0 は当初から profile 属性についての部分で XMDP に言及していました。

2004年末頃 (要確認) に profile 属性が正式に再定義されましたが、 microformats をはじめとした profile 属性の再評価を踏まえ、より詳細な定義が与えられていました。

例えば、 HTML 4 は複数の URI を指定することを認めていましたが、 その意味は未定義としていました。 Web Applications 1.0 は複数の URI が指定された時のリンク型などの解釈を定めました。

[56] ですが、 profile 属性はその後もよく使われるようにはなりませんでした。 microformatsXMDP プロファイルも、 URI を指定可能な形では提供されておらず、 事実上使われていませんでした。

[52] 結局 profile 属性は2006年12月頃に Web Applications 1.0 (HTML 5) から削除されました。

Ian Hickson は、2年前に HTML 5HTML 4 より厳密に profile を定義し直したが、結局誰も使っていない、 profile は機能しなかった、 と説明しています。 (名無しさん 2006-12-12 08:44:32 +00:00)

[61] profile 属性HTML 5 revision 422 で削除されました。

(X)HTML5 Tracking (2008-03-22 12:01:27 +09:00 版) http://html5.org/tools/web-apps-tracker?from=421&to=422

(名無しさん)

[62] profile 属性HTML 5 revision 422 で削除されました。

(X)HTML5 Tracking (2008-03-22 12:01:27 +09:00 版) http://html5.org/tools/web-apps-tracker?from=421&to=422

HTTP ヘッダー

[79] HTTP ヘッダーとして Profile: が提案されたこともありました >>78 が、後の案で削除されています。

実装

属性値の項の実装関係の記述をこちらに移動する
profile をみる実装があるのか?

利用状況

以前はまったく使われていなかった、 仕様書に従う人も知ってて無視していた
- 少し状況が変わって、プロファイルが沢山作られた
  • 未だにまったく使われていないと主張する人もいるが、あたらない
  • だけど絶対数として少ないのは事実、 現実問題として使い道がないし

メモ

[50] XHTML-Print (2006-09-25 23:44:03 +09:00 版) http://www.w3.org/TR/2006/REC-xhtml-print-20060920/#s3.2

XHTML-PrintXHTML m12n 1.0 に基づくプロファイルで、 profile属性値を (XHTML m12n 1.0 同様に) URI 型としています。

profile の実装は MAY ですが、メタデータに対応する印刷機は対応しなければならない (MUST) としています。 メタデータに対応するとはどういうことか、 profile対応するとはどういうことかは明らかではありません。

この部分だけを見ると、 HTML 4 の定義に基づいた規定のように思えます。

DTD 実装は当然 XHTML m12n 1.0モジュールを採用しています。 その DTD モジュールprofile既定値とされている引数実体 %XHTML.profile; は、 XHTML-PrintDTD駆動器でも XHTML 1.1 同様に空文字列になっており、実体宣言直前の注釈にはやはり将来利用するため予約と書かれています。

この部分を見ると (当然) XHTML m12n の定義に基づいているように見えますが、 媒体型profile 引数の方のために定義されているプロファイル URI がここで使われていないのが謎です。

(名無しさん)

[58] userstyles.org (2007-06-24 15:42:12 +09:00 版) http://userstyles.org/

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head profile="http://a9.com/-/spec/opensearch/1.1/ http://userstyles.org/stylish/metaprofile">

(名無しさん)

[59] GRDDL WG: Do not deprecate the profile attribute (Harry Halpin 著, 2007-07-25 10:02:41 +09:00 版) http://lists.w3.org/Archives/Public/public-xhtml2/2007Jul/0037.html (名無しさん)

[60] XHTML2 WG Weekly Teleconference -- 19 Sep 2007 (2007-09-20 23:13:51 +09:00 版) http://www.w3.org/2007/09/19-xhtml-minutes#item02 (名無しさん)

[63] HTML4's profile="" attribute's absence in HTML5 (Ian Hickson <ian@...> 著, 2008-05-07 00:35:50 +09:00 版) http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/14009 (名無しさん)

[64] Transition Request: Implementation Report and Request for Advancement of GRDDL to Proposed Recommendation ( 版) http://www.w3.org/2001/sw/grddl-wg/prrequest

メモ

[68] (X)HTML5 Tracking ( 版) http://html5.org/tools/web-apps-tracker?from=3682&to=3683

[69] (X)HTML5 Tracking ( 版) http://html5.org/tools/web-apps-tracker?from=3904&to=3905

[70] (X)HTML5 Tracking ( 版) http://html5.org/tools/web-apps-tracker?from=3947&to=3948

[71] Extended Processing Behavior in HTML5 ( 版) http://html5.digitalbazaar.com/specs/html5-epb.html

[72] HTML5 Revision Tracker ( 版) http://html5.org/tools/web-apps-tracker?from=4985&to=4986

[73] HTML5 Revision Tracker ( 版) http://html5.org/tools/web-apps-tracker?from=5062&to=5063

[74] HTML5 Revision Tracker ( 版) http://html5.org/tools/web-apps-tracker?from=5065&to=5066

[75] HTML5 Profiles ( 版) http://dev.w3.org/cvsweb/~checkout~/html5/profiles/drafts/ED-html5-profiles-20100522/Overview.html?content-type=text/html;%20charset=utf-8

[77] Web Application Description Language ( ( 版)) http://www.w3.org/Submission/2009/SUBM-wadl-20090831/#x3-230002.11.2

[82] 518110 – nuke HTMLBaseFontElement interface ( ( 版)) https://bugzilla.mozilla.org/show_bug.cgi?id=518110

[83] Chrome はまだ profile IDL属性を持っています。

[84] SearchMonkey vocabularies - YDN ( ( 版)) http://web.archive.org/web/20110510141358/http://developer.yahoo.com/searchmonkey/smguide/profile_vocab.html

[31] ( 版) http://kyoto-tongari.com/

<link rel="profile" href="http://gmpg.org/xfn/11" />