この章では、OpenLSビジネス・ディレクトリ(イエロー・ページ(YP))・サービスに対するOracle Spatialのサポートについて説明します。この章の主な内容は次のとおりです。
ビジネス・ディレクトリ・サービスでは、指定した名前またはカテゴリに一致する、指定した地域内のビジネス情報のリストを提供します。
ビジネス・ディレクトリ・データは、これらのデータのサードパーティ・プロバイダから取得されます。これらのプロバイダでは、多くの場合、異なるビジネス・カテゴリを使用しています。また、使用している階層構造が異なる場合もあります。様々な方法で統一されているパターンは、ビジネス情報が主題と場所によって分類されていることです。場所の要素はよく知られており、たとえば米国の場合は、場所の特定に郵便番号または都市および州の組合せ、さらにオプションで具体的な住所を使用して検索を開始できます。
一方、ビジネス情報の分類は統一された方法では実施されていません。一部のプロバイダでは、単純なサブストリングの一致を使用してユーザーが選択したカテゴリのフラット・リストを提供しています。その他のプロバイダでは、3レベルまたは4レベルからなるサブカテゴリの階層構成を提供し、各レベルのファンアウト(1つのレベルにおける子カテゴリの最大数)は多くの場合20から50、場合によっては100以上になります。ユーザーは、デフォルトでは階層のルートから階層のトラバースを開始できます。また、階層内の適切な開始点と一致するキーワードを入力することもできます。このようなキーワードの一致では、単純なサブストリングの一致と比べて、より効率的な選択を行うことができます。
Oracle Spatialのビジネス・ディレクトリ機能を使用するには、ビジネス・ディレクトリ(YP)のベンダーから提供されるデータを使用する必要があり、また、そのデータは、Oracle SpatialのOpenLSでサポートされる形式である必要があります(12.3.1項「OPENLS_DIR_BUSINESSES表」を参照)。
ユーザーのディレクトリ・サービス・リクエストを送信してレスポンスを戻すには、OpenLS WebサービスAPI(14.2項を参照)を使用する必要があります。ディレクトリ・サービスのリクエストとレスポンスに関する情報とその例については、14.3項を参照してください。
ビジネス・ディレクトリ・データを取得し、適切なプロシージャを起動してこれらのデータをデータベースにロードした後、プロシージャによって、ビジネス・ディレクトリのサポートに使用する次の表(すべてMDSYSスキーマが所有)が移入されます。
OPENLS_DIR_BUSINESSES
OPENLS_DIR_BUSINESS_CHAINS
OPENLS_DIR_CATEGORIES
OPENLS_DIR_CATEGORIZATIONS
OPENLS_DIR_CATEGORY_TYPES
OPENLS_DIR_SYNONYMS
表によっては、一部の行で列にNULL値が設定されます。これは、情報がこのインスタンスでは適用されなかったか、またはデータのプロバイダが値を提供していなかったことが原因です。
以降の項では、これらの表について、表名のアルファベット順に説明します。
OPENLS_DIR_BUSINESSES表には、各ビジネス(住所を持つ各ビジネス)に関する情報が格納されます。ビジネスが大きなビジネス・チェーンの一部である場合、CHAIN_ID列はOPENLS_DIR_BUSINESS_CHAINS表(12.3.2項を参照)のCHAIN_ID列への外部キーとなります。
OPENLS_DIR_BUSINESSES表には、ビジネスごとに行が1つ含まれ、表12-1に示す列があります。
表12-1 OPENLS_DIR_BUSINESSES表
列名 | データ型 | 説明 |
---|---|---|
BUSINESS_ID |
NUMBER |
ビジネスのID番号。(必須) |
BUSINESS_NAME |
VARCHAR2(128) |
領域名。(必須) |
CHAIN_ID |
NUMBER |
ビジネスがチェーンの一部である場合の、(OPENLS_BIR_BUSINESS_CHAIN表での)ビジネス・チェーンのID番号。 |
DESCRIPTION |
VARCHAR2(1024) |
ビジネスの説明。 |
PHONE |
VARCHAR2(64) |
場所に対して適切な形式で示されている電話番号。 |
COUNTRY |
VARCHAR2(64) |
国のコードまたは名前。(必須) |
COUNTRY_SUBDIVISION |
VARCHAR2(128) |
国の小区域(該当する場合)。 |
COUNTRY_SECONDARY_SUBDIVISION |
VARCHAR2(128) |
COUNTRY_SUBDIVISION内の小区域(該当する場合)。 |
MUNICIPALITY |
VARCHAR2(128) |
市町村の名前。 |
MUNICIPALITY_SUBDIVISION |
VARCHAR2(128) |
MUNICIPALITY内の小区域(該当する場合)。 |
POSTAL_CODE |
VARCHAR2(32) |
郵便番号(たとえば、米国およびカナダでは5桁の郵便番号)。(必須) |
POSTAL_CODE_EXT |
VARCHAR2(32) |
郵便番号の拡張部分(5-4形式の郵便番号を使用する場合は、4桁の拡張部分)。 |
STREET |
VARCHAR2(128) |
通りの住所(家や部屋の番号も含む)。(必須) |
INTERSECTING_STREET |
VARCHAR2(128) |
この住所でSTREETと交差する通りの名前(該当する場合)。 |
BUILDING |
VARCHAR2(128) |
この住所を含むビルの名前。 |
PARAMETERS |
XMLTYPE |
ビジネスに関する追加情報を説明するXML文書。 |
GEOM |
SDO_GEOMETRY |
ビジネスの住所を示す点ジオメトリ。 |
OPENLS_DIR_BUSINESS_CHAINS表には、各ビジネス・チェーンに関する情報が格納されます。ビジネス・チェーンは、複数の関連ビジネスを持つビジネスです。たとえば、レストラン・チェーンには、同じ名前で基本的に同じメニューを提供する複数のレストランがあります。ビジネスがビジネス・チェーンの一部である場合は、OPENLS_DIR_BUSINESSES表(12.3.1項を参照)内のそのビジネスに関する行に、OPENLS_DIR_BUSINESS_CHAINS表のCHAIN_ID列の値と一致するCHAIN_ID列値が含まれます。
OPENLS_DIR_BUSINESS_CHAINS表には、ビジネス・チェーンごとに行が1つ含まれ、表12-2に示す列があります。
OPENLS_DIR_CATEGORIES表には、ビジネスの分類先となる各カテゴリに関する情報が格納されます。データ・プロバイダがカテゴリ階層を使用する場合、この表には、子カテゴリの親カテゴリを示すPARENT_ID列を使用して、階層のすべてのレベルでカテゴリに関する行が含まれます。たとえば、レストランというカテゴリは、複数の子カテゴリ(中華など)の親である可能性があります。
OPENLS_DIR_CATEGORIES表には、カテゴリごとに行が1つ含まれ、表12-3に示す列があります。
表12-3 OPENLS_DIR_CATEGORIES表
列名 | データ型 | 説明 |
---|---|---|
CATEGORY_ID |
VARCHAR2(32) |
カテゴリのID文字列。(必須) |
CATEGORY_TYPE_ID |
NUMBER |
カテゴリ・タイプのID番号。この値は、OPENLS_DIR_CATEGORY_TYPES表(12.3.5項を参照)のCATEGORY_TYPE_ID列の値と一致する必要があります。(必須) |
CATEGORY_NAME |
VARCHAR2(128) |
カテゴリ名。(必須) |
PARENT_ID |
VARCHAR2(32) |
このカテゴリの親カテゴリのCATEGORY_ID値(該当する場合)。 |
PARAMETERS |
XMLTYPE |
カテゴリに関する追加情報を説明するXML文書。 |
OPENLS_DIR_CATEGORIZATIONS表には、ビジネスとカテゴリの関連付けに関する情報が格納されます。各ビジネスは複数のカテゴリに関連付けることができ、ビジネスのカテゴリは、相互に独立した状態、親子関係の状態、あるいはその両方の状態にすることができます。たとえば、書籍と音楽CDを販売している店舗は、書店、音楽およびその子カテゴリである楽器店のカテゴリに関連付けられる場合があります。このような場合は、この表のそのビジネスに対して行が3つ存在することになります。
OPENLS_DIR_CATEGORIZATIONS表には、ビジネスとカテゴリの関連付けごとに行が1つ含まれ、表12-4に示す列があります。
表12-4 OPENLS_DIR_CATEGORIZATIONS表
列名 | データ型 | 説明 |
---|---|---|
BUSINESS_ID |
NUMBER |
ビジネスのID。この値は、OPENLS_DIR_BUSNESSES表(12.3.1項を参照)のBUSINESS_ID列の値と一致する必要があります。(必須) |
CATEGORY_ID |
VARCHAR2(32) |
カテゴリのID文字列。CATEGORY_ID値とCATEGORY_TYPE_ID値は、OPENLS_DIR_CATEGORIES表(12.3.3項を参照)内の単一の行の対応する列値と一致する必要があります。(必須) |
CATEGORY_TYPE_ID |
NUMBER |
カテゴリ・タイプのID番号。CATEGORY_ID値とCATEGORY_TYPE_ID値は、OPENLS_DIR_CATEGORIES表(12.3.3項を参照)内の単一の行の対応する列値と一致する必要があります。(必須) |
CATEGORIZATION_TYPE |
VARCHAR2(8) |
|
USER_SPECIFIC_CATEGORIZATION |
VARCHAR2(32) |
ユーザー指定の分類(該当する場合)。 |
PARAMETERS |
XMLTYPE |
ビジネスとカテゴリの関連付けに関する追加情報を説明するXML文書。 |
OPENLS_DIR_CATEGORY_TYPES表には、カテゴリ・タイプに関する情報が格納されます。この表に含まれる列を、表12-5に示します。
OPENLS_DIR_SYNONYMS表には、カテゴリのシノニムに関する情報が格納されます。シノニムを作成すると、カテゴリに関連付けられる用語(文字列)の数を拡大して、ユーザーがより完全で意味のある検索結果を得られるようになります。
OPENLS_DIR_SYNONYMS表には、シノニムの定義ごとに行が1つ含まれ、表12-6に示す列があります。
表12-6 OPENLS_DIR_SYNONYMS表
列名 | データ型 | 説明 |
---|---|---|
STANDARD_NAME |
VARCHAR2(128) |
カテゴリの標準名。ユーザーが入力する場合もあります。 |
CATEGORY |
VARCHAR2(128) |
カテゴリ名。OPENLS_DIR_CATEGORIES表(12.3.3項を参照)に表示されます。 |
AKA |
VARCHAR2(128) |
カテゴリの別名または代替名。(AKAは別名という意味のalso known asを表します。) |