このドキュメントは A P3P Preference Exchange Language(APPEL) W3C Working Draft 20 April 2000 http://www.w3.org/TR/2000/WD-P3P-preferences-20000420 の和訳です。 この文書には和訳上の誤りがありえます。 内容の保証はいたしかねますので、必ずW3C Webサイトの正式版文書を参照して下さい。 また、著作権等については本文書に含まれる記述に加え、こちらも必ず参照してください。 |
Copyright (C)2000 W3C(R) (MIT, INRIA, Keio), All Rights Reserved. W3C 免責, 登録商標, 文書の使用 、そして ソフトウエアライセンスに関する規則が適用される。
本文書は、P3Pエージェントにおいて、 P3Pプライバシーポリシーに関するプリファレンスの集合を説明するための言語として、 P3P1.0 仕様書を補完するものである。 この言語を使うことにより、ユーザはP3P対応のWebサイトからの、 マシンが読むことができるプライバシーポリシーの受領に関して、 ユーザのユーザエージェントが自動、 または半自動で判断できるようになるプリファレンス-規則 (規則セットと呼ばれる) といったセットでユーザのプリファレンスを表現することができる。
この章では、発行時における本文書の位置付けを説明する。 他の文書がこの文書にとって代わる可能性もある。 本文書のシリーズの最新の位置付けは、W3Cで決められる。
本書は、P3Pプリファレンスの置換言語のワーキンググループが W3Cメンバと他の関連団体とともにレビューを行うためのW3Cワーキングドラフトである。 本文書は、P3P活動の一環として作成され、 最終的にはW3Cの勧告となることを目指す。 ワーキングドラフト文書であるため、この仕様書はいつでも改版、置換、 または他の文書により陳腐化するかもしれない。従って、W3Cのワーキングドラフトを "進行中の作業"ではないとして参考文献資料、 その他として参照することは不適切である。現在のW3Cワーキングドラフトは、 http://www.w3.org/TR/を参照のこと。
このワーキンググループは、 P3Pプリファレンスの置換言語を開発するための幾つかの異なったアプローチについて考え、 ひとつのアプローチを文書で取り決め、フィードバックを行う。このグループは、 全般的な-目的言語 (例としては、 XML、またはRDF問い合わせ言語)を含む他のアプローチについても考える。 仕様書にフィードバックするならば、実験的な実装とプロトタイプの開発を奨励する。 しかしながら、このワーキンググループは、 本文書の将来的な版を変更させうる影響のあるような、早期の実装を許すものではない。
APPEL言語の本バージョンは、正しい規則を当てにしている。 ワーキンググループは特に、規則セットのマージと編集のより良いサポートに関して、 どのようにしてこの機構を改良するか、フィードバックを勧める。 どうか、このドラフト文書の例はP3P仕様書の 2000年4月4日 版が基本であることに注意されたし。そして、このような例は、 P3P仕様書の出版によって、改定すべきである。
このドラフト文書はW3CとそのメンバーによりW3Cの手順に従って考案される。 これは、P3Pの実装、受領、採用に影響する問題を担当するW3Cメンバシップと スタッフに対するコメントを一般から受ける目的で公開されている。
コメントは、 www-p3p-public-comments@w3.orgに送付すべきである。これは、フィードバックを 提供するのに好ましい方法である。公のコメントとその返答は、 http://lists.w3.org/Archives/Public/www-p3p-public-comments/にアクセスされたし。 あるいは、あなたのコメントを公にしたくない場合は、コメントをp3p-comments@w3.orgに送ることもできる。 この場合、あなたのコメントは、W3Cメンバからのみアクセス可能となる。 ( http://lists.w3.org/Archives/Member/p3p-comments/にて)
本文書は、P3Pエージェントにおいて、 P3Pプライバシーポリシーに関するプリファレンスの集合を描写する言語を規定する。 この言語を使うことにより、ユーザはP3P対応のWebサイトからの、 マシンが読むことができるプライバシーポリシーの受領に関して、 ユーザのユーザエージェントが自動、 または半自動で判断できるようになるプリファレンス-規則 (規則セットと呼ばれる) といったセットでユーザのプリファレンスを表現することができる。
注意:この言語は、伝送形式を意図している; 個々の実装では、この言語でかかれた仕様書を読み書きできるようにしなければならないが、 この形式を内部的に使う必要はない。
この言語は、P3P1.0仕様書を補足する。 基礎となる論理の大部分はPICSRules に基づいている。 ゆくゆくはこれが単にXML (XML-data、規則、 照会言語のアプリケーションとなることを期待している。
ポリシーは、(webブラウザ、ブラウザプラグイン、 プロキシサーバのような)ユーザエージェントにより自動的に解析される。そして、 ユーザが定義したプライバシープリファレンスセットと比較される。 これらのプリファレンスに依存して、ユーザエージェントは、 ユーザにシンプルな情報を表示したり、プロンプトを出したり、 その他の動作をするかもしれない。
基本的なP3Pの対話について、以下のような処理が考えられる:
まずはじめに、この言語は、 他の団体が作ったプリファレンス規則セットをインポートすることをユーザに許し、 それ自体の規則セットのファイルを複数のユーザエージェント間で転送するために使われる。 ユーザエージェントを実装する人はまた、ユーザプリファレンスをエンコードして、 そのユーザエージェントの意志決定をする部品としてのサーバのような 規則評価器で使うためにこの言語(またはいくつかの簡単な派生版として)を選ぶかもしれない。
作業グループはAPPELの範囲を以下のように限定している:
言語の原形実装の普及を早めるために、ワーキンググループは基本のプライバシープリファレンスのみを表現するために設計されたレベル1仕様書を最初にリリースし、その後、上記の残りの必要条件を実装するレベル2仕様書を準備することを決めた。特に、,APPELレベル1は必要条件を以下に限定する。
本文書は以降で、このようにして簡略化したバージョンのAPPEL(レベル1仕様書として参照された)について述べる。より詳細な全APPEL構文に関する拡張子のリストについては、付録Aを参照のこと。APPEL構文は以降、レベル2仕様書そして参照される。
簡単な参照として、以下の図はXMLP3P1.0ポリシーの要素と属性のほとんどを表しているポリシーの例を示している。個々の要素とその使用についての詳細は、P3P1.0仕様書の3 ポリシー構文と意味論を参照されたし。
<POLICY xmlns="http://www.w3.org/2000/P3Pv1"> <ENTITY> <DATA name="business.name">TheCoolCatalog</DATA> <DATA name="business.contact-info.postal.street.line1">123 Main Street</DATA> <DATA name="business.contact-info.postal.city">Bethesda</DATA> <DATA name="business.contact-info.postal.stateprov">MD</DATA> <DATA name="business.contact-info.postal.postalcode">20814</DATA> <DATA name="business.contact-info.postal.countrycode">US</DATA> </ENTITY> <DISPUTES-GROUP> <DISPUTES resolution-type="independent" service="http://www.PrivacySeal.org" description="PrivacySeal.org" image="http://www.PrivacySeal.org/Logo.gif"/> </DISPUTES-GROUP> <DISCLOSURE discuri="http://www.TheCoolCatalog.com/PrivacyPractice.html" access="none"/> <STATEMENT> <CONSEQUENCE-GROUP> <CONSEQUENCE>a site with clothes you would appreciate</CONSEQUENCE> </CONSEQUENCE-GROUP> <RECIPIENT><ours/>/RECIPIENT> <PURPOSE><custom/><develop/></PURPOSE> <RETENTION><indefinitely/></RETENTION> <DATA-GROUP> <DATA name="dynamic.cookies" category="state"/> <DATA name="dynamic.miscdata" category="preference"/> <DATA name="user.gender"/> <DATA name="user.home." optional="yes"/> </DATA-GROUP> </STATEMENT> <STATEMENT> <RECIPIENT><ours/></RECIPIENT> <PURPOSE><admin/><develop/></PURPOSE> <RETENTION><indefinitely/></RETENTION> <DATA-GROUP> <DATA name="dynamic.clickstream.server"/> <DATA name="dynamic.http.useragent"/> </DATA-GROUP> </STATEMENT> </POLICY>
or
, and
, or-exact
およびand-exact
。詳細は5.4.3 連結詞を参照のこと。<POLICY>
と<APPEL:REQUEST>
要素を(トップレベルの)表現として使用できることに注意されたい。
<OTHERWISE>
要素を参照のこと<APPEL:RULE(規則)>
要素のすぐ下に含まれている表現。APPELレベル1では,トップレベルの表現は<POLICY>
もしくは、<APPEL:REQUEST>
要素、劣化した表現になり得る。<APPEL:RULE behavior="...">rule</APPEL:RULE>
さらに、この仕様書は各特定の必要条件の意味を特定する為にRFC 2119 [RFC2119]で使用されているのと同じことばを使用する。そのことばとは:
規則の範囲は<APPEL:ルール>
要素のオープン、クローズにより決定される。評価器はこの規則を起こしたポリシーのコピーと同様に、上記の証拠を基本としてできた規則の挙動 (挙動
属性で規定されているように)を返す。特に、この規則で照合されていないオプション的要素が含まれていない場合は、この規則を起こしたポリシーは証拠で見つけたオリジナルのポリシーと必ずしも一致するわけではない。さらに、規則評価器は任意に、説明文字列 (ユーザ表示にあわせた)、ペルソナの名前、および/またはfiredした規則を返すことがある。
アプリケーションは標準出力を以下のように解釈すべきである:
規則セットの各規則は表示される順番に評価される。規則がtrueと評価されたら、対応する挙動が返され、規則の評価は終了する。ポリシーが受領されない場合にさらに情報を提供したがっているユーザエージェントは、(なぜそれが"拒否"されたかの理由を全てリストアップするようなこと)そのような情報をユーザに与えるためにさらなる評価を必要とするかもしれない。
規則セットは常にfireする規則があるように記述されるべきである。規則評価器は、規則セットなしで、空の規則セットで、どのルールもfireしない場合にはエラーを返すべきである。エラーが返却された場合どうするかを決定するのは callingプログラム次第であるが、calling プログラムはエラーを"受領"するように処理すべきでない。
ルール処理の詳細についてはセクション5.1 規則評価器の要約及び 5.2 規則の順序を参照のこと。
APPELの表現は有効な証拠に対して照合することによって、正、誤の評価ができるXML要素によって表される。表現はいつも以下で構成されている。(例えば、図2.1 を参照のこと):
要素名のみ:
|
要素および属性:
|
要素名, 組み込まれた要素および連結詞
|
要素名, 属性, 組み込まれた要素と連結詞:
|
APPELはすべての値を単純な 文字列として扱うが、属性-表現 は文字列 または数値をとるかもしれない。APPELレベル1は属性-表現 の一様な操作のみをサポートしている (APPELレベル2は 数値照合のための"<"less-thanや">"greater-thanなどの比較操作を追加的に提供する。
APPELは、多くの人気のあるOS shellに見られるワイルドカードメタ文字"*"のシンプルセットをサポートする。属性の表現は <DATA name="ユーザ.*">
("ユーザ" データセットからのあらゆる要素) などの値の範囲を照合するためにこのメタ文字を使用することができる。詳細は5.4.1 属性の表現および5.4.2 規則的な表現 メタ文字を参照のこと
<APPEL:OTHERWISE>
とも呼ばれる。証拠に対抗して照合する代わりに規則評価器はいつもこの表現をtrueとして評価しなければならない。この表現はまだ、照合の済んでいない場合のすべてを得る為にいつも規則セットの最後の規則にある。複数の属性表現および/または組み込まれた表現が一つの表現の範囲内に置かれるとき、全ての表現は一つの証拠の範囲内で照合される。規則が<PURPOSE><develop/></PURPOSE>
と<RECIPIENT><ours/></RECIPIENT>
表現の両方を含む<STATEMENT>
表現を組み込む場合、P3Pポリシーが、ローカルな受領者と研究開発を宣言するステートメントを含む時、その表現は true を評価するのみである。
表現内の属性の表現 は暗黙に互いにANDされているが、特別なconnective(連結詞)
属性は組み込まれた表現の意味論照合を管理するために使用される。APPEL はそういった連結詞4つをサポートする:or, and, or-exact, と and-exact。もし連結詞が与えられていなければ、必要なand-exactへのAPPEL デフォルトは照合する: 証拠の要素が規則に与えられた連結詞と一致した時のみ、照合が起こる。
属性の照合と組み込まれた表現については5.4 照合で詳細を述べている。
<APPEL:RULESET>
要素で囲まれている)、規則例の小さなセットを説明するためのみに使用される。
ここでは、ユーザのプレファレンスの簡単なテキスト記載(文句無しに単純な)、含まれる要素とそれらの許可された値の概要表を示す。最後に、該当するAPPEL暗号化の例を挙げる。本文書に参照しやすいようにという配慮から書かれている表中のライン番号は、実際の暗号の一部ではないので注意されたし。
http://www.my-bank.com
にアクセスする場合、ユーザは自身のデータが他の受領者に再配布されない限り、あらゆるデータリクエストを受領する。属性/要素とその値のリストがあるが、挙動を探すためのルックアップ表としてその表を使用しないでください。その代わり、表照合で値が参照するまで、列ごとにその表をみていかなければならない。なぜなら、各列はこの規則セットで順序づけられた規則を表しているからである。 セルにはワイルドカードシンボルの"*"が付いているものと何もついてないものがあることに注意されたし。APPEL は参照されない属性と参照されるがワイルドカードのみを含む属性を見分ける。前者の場合、ポリシーに属性が含まれる含まれないに関わらず、ユーザは本当に属性に注意を払わない。後者の場合、ユーザは属性値に注意を払うかもしれないが、少なくともアトリビュートが何かの値を持つことを期待する。詳細については、5.4.2 規則的な表現 メタ文字を参照のこと。以下に示す我々の例の3列では、ユーザは収集したclickstream データの目的について注意を払わない(そのためこの表では空欄), しかし、ある種の係争解決-情報を要求する (ワイルドカードの"*"を使って表示)
挙動 | 要素(element)/セット(Set) | URI | 係争解決(Disputes) | 目的(Purpose) | 受領者(Recipient) |
reject (拒否) |
category="physical", or category="demographic", or category="uniqueid" |
same, other, delivery, public or unrelated |
|||
accept (受領) |
dynamic.http.useragent, dynamic.clickstream.server | * | |||
inform (通知) |
user.name.* | "PrivacyProtect" and "TrustUs" | current, admin, custom or develop | ||
accept (受領) |
www.my-bank.com | ours | |||
warn (警告) |
[otherwise] |
behavior
属性で文字列"拒否"を持つ規則) は、第三機関に配布される同一と証明できるデータを訊ねるあらゆるポリシーを最初に拒否する。
リクエストURLの明確な照合を使用して、2番目の規則はポリシーを受領する場合、www.my-bank.com
に接続していると、リクエストされたデータは銀行とエージェントへ配布されるだけである。
次に、"受領"規則は同一だとみなし得ないclickstream データおよび/またはユーザエージェント情報 (ブラウザバージョンやOSなど)が収集されているかどうかを見る為に、確認をし、もし、係争解決情報受領が有効であれば、受領する。
"通知"規則は売買目的ではないユーザ名に対するあらゆるリクエストを照合し、最終的にはユーザにサイトが受領可能な状況でユーザ名を収集したがっているという事を即座に通知し始める。
もし、他の規則が照合しなければ、上記の規則がカバーしているポリシーについてユーザに(慎重に)警告し、劣化した表現"APPEL:OTHERWISE"を要約している"警告"-規則はfireするだろう。
000: <APPEL:RULESET xmlns:APPEL="http://www.w3.org/2000/APPEL" 001: crtdby="W3C" crtdon="13-Nov-1999 09:12:32 GMT"> 002: 003: <APPEL:RULE behavior="reject" 004: description="Service collects personal 005: data for 3rd parties"> 006: <POLICY APPEL:connective="and"> 007: <STATEMENT APPEL:connective="and"> 008: <DATA-GROUP APPEL:connective="or"> 009: <DATA category="physical"/> 010: <DATA category="demographic"/> 011: <DATA category="uniqueid"/> 012: </DATA-GROUP> 013: <RECIPIENT APPEL:connective="or"> 014: <same/><other/><public/><delivery/><unrelated/> 015: <RECIPIENT/> 016: </STATEMENT> 017: </POLICY> 018: </APPEL:RULE> 019: 020: <APPEL:RULE behavior="accept" 021: description="My Bank collects data only for itself 022: and its agents"> 023: <APPEL:REQUEST-GROUP> 024: <APPEL:REQUEST uri="http://www.my-bank.com/*"/> 025: </APPEL:REQUEST-GROUP> 026: <POLICY APPEL:connective="and"> 027: <STATEMENT APPEL:connective="and"> 028: <RECIPIENT APPEL:connective="or-exact"> 029: <ours/> 030: <RECIPIENT/> 031: </STATEMENT> 032: </POLICY> 033: </APPEL:RULE> 034: 035: <APPEL:RULE behavior="accept" 036: description="Service only collects clickstream data"> 037: <POLICY APPEL:connective="and"> 038: <STATEMENT APPEL:connective="and"> 039: <DATA-GROUP APPEL:connective="or-exact"> 040: <DATA name="Dynamic.HTTP.UserAgent"/> 041: <DATA name="Dynamic.ClickStream.Server"/> 042: </DATA-GROUP> 043: </STATEMENT> 044: <DISPUTES-GROUP> 045: < DISPUTES service="*"/> 046: </DISPUTES-GROUP> 047: </POLICY> 048: </APPEL:RULE> 049: 050: <APPEL:RULE behavior="inform" 051: description="Service only collects your name 052: for non-marketing purposes (assurance 053: from PrivacyProtect and TrustUs)"> 054: <POLICY APPEL:connective="and"> 055: <STATEMENT APPEL:connective="and"> 056: <PURPOSE APPEL:connective="or-exact"> 057: <current/><admin/><custom/><develop/> 058: </PURPOSE> 059: <DATA-GROUP APPEL:connective="or-exact"> 060: <DATA name="User.Name.*"/> 061: </DATA-GROUP> 062: </STATEMENT> 063: <DISPUTES-GROUP APPEL:connective="and"> 064: <DISPUTES service="http://www.privacyprotect.com"/> 065: <DISPUTES service="http://www.trustus.org"/> 066: </DISPUTES-GROUP> 067: </POLICY> 068: </APPEL:RULE> 069: 070: <APPEL:RULE behavior="warn" 071: description="Suspicious Policy. Beware!"> 072: <APPEL:OTHERWISE/> 073: </APPEL:RULE> 074: 075: </APPEL:RULESET>
Lines | 説明 |
---|---|
000 - 075 |
APPEL規則セット。APPEL規則セット。単一のAPPEL規則セット(すなわち、<APPEL:RULESET> タグに囲まれている順序づけられた規則のセット) は普通、ユーザエージェントにインストールされている。実装はシステムの現在ユーザ、または、現在のブラウジングセッション中にユーザが使用したいと思うペルソナに合わせて異なる規則セットを維持するために提供するかもしれない。<APPEL:RULESET> 要素は著者や作成の日付などの追加情報でタグ付けすることができる:
[1] ruleset = '<APPEL:RULESET xmlns="http://www.w3.org/2000/APPEL" ' attributes '>' rseq '</APPEL:RULESET>' [2] rseq = 1*rule |
003 - 018 |
"拒否"規則。APPELは4種類の規則の挙動を提供する。:"受領(accept)", "拒否(reject)", "通知(inform)"そして "警告(warn)"。各規則は表現のセットや劣化した表現<APPEL:OTHERWISE> に囲まれた<APPEL:RULE> 要素で構成されている。
[3] rule = '<APPEL:RULE behavior="' behavior '"' attributes '>' body '</APPEL:RULE>' [5] body = top-expression | '<APPEL:OTHERWISE/>' [6] behavior = 'accept' | 'reject' | 'inform' | 'warn' 各規則は属性のセットよって増加することができる。我々の例では、規則がfireすべきである場合の人間が読むことのできる("サービスはclickstream データ"のみを集める)説明を提供する記載フィールドを使用する。(これは、データ転送やプロンプト中にユーザエージェントによって表示されるか、目的をデバッグするために使用される) [4] attributes = [' persona=' quoted-string] [' crtby=' quoted-string] [' crton="' datetime '"'] [' description=' quoted-string] |
006 - 017 |
照合するためのP3Pプライバシーポリシー。ほとんどのAPPEL規則には、<RULE> 要素内に照合する表現があるように、P3Pプライバシーポリシーがある。ワイルドカード ("*") は値の範囲を照合するのに使用されるが、規則が照合すべき要素および属性値はポリシーで簡単に述べられている。属性もしくは要素を完全に省略することでサービスが提供しているポリシーから属性/要素を省略することができる。(もしくはあらゆる値を使って組み込むこともできる。).
|
007 - 016 | STATEMENT(ステートメント) 要素照合。もし、サービスが第三機関(<same/> , <other/> "または<published/> を照合する<RECIPIENT> )へ配布される個人データ(カテゴリphysical , demographic またはuniqueid の<DATA> 要素)について問い合わせたら、"拒否"規則は解除すべきである (すなわちポリシーの拒否)。規則はいつもP3Pプライバシーポリシーの必要な要素すべてを特徴付けてはいないことに注意。<DATA> および<RECIPIENT> 要素が照合することを考えると、この拒否規則はポリシーで規定された目的(<PURPOSE> )に関わらず規定を行うだろう。 |
006 - 008, ... |
連結詞。APPELを使用して: APPEL:connective 属性, 規則の著者は要素の組み込まれた表現に対して異なった照合の意味論 明確に規定する。APPELは異なった照合の意味論を実装する異なる連結詞 (or , and , or-exact およびand-exact ) 4つをサポートする。もし、連結詞が与えられなければ、anand-exactを必要とする意味論を照合するdefaultは規則と有効な証拠の間を照合する。
[11] connective = 'APPEL:connective="' conn '"' [12] conn = or | and | or-exact | and-exact |
020 - 033 | 制限された受領-規則。www.my-bank.com からWebリソースをリクエストしている間に"accept"規則が取り出されている場合、この規則はポリシーの照合を続けるのみである。それは規則本体に追加の<APPEL:REQUEST> 要素があるからである。ユーザエージェントが要素にリストされたuriからリクエストをしない限り、この追加の<APPEL:REQUEST> 要素はfalseと評価する。これによってユーザは簡単に制限されたドメインのセットからポリシーを適用しているだけの規則を書く事ができる。 |
035 - 048 | 受領。多くても、サービスが送ったポリシーがユーザエージェントおよび/またはclickstreamデータの集まりを宣言する場合、"受領"規則はデータのリリースのみを許可すべきである。目的(<PURPOSE> )および受領者(recipient) 要素 (<RECIPIENT> )がP3Pプライバシーポリシー ステートメントで必要であったとしても、規則に現れてはいけない事に注意。 |
040 - 041 | 照合するためのデータ要素。"or-exact "-連結詞の使用があるので、ポリシーのステートメントが規則にnotふくまれていない追加データ参照をもたない場合は"受領"規則は照合するのみである。それゆえ、規則セットの33行から36行に明確に列挙している要素以外をリクエストしているポリシーは直ちにその表現をfalseと評価するだろう。(すなわち、ポリシーを受領しない。) |
044 - 046 | 照合するための係争-解決情報。ユーザは係争が起こった場合に備えて、プライバシー ポリシー に関する保証を提供できる組織への参照を持つサービスを確認したいと考える。 |
050 - 068 | "通知"規則。ユーザはTrustUsおよびPrivacyProtectの両方の保証があるWebサイトへ売買目的ではなく、自身の名前を提供することに同意したが、個々のデータ転送を管理したいと思う。実装は、ユーザを新しいサイトへアクセスするよう効果的に促し、特定のサイトへの二次的なデータ転送をすべて明確に受領できるユーザインターフェースを提供するかもしれない。 |
013, 056 | 択一のリストの照合。幾つかの異なった目的や受領者を照合するため、"or"または"or-exact"連結詞を使用し、有効な択一の受領者と目的要素のリストを含める。 |
063 - 066 | 連結詞の値の照合。ポリシーのTrustUsおよびPrivacyProtect両方の保証を要求するため、規則はDISPUTES-GROUP 要素の"すべての"連結詞と一緒に同じ要素 (<DISPUTES>(係争解決) )を何度(しかし、属性の異なった値で)もリストする。このようにして 値の間の論理ANDを表す。 |
070 - 073 | "警告"規則。APPEL規則セットの規則が順序づけられるので、"警告"規則は発行者が送ったポリシーを照合できない先行する規則すべてを評価するだけである。我々の規則の順序を逆にすれば、(すなわち、<OTHERWISE> 規則を最初に置くこと)ユーザエージェントは得られるポリシーすべてに対していつも警告を発するだろう(以下のコメントを参照のこと)。 |
072 |
劣化した表現。劣化した表現<OTHERWISE> を使用して、いつもtrueと評価することで知られている"catch-all"規則を作成できる。後に続く規則すべてが評価されないので、<OTHERWISE> を含む規則はいつも規則セットの最後に置かれなければならない。空の規則は何も照合しないことに注意。
あらゆる可能な証拠セットのために、いつもfire する規則があるように規則セットを書くべきである。このようにして, もし規則がfireしていなければ、規則評価器はエラーをすべきである。 |
[1] ruleset = '<APPEL:RULESET xmlns="http://www.w3.org/2000/APPEL" ' attributes '>' rseq '</APPEL:RULESET>' [2] rseq = 1*rule [3] rule = '<APPEL:RULE behavior="' behavior '"' attributes '>' body '</APPEL:RULE>' [4] attributes = [' persona=' quoted-string] [' crtby=' quoted-string] [' crton="' datetime '"'] [' description=' quoted-string] [5] body = top-expression | '<APPEL:OTHERWISE/>' [6] behavior = 'accept' | 'reject' | 'inform' | 'warn' [7] top-expression = policy | request-group [policy] [8] policy = <[P3P10]ポリシー (オプション的に埋め込まれた連結詞)> [9] request-group = '<APPEL:REQUEST-GROUP ' [connective] '>' 1*request '</APPEL:REQUEST-GROUP>' [10] request = '<APPEL:REQUEST uri="' RFC 2396で示された[URI] '">' [11] connective = 'APPEL:connective="' conn '"' [12] conn = or | and | or-exact | and-exact [13] quoted-string = '"' 文字列 '"' [14] string = <[UTF-8] 文字 (" や & でエスケープされたもの)> [15] datetime = <[RFC 2068]の3.3に示された日付/時刻>
詳細は以下の4.2 要素に記載している。付録A: APPELレベル2仕様書も参照のこと。
P3Pプライバシーポリシーと違って、APPEL規則セットはHTTPプロトコルエクステンションのような特別な手段を用いてリアルタイムで交換するようには作られていない。そのかわり、使用中のハードウェアセットアップか、ソフトウェアセットアップかによって利用できる手段を使って単純なファイルのように処理、ダウンロードされる。
内部的には、ユーザエージェントは、ユーザの簡単なテキスト規則セットファイルをその内部表示に合わせるための方法を提供する限り、ユーザの規則セット(バイナリフォーム)の便利な暗号はどれでも使って良い。
<>
かぎ括弧に与えられている。必須であるとタグ付けされている以外は、リストに記載されている属性はオプション的である。これらの要素を実際に使用することに関する情報については、3. 単純なシナリオの例と5. 意味論を参照のこと。
<APPEL:RULESET>(規則セット)
要素<APPEL:RULESET>
ペルソナ(persona)
<RULE>
レベルに上書できることに注意。crtby(crtby)
crton(crton)
description(記載)
[1] ruleset = '<APPEL:RULESET xmlns="http://www.w3.org/2000/APPEL" ' attributes '>' rseq '</APPEL:RULESET>' [2] rseq = 1*rule [4] attributes = [' persona=' quoted-string] [' crtby=' quoted-string] [' crton="' datetime '"'] [' description=' quoted-string]
<APPEL:RULE>(規則)
要素<APPEL:RULE>
挙動(behavior)
(必須属性)ペルソナ(persona)
<RULESET>
が囲んでいる対応する値が使用される。crtby(crtby)
crton(crton)
description(記載)
<APPEL:RULE>
要素で直接囲まれているトップ-レベル表現はいつもexact
照合(5.4.4 連結詞を参照)と照合されなければならない。-- 一番上の要素の異なる照合の意味論を指定する APPELレベル1に方法がない。
<POLICY>
要素を含んでいるが、<APPEL:REQUEST>
要素を含まない規則はどのサイトにおいてもポリシーを照合しようとするだろう。<POLICY>
要素と<APPEL:REQUEST>
要素の両方を含んでいる規則は<APPEL:REQUEST>
要素で与えられているURIを照合するサイトでポリシー照合をするのみである。サイトがP3Pプライバシーポリシーを提供しない場合、<APPEL:REQUEST>
要素を含んでいるが<POLICY>
要素を含まない規則は照合をするだろう。表現の空のリストを持つ規則は起動しない。(前の)規則がfireされていない場合、発生するであろうデフォルト規則を作成するために、劣化した表現<OTHERWISE/>
が使用されるべきである。
[3] rule = '<APPEL:RULE behavior="' behavior '"' attributes '>' body '</APPEL:RULE>' [4] attributes = [' persona=' quoted-string] [' crtby=' quoted-string] [' crton="' datetime '"'] [' description=' quoted-string] [5] body = top-expression | '<APPEL:OTHERWISE/>' [6] behavior = 'accept' | 'reject' | 'inform' | 'warn' [7] top-expression = policy | request [policy]
<APPEL:OTHERWISE>
要素<APPEL:OTHERWISE>
<APPEL:OTHERWISE>
規則の唯一の表現である。一つの規則セットは通常、劣化した表現を特徴づける一つの規則を含み、そのような規則は規則セットの最後にくる。ユーザは、ユーザの先行する規則がカバーしない場所のデータレポジトリへのアクセスに制限のない受領挙動で<OTHERWISE>
要素を使用しないように注意する必要がある。ユーザエージェントは、そのような"catch-all"受領を持つ規則セットの受領を拒否しなければならない。
[5] body = top-expression | '<APPEL:OTHERWISE/>'
<APPEL:REQUEST>
要素<APPEL:REQUEST>
uri
(必須属性)<POLICY>
-表現と一緒に、<APPEL:REQUEST>
要素(<APPEL:REQUEST-GROUP>
要素に埋め込まれている) はあるリソースやドメインのみを適用する規則を作成するのに使用される。規則がfireするために表現は正であると評価する必要があるので、既存のどの<APPEL:REQUEST>
要素も<POLICY>
表現のアプリケーションを与えられたURIへ制限するだろう。
単一の規則にある複数で、択一のリソースや/またはドメインをリストするために、<APPEL:REQUEST-GROUP>
要素に複数の<APPEL:REQUEST>
要素を埋め込む事ができるし、or
やor-exact
連結詞を使用して接続することもできる。
[7] expression = policy | request | 1*<A chunk of XML code (optionally with embedded connectives)> [8] policy = <[P3P10] policy (optionally with embedded connectives)> [9] request-group = '<APPEL:REQUEST-GROUP ' [connective] '>' 1*request '</APPEL:REQUEST-GROUP>' [10] request = '<APPEL:REQUEST uri="' [URI] as per RFC 2396 '">'
APPEL:connective
(連結詞)属性APPEL:connective
APPELは異なった4種類の連結詞をサポートする: or
, and
, or-exact
そしてand-exact
意味論の記載については、5.4.3 連結詞を参照して下さい。APPEL:connective
が与えられていない場合、and-exact
へのAPPEL照合の意味論デフォルトは照合する。:含まれた表現はすべて証拠に現れなければならず、追加の要素は現れてはならない。
[11] connective = 'APPEL:connective="' conn '"' [12] conn = or | and | or-exact | and-exact
規則評価器は callingプログラムが、規則が発生させるポリシーのコピーと同様に実行する挙動(4つの標準挙動"受領", "拒否", "通知" または"警告"のどれか一つ)を返さなければならない。規則によって照合されていないオプション的要素があった場合は特に、後者は証拠にあるオリジナルのポリシーと一致しなくてもよいということに注意されたい。さらに、規則評価器は任意に(ユーザ表示に合った)説明文字列、ペルソナの名、や/またはfireされた規則を返してもよい。
規則セットの各規則は現れる順番で評価される。規則がtrueと評価すると、対応する挙動は返され、規則の評価は終了する。照合が行われず、規則すべてが進行する場合、callingプログラムへエラーが返される。
規則セットは、あらゆる可能な証拠セットのために、fire する規則がいつもあるように書かれなければならない。エラーが返された時どうするかを決めるのはcalling プログラム (通常はユーザエージェント)次第である。しかしながら、callingプログラムはエラーを"受領"の様に扱うべきではない。
<APPEL:REQUEST>
要素 (ポリシー URI ではなく、現在リクエストされているリソース)と同様に、P3P<POLICY>
要素、APPEL<APPEL:OTHERWISE>
要素をサポートしなければならない。
規則のトップ-レベル表現はすべて一緒に暗黙的にANDされる。同様に各表現は囲まれた属性表現と共に、暗黙的にANDされる。規則の著者がconnective(連結詞)
属性を使用して明示的に択一照合を規定しなければ、組み込まれた表現はデフォルトによって ANDされる。
すべての表現とそのサブ-表現 (属性およびと含まれた表現)は規則評価器によって、規則に現れるネスティングに従った証拠の要素と照合される。例えば、規則のPOLICY
要素内にネストされているステートメント
要素は照合するPOLICY
要素の中にネストされている証拠のステートメント
要素のみを照合する。
表現を含んでいない規則はいつもfalseと評価し、劣化した表現のみを含んでいる規則はいつもtrueと評価する。
APPELはどうやって 規則セットの複数の規則を評価するか。APPELの規則はすべて適切に厳しく評価されるので、APPEL規則セットにある複数の規則間の論理オペレータには必要が無い。しかしながら、新しい 規則を追加したり、既存の規則リストの順番を変えたりする事はユーザエージェントの挙動に大きな影響を与える事ができる!
劣化する表現<OTHERWISE>
を含む単一の規則のみが存在し、規則セットの最後にあるということに注意すべきである。
規則の中の何を指定するかAPPEL規則セットのルールは全て有効なXML 形式にある幾つかのトップ-レベル表現を含んでいる。各表現は、特定の証拠に適合しようとする。そしてその特定の証拠ではAPPELレベル1がP3Pプライバシーポリシーの形式にだけに存在しているか、または(
<APPEL:REQUEST>
要素を使用して)リソース URIのような情報をリクエストできる。
単一表現のすべてのサブ-表現はいつも一緒にANDされている各デフォルトである、それはつまり、表現が照合をするために、すべての属性および組み込まれた表現はtrueと評価されなければならないということである。しかしながら、APPEL:connective(連結詞)
属性を使用して、規則の著者は要素の含まれた表現の異なる照合の意味論を明示的に規定できる。
連結詞がこのレベルにおいて現れている含まれている表現のみを管理している事に注意。これらの含まれている表現は交互に他の表現を含むべきであり、別のconnective(連結詞)
属性が含まれている表現の中で使用されていない場合は、デフォルト照合の意味論(exact
)を使用して照合されるだろう。詳細は5.4.3 連結詞を参照のこと。
図5.1 以下ではAPPELの表現の正式でない定義の主な種類を3つ説明する。
[1] expression = empty-expression | containing-expression [2] empty-expression = "<" element-name *attribute-expression "/>" [3] containing-expression = "<" element-name *attribute-expression [connective]">" 1*contained-expression "</" element-name ">" [4] element-name = identifier [5] attribute-expression = attribute_name "=" quoted-string [6] contained-expression = expression [7] attribute_name = identifier [8] identifier = <a valid XML identifier> [8] quoted-string = `"` string `"` [9] string = <[UTF-8] string (with " and & escaped)> [10] connective = 'APPEL:connective="' conn '"' [11] conn = or | and | or-exact | and-exact
APPELでは、規則における複数の表現が証拠の一つと同じ要素を照合できるということに注意。規則評価器は証拠でどの部分の規則がどの部分に照合したかという事を覚えておく必要ない。その代わり、以下の例に示しているように、各表現は有効な証拠に対して別々に確認することができる。: 規則のステートメント
-表現は、証拠の同じ<STATEMENT>(ステートメント)
要素を別々に照合する。
<-- ruleset --> <APPEL:RULE behavior="inform"> <POLICY APPEL:connective="and"> <STATEMENT APPEL:connective="and"> <RECIPIENT APPEL:connective="or-exact"> <ours/> </RECIPIENT> <DATA-GROUP APPEL:connective="or-exact"> <DATA name="user.*"/> </DATA-GROUP> </STATEMENT> <STATEMENT APPEL:connective="and"> <PURPOSE APPEL:connective="or-exact"> <custom/> </PURPOSE> <DATA-GROUP APPEL:connective="or-exact"> <DATA category="online"/> </DATA-GROUP> </STATEMENT> </POLICY> </APPEL:RULE> |
<-- evidence (abbreviated) --> <POLICY> ... <STATEMENT> <RECIPIENT><ours/></RECIPIENT> <PURPOSE><custom/></PURPOSE> <DATA-GROUP> <DATA name="user.home.online.email"/> </DATA-GROUP> </STATEMENT> </POLICY> |
規則の著者がor
もしくはor-exact
フラグと共にAPPEL:connective(連結詞)
属性を明示的に使用しなかった場合、callingプログラムによって提供される証拠のセットの中にない要素に関する表現は、常にfalseと評価する。例えば、証拠が要素を含まない場合に限り、連結詞を使わずに係争解決要素を照合する(含まれている)表現を使用することはいつもうまくいかない。
反対に、規則の著者が明示的にor-exact
またはand-exact
フラグと共にAPPEL:connective(連結詞)
属性を使用しなかった場合に限り、規則にある対応する要素表現がない証拠はいつも無視される。例えば、係争解決要素を含むが、開示要素を含まない(そして、連結詞を使用しない) P3Pプライバシーポリシーを参照する規則はおそらく、係争解決および開示要素の両方を特徴づけるP3Pプライバシーポリシーを照合することができる。
P3Pプライバシーポリシーやリクエスト情報以外の証拠を照合するにはAPPELレベル2を使用することが必要であることに注意されたし。APPELレベル1を使用すると、P3PプライバシーポリシーやAPPEL:REQUEST
要素以外は無視されるだろう(規則の評価の変更はしない)。2つ以上のP3Pプライバシーポリシーが有効である場合、個々に規則評価器へ提示されるべきである。(5.1 規則評価器の要約を参照のこと)
APPELはどのようにして表現と証拠を照合するのか
APPELの表現は規則と有効な証拠を照合するのに使用される。規則で与えられた要素に対して、表現は同じ属性、値、そして照合している-要素を特徴づけている全く同じ要素 を証拠が含んでいるかどうかをテストすることができる。APPELにある表現すべての標準の照合の意味論 は使用される連結詞の選択で左右され、(以下の5.4.3 連結詞を参照のこと)以下に要約することができる。:
or
およびor-exact
連結詞)and
およびand-exact
連結詞)or
およびand
連結詞)or-exact
およびand-exact
連結詞)= operatorだけは属性の表現に適応されてもよい。すべての属性値が数字(P3P要素が数属性値を表していないのでこれは実際には重要でない)を表したとしても、APPELで文字列として扱われる。表現が照合するために、表現の属性の表現にリストされている属性および値はすべて、証拠において同じ名前で一つの要素に現れなければならない。証拠で発見されているが、規則で参照されていない追加の属性はいずれも無視される。
規則に属性の値に制限がない要素に特別な属性の出現が必要である場合、(空白の値を含む!), ワイルドカード文字"*"が使用されるかもしれない。(例えば、attribute="*"
の中のように) しかしながら、規則が特別な属性の出現を全く必要としない場合、属性は 規則に現れるべきではない。
APPELでは、証拠セットの要素(たとえば、access
属性のない照合<DISCLOSURE>
要素)に或る属性が出現しない規則を書く事ができない事や、ある要素は証拠に存在していない事に注意されたし。(例えば、係争解決フィールドを含まない照合ポリシー)
文字列と共にメタ文字を使用すると文字列-値の範囲を規定することができる。例えば、foo.comドメインのホストの"*.foo.com
"、または、URI の"*://*"
"(または、少なくともこういったもの)。ユーザが最初の*星のシンボルを規定しない限り、文字列値はいつも文字列の始まりから照合される事に注意されたし。APPELレベル1では、終わりから文字列の照合はできない。
また、例えば、<DISPUTES res*="service">
もしくは<DISP*resolution-type="service">
などにおいての属性名または要素名を照合する為ではなく、引用されている文字列の中にのみワイルドカード文字が許可されている事にも注意! データ要素(サブツリー)の範囲を照合するの上記の方法でワイルドカード文字は適用されるが、データ-参照 表現 (<DATA name="user.*"/>when used in)で使用される時は、データセット leafs: <DATA name="*.zipcode"/>のセットの照合をするためには使用できない: !
or
and
or-exact
and-exact
トップレベル表現右下の<APPEL:RULE>
要素はいつもexact
照合を使用して照合される。連結詞は<APPEL:RULE>
要素下の要素で使用される。連結詞が与えられていない場合、exact
照合が行われる。連結詞は含まれている-表現の直接の照合を管理するのみであり、ダウンロードを伝達しない(受け継いだもの)。これらの含まれている-表現が他の表現を含んでいる場合、新しい連結詞はそのレベルか、または、exact
連結詞が再び適用しているデフォルトで規定される必要がある。
4つの有効な連結詞から生じている異なった照合の意味論は以下の図5.3で要約される:
含まれている表現は | |||
---|---|---|---|
ORされている | ANDされている | ||
追加の証拠 | は無視される | or |
and |
を変更する | or-exact |
and-exact (デフォルト) |
optional="yes"
とタグ付けされる。APPEL規則がオプション的データ要素を取り扱うことができるように,規則評価器は証拠のポリシーからオプション的要素を選択的に取り除くことができなければならないし、ユーザの 規則セットとこのようにして変更した証拠を何度も比較できなければならない。
いくつかの変更が行われた後の照合の場合、発生した挙動(fireされた規則で規定したように)と共に規則を起こした規則評価器は (変更された) ポリシーのコピーを返さなければならない。このことによって、ユーザのプリファレンスを照合するためにユーザエージェントはオプション的要素のどれをデータ転送から省略するかを決めることができる。
規則に対抗するオプション的データ要素を使ってポリシーを照合する単純な機構を以下に記す。ユーザエージェントの実装者は恐らくもっと効率的な戦略を使用したいと思うだろう:
<EXTENSION>...</EXTENSION>
タグのセットで囲まれており、知られていない拡張子が無視されるか(optional="yes"
)どうかを示すために使用されるoptional
属性を特徴つけている。
このような必須およびオプション的な拡張子は, オプション的<DATA>
要素が照合されるのと全く同じ方法で、APPELで照合される。(5.4.4 オプションデータ要素の照合と比較して下さい): 規則評価器は、オプション的であるとタグ付けされている拡張タグを選択的に取り除くことができなければならなず、ユーザの規則セットとこのようにして 変更された証拠を何度も比較できなければならない。オプション的拡張が削除された後の照合の場合、規則評価器は発生した挙動と一緒に発生した変更後のポリシーのコピーをかえさなければならない。
P3Pプライバシーポリシーファイルで参照された拡張子がサポートされているかどうかを決めるのはcalling アプリケーションであるという事に注意。この事は恐らく、規則評価器が呼び出される前になされるべきである。例えば、同時に有効なP3Pプライバシーポリシーは構文的に正しい。
P3Pカテゴリはユーザとユーザエージェントにデータの故意の使用に関するヒントを提供するデータ参照要素の属性である。カテゴリはP3P ユーザエージェントが実装と使用をし易くするのに重要である; カテゴリによって、ユーザはデータ交換に関してより普及したプリファレンスと規則を表す事ができる。新しい要素もしくは、形式データやクッキーなどの可変性の抽象的な要素への照合が定義されると、カテゴリは含まれなければならない。
以下の章はAPPELトラストエンジンがサポートしなければならないふたつの異なったケースを示す: 明確なカテゴリを使用して、名付けられたデータ参照要素を参照する規則, その例は以下である。
<DATA name="dynamic.cookies"
category="navigation"/>
,
同様に、以下の様にカテゴリのみを使用してデータ参照要素を使用する規則セット
<DATA category="preference"/>
user.bdate.
はP3P1.0仕様書で定義されているように"人口統計学的および社会経済データ(Demographic and SocioEconomic Data)"カテゴリに割り当てられる。こういった要素に関して、P3PプライバシーポリシーとAPPEL規則ファイルのカテゴリ明確な (再-)定義は意味をなさないし、ユーザエージェントから無視されなければならない。
しかしながら、ある数の要素に関して、基本データセットは固定したカテゴリを規定しないが、P3Pプライバシーポリシーの著者は明確にカテゴリをリストする代わりに、この要素はこの特別な状況のために使用される。これらの要素は"可変性-カテゴリデータ要素と呼ばれており、これらの要素を参照するデータ参照表現だけのために、APPEL則評価器はカテゴリ属性の追加的使用をサポートしなければならない。
以下の擬似コードは任意に明らかなカテゴリ属性を特徴付けている、名前を付けられたデータ参照要素を照合するために必要な操作を要約している:
カテゴリ-onlyデータ参照要素はカテゴリ(category)
属性のみを含むが、name
属性を含まない<DATA>
要素である。このような規則のカテゴリ-onlyデータ参照要素に遭遇すると、APPEL規則エンジンは黙示的に各参照されたカテゴリを、効果的に規則を表しながら、あたかもこのカテゴリに属しているP3P基本データセットからのすべての要素が明示的にリストされているかのように、そのカテゴリに属している基本要素のリストへ翻訳しなければならない。
以下の図5.4 は一例を示している。あらゆる固定した-カテゴリデータ要素 ("user.home.online.*"および"user.business.online.*") に加えて、拡張子はいずれの可変性-カテゴリデータ要素 ("dynamic.cookies"および"dynamic.miscdata") を適切なカテゴリで増加させて、考慮する必要がある。
参照されているカテゴリに属しているこのサービスとして紹介しているカスタムデータスキーマはいずれもこの機構によって照合される。ユーザエージェントはサービスに固定したカテゴリ基本要素、例えば、"user.name.first"または"user.home.postal.city"などのカテゴリを上書きできるようにしてはならない。
<APPEL:RULE behavior="拒否"> <!-- "online"カテゴリから要素がリクエスト されたら、この規則は照合する--> <POLICY APPEL:connective="and"> <STATEMENT APPEL:connective="and"> <DATA-GROUP APPEL:connective="or"> <DATA category="online"/> </DATA-GROUP> </STATEMENT> </POLICY> </APPEL:RULE> |
<APPEL:RULE
behavior="拒否"> <!-- 左側の規則の明示的表現 --> <POLICY APPEL:connective="and"> <STATEMENT APPEL:connective="and"> <DATA-GROUP APPEL:connective="or"> <DATA name="user.home.online.email"/> <DATA name="user.home.online.uri"/> <DATA name="user.business.online.email"/> <DATA name="user.business.online.uri"/> <DATA name="dynamic.cookies" category="online"/> <DATA name="dynamic.miscdata" category="online"/> </DATA-GROUP> </STATEMENT> </POLICY> </APPEL:RULE> |
APPELトラストエンジン実装が明示的にカテゴリ-onlyデータ参照要素を含む規則を拡張するかどうか、または、かわりに対応するカテゴリで(または、複数のカテゴリがこの要素の為に定義されたら、異なったカテゴリを特徴付けている複数の要素で)証拠の各データ参照要素を増すかどうか、または、単にカテゴリ属性のディレクトリを直接照合するかどうかはAPPELトラストエンジン実装しだいである。
以下のすべてを含んでいる場合もしくはその場合のみ、表現"E"が 証拠"X"(証拠のあるXML要素)の一部分を照合する:
- EとXの要素名が同一である
- Eの属性の表現すべてがXの属性を照合する(表現Eで参照されていない証拠Xにおける追加の属性は無視される)
- [
or
連結詞がEで与えられている場合] Eの含まれている表現 (任意の場合)のうち少なくとも一つがXの囲まれている要素を照合する (表現Eで参照されていない証拠Xにおける追加の囲まれている要素は無視される)。- [
and
連結詞がEで与えられている場合] Eの含まれている表現 (任意の場合) がすべてXの囲まれている要素を照合する(表現Eで参照されていない証拠Xにおける追加の囲まれている要素は無視される)- [
or-exact
連結詞がEで与えられている場合] Eの含まれている表現(任意の場合)がのうち少なくとも一つがXの囲まれている要素を照合する(表現Eで参照されていない証拠Xにおける追加の囲まれている要素は無視されない)- [
and-exact
連結詞がEで与えられている場合、または連結詞がEで与えられていない場合] Eの含まれている表現 (任意の場合)がすべてXの囲まれている要素を照合する (表現Eで参照されていない証拠Xにおける追加の囲まれている要素は無視されない)
規則の各表現に関しては以下の状況(C1-C3) を持つ証拠で照合を参照のこと:照合がすべての表現に対して発見でき、規則がfireする場合
C1 証拠の照合は規則表現(<STATEMENT>, <POLICY>など)と同じ種類のXML要素である etc.) C2 規則表現すべての属性-表現に関して, 属性-表現が同じ属性名と規則を照合する適切な属性-表現に従って照合する値を持つ証拠に存在する。 表現が or
連結詞を特徴付ける場合:C3a 表現内に含まれているネストされた各XML要素の少なくとも一つに関して、C1からC3を満している。 表現が and
連結詞を特徴付けている場合:C3b 表現内に含まれているネストされた各XML要素に関して、C1からC3 を満たしている 表現 が or-exact
連結詞を特徴付けている場合:C3c 証拠においてネストされた各XML要素に関して, C1からC3を満たしている 表現が連結詞を特徴付けていないか, an exact
連結詞を特徴付けている場合:C3d 表現に含まれているネストされた各XML要素および, 証拠においてネストされた各XML要素に関して, C1 からC3を満たしている。
1.3 必要条件の章で述べた様に, APPELで表現されている規則セットをサポートする初期段階のP3Pユーザエージェントの実装を用意にする為に、この仕様書を簡単にする努力がなされた。核となる言語 (レベル1)から表現のセット(レベル2)を分離する事によって、APPELの完全な機能セットを仕上げる前に私達がプライバシープリファレンス言語を使用しての業務に着手できるように、ワーキンググループはAPPELの早い採用を望む。
レベル2改訂において、ワーキンググループは単純な最初の実装を可能にするために、以下の構成を構文および前回(レベル1で)見落としていた言語の意味論を追加する予定である:
<POLICY>
要素を含む事ができる。<APPEL:RULESET xmlns:APPEL="http://www.w3.org/2000/APPEL" crtdby="W3C" crtdon="15-March-2000 10:55:32 GMT"> <APPEL:RULE behavior="warn" description="Service collects some kind of identifiable information"> <POLICY APPEL:connective="or"> <DISCLOSURE access="contact" /> <DISCLOSURE access="other" /> <DISCLOSURE access="contact_and_other" /> <DISCLOSURE access="all" /> <DISCLOSURE access="none" /> </POLICY> </APPEL:RULE> <APPEL:RULE behavior="warn" description="Service collects physical and/or online contact information and/or financial account identifiers and/or other data that may be personally-identifiable"> <POLICY APPEL:connective="and"> <STATEMENT APPEL:connective="and"> <DATA-GROUP APPEL:connective="or"> <DATA category="physical"/> <DATA category="online"/> <DATA category="uniqueid"/> <DATA category="financial"/> <DATA category="other"/> </DATA-GROUP> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior="accept" description="service does not collect identifiable data or share data with other parties"> <POLICY APPEL:connective="and"> <STATEMENT APPEL:connective="and"> <RECIPIENT APPEL:connective="and-exact"> <ours/> <RECIPIENT/> <PURPOSE APPEL:connective="or-exact"> <current/><admin/><develop/><custom/><targeting/> </PURPOSE> <DATA-GROUP APPEL:connective="or-exact"> <DATA name="user.*"/> <DATA name="dynamic.*" category="state"/> </DATA-GROUP> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior = "warn" description = "service requests data from your data repository or has a practice that doesn't match your preferences"> <APPEL:OTHERWISE/> </APPEL:RULE> </APPEL:RULESET>
<APPEL:RULESET xmlns:APPEL="http://www.w3.org/2000/APPEL" crtdby="W3C" crtdon="15-March-2000 16:41:21 GMT"> <APPEL:RULE behavior="warn" description="Data may be shared with legal entities following different practices, public fora, or unrelated third parties."> <POLICY APPEL:connective="and"> <STATEMENT APPEL:connective="and"> <RECIPIENT APPEL:connective="or"> <other/><public/><unrelated/> <RECIPIENT/> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior="warn" description="Data may be used for marketing, profiling or "other" purposes."> <POLICY APPEL:connective="and"> <STATEMENT APPEL:connective="and"> <PURPOSE APPEL:connective="or"> <contact/><profiling/><other/> </PURPOSE> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior="warn" description="Site collects healthcare information."> <POLICY APPEL:connective="and"> <STATEMENT APPEL:connective="and"> <DATA-GROUP APPEL:connective="or"> <DATA category="health"/> </DATA-GROUP> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior="inform" description="service does not provide access to identifiable data it collects"> <POLICY APPEL:connective="and"> <DISCLOSURE access="contact" /> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior = "accept" description = "privacy policy matches Privacy And Commerce preferences"> <APPEL:OTHERWISE/> </APPEL:RULE> </APPEL:RULESET>
<APPEL:RULESET xmlns:APPEL="http://www.w3.org/2000/APPEL" crtdby="W3C" crtdon="15-March-2000 16:41:21 GMT"> <APPEL:RULE behavior="accept" description="Service has privacy seal and does not share data with unrelated third parties."> <POLICY APPEL:connective="and"> <DISPUTES-GROUP APPEL:connective="or"> <DISPUTES resolution-service="independent" service="http://www.privacyprotect.org*" /> <DISPUTES resolution-service="independent" service="http://www.trustus.org*" /> </DISPUTES-GROUP> <STATEMENT APPEL:connective="and"> <RECIPIENT APPEL:connective="or"> <ours/><same/><other/><delivery/><public/> <RECIPIENT/> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior="warn" description="Service collects data needed for e-commerce activities but may share this data with legal entities following different practices, public fora, or unrelated third parties."> <POLICY APPEL:connective="and"> <STATEMENT APPEL:connective="and"> <PURPOSE APPEL:connective="and-exact"> <current/> </PURPOSE> <RECIPIENT APPEL:connective="or"> <other/><public/><unrelated/> <RECIPIENT/> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior="warn" description="Service collects data needed for e-commerce activities but may use it also for marketing, profiling, or "other" purposes."> <POLICY APPEL:connective="and"> <STATEMENT APPEL:connective="and"> <PURPOSE APPEL:connective="and"> <current/> </PURPOSE> <PURPOSE APPEL:connective="or"> <contact/><profiling/><other/> </PURPOSE> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior="inform" description="Site collects healthcare information but participates in a seal program."> <POLICY APPEL:connective="and"> <DISPUTES-GROUP APPEL:connective="and"> <DISPUTES resolution-service="independent" service="*" /> </DISPUTES-GROUP> <STATEMENT APPEL:connective="and"> <DATA-GROUP APPEL:connective="or"> <DATA category="health"/> </DATA-GROUP> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior="warn" description="Site collects healthcare information but does not participates in a seal program."> <POLICY APPEL:connective="and"> <STATEMENT APPEL:connective="and"> <DATA-GROUP APPEL:connective="or"> <DATA category="health"/> </DATA-GROUP> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior="accept" description="Service collects data needed for e-commerce activities only, without sharing with legal entities following different practices, public fora or unrelated third parties. A seal program vouches for this."> <POLICY APPEL:connective="and"> <DISPUTES-GROUP APPEL:connective="and"> <DISPUTES resolution-service="independent" service="*" /> </DISPUTES-GROUP> <STATEMENT APPEL:connective="and"> <PURPOSE APPEL:connective="and-exact"> <current/> </PURPOSE> <RECIPIENT APPEL:connective="or-exact"> <ours/><same/><delivery/> <RECIPIENT/> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior="inform" description="service does not provide access to identifiable data it collects"> <POLICY APPEL:connective="and"> <DISCLOSURE access="contact" /> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior = "accept" description = "privacy policy matches Look For The Seal preferences"> <APPEL:OTHERWISE/> </APPEL:RULE> </APPEL:RULESET>
<APPEL:RULESET xmlns:APPEL="http://www.w3.org/2000/APPEL" crtdby="W3C" crtdon="15-March-2000 16:41:21 GMT"> <APPEL:RULE behavior="inform" description="Service collects data for marketing, profiling, or "other" purposes."> <POLICY APPEL:connective="and"> <STATEMENT APPEL:connective="and"> <PURPOSE APPEL:connective="or"> <contact/><profiling/><other/> </PURPOSE> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior="inform" description="Service shares information with legal entities following different practices, public fora, or unrelated third parties."> <POLICY APPEL:connective="and"> <STATEMENT APPEL:connective="and"> <RECIPIENT APPEL:connective="or"> <other/><public/><unrelated/> <RECIPIENT/> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior="warn" description="Site collects healthcare information."> <POLICY APPEL:connective="and"> <STATEMENT APPEL:connective="and"> <DATA-GROUP APPEL:connective="or"> <DATA category="health"/> </DATA-GROUP> </STATEMENT> </POLICY> </APPEL:RULE> <APPEL:RULE behavior = "accept" description = "privacy policy matches Information Only preferences"> <APPEL:OTHERWISE/> </APPEL:RULE> </APPEL:RULESET>
APPELの正式な文法は、少し変更した[ABNF]を使用してこの仕様書で与えられている。そういった構文がXMLの唯一の文法表現であることに注意されたい: XMLの構文的柔軟性も黙示的に含まれている; 例えば、空白規則, シングルクォーテーション(') やダブルクォーテーション(")を使用した引用、文字エスケープ、コメント、および大文字小文字を区別するなど。さらに、属性と要素はあらゆる順番で現れることに注意。
以下はABNFの単純な記載である。
name = (要素s)
(
要素1 要素2)
<a>*<b>要素
<a>要素
<a>*要素
*<b>要素
*要素
[要素]
"string"
またはのtring'
製造において使用される他の表記法は:
Lorrie Cranor | AT&T Labs-Research |
Marc Langheinrich (Editor & Chair) | ETH Zurich |
Massimo Marchiori | W3C |
Joerg Meyer | IBM |
Joseph Reagle | W3C |
Drummond Reed | Intermind |
Mary Ellen Zurko (former Chair) | Iris |