Japanese translation of OpenSearch 1.1 Draft 3 Specification
こればパブリック・レビューのためのドラフトドキュメントです。
このドキュメントはOpenSearch description document(記述文書)、OpenSearch Query element(クエリ要素)、OpenSearch URL template syntax(テンプレートシンタックス)、そしてOpenSearch response element(レスポンス要素)を定義します。これらのフォーマット全体を、"OpenSearch 1.1"または単に"OpenSearch"として参照できるものとします。
検索クライアントは、OpenSearch description document(記述文書)を検索エンジンの公共的なインターフェースについて学ぶために使うでしょう。この記述文書はクライアントが検索リクエストをどう作れば良いかを示すパラメータ化されたURLのテンプレートを含みます。検索エンジンは様々なコンテンツ形式で検索メタデータを結果に加えうるのに、OpenSearchレスポンス要素を使うことができます。
この仕様に記述されたXMLデータフォーマットのXML名前空間(XML Namespaces URI)は:
http://a9.com/-/spec/opensearch/1.1/ OpenSearch description document(記述文書)は検索エンジンのWebインターフェースの記述に使われます。
シンプルなOpenSearch description documentの例:
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Web Search</ShortName>
<Description>Use Example.com to search the Web.</Description>
<Tags>example web</Tags>
<Contact>admin@example.com</Contact>
<Url type="application/rss+xml"
template="http://example.com/?q={searchTerms}&pw={startPage?}&format=rss"/>
</OpenSearchDescription>
詳細なOpenSearch description documentの例:
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Web Search</ShortName>
<Description>Use Example.com to search the Web.</Description>
<Tags>example web</Tags>
<Contact>admin@example.com</Contact>
<Url type="application/atom+xml"
template="http://example.com/?q={searchTerms}&pw={startPage?}&format=atom"/>
<Url type="application/rss+xml"
template="http://example.com/?q={searchTerms}&pw={startPage?}&format=rss"/>
<Url type="text/html"
template="http://example.com/?q={searchTerms}&pw={startPage?}"/>
<LongName>Example.com Web Search</LongName>
<Image height="64" width="64" type="image/png">http://example.com/websearch.png</Image>
<Image height="16" width="16" type="image/vnd.microsoft.icon">http://example.com/websearch.ico</Image>
<Query role="example" searchTerms="cat" />
<Developer>Example.com Development Team</Developer>
<Attribution>
Search data Copyright 2005, Example.com, Inc., All Rights Reserved
</Attribution>
<SyndicationRight>open</SyndicationRight>
<AdultContent>false</AdultContent>
<Language>en-us</Language>
<OutputEncoding>UTF-8</OutputEncoding>
<InputEncoding>UTF-8</InputEncoding>
</OpenSearchDescription>
OpenSearch description documents配下のタイプで参照されます:
application/opensearchdescription+xml このタイプのJANA登録は保留中です。
OpenSearch description documentは、すべてコアOpenSearchフォーマットのものと異るXML名前空間に明示的に関連付けられた外部要素と属性で提供される外部マークアップで拡張することができます。可能であれば、外部XML名前空間URIは、それが拡張の趣旨とフォーマットを示すドキュメントを解決すべきです。クライアントは認識できない外部マークアップに出会った際、マークアップがなかったかのように処理を続けるべきです。
OpenSearch description documentのルート要素。
例:
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<!--- ... --->
</OpenSearchDescription>
このサーチエンジンを識別する人間向け(human-readable)の簡潔なタイトルを持たせます。
例:
<ShortName>Web Search</ShortName>
このサーチエンジンの人間向けの簡潔な説明文をタイトルを持たせます。
例:
<Description>Use Example.com to search the Web.</Description>
検索クライアントが検索エンジンの検索リクエストを作れるようにするためのインターフェースを記述します。
OpenSearchはインデックスベースとページベースの検索エンジンの両方のサポートを提供します。デフォルトでは、最初の検索結果と最初の検索結果ページが"1"と番号付けられます。検索エンジンは異なる開始値を検索クライアントに知らせるために、"indexOffset"および"pageOffset"属性(attribute)を使うことができます。
template - OpenSearch URLテンプレートシンタックスにしたがって処理される検索URLテンプレートを含みます。
type - 検索結果フォーマットのMIMEタイプを含みます。
indexOffset - 最初の検索結果のインデックス番号を含みます。
pageOffset - 最初の検索結果セットのページ番号を含みます。
検索結果をRSSで取得するために使われるインターフェースのURL要素の例:
<Url type="application/rss+xml"
template="http://example.com/?q={searchTerms}&pw={startPage?}" />
o-baseの検索結果をXHTMLで取得するために使われるインターフェースのURL要素の例:
<Url type="application/xhtml+xml"
indexOffset="0"
template="http://example.com/search?q={searchTerms}&start={startIndex?}" />
description documentの管理者(maintainer)に届くemailアドレスをもたせます。
例:
<Contact>admin@example.com</Contact>
この検索コンテンツの識別およびカテゴライズのためのキーワードとして使われる単語のセットを持たせます。タグは一語でなくてはならず、空白文字(' ')で区切られます。
例:
<Tags>example web</Tags>
このサーチエンジンを識別する人間向け(human-readable)のより長いタイトルを持たせます。
検索クライアントは、この要素がない時にはShortName要素の値を使用すべきです。
例:
<LongName>Example.com Web Search</LongName>
この検索コンテンツに関連付けて使用できる画像のロケーションを識別するURLを持たせます。
検索クライアントに画像サイズをヒントとして提示することができます。検索クライアントは、検索クライアントは利用可能なスペースにもっとも適した画像を選択し、OpenSearch description documentにリストされたうち最初のものを優先するべきです。縦横比を保つことを推奨します。可能であれば、検索エンジンは"image/x-icon" か"image/vnd.microsoft.icon"( Microsoft ICON format )タイプの16x16の画像と、"image/jpeg"か"image/png"タイプの64x64の画像を用意すべきです。
height – この画像の高さを、ピクセルで、持たせます。
width – この画像の幅を、ピクセルで、持たせます。
type – この画像のMIMEタイプを持たせます。
例:
<Image height="16" width="16" type="image/x-icon">http://example.com/favicon.ico</Image> <Image height="64" width="64" type="image/png">http://example.com/websearch.png</Image>
検索クライアントが実行できる検索クエリを定義します。詳細な情報はOpenSearch Query element仕様を参照してください。
OpenSearch decription documentはOpenSearch OpenSearch description documentsは、検索結果を返すと予想されるtype="example"のクエリ要素を、少なくとも一つは含むべきです。検索クライアントは、このクエリ例を検索エンジンが正しく動作しているか確認するために使うことができます。
例:
<Query role="example" searchTerms="cat" />
この記述文書の作成者またはメンテナの、人間向けの識別しまたは名前を持たせます。
developerはこの記述文書を作成した個人またはエンティティで、コンテント自身のオーナ、作者、著作権ほゆうしゃであるかもしれませんし、そうでないかもしれません。
例:
<Developer>Example.com Development Team</Developer>
検索フィードに含まれるコンテンツの帰属する全てのソースまたはエンティティのリストを持たせます。
例:
<Attribution>Search data copyright Example.com, Inc.</Attribution>
この検索エンジンが提供する検索結果について、問合せ可否、表示可否、再配布可否の程度を示す値を持たせます。
"open" –
"limited" –
"private" –
"closed" -
例:
<SyndicationRight>open</SyndicationRight>
検索結果が成人向け(adult)を意図されたものを含んでいる時にtrueの値がセットされる真偽(boolean)値を持たせます。
"成人向け"コンテンツを制定するユニバーサルに適用できるガイドラインはないので、検索エンジンは検索結果が全ての閲覧者にとって不適切なものを含む可能性がないかを示す努力を誠実に行うべきです。
例:
<AdultContent>false</AdultContent>
検索エンジンが指定された言語での検索結果をサポートすることを示す文字列を持たせます。
OpenSearch description document は"Language" 要素を検索エンジンがサポートする言語ごとに持たなければなりません。もし検索エンジンがいずれの言語でのクエリーもサポートするのであれば、OpenSearch description documentは"*"の値を持つLanguage要素を持たなければなりません。検索クライアントはOpenSearch URLテンプレートの"language"テンプレートパラメータで利用可能な言語から選択することができます。
例:
<Language>en-us</Language> <Language>*</Language>
検索エンジンが指定された文字エンコードでの検索リクエストをサポートすることを示す文字列を持たせます。
OpenSearch description documentは"InputEncoding"要素を検索エンジンがサポートする文字エンコードごとに持たなければなりません。検索クライアントはOpenSearch URLテンプレートの"inputEncoding" template parameterを、現在の検索リクエストで利用が要求されているエンコードを識別するのに使用することができます。
例:
<InputEncoding>UTF-8</InputEncoding>
検索エンジンが指定された文字エンコードでの検索結果をサポートすることを示す文字列を持たせます。
OpenSearch description documentは"OutputEncoding"要素検索エンジンがサポートする文字エンコードごとに持たなければなりません。検索クライアントはOpenSearch URLテンプレートの "outputEncoding" template parameter、この検索結果として選択可能なエンコードを識別するのに使用することができます。
例:
<OutputEncoding>UTF-8</OutputEncoding>
OpenSearch description documentsを発行する検索エンジンは、"link"要素を使うことで、検索クライアントがOpenSearchインターフェースを見つけるのを助けることができます。OpenSearchをサポートする検索エンジンは、検索結果の各ページに関連するOpenSearch description documentへの参照を含むべきです。
RSSおよびAtomドキュメントは RFC 4287 のセクション4.2.7に定められた、Atom 1.0の"link"要素を介して、関連するOpenSearch description documentsを参照することができます。
OpenSearch description documentsを参照する時は、リンク要素の"rel"アトリビュートは、値として"search"を持つべきです。このリレーションの値の、IANAへの登録はペンディングされています。Atomのlink要素の再利用は、ネイティブに匹敵する機能性をサポートする他のシンジケーション形式に関する文脈でも推奨されます。
以下の制限が適用されます:
OpenSearch autodiscoveryリンク要素を含むAtomベースの検索結果の例:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
<!-- ... --->
<link rel="search"
href="http://example.com/opensearchdescription.xml"
type="application/opensearchdescription+xml"
title="Content Search" />
<!-- ... --->
</feed>
OpenSearch autodiscoveryリンク要素を含むAtomベースの検索結果の例:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<!--- ... --->
<atom:link rel="search"
href="http://example.com/opensearchdescription.xml"
type="application/opensearchdescription+xml"
title="Content Search" />
<!--- ... --->
</channel>
</rss>
HTMLおよびXHTMLドキュメントからも、 HTML 4.0 <link/>要素 を介して、関連するOpenSearch description documentsを参照できます。
以下の制限が適用されます:
OpenSearch autodiscoveryリンク要素を含むHTMLドキュメントの例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head profile="http://a9.com/-/spec/opensearch/1.1/">
<!--- ... --->
<link rel="search"
type="application/opensearchdescription+xml"
href="http://example.com/content-search.xml"
title="Content search" />
<link rel="search"
type="application/opensearchdescription+xml"
href="http://example.com/comment-search.xml"
title="Comments search" />
<!--- ... --->
</head>
<body>
<!--- ... --->
</body>
</html>
OpenSearch URLテンプレートフォーマットは、検索エンジンが問合せを受けるためのURLのパラメータ形式を表すために使うことができます。
検索クライアントはURLテンプレートを処理し、一般に{name}の形式で表されるテンプレートパラメータの実体を、問合せ時に決定される値で置き換えようとするでしょう。
デフォルトでは、パラメータ名はOpenSearch 1.1テンプレート名前空間に属しているとみなされ、検索パラメータ名のコアセットの定義はこの仕様で提供されます。しかし、検索エンジンと検索クライアントは、XML名前空間プレフィックス(prefix)の規約に基づく拡張メカニズムを使い、新しいパラメータ名を追加することができます。
テンプレートパラメータを含む検索URLテンプレートの例:
http://example.com/search?q={searchTerms}
任意のテンプレートパラメータを含む検索URLテンプレートの例:
http://example.com/feed/{startPage?}
Url要素のコンテキストで見られる、拡張名前空間の任意のテンプレートパラメータを含む検索URLの例:
<Url type="application/rss+xml"
xmlns:example="http://example.com/opensearchextensions/1.0/"
template="http://example.com?q={searchTerms}&c={example:color?}"/>
この仕様は特に、OpenSearch description documentの"Url"要素のコンテキストでのOpenSearch URLテンプレートシンタックスを参照しています。
OpenSearch URLテンプレートの文法は、以下の RFC 2234 を仕様とする拡張BNF(ABNF)ルールのセットで定義されます。
この文書で定義された文法規則は、Uniform Resource Identifier (URI)として定義されたルールのサブセットとして構築されています: 全体のシンタックスは RFC 3986 です。簡潔にするために、 RFC 3986 にすでに記述されているルールはこの文書ではルール名だけで亜参照され、これらのすべてを改めて記述することはしません。
ttemplate = tscheme ":" thier-part [ "?" tquery ] [ "#" tfragment ]
tscheme = *( scheme / tparameter )
thier-part = "//" tauthority ( tpath-abempty / tpath-absolute / tpath-rootless / path-empty )
tauthority = [ tuserinfo "@" ] thost [ ":" tport ]
tuserinfo = *( userinfo / tparameter )
thost = *( host / tparameter )
tport = *( port / tparameter )
tpath-abempty = *( "/" tsegment )
tsegment = *( segment / tparameter )
tpath-absolute = "/" [ tsegment-nz *( "/" tsegment ) ]
tsegment-nz = *( segment-nz / tparameter )
tpath-rootless = tsegment-nz *( "/" tsegment )
tparameter = "{" tqname [ tmodifier ] "}"
tqname = [ tprefix ":" ] tlname
tprefix = *pchar
tlname = *pchar
tmodifier = "?"
tquery = *( query / tparameter )
tfragement = *( fragement / tparameter )
検索クライアントは検索リクエストを実行する前に、すべてのテンプレートパラメータの実体を置き換えなければなりません。
検索エンジンが、あるテンプレートパラメータが任意で、空文字列で置き換えてよいことを示したければ、任意のテンプレートパラメータセクションで記述されている"?"表記を使うべきです。
パラメータ名は、任意のパラメータ名プレフィックスと、それに続くローカルパラメータ名から成ります。パラメータ名プレフィックスがある場合、":"文字でローカルパラメータ名と区切られています。すべてのパラメータ名はパラメータ名前空間に関連付けられています。無修飾(Unquolified)のパラメータ名の場合は、このローカルパラメータ名は暗黙的にOpenSearch 1.1名前空間に関連付けられています。完全修飾(Fully Qualified)パラメータ名の場合は、このローカルパラメータはパラメータ名プレフィックスを介して明示的に外部の名前空間に関連付けられています。
パラメータ名プレフィックスとローカルパラメータ名は、どちらも大文字と小文字を区別します。
パラメータ名プレフィックスはローカルパラメータ名をパラメータ名前空間に関連付けます。すべてのパラメータ名プレフィックスは、事前にこれを含む要素かその祖先の要素で XML名前空間 プレフィックスとして宣言されていなければいけません。
プレフィックスの選択はOpenSearch description documentの作成者の裁量です。検索クライアントは固有のプレフィックス文字列定数についてなんの仮定も加えるべきではなく、完全修飾パラメータ名を解析する際には、プレフィックス文字列からXML名前空間宣言へのマッピングを排他的に信頼すべきです。
検索クライアントに全く同じように処理される2つの同等なURLテンプレートの例:
<Url type="application/rss+xml"
xmlns:a="http://example.com/extensions/"
template="http://example.com?q={a:localname?}"/>
<Url type="application/rss+xml"
xmlns:b="http://example.com/extensions/"
template="http://example.com?q={b:localname?}"/>
無修飾のパラメータ名はローカルパラメータ名のみから成り、パラメータ名プレフィックスを含みません。OpenSearch URLテンプレート内の無修飾のパラメータ名はOpenSearch 1.1名前空間に暗黙的に関連付けられています。
この仕様はすべての無修飾のOpenSearch 1.1パラメータ名の完全なリストを含んでいます。
無修飾のパラメータ名の例:
<Url type="application/rss+xml"
template="http://example.com/?q={searchTerms}"/>
完全修飾パラメータ名はパラメータ名プレフィックスと、それに続く":"文字、それに続くローカルパラメータ名から成ります。完全修飾パラメータ名はパラメータ名プレフィックスから特定される、これを含む要素かその祖先の要素にXML名前空間宣言が登場する名前空間に関連付けられます。
完全修飾パラメータ名の例:
<Url type="application/rss+xml"
xmlns:example="http://example.com/opensearchextensions/1.0/"
template="http://example.com?f={example:format?}"/>
必須のテンプレートパラメータはテンプレートパラメータ修飾子を含まないテンプレートパラメータです。検索クライアントは、デフォルト知がわかっていればそれを使うことはできますが、値として空文字列を使うことはできません。
必須のテンプレートパラメータの例:
{searchTerms}
任意のテンプレートパラメータは、"?"と等しいテンプレートパラメータ修飾子を含むテンプレートパラメータです。検索クライアントは他につかえる値がない場合には、値として空文字列を使うことができます。
任意のテンプレートパラメータの例:
{startPage?}
以下のローカルパラメータ名が、OpenSearch 1.1名前空間で認識されます。このリストは完全なものです; OpenSearch URLテンプレートでは、以下にリストされたローカルパラメータ名だけが無修飾で現れるでしょう。
検索クライアントはこれらのパラメータ名がOpenSearch URLテンプレート内に現れたときに、適切な値に置き換えられるように準備しておくべきです。
検索クライアントが要求する一つまたは複数のキーワードで置き換えられます。
検索クライアントが要求するページあたりの検索結果の個数で置き換えられます。
検索クライアントは、"count"パラメータの値を検索エンジンが尊重しない可能性を予想し、実際のページサイズを計算する際には"itemsPerPage"レスポンス要素の内容を排他的に信頼すべきです。
検索クライアントが要求する最初の検索結果のインデックスで置き換えられます。
検索クライアントが要求する検索結果のセットのページ番号で置き換えられます。
検索クライアントが要求する検索結果として指定する言語を示す文字列で置き換えられます。
OpenSearch description documentは"Language" element要素を検索エンジンがサポートする言語ごとに持たなければなりません。もし検索エンジンがいずれの言語でのクエリーもサポートするのであれば、OpenSearch description documentは"*"の値を持つLanguage要素を持たなければなりません。OpenSearch URLテンプレートの"language"テンプレートパラメータは、検索クライアントに使用可能な言語からの選択を許すために使うことができます。
検索クライアントが実行する検索リクエストを指定された文字エンコーディングでエンコードすることを示す文字列で置き換えられます。
OpenSearch description documentは"InputEncoding"要素を検索リクエストとして使用できる文字エンコードごとに持たなければなりません。OpenSearch URLテンプレートの"inputEncoding"テンプレートパラメータは、現在の検索リクエストのエンコードに使われているエンコーディングを識別するように検索クライアントに要求するために使うことができます。
検索クライアントが要求する検索レスポンスを指定された文字エンコーディングでエンコードすることを示す文字列で置き換えられます。
OpenSearch description documentは"OutputEncoding"要素を検索レスポンスとして使用できる文字コードごとに持たなければなりません。OpenSearch URLテンプレートの"outputEncoding"テンプレートパラメータは、検索クライアントに検索レスポンスで使用可能な文字エンコーディングからの選択を許すために使うことができます。
OpenSearch Query要素は、検索クライアントが実行できる検索リクエストの使用を定義するために用いることができます。
Query要素属性はURLテンプレートでの検索パラメータに相当します。検索パラメータのコアセットはQuery属性として明示的に定義されている必要があり、カスタムパラメータは必要に応じて名前空間を介して追加することができます。
作成者は、検索クライアントが検索エンジンをテストできるように、OpenSearch description documentごとに少なくとも一つの role="example" Query要素を提供すべきです。検索エンジンは、検索クライアントが現在の検索を再現できるように、検索レスポンスごとに role="request" 要素を含めるべきです。
Query要素がOpenSearch description内で、検索クライアントに検索リクエスト例を提供するために使われる例:
<Query role="example" searchTerms="cat" />
Query要素がOpenSearchレスポンス内で、検索クライアントに元の検索リクエストをエコーバックするために使われる例:
<Query role="request" searchTerms="cat" startPage="1" />
Query要素がOpenSearchレスポンス内で、"OpenSurch"の綴り(spell)を訂正するために使われる例:
<Query role="correction" searchTerms="OpenSearch" totalResults="854000" title="Spelling correction" />
Query要素で拡張パラメータを使う例:
<Query xmlns:custom="http://example.com/opensearchextensions/1.0/"
role="example"
searchTerms="cat"
custom:color="blue"
title="Sample search" />
Query要素で拡張roleを使う例:
<Query xmlns:custom="http://example.com/opensearchextensions/1.0/"
role="custom:synonym"
title="Synonym of 'cat'"
searchTerms="feline" />
Query要素のセットが、AtomベースのOpenSearchレスポンスのコンテキストで使われる際の詳細な例:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
<!--- ... --->
<opensearch:Query role="request" searchTerms="General Motors annual report" />
<opensearch:Query role="related" searchTerms="GM" title="General Motors stock symbol" />
<opensearch:Query role="related" searchTerms="automotive industry revenue" />
<opensearch:Query role="subset" searchTerms="General Motors annual report 2005"
<opensearch:Query role="superset" searchTerms="General Motors" />
<!-- ... -->
</feed>
検索クライアントが作成することのできる検索リクエストの仕様を記述します。
role - このクエリ要素により定義された検索リクエストを検索クライアントがどう解釈すべきかを識別する文字列を持たせます。
title - この検索リクエストを記述した人間向け(human-readable)のテキスト文字列を持たせます。
totalResults - 検索リクエストが作成された場合に見つかると期待される結果の数を持たせます。
searchTerms - OpenSearch 1.1パラメータとしての"searchTerms"を表す値を持たせます。
count - OpenSearch 1.1パラメータとしての"count"を表す値を持たせます。
startIndex - OpenSearch 1.1パラメータとしての"startIndex"を表す値を持たせます。
startPage - OpenSearch 1.1パラメータとしての"startPage"を表す値を持たせます。
language - OpenSearch 1.1パラメータとしての"language"を表す値を持たせます。
inputEncoding - OpenSearch 1.1パラメータとしての"inputEncoding"を表す値を持たせます。
outputEncoding - OpenSearch 1.1パラメータとしての"outputEncoding"を表す値を持たせます。
例:
<Query role="example" searchTerms="cat" />
拡張属性が名前空間に関連付けられていれば、Query要素は追加の属性を含むことができます。検索クライアントは拡張属性を、指定された名前空間の同じ名前によるテンプレートパラメータと同じ意味を持つものとして解釈すべきです。
拡張された検索パラメータに相当する拡張属性を含む検索リクエストを表すクエリ要素の例:
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
xmlns:custom="http://example.com/opensearchextensions/1.0/">
<Url type="text/html"
template="http://example.com/search?color={custom:color?}" />
<Query role="example" custom:color="blue" />
<!-- ... -->
</OpenSearchDescription>
role値は任意でプレフィックス(prefix)と、それに続くローカルrole値を続けたものからなる値です。プレフィックスがある時には、これはローカルrole値とは":"文字で区切られます。すべてのroll値は、ローカルrole値の場合は暗黙に、完全修飾role値の場合はprefixを介して明示的に、どちらかの形で名前空間に関連付けられます。
role属性は、プレフィックスにより完全修飾で、宣言済みの名前空間に関連付けられていれば、このドキュメントで指定されたもの以上の値を受け取るかもしれません。クライアントは認識できないrole値に出会っても、Query要素に認識できないroleが含まれていなかった場合と同様に処理を続けるべきです。
roleのプレフィックスはローカルrole名を名前空間に関連付けます。すべてのプレフィックスは事前に、これを含むQuery要素かその先祖の要素で、XML名前空間として宣言されていなければなりません。
ローカルrole値は接頭語が頭についていません。ローカルrole値はOpenSearch 1.1名前空間に関連付けられています。
以下のrole値がOpenSearch 1.1名前空間で認識されます。このリストは完全なものです; OpenSearch 1.1名前空間では、以下にリストされたrole値だけが現れるでしょう。
Role値:
"request"
"example"
"related"
"correction"
"subset"
"superset"
ローカルrole値の例:
<Query role="related"
title="A related search"
searchTerms="tiger" />
完全修飾role値はプレフィックスが先に付きます。完全修飾role値はプレフィックスにより識別される、Query要素かその祖先の要素に含まれる名前空間に関連付けられます。
完全修飾role値の例:
<Query xmlns:custom="http://example.com/opensearchextensions/1.0/"
role="custom:synonym"
title="Synonyms of 'cat'"
searchTerms="feline" />
OpenSearchレスポンス要素は、検索エンジンが検索関連のメタデータで既存のXMLフォーマットを拡大するために使うことができます。
OpenSearchレスポンス要素は、典型的なものとしてRSS 2.0やAtom 1.0といったリストベースのXMLシンジゲーション形式の拡大に見ることができますが、しかしこれに限らず他の文脈でも使われるかもしれません。
RSS 2.0形式での検索結果ページの例:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Example.com Search: New York history</title>
<link>http://example.com/New+York+history</link>
<description>Search results for "New York history" at Example.com</description>
<opensearch:totalResults>4230000</opensearch:totalResults>
<opensearch:startIndex>21</opensearch:startIndex>
<opensearch:itemsPerPage>10</opensearch:itemsPerPage>
<atom:link rel="search" type="application/opensearchdescription+xml" href="http://example.com/opensearchdescription.xml"/>
<opensearch:Query role="request" searchTerms="New York History" startPage="1" />
<item>
<title>New York History</title>
<link>http://www.columbia.edu/cu/lweb/eguids/amerihist/nyc.html</link>
<description>
... Harlem.NYC - A virtual tour and information on
businesses ... with historic photos of Columbia's own New York
neighborhood ... Internet Resources for the City's History. ...
</description>
</item>
</channel>
</rss>
Atom 1.0形式での検索結果ページの例:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
<title>Example.com Search: New York history</title>
<link href="http://example.com/New+York+history"/>
<updated>2003-12-13T18:30:02Z</updated>
<author>
<name>Example.com, Inc.</name>
</author>
<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
<opensearch:totalResults>4230000</opensearch:totalResults>
<opensearch:startIndex>21</opensearch:startIndex>
<opensearch:itemsPerPage>10</opensearch:itemsPerPage>
<opensearch:Query role="request" searchTerms="New York History" startPage="1" />
<link rel="alternate" href="http://example.com/New+York+History?pw=3" type="text/html"/>
<link rel="self" href="http://example.com/New+York+History?pw=3&format=atom" type="application/atom+xml"/>
<link rel="first" href="http://example.com/New+York+History?pw=1&format=atom" type="application/atom+xml"/>
<link rel="previous" href="http://example.com/New+York+History?pw=2&format=atom" type="application/atom+xml"/>
<link rel="next" href="http://example.com/New+York+History?pw=4&format=atom" type="application/atom+xml"/>
<link rel="last" href="http://example.com/New+York+History?pw=42299&format=atom" type="application/atom+xml"/>
<link rel="search" type="application/opensearchdescription+xml" href="http://example.com/opensearchdescription.xml"/>
<entry>
<title>New York History</title>
<link href="http://www.columbia.edu/cu/lweb/eguids/amerihist/nyc.html"/>
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2003-12-13T18:30:02Z</updated>
<content type="text">
... Harlem.NYC - A virtual tour and information on
businesses ... with historic photos of Columbia's own New York
neighborhood ... Internet Resources for the City's History. ...
</content>
</entry>
</feed>
現在の検索で得られる検索結果の個数。
totalResults要素がページ内に出現しない場合、検索クライアントは現在のページを検索結果の最後のページだとみなすべきです。
例:
<totalResults>492420</totalResults>
現在の検索結果のセットの最初の検索結果のインデックス。
startIndex要素がページ内に出現しない場合、検索クライアントは現在のページを検索結果の最初のページだとみなすべきです。
例:
<startIndex>11</startIndex>
ページあたりに返される検索結果の個数。
itemsPerPage要素がページ内に出現しない場合、検索クライアントは現在のページないのアイテムの個数をデフォルトのページサイズとして使うべきです。
例:
<itemsPerPage>10</itemsPerPage>
検索クライアントが実行できる検索クエリを定義します。詳細はOpenSearch Query要素の仕様を参照。
検索結果は、現在の検索レスポンスを生成した、検索結果を再生成するために使うことができるtype="request"のQuery要素を含むべきです。
例:
<Query role="request" searchTerms="cat" />
OpenSearchレスポンスメタデータは HTML 4.0.1 "meta"要素 を介して、整形式(well-formed)のHTML/XHTMLに含めることができます。
以下のmeta要素は"name"属性値が、OpenSearch 1.1名前空間に関連付けられたプロファイルで認識されます。:
"totalResults" - "totalResults"要素の値に相当します。
"startIndex" - "startIndex"要素の値に相当します。
"itemsPerPage" - "itemsPerPage"要素の値に相当します。XHTML 1.0形式での検索結果ページの例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://a9.com/-/spec/opensearch/1.1/" >
<title>Example.com Search: New York history</title>
<link rel="search"
type="application/opensearchdescription+xml"
href="http://example.com/opensearchdescription.xml"
title="Example.com Web Search" />
<meta name="totalResults" content="4230000"/>
<meta name="startIndex" content"1"/>
<meta name="itemsPerPage" content="10"/>
</head>
<body>
<ul>
<li>
<a href="http://www.columbia.edu/cu/lweb/eguids/amerihist/nyc.html">
New York History
</a>
<div>
... Harlem.NYC - A virtual tour and information on
businesses ... with historic photos of Columbia's own New York
neighborhood ... Internet Resources for the City's History. ...
</div>
</li>
<!-- ... -->
</ul>
</body>
</html>
DeWitt Clinton <dewitt@opensearch.org>
Joel Tesler <tesler@a9.com>, Michael Fagan <mifa@a9.com>, Joe Gregorio <joe@bitworking.org>, Aaron Sauve <aaronsa@microsoft.com>, James Snell <jasnell@us.ibm.com>
原文「 Specifications/OpenSearch/1.1/Draft 3 」は A9.com により、 Creative Commons Attribution-ShareAlike 2.5 License ( Creative Commons 表示 - 継承 2.5ライセンス )で公開されています。
この文書は OKILab.jp が同ライセンス条項に基づき、同文書の翻訳物を、同じくCreative Commons 表示 - 継承 2.5ライセンスの下で公開するものです。
塚本 牧生 <tsukamoto@gmail.com>