JP5385919B2 - データ構造のナビゲーションのための方法、システム、およびコンピュータ・プログラム(データ構造のナビゲーションのための方法およびシステム) - Google Patents
データ構造のナビゲーションのための方法、システム、およびコンピュータ・プログラム(データ構造のナビゲーションのための方法およびシステム) Download PDFInfo
- Publication number
- JP5385919B2 JP5385919B2 JP2010541777A JP2010541777A JP5385919B2 JP 5385919 B2 JP5385919 B2 JP 5385919B2 JP 2010541777 A JP2010541777 A JP 2010541777A JP 2010541777 A JP2010541777 A JP 2010541777A JP 5385919 B2 JP5385919 B2 JP 5385919B2
- Authority
- JP
- Japan
- Prior art keywords
- schema
- data structure
- expression
- path
- elements
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Description
は、それ自体が子、または他の、現在のコンテキスト・ノードの子であるA要素のより深い下位(「//」)である、B要素の子(「/」)である、第1の要素(「[1]」)を、その名前(「*」)であれば何でも、選択する(この式は「/」で始まっていない)。ドキュメント内にいくつかの好適なB要素が存在する場合、これは実際には、それらのすべての第1の子のセットを戻す。軸指定子は、データ構造のツリー表現内のナビゲーション方向を示す。
1.ワイルドカード「*」または下位軸「//」の単純な拡張であり、スキーマは1つの可能な解決のみを示唆する。
2.パス合併演算子(unionoperator)「|」と組み合わされた複数のパスを備える式への、ワイルドカード「*」または下位軸「//」の拡張であり、スキーマは複数の可能な解決を示唆する。
3.インデックス([1])の挿入であり、スキーマは要素が1回のみ現れることを示唆する。同様に、[position()<=n]の挿入であり、スキーマは要素がn回出現可能であることを示唆し、ここでn>1である。
1.初期の最適化された式「/item」を作成するために、「/」文字のうちの1つを除去する(501)。
2.「item」という名前の要素を検索する「深さ優先(depth first)」様式で、スキーマ・ツリーをトラバースする(502)。
3.要素が見つかったかどうかを判別し(503)、見つかった場合は続行し、見つからなかった場合、プロセスは終了する(504)。
4.見つかった要素が第1の要素であるかどうかを判別する(505)。第1の要素である場合は続行し、第1の要素でない場合は、合併演算子を使用して以前の式に添付する(506)。
5.「item」要素が見つかった場合、スキーマ内の「maxOccurs」属性に注目する(507)。この属性が「1」(この属性が存在しない場合のデフォルトである)であるかどうかを判別し(508)、「1」である場合は、要素名に述語「[1]」を添付する(510)。「1」より大きいかまたは「未制限」の場合、述語を添付しない(509)。
6.スキーマ・ツリー内の現在の要素の親に進む(511)。
7.親がルート・ノードであるかどうかを判別する(512)。ルート・ノードである場合、別の「item」の検索に進む(502)。
8.親がルート・ノードでない場合、スキーマから名前を抽出し(513)、分離文字「/」によって分離された以前のステップの前にこれを挿入する。
9.ステップ507へと折り返して、必要に応じて要素名に述語を添付し、次の親に進む。「ルート」要素に達するまで続行する。
10.他の「item」要素が見つかった場合、ツリーのこの分岐について他の最適化されたパス式を作成する。これを、合併演算子「|」によって分離された以前の式に添付する(506)。スキーム・ツリー内にそれ以上の「item」の出現が見つからなくなるまで、トラバースを続行する。
1.「スキーマ・カーソル」をスキーマ・ツリーのルートに設定し、「XPathカーソル」をオリジナルXPath式の第1のステップに設定する。
2.スキーマ・ツリーを、スキーマ・カーソル位置から深さ優先でトラバースする。
3.スキーマ・ツリー内のカーソル要素がXPathステップに一致する(ワイルドカードがいずれかの要素に一致する)場合、
a.要素名(ワイルドカードの場合はスキーマ・ツリーから)を最適化されたXPath式に添付する。
b.スキーマ内の「maxOccurs」属性に注目する。この属性が「1」(この属性が存在しない場合のデフォルトである)である場合、要素名に述語「[1]」を添付する。「1」より大きいかまたは「未制限」の場合、述語を添付しない。
c.XPathカーソルがオリジナルXPath式内の最終ステップである場合、反復を停止し、このステージで構築された新しい式を部分リストに追加して、第2ステージからトラバースを続行する。
d.XPathカーソルを、オリジナルXPath式内の次のステップに移動する。次のステップが下位軸「//」によって分離されている場合、
i.以前に記述されたアルゴリズムを使用して、これを拡張する(拡張アルゴリズム内の「ルート」要素を、ここでは「//」の前の要素であるものと定義する)。
ii.拡張の結果、合併演算子「|」によって分離された複数のパスが生じた場合、これまでに最適化された式を複製し、各部分の初めに添付する必要がある。各部分は、このアルゴリズムの剰余に対して別々に扱われなければならない。(たとえば、「/document//item」は、拡張前に「/document[1]//item」を生成することになる。このカーソル位置から「//item」を拡張すると、「/topic[1]/list[1]/item|/index[1]/item」を生成することになる。このステップの後、2つの部分は、/document[1]/topic[1]/list[1]/itemおよび/document[1]/index[1]/itemとなり、各部分は別々に扱われるものとする。)
e.スキーマ・カーソルのそれぞれの子について、次に、スキーマ・カーソルを子に設定する。ステージ3に再帰する。(このステージで、各子は最適化された式における別々の部分を表すことになり、そのほとんどが、おそらくはデッドエンドであり、破棄されることになる。アルゴリズムの終わりで、合併演算子[|]を使用してすべての剰余部分が組み合せられる。)
一致しない場合、
a.アルゴリズムのステージ2以降に構築されたパスのこの部分を破棄する。スキーマ・カーソルおよびXPathカーソルを、以前ステージ2の際にそれらがいた場所に再設定する。ステージ2からトラバースを続行する。
4.合併演算子「|」によって分離された部分リストを組み合わせて、最終式を生成する。
Claims (13)
- コンピュータの処理により、データ構造のナビゲーションを行う方法であって、
ランタイム時にデータ構造内で1つまたは複数の要素を見つけるために、データ構造の照会のための入力パス式を受信するステップであって、前記入力パス式は少なくとも1つのワイルドカード文字または下位軸のうちの1つまたは複数を含む、受信するステップと、
前記データ構造のスキーマにアクセスし、前記1つまたは複数の要素に関する情報を取得するステップと、
前記パス式を修正して出力するステップであって、
前記ワイルドカード文字、またはスキーマが1つの可能な解決のみを示唆する下位軸を拡張するステップと、
前記ワイルドカード文字、またはスキーマが複数の可能な解決を示唆するパス合併演算子と組み合わされた複数のパスを備える式へ、下位軸を拡張するステップと、
インデックスを挿入するステップであって、スキーマが要素が1回のみ現れることを示唆する場合にはインデックス[1]を挿入し、スキーマが要素がn回( n>1 )出現可能であることを示唆する場合にはインデックス[position( )<=n]挿入するステップ
を有する、方法。 - 情報を取得するステップが、前記スキーマ内での属性の最大出現に注目するステップと、これが存在しないかまたは1である場合、1の前記述語を前記パス要素名に添付するステップとを含む、請求項1に記載の方法。
- 前記スキーマが、前記データ構造の要素をそのルートまで追跡するための情報を含む、請求項1〜2のいずれか一項に記載の方法。
- 前記入力パス式がXPath式であり、前記データ構造が関連付けられたスキーマを備えたドキュメント・オブジェクト・モデル構造である、請求項1〜3のいずれか一項に記載の方法。
- コンピュータの処理により、データ構造のナビゲーションを行うシステムであって、
ランタイム時にデータ構造内で1つまたは複数の要素を見つけるために、データ構造の照会のための入力パス式を受信する手段であって、前記入力パス式は少なくとも1つのワイルドカード文字または下位軸のうちの1つまたは複数を含む、受信する手段と、
前記データ構造のスキーマにアクセスし、前記1つまたは複数の要素に関する情報を取得する手段と、
前記パス式を修正して出力する手段であって、
前記ワイルドカード文字、またはスキーマが1つの可能な解決のみを示唆する下位軸を拡張することによって、前記入力パス式を修正する、手段と、
前記ワイルドカード文字、またはスキーマが複数の可能な解決を示唆するパス合併演算子と組み合わされた複数のパスを備える式へ、下位軸を拡張する手段と、
インデックスを挿入する手段であって、スキーマが要素が1回のみ現れることを示唆する場合にはインデックス[1]を挿入し、スキーマが要素がn回( n>1 )出現可能であることを示唆する場合にはインデックス[position( )<=n]を挿入する手段
を有する、システム。 - 前記パス・ステップのうちの1つまたは複数でインデックスを指定することが、前記パス要素名に前記インデックスの述語を添付する、請求項5に記載のシステム。
- 情報を取得するステップが、前記スキーマ内での属性の最大出現に注目するための手段と、これが存在しないかまたは1である場合、1の前記述語を前記パス要素名に添付するための手段とを含む、請求項5〜6のいずれか一項に記載のシステム。
- 前記スキーマが、前記データ構造の要素をそのルートまで追跡するための情報を含む、請求項5〜7のいずれか一項に記載のシステム。
- 前記入力パス式がXPath式であり、前記データ構造が関連付けられたスキーマを備えたドキュメント・オブジェクト・モデル構造である、請求項5〜8のいずれか一項に記載のシステム。
- 前記スキーマへアクセスしないランタイム・エンジンを含み、前記ランタイム・エンジンが、データ構造内で1つまたは複数の要素を見つけるために前記修正されたパス式を使用する、請求項5〜9のいずれか一項に記載のシステム。
- 前記ランタイム・エンジンがメッセージ・ブローカであり、前記データ構造がメッセージである、請求項10に記載のシステム。
- 請求項1〜4のいずれか一項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
- 請求項12に記載の前記コンピュータ・プログラムを、コンピュータ読み取り可能な記録媒体に記録した、コンピュータ可読記録媒体
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP08150284.1 | 2008-01-15 | ||
EP08150284 | 2008-01-15 | ||
PCT/EP2009/050120 WO2009090130A1 (en) | 2008-01-15 | 2009-01-07 | Method and system for navigation of a data structure |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011510372A JP2011510372A (ja) | 2011-03-31 |
JP5385919B2 true JP5385919B2 (ja) | 2014-01-08 |
Family
ID=40494930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010541777A Expired - Fee Related JP5385919B2 (ja) | 2008-01-15 | 2009-01-07 | データ構造のナビゲーションのための方法、システム、およびコンピュータ・プログラム(データ構造のナビゲーションのための方法およびシステム) |
Country Status (6)
Country | Link |
---|---|
US (1) | US8171040B2 (ja) |
EP (1) | EP2240875A1 (ja) |
JP (1) | JP5385919B2 (ja) |
KR (1) | KR101221306B1 (ja) |
CN (1) | CN101965565A (ja) |
WO (1) | WO2009090130A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033885B (zh) | 2009-09-29 | 2013-10-02 | 国际商业机器公司 | 用于XML数据存储库中的XPath执行的方法和系统 |
US8983990B2 (en) | 2010-08-17 | 2015-03-17 | International Business Machines Corporation | Enforcing query policies over resource description framework data |
US20120072824A1 (en) * | 2010-09-20 | 2012-03-22 | Research In Motion Limited | Content acquisition documents, methods, and systems |
US8566702B2 (en) * | 2010-09-20 | 2013-10-22 | Blackberry Limited | Methods and systems of outputting content of interest |
US10606814B2 (en) * | 2017-01-18 | 2020-03-31 | Microsoft Technology Licensing, Llc | Computer-aided tracking of physical entities |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3492247B2 (ja) * | 1999-07-16 | 2004-02-03 | 富士通株式会社 | Xmlデータ検索システム |
US7831655B2 (en) * | 2001-10-18 | 2010-11-09 | Bea Systems, Inc. | System and method for implementing a service adapter |
US7478100B2 (en) | 2003-09-05 | 2009-01-13 | Oracle International Corporation | Method and mechanism for efficient storage and query of XML documents based on paths |
US7426522B2 (en) * | 2003-09-23 | 2008-09-16 | International Business Machines Corporation | Object oriented query path expression to relational outer join translator method, system, article of manufacture, and computer program product |
JP2007310617A (ja) * | 2006-05-18 | 2007-11-29 | Nec Corp | 構造化文書処理システム、構造化文書処理方法およびプログラム |
US20080059439A1 (en) | 2006-08-30 | 2008-03-06 | Lucent Technologies Inc. | Query Translation from XPath to SQL in the Presence of Recursive DTDs |
-
2009
- 2009-01-07 CN CN2009801022043A patent/CN101965565A/zh active Pending
- 2009-01-07 WO PCT/EP2009/050120 patent/WO2009090130A1/en active Application Filing
- 2009-01-07 KR KR1020107014912A patent/KR101221306B1/ko not_active IP Right Cessation
- 2009-01-07 EP EP09701506A patent/EP2240875A1/en not_active Withdrawn
- 2009-01-07 JP JP2010541777A patent/JP5385919B2/ja not_active Expired - Fee Related
- 2009-01-14 US US12/353,901 patent/US8171040B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP2240875A1 (en) | 2010-10-20 |
US20090182722A1 (en) | 2009-07-16 |
KR20100107463A (ko) | 2010-10-05 |
KR101221306B1 (ko) | 2013-01-11 |
WO2009090130A1 (en) | 2009-07-23 |
JP2011510372A (ja) | 2011-03-31 |
US8171040B2 (en) | 2012-05-01 |
CN101965565A (zh) | 2011-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8868620B2 (en) | Techniques for composing data queries | |
US8935267B2 (en) | Apparatus and method for executing different query language queries on tree structured data using pre-computed indices of selective document paths | |
US7353222B2 (en) | System and method for the storage, indexing and retrieval of XML documents using relational databases | |
JP4189416B2 (ja) | 構造化文書管理システム及びプログラム | |
US9152735B2 (en) | Method and apparatus for composing XSL transformations with XML publishing views | |
US20040044659A1 (en) | Apparatus and method for searching and retrieving structured, semi-structured and unstructured content | |
US20070208769A1 (en) | System and method for generating an XPath expression | |
US7627589B2 (en) | High performance XML storage retrieval system and method | |
US20100145902A1 (en) | Methods and systems to train models to extract and integrate information from data sources | |
US20070016605A1 (en) | Mechanism for computing structural summaries of XML document collections in a database system | |
JPH07319917A (ja) | 文書データべース管理装置および文書データべースシステム | |
JP5113764B2 (ja) | データベースと電子ドキュメントとの間での階層データの転送および表示 | |
JP2001147933A (ja) | 構造化文書検索方法、構造化文書検索装置及び構造化文書検索システム | |
JP2007034827A (ja) | 構造化文書記憶装置、構造化文書検索装置、構造化文書システム、方法およびプログラム | |
JP5385919B2 (ja) | データ構造のナビゲーションのための方法、システム、およびコンピュータ・プログラム(データ構造のナビゲーションのための方法およびシステム) | |
US20080306928A1 (en) | Method and apparatus for the searching of information resources | |
US7877400B1 (en) | Optimizations of XPaths | |
US20070174241A1 (en) | Match graphs for query evaluation | |
JP2006031377A (ja) | 構造化文書管理装置、検索装置、記憶方法、検索方法及びプログラム | |
JP4649339B2 (ja) | XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体 | |
US7805424B2 (en) | Querying nested documents embedded in compound XML documents | |
JP2010267081A (ja) | 情報検索方法及び装置及びプログラム | |
Vidra et al. | Next Step in Online Querying and Visualization of Word-Formation Networks | |
Tian et al. | VACXENE: a user-friendly visual synthetic XML generator | |
JP5225022B2 (ja) | Xmlデータ検索方法及び装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111017 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130311 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130319 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130612 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130702 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130823 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130917 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131004 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |