公開後に報告されたエラーや問題については 正誤表 をご確認ください。
この仕様の英語版のみが規範版です。非規範な翻訳が利用できる場合があります。
Copyright © 2017 W3C® (MIT, ERCIM, Keio, Beihang). W3C liability, trademark and permissive document license rules apply.
リンクドデータ通知は、サーバー(受信者)がアプリケーション(送信者)からメッセージをプッシュ受信する方法、および他のアプリケーション(消費者)がそのメッセージを取得できる方法を記述したプロトコルです。あらゆるリソースは、メッセージ受信用のエンドポイント(Inbox)を通知できます。メッセージはRDFで表現され、任意のデータを含むことができます。
ステータス更新(2017年5月):概要図のリンクが2017年5月22日にその場で修正されました。内部アンカーが誤っていました。
ステータス更新(2017年9月):ある概念URIが2017年9月5日にその場で修正されました。内部URIが誤っていました。
このセクションは、本ドキュメントの公開時点での位置付けを説明しています。他の文書が本ドキュメントにとって代わる場合があります。現在の W3C 発行文書やこの技術レポートの最新版は W3C 技術レポート一覧(https://www.w3.org/TR/)で確認できます。
本ドキュメントは ソーシャルWebワーキンググループによって勧告として公開されました。本ドキュメントへのコメントは public-socialweb@w3.org(購読、アーカイブ)までお寄せください。すべてのコメントを歓迎します。
ワーキンググループの実装レポートもご覧ください。
本ドキュメントは W3C メンバー、ソフトウェア開発者、他の W3Cグループや関係者によってレビューされ、ディレクターによってW3C勧告として承認されました。これは安定した文書であり、参照資料や他文書からの引用にも利用できます。W3C の勧告作成の役割は本仕様への注目を集め、普及を促進することです。これによりウェブの機能性と相互運用性が高まります。
本ドキュメントは、2004年2月5日 W3C 特許ポリシーのもとで作成されました。W3C は、グループの成果物に関してなされた 特許開示の公開リスト を公開しています。そのページには特許の開示方法も記載されています。ある個人が本当に必須特許だと考える特許に関する実際の知見を持つ場合は、W3C特許ポリシー第6節に従い情報を開示する必要があります。
本ドキュメントは2017年3月1日 W3Cプロセス文書に基づいて管理されています。
Web上のデータは特定のシステムにロックインされたり、それを作成したアプリケーションだけが読める形にはすべきではありません。ユーザーはアプリケーション間で自由に切り替え、データを共有できるべきです。アプリケーションは、アクティビティ・やりとり・新情報に関する通知を生成します。これらはユーザーに提示されたり、さらなる処理のために用いられることがあります。
Linked Data Notifications(LDN)は、それら通知がどのように生成されたかに関わらず、アプリケーション間での通知の共有・再利用を支援します。これにより、データの保存をデータを表示する、もしくは利用するアプリケーションから切り離した、よりモジュラーなシステムが実現できます。本プロトコルは、通知の送信者・受信者・利用者が独立して実装され、異なる技術スタック上で動作していても、Web上で分散的に連携して動作できることを目指しています。
本仕様では通知を一時的・非持続的なエンティティではなく、それぞれがURIを持つ個別エンティティとして扱う概念を導入します。通知は取得・再利用できます。さまざまな応用分野(ソーシャルやその他)を支援するため、通知の内容はアプリケーションに委ねます。通知の認証・検証は推奨されていますが、その仕組みは受信者・利用者の裁量に委ねられます。通知の種類や応用分野によって必要となる方法が異なるためです。
送信者(sender)は、人間または自動プロセスによってトリガされ、サーバーへ通知を送ります。この通知は受信者(receiver)への注意喚起を目的としたデータです。たとえば:友人からの個人的なメッセージ、pingbackリンク、ブログ記事へのコメント、コラボレーションへの招待、カレンダーのリマインダー、科学的な観測結果などです。
送信者は通知送信先の対象リソースを決め、送信先のInboxの場所を発見し、そこに通知を送ります。どのリソースもInboxを広告できます。受信者は(適切なアクセス制御のもとで)通知データを利用者のために公開します。
利用者(consumer)も送信者と同じ方法でInboxの場所を発見し、通知をさらに処理したり、他のデータと統合したり、もしくは単純に人間が読める形で表示することもできます。
送信者と利用者は、リソースのInbox URLを、HTTP
Linkヘッダーやリソースの本体にある関連付けから発見します。
POSTリクエストで送信し、本文はJSON-LDやサーバーが受理可能な他のシリアライズで送ります。GETリクエストに対して、すでに受理した通知のURLの一覧を返します。GETリクエストには、JSON-LD(または任意で他のシリアライズ)で応答します。POSTリクエストで通知の新規作成を受け付けます。GETリクエストで取得し、アプリケーションの要件に従って利用します。LDNは通知の送信・消費のためのLinked Data Platform [LDP]
の応用例であり、LDP全体の実装は不要で、最小限でも実装しやすい部分集合です。LDPの知識がなくとも本仕様は理解できますが、LDPに馴染みのある方にはいくつかの概念が馴染み深いでしょう。本仕様では通知の分散的かつ相互運用可能な交換を容易にするために必要な特徴のみを具体的に説明します。LDNのInboxはLDPのBasicContainerに相当します。
本ドキュメント中の "MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"MAY" および "OPTIONAL" は、[RFC2119] で述べられている通りに解釈してください。「非規範的」と明記されたセクションのほか、本仕様におけるすべての著者向けガイドライン・図・例・注記も非規範的です。
LDN実装 は送信者、受信者、利用者のいずれかであり得ます。それぞれの役割の適合要件は本仕様の該当セクションに記載されています。
このセクションでは、通知が配信または読み取られるURL(Inbox)の検出方法と配信メカニズムについて説明します。通知の内容はPayloadで記述されます。
Inbox(通知が送信される、またはそこから消費されるエンドポイント)は、ブログ記事、ユーザープロファイル、データセット、ビデオなど任意のリソースから検出できます。検出の出発点は通知が送られる、または関連するリソース、すなわちtargetです。どのリソース(RDFでも非RDFでも)が独自のInboxを持ち得るため、どのtargetリソースから検出を始めるかは送信者またはコンシューマの裁量によります。
送信者とコンシューマはInboxのURLを検出するために次の操作を行います:
HEADまたはGETリクエストを行い、rel値がhttp://www.w3.org/ns/ldp#inboxであるLinkヘッダーを使用する。
GETリクエストを行い、RDF表現([RDF
1.1])を取得する。そのエンコードされたRDFグラフにhttp://www.w3.org/ns/ldp#inbox型の関係が含まれていることを利用する。関係の主語がtargetで、オブジェクトがInboxである。
これらはどちらの順序でも実行できますが、最初の方法でInboxが見つからなかった場合は、二番目の方法がMUST試みられるべきです。送信者とコンシューマは、フラグメント識別子を持つURIを明示的にターゲットとする場合はLinkヘッダーによる検出をSHOULD省略するべきです。
ターゲットがフラグメント識別子を含む場合、そのフラグメントはサーバーへのリクエストの一部ではありません。送信者とコンシューマは、Linkヘッダーで発見されるInboxは解決されたURL(フラグメントを含まない)に対するものであることを認識しておくべきです。[Cool URIs for the Semantic Web - Hash
URIs]を参照してください。
リソースはMUSTひとつのInboxのみを公開しなければなりません。ひとつのInboxは複数のリソースで共有して使ってもMAY(例:すべてのブログ投稿への返信やすべての写真の共有に同じInboxを使う場合など)。
検出例 1: Link ヘッダー
HEAD /article HTTP/1.1Host: example.orgAccept: application/ld+jsonHTTP/1.1 200 OKLink: <http://example.org/inbox/>; rel="http://www.w3.org/ns/ldp#inbox"
Linkヘッダーを受け取る際の要求と応答。検出例 2: JSON-LD
GET /profile HTTP/1.1Host: example.orgAccept: application/ld+jsonHTTP/1.1 200 OKContent-Type: application/ld+json{"@context": "http://www.w3.org/ns/ldp","@id": "http://example.org/profile","inbox": "http://example.org/inbox/"}
GET リクエストによるInbox検出。JSON-LDのコンパクト形式での応答。検出例 3: 可視HTML
GET /event HTTP/1.1Host: example.orgAccept: text/html, application/ld+jsonHTTP/1.1 200 OKContent-Type: text/html;charset=utf-8<p about="http://example.org/event" typeof="http://schema.org/Event" lang="en"><a rel="http://www.w3.org/ns/ldp#inbox" href="/inbox/">RSVP</a> to event</p>
GET
リクエストによるInbox検出。Inboxリンクは人間に見える形で、機械が検出できるようRDFaでマークアップされています。検出例 4: 非表示のHTML
GET /article HTTP/1.1Host: example.orgAccept: text/html, application/ld+jsonHTTP/1.1 200 OKContent-Type: text/html;charset=utf-8<link href="/inbox/" rel="http://www.w3.org/ns/ldp#inbox" />
GET
リクエストによるInbox検出。RDFaでマークアップされたlink要素で表現された非表示のInbox。検出例 5: 非表示のHTML(フラグメント対象)
GET /article HTTP/1.1Host: example.orgAccept: text/html, application/ld+jsonHTTP/1.1 200 OKContent-Type: text/html;charset=utf-8<section id="results" about="#results"property="http://www.w3.org/ns/ldp#inbox" resource="/inbox/"></section>
GET
リクエストによるInbox検出。RDFaのproperty属性で表現された非表示のInboxにより、フラグメントURIで識別されるリソースをターゲットにできる。
検出例 6: Turtle
GET / HTTP/1.1Host: csarven.caAccept: text/turtle, application/ld+jsonHTTP/1.1 200 OKContent-Type: text/turtle;charset=utf-8<http://csarven.ca/#i><http://www.w3.org/ns/ldp#inbox> <http://csarven.ca/inbox/> .
GET リクエストによるInbox検出。サーバーがこのプロトコルを認識していない可能性のあるサーバーに対する検出方法については、Social Web Protocolsの推奨を参照してください。
検出(discovery)の後、通知を送信したい送信者は、InboxのURLに対してMUST
POSTリクエストで配信しなければならない。送信者は成功したリクエストに対して201 Created(Locationヘッダー付き)または202 Acceptedを期待できます。
送信者は、サーバーが受け入れるRDFコンテンツタイプを判断するためにOPTIONSリクエストを使用することがMAYあります。サーバーが返すAccept-Postヘッダーの値に従って通知をシリアライズします。そうでない場合は、POSTリクエストの本文はJSON-LD形式の通知ペイロード(payload)を含まなければならない(ヘッダーはContent-Type: application/ld+json)。Content-Typeヘッダーはprofile
URIを含めることがMAYあります([RFC6906]参照)。
送信者は認証や認可の目的で追加のヘッダーやコンテンツ(例:Authorization: Bearer XXX)を含めることがMAYあります。
送信者が認証不要でlocalhostで待機するサービスを持っている場合、悪意あるスクリプトがInboxエンドポイントで実行され、送信者自身に任意のPOSTを行わせる可能性があります。そのため送信者は
localhost やループバックIPアドレスへのPOSTリクエストを行うべきではない(SHOULD NOT)。
送信リクエストの例
POST /inbox/ HTTP/1.1Host: example.orgContent-Type: application/ld+json;profile="https://www.w3.org/ns/activitystreams"Content-Language: en{"@context": "https://www.w3.org/ns/activitystreams","@id": "","@type": "Announce","actor": "https://rhiaro.co.uk/#me","object": "http://example.net/note","target": "http://example.org/article","updated": "2016-06-28T19:56:20.114Z"}
送信の応答例
HTTP/1.1 201 CreatedLocation: http://example.org/inbox/5c6ca040
POSTリクエストに対する応答の例。受信者はInboxのURLでGETおよびPOSTリクエストをサポートしなければならない(MUST)。 LDPの用語では、InboxはContainerです。
受信者はPOSTリクエストを受け取り、通知リソースを正常に処理した場合、ステータスコード201 Createdで応答し、通知データを取得できるURLを示すLocationヘッダーを設定しなければなりません(Consumer参照)。リクエストが非同期的にキューに入れられた場合は、受信者はステータスコード202 Acceptedで応答し、応答本文にリクエストの状態に関する情報を含めなければなりません(MUST)。
受信者が通知に対して制約を強制する場合(Constraints参照)、制約が満たされないときは通知の処理を失敗させ、適切な4xxエラーコードを返すべきです(SHOULD)。
受信者は、リクエスト本文がJSON-LD(Content-Type: application/ld+json)である通知を受け入れなければならず(MUST)、そのContent-Typeはprofile
URIを含めてもよい(MAY)[RFC6906]。
受信者は他のRDFコンテンツタイプ(例:text/turtle,
text/html)を受け入れることがMAYあり、その場合Inbox
URLに対するOPTIONSリクエストへの応答でAccept-Postヘッダーを用いて受け入れるコンテンツタイプを公開することがSHOULD推奨されます([Accept-Post]参照)。
受信者例 1: OPTIONS 応答
OPTIONS /inbox/ HTTP/1.1Host: example.orgHTTP/1.1 200 OKAllow: GET, HEAD, OPTIONS, POSTAccept-Post: application/ld+json, text/turtle
OPTIONSリクエストに対してAccept-Postを返す受信者。
受信者例 2: POST 応答
POST /inbox/ HTTP/1.1Host: example.orgContent-Type: application/ld+json;profile="https://www.w3.org/ns/activitystreams"Content-Language: en{"@context": "https://www.w3.org/ns/activitystreams","@id": "","@type": "Announce","actor": "https://rhiaro.co.uk/#me","object": "http://example.net/note","target": "http://example.org/article","updated": "2016-06-28T19:56:20.114Z"}HTTP/1.1 201 CreatedLocation: http://example.org/inbox/92d72f00
POSTリクエストに応答して通知を作成する受信者。
Inboxに対する成功したGETリクエストは、要求者のアクセス権に従って通知のURIを含むHTTP 200 OKを返さなければなりません(適宜4xxエラーを返す)。受信者はInbox内でコンシューマがアクセス可能な通知のURIのみを列挙してもMAYです。 InboxのURLは通知を参照するためにhttp://www.w3.org/ns/ldp#contains述語を使用しなければなりません(MUST)。
各通知はMUST RDFソースでなければなりません。非RDFリソースが返された場合、コンシューマはそれらを無視してもMAYです。通知URIに対する成功したGETリクエストは、要求者のアクセス権に従ってHTTP 200 OKを返さなければなりません(適宜4xxを返す)。
JSON-LDのコンテンツタイプはすべてのリソースで提供可能でなければならず(MUST)、クライアントは他のコンテンツタイプを優先するAcceptヘッダーを送信してもよい(RFC7231 Section 3.4 - Content Negotiation参照)。
クライアントがAcceptヘッダーを送信しない場合、サーバーはJSON-LDまたは同等の情報を忠実に伝える任意のフォーマット(例:Turtle)でデータを送ることができます(MAY)。
Inbox自体に関する追加の説明(例:Constraints)も返してもMAYです。
本仕様はInbox内の通知一覧を提供するためのページング機構を定義していません。ページングを有効にしたい実装は、効率的な取得を可能にする既存の機構(例:Linked Data Platform Paging 1.0、Activity Streams 2.0 Collection)を利用することを検討してください。
受信者例 3: GET 応答
GET /inbox/ HTTP/1.1Host: example.orgAccept: application/ld+jsonAccept-Language: en-GB,en;q=0.8, en-US;q=0.6HTTP/1.1 200 OKContent-Type: application/ld+jsonContent-Language: en{"@context": "http://www.w3.org/ns/ldp","@id": "http://example.org/inbox/","contains": ["http://example.org/inbox/5c6ca040","http://example.org/inbox/92d72f00"]}
GETリクエストに対して通知の一覧で応答する受信者。受信者は送信者の検証を行うことがSHOULD推奨されます。例えば:
受信者は不当な通知がサーバー上で作成されInboxで公開されるのをフィルタリングするために、制約(constraints)を使用することがSHOULD推奨されます。
受信者はInbox URLへの書き込みを信頼できる送信者のホワイトリストに制限するなど、アクセス制御の実装を検討してもよいでしょう。
コンシューマはInboxのURLに対してGETリクエストを行い、Inbox内の通知のURIを取得します(Inbox URLの取得方法はdiscoveryを参照)。
通知のURIはInbox
URLのhttp://www.w3.org/ns/ldp#contains述語を通じて発見可能でなければなりません(Inbox内容の例を参照)。
Inboxまたは個々の通知を取得する際、コンシューマは好ましいコンテンツタイプ(JSON-LDを含む)を示すために明示的にAcceptヘッダーを設定することがSHOULD推奨されます。個々の通知をいつ、いくつ、あるいは特定の条件(例:コンテンツ長、タイムスタンプ)に従って取得するかはコンシューマの裁量です。
コンシューマは認証や認可の目的で追加のヘッダーやコンテンツを含めることがMAYあります。
コンシューマはペイロードからの追加取得(例:通知内で参照されているリソースをデリファレンスしてその内容を取得する)や推論を任意で行ってもよく、通知をさらに処理・利用する前にInboxが公表する制約を確認することもMAYあります。
取得した通知のURIには、要求したURI自身とは異なる主語IRIを含むRDFステートメントが含まれる場合があります。コンシューマは通知が要求URIを主語とするいかなるトリプルも必ず含むとは仮定すべきではありません。これは通知本文が相対IRIを使用する場合にも関連します。実装は通知URIを通知ペイロードのRDFを含むグラフとして扱うことを検討してもよいでしょう。
何でもInboxに投稿できる(受信者側の制約に依存するが、本プロトコルで定義されない)ことをコンシューマは認識しておくべきです。したがって通知データを利用する際は、その内容の真偽を確認するために予防措置を講じることが望ましいです。
コンシューマ例: 通知の取得
GET /inbox/14a792f0 HTTP/1.1Host: example.orgAccept: application/ld+json, text/turtle, application/xhtml+xml, text/htmlAccept-Language: en-GB,en;q=0.8, en-US;q=0.6HTTP/1.1 200 OKContent-Type: application/ld+json;profile="https://www.w3.org/ns/activitystreams"Content-Language: en{"@context": ["https://www.w3.org/ns/activitystreams",{ "@language": "en" }],"@id": "http://example.org/inbox/14a792f0","@type": "Announce","actor": {"@id": "http://csarven.ca/#i","name": "Sarven Capadisli"},"object": {"@context": "http://www.w3.org/ns/anno.jsonld","@id": "http://example.net/note","@type": "Annotation","motivation": "http://www.w3.org/ns/oa#assessing","rights": "http://creativecommons.org/licenses/by/4.0/"},"target": "http://example.org/article","updated": {"@type": "http://www.w3.org/2001/XMLSchema#dateTime","@value": "2016-06-28T19:56:20.114Z"}}
通知のペイロードは、受信者と他のRDF構文で合意しない限り必ずJSON-LDである必要があります。さまざまなユースケースに対応するため、ペイロードで使用する語彙自体はここではあえて指定しません。
このセクションは規範的ではありません。
ペイロード例 1
{"@context": "http://schema.org/","@id": "http://example.net/note#foo","citation": { "@id": "http://example.org/article#results" }}
ペイロード例 2
{"@context": "https://www.w3.org/ns/activitystreams","@id": "","@type": "Announce","actor": "https://rhiaro.co.uk/#me","object": "http://example.net/note","target": "http://example.org/article","updated": "2016-06-28T19:56:20.114Z"}
ペイロード例 3
{"@context": { "pingback": "http://purl.org/net/pingback/" },"@id": "","@type": "pingback:Item","pingback:source": { "@id": "http://example.net/note#foo" },"pingback:target": { "@id": "http://example.org/article#results" }}
ペイロード例 4
{"@context": "http://schema.org/","@id": "","@type": "RsvpAction","event": { "@id": "http://example.org/event" },"agent": { "@id": "https://rhiaro.co.uk/#me" }}
通知は任意の情報を含むことができ、その中にはURIを持つ複数のリソースへの参照も含めることができます。特定の外部リソースやデータの出典に必ずしも言及する必要はありません。消費者によって通知がリクエストされたとき、受信者は最初に送られたすべての三つ組(triple)を返すことが期待されます。
ペイロード例 5
{"@context": {"@language": "en","sioc": "http://rdfs.org/sioc/ns#","foaf": "http://xmlns.com/foaf/0.1/"},"@id": "","@type": "sioc:Comment","sioc:reply_of": { "@id": "http://example.org/article" },"sioc:created_at": {"@type": "http://www.w3.org/2001/XMLSchema#dateTime","@value": "2015-12-23T16:44:21Z"},"sioc:content": "This is a great article!","sioc:has_creator": {"@id": "http://example.org/profile","@type": "sioc:UserAccount","sioc:account_of": { "@id": "http://example.org/profile#alice" },"sioc:avatar": { "@id": "http://example.org/profile/avatar.png" },"foaf:name": "Alice"}}
ペイロード例 6
{"@context": [{"prov": "http://www.w3.org/ns/prov#"}],"@id": "http://example.org/activity/804c4e7efaa828e146b4ada1c805617ffbc79dc7","@type": "prov:Activity","http://www.w3.org/2000/01/rdf-schema#label": {"@language": "en","@value": "Make it so"},"prov:endedAtTime": {"@type": "http://www.w3.org/2001/XMLSchema#dateTime","@value": "2016-06-14T20:57:39.000Z"},"prov:generated": {"@id": "http://example.org/entity/804c4e7efaa828e146b4ada1c805617ffbc79dc7","@type": "prov:Entity","prov:specializationOf": { "@id": "http://example.org/entity/file" },"prov:wasGeneratedBy": {"@id": "http://example.org/activity/804c4e7efaa828e146b4ada1c805617ffbc79dc7"}},"prov:wasAssociatedWith": {"@id": "http://csarven.ca/#i","@type": "prov:Agent","http://xmlns.com/foaf/0.1/name": {"@language": "hy","@value": "Սարվէն Չափատիշլի"}}}
このセクションは規範的ではありません。 セキュリティやプライバシーに関する規範的要件は仕様の該当箇所で記載されています。
InboxのURLはHTTPのLinkヘッダーまたはリソース本体で、rel値がhttp://www.w3.org/ns/ldp#constrainedByの形で、独自の制約(例:SHACL、Web Annotation
Protocolなど)を告知できます。送信者は制約仕様に従うべきであり、従わない場合は受信者が通知を拒否して適切な4xxエラーコードを返すことがあります。
Inbox(ターゲット)を告知するリソースの発行者は、信頼できるサーバー上で公開すべきです。発行者は、サードパーティがヘッダーや内容にアクセスできると通知がリダイレクトされる場合があることに注意する必要があります。
この仕様は、消費者が受信者から通知をプルで読み取る方法を記述しますが、消費者が新しい通知やInbox内容の更新をプッシュで受け取れるよう要求したい場合もあります。同様に、受信者が特定の送信者からの通知を自らリクエストしたい場合もあるでしょう。このようなサブスクリプション機構は範囲外ですが、送信者・受信者・消費者がそのような連携を独自に設定することは妨げられません。購読を有効にしたい実装は、ActivityPub、WebSub、WebSocket プロトコル、HTTP Web Pushなど既存の仕組みを利用できます。
Activity Streams 2.0 Core 対応を目指す受信者実装者は、Content-Typeや語彙の等価性に関する情報として Social Web Protocols - Inbox Interop を参照できます。
分散ネットワークにおいて国際的なユーザーベースを築くことは重要です。いくつかのLDNインタラクションは、HTML断片や要約項目など自然言語テキストを持つ内容を返す場合がありますが、すべてに対して多言語表現を用意するのが常に可能とは限りません。実装には、利用可能な言語の探索や言語交渉の手段(HTTPのAccept-Languageヘッダーによるリクエストごとの最適な言語選択など)を提供することが推奨されます。
受信者が送信者または消費者に認証を期待する場合は、他のデータ(他のエラーコードを含みます)を返す前に資格情報の有効性を必ずチェックすべきです。たとえば、認証されていない要求者に対してInboxの存在確認を先に行い404 Not Foundを返すべきではありません。
トークンパス方式による認証はHTTPS経由で行う必要があります。
以下の設問は、Self-Review Questionnaire: Security and Privacy のガイドラインに基づき、この仕様のセキュリティやプライバシーの検討点を確認するものです。
本仕様は、各機能について少なくとも2つの独立した相互運用可能な実装が存在する状態で勧告案に進みました。各機能は異なる製品セットにより実装されました。すべての機能が一つの製品によって実装される必要はありませんでした。
出口基準の評価のために、以下の各項目が機能(feature)と見なされました:
Linkヘッダーで広告すること。GETリクエストに対してInboxリストを返し、個々の通知へのGETリクエストに対してそれぞれの表現を返すこと。
この仕様への貢献に対し、下記の方々に感謝の意を表します:
このセクションは規範的ではありません。
REC-ldn-20170502 ← PR-ldn-20170321 ← CR-ldn-20170223 ← CR-ldn-20161101 ← WD-ldn-20161011 ← WD-ldn-20160926 ← WD-ldn-20160913 ← WD-ldn-20160824 ← WD-ldn-20160726
1.1 ソーシャルWebワーキンググループ
LDNは、ソーシャルWebワーキンググループが策定している関連仕様のひとつです。代替アプローチや補完プロトコルに関心のある実装者は、まず概要文書Social Web Protocolsをお読みください。Social Web Protocolsの特定のサブセクションは、本仕様において他のプロトコルとの拡張性・相互運用性を強調する箇所で参照されています。