JP2011510372A - データ構造のナビゲーションのための方法、システム、およびコンピュータ・プログラム(データ構造のナビゲーションのための方法およびシステム) - Google Patents
データ構造のナビゲーションのための方法、システム、およびコンピュータ・プログラム(データ構造のナビゲーションのための方法およびシステム) Download PDFInfo
- Publication number
- JP2011510372A JP2011510372A JP2010541777A JP2010541777A JP2011510372A JP 2011510372 A JP2011510372 A JP 2011510372A JP 2010541777 A JP2010541777 A JP 2010541777A JP 2010541777 A JP2010541777 A JP 2010541777A JP 2011510372 A JP2011510372 A JP 2011510372A
- Authority
- JP
- Japan
- Prior art keywords
- data structure
- schema
- expression
- elements
- path
- 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.)
- Granted
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
Abstract
【解決手段】 この方法は、ランタイム時にデータ構造(101)内で1つまたは複数の要素(110)を見つけるために、データ構造(101)の照会のための入力パス式(104)を受信することを含む。入力パス式(104)は1つまたは複数のパス・ステップを含む。この方法は、データ構造(101)のスキーマ(103)にアクセスすること、および、1つまたは複数の要素(110)に関する情報を取得することを含む。パス式(104)は、パス・ステップ内で見つかった要素の出現数を制限するために、1つまたは複数のパス・ステップにおけるインデックスを指定するように修正される。一実施形態では、さらにパス式(104)は、任意のワイルドカード文字を拡張して、要素(110)の1つまたは複数の全パスを指定し、2つまたはそれ以上の全パスが存在する場合、それらは合併演算子によって組み合わせられ、修正されたパス式は、ランタイム時にデータ構造(101)を照会(111)するために使用される。
【選択図】 図1
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 (19)
- ランタイム時にデータ構造(101)内で1つまたは複数の要素(110)を見つけるために、データ構造(101)の照会のための入力パス式(104)を受信するステップであって、前記入力パス式(104)は1つまたは複数のパス・ステップを含む、受信するステップと、
前記データ構造(101)のスキーマ(103)にアクセスするステップ、および、前記1つまたは複数の要素(110)に関する情報を取得するステップと、
パス・ステップ内で見つかった要素の出現数を制限するために、1つまたは複数のパス・ステップにおけるインデックスを指定するように前記入力パス式(104)を修正するステップと、
ランタイム時に前記データ構造(101)を照会(111)するために前記修正されたパス式を使用するステップと、
を含む、データ構造(101)のナビゲーションのための方法。 - 前記入力パス式(104)が、ワイルドカード文字または下位軸のうちの1つまたは複数を含む、請求項1に記載の方法。
- 前記入力パス式(104)を修正するステップが前記要素(110)の1つまたは複数の全パスを指定し、2つまたはそれ以上の全パスが合併演算子によって組み合わせられる、請求項1または2に記載の方法。
- 前記パス・ステップのうちの1つまたは複数でインデックスを指定するステップが、前記パス要素名に前記インデックスの述語を添付する、請求項1から3のいずれか一項に記載の方法。
- 情報を取得するステップが、前記スキーマ(103)内での属性の最大出現に注目するステップと、これが存在しないかまたは1である場合、1の前記述語を前記パス要素名に添付するステップとを含む、前記請求項のいずれか一項に記載の方法。
- 前記スキーマ(103)が、前記データ構造(101)の要素(110)をそのルートまで追跡するための情報を含む、前記請求項のいずれか一項に記載の方法。
- 前記入力パス式(104)がXPath式であり、前記データ構造(101)が関連付けられたスキーマ(103)を備えたドキュメント・オブジェクト・モデル構造である、前記請求項のいずれか一項に記載の方法。
- ランタイム時にデータ構造(101)内で1つまたは複数の要素(110)を見つけるために、データ構造(101)の照会のための入力パス式(104)を受信するための手段であって、前記入力パス式(104)は1つまたは複数のパス・ステップを含む、受信するための手段と、
前記データ構造(101)のスキーマ(103)にアクセスし、前記1つまたは複数の要素(110)に関する情報を取得するための手段と、
パス・ステップ内で見つかった要素の出現数を制限するために、1つまたは複数の前記パス・ステップにおけるインデックスを指定するように前記入力パス式(104)を修正するための手段と、
前記データ構造(101)を照会(111)するためにランタイム時に使用するように修正された前記パス式を出力するための手段と、
を備える、データ構造(101)のナビゲーションのためのシステム。 - 前記入力パス式(104)が、ワイルドカード文字または下位軸のうちの1つまたは複数を含む、請求項8に記載のシステム。
- 前記入力パス式(104)を修正するための手段が前記要素(110)の1つまたは複数の全パスを指定し、2つまたはそれ以上の全パスが合併演算子によって組み合わせられる、請求項8または9に記載のシステム。
- 前記パス・ステップのうちの1つまたは複数でインデックスを指定することが、前記パス要素名に前記インデックスの述語を添付する、請求項8から10のいずれか一項に記載のシステム。
- 情報を取得するステップが、前記スキーマ(103)内での属性の最大出現に注目するための手段と、これが存在しないかまたは1である場合、1の前記述語を前記パス要素名に添付するための手段とを含む、請求項8から11のいずれか一項に記載のシステム。
- 前記スキーマ(103)が、前記データ構造(101)の要素(110)をそのルートまで追跡するための情報を含む、請求項8から12のいずれか一項に記載のシステム。
- 前記入力パス式(104)がXPath式であり、前記データ構造(101)が関連付けられたスキーマ(103)を備えたドキュメント・オブジェクト・モデル構造である、請求項8から13のいずれか一項に記載のシステム。
- 前記システムが、ランタイム時に配置されることになる照会を構築するためのツールキット(105)である、請求項8から14のいずれか一項に記載のシステム。
- 前記スキーマ(103)へアクセスしないランタイム・エンジン(102)を含み、前記ランタイム・エンジン(102)が、データ構造(101)内で1つまたは複数の要素(110)を見つけるために前記修正されたパス式を使用する、請求項8から15のいずれか一項に記載のシステム。
- 前記ランタイム・エンジン(102)がメッセージ・ブローカであり、前記データ構造(101)がメッセージである、請求項16に記載のシステム。
- ランタイム時にデータ構造(101)内で1つまたは複数の要素(110)を見つけるために、データ構造(101)の照会のための入力パス式(104)を受信するステップであって、前記入力パス式(104)は1つまたは複数のパス・ステップを含む、受信するステップと、
前記データ構造(101)のスキーマ(103)にアクセスするステップ、および、前記1つまたは複数の要素(110)に関する情報を取得するステップと、
パス・ステップ内で見つかった要素の出現数を制限するために、1つまたは複数の前記パス・ステップにおけるインデックスを指定するように前記入力パス式(104)を修正するステップと、
ランタイム時に前記データ構造(101)を照会(111)するために前記修正されたパス式を使用するステップと、
を実行するための、コンピュータ読み取り可能プログラム・コード手段を備える、コンピュータ読み取り可能ストレージ・メディア上に格納されたコンピュータ・プログラム。 - 前記プログラムがコンピュータ上で実行された場合、請求項1から7のいずれか一項に記載の方法を実行するように適合されたプログラム・コード手段を備える、コンピュータ・プログラム。
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 true JP2011510372A (ja) | 2011-03-31 |
JP5385919B2 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 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001034619A (ja) * | 1999-07-16 | 2001-02-09 | Fujitsu Ltd | Xmlデータの格納/検索方法およびxmlデータ検索システム |
US20050055355A1 (en) * | 2003-09-05 | 2005-03-10 | Oracle International Corporation | Method and mechanism for efficient storage and query of XML documents based on paths |
JP2007310617A (ja) * | 2006-05-18 | 2007-11-29 | Nec Corp | 構造化文書処理システム、構造化文書処理方法およびプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7831655B2 (en) * | 2001-10-18 | 2010-11-09 | Bea Systems, Inc. | System and method for implementing a service adapter |
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 |
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 JP JP2010541777A patent/JP5385919B2/ja not_active Expired - Fee Related
- 2009-01-07 KR KR1020107014912A patent/KR101221306B1/ko not_active IP Right Cessation
- 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 EP EP09701506A patent/EP2240875A1/en not_active Withdrawn
- 2009-01-14 US US12/353,901 patent/US8171040B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001034619A (ja) * | 1999-07-16 | 2001-02-09 | Fujitsu Ltd | Xmlデータの格納/検索方法およびxmlデータ検索システム |
US20050055355A1 (en) * | 2003-09-05 | 2005-03-10 | Oracle International Corporation | Method and mechanism for efficient storage and query of XML documents based on paths |
JP2007310617A (ja) * | 2006-05-18 | 2007-11-29 | Nec Corp | 構造化文書処理システム、構造化文書処理方法およびプログラム |
Non-Patent Citations (8)
Title |
---|
CSNG200100097037; 金政 泰彦 他: 'XML問い合わせ処理システム(xQues)のデータ格納処理' 情報処理学会研究報告 Vol.99,No.61(99-DBS-119-41), 19990723, PP.243-248., 情報処理学会 * |
CSNG200500663001; 中尾 伸章 他: '部分圧縮を用いた大規模XMLデータ処理方式の提案' 電子情報通信学会技術研究報告 Vol.104,No.102(DE2004-1), 20040531, PP.1-6., 電子情報通信学会 * |
CSNG200501025001; 春日 史郎 他: 'リレーショナルデータベースを用いたXQuery処理システムの実現' 電子情報通信学会研究技術報告 Vol.104,No.177(DE2004-48), 20040707, PP.1-6., 電子情報通信学会 * |
CSNG200900289025; 池末 修也 他: 'パスプルーニングと決定性有限オートマトンを用いた大規模かつ高速なXQuery処理システムの実装' DEWS2006論文集 Vol.DEWS2006,No.1C-i6, 20060630, PP.1-7., 電子情報通信学会工学研究専門委員会 * |
JPN6013012743; 池末 修也 他: 'パスプルーニングと決定性有限オートマトンを用いた大規模かつ高速なXQuery処理システムの実装' DEWS2006論文集 Vol.DEWS2006,No.1C-i6, 20060630, PP.1-7., 電子情報通信学会工学研究専門委員会 * |
JPN6013012744; 中尾 伸章 他: '部分圧縮を用いた大規模XMLデータ処理方式の提案' 電子情報通信学会技術研究報告 Vol.104,No.102(DE2004-1), 20040531, PP.1-6., 電子情報通信学会 * |
JPN6013012745; 金政 泰彦 他: 'XML問い合わせ処理システム(xQues)のデータ格納処理' 情報処理学会研究報告 Vol.99,No.61(99-DBS-119-41), 19990723, PP.243-248., 情報処理学会 * |
JPN6013012746; 春日 史郎 他: 'リレーショナルデータベースを用いたXQuery処理システムの実現' 電子情報通信学会研究技術報告 Vol.104,No.177(DE2004-48), 20040707, PP.1-6., 電子情報通信学会 * |
Also Published As
Publication number | Publication date |
---|---|
US8171040B2 (en) | 2012-05-01 |
CN101965565A (zh) | 2011-02-02 |
JP5385919B2 (ja) | 2014-01-08 |
KR101221306B1 (ko) | 2013-01-11 |
WO2009090130A1 (en) | 2009-07-23 |
KR20100107463A (ko) | 2010-10-05 |
EP2240875A1 (en) | 2010-10-20 |
US20090182722A1 (en) | 2009-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8868620B2 (en) | Techniques for composing data queries | |
US9152735B2 (en) | Method and apparatus for composing XSL transformations with XML publishing views | |
JP4189416B2 (ja) | 構造化文書管理システム及びプログラム | |
US20070208769A1 (en) | System and method for generating an XPath expression | |
US20040044659A1 (en) | Apparatus and method for searching and retrieving structured, semi-structured and unstructured content | |
US20020116371A1 (en) | System and method for the storage, indexing and retrieval of XML documents using relation databases | |
US20130138629A1 (en) | Index-based evaluation of path-based queries | |
JP5113764B2 (ja) | データベースと電子ドキュメントとの間での階層データの転送および表示 | |
JPH07319917A (ja) | 文書データべース管理装置および文書データべースシステム | |
JP2001147933A (ja) | 構造化文書検索方法、構造化文書検索装置及び構造化文書検索システム | |
US20070016605A1 (en) | Mechanism for computing structural summaries of XML document collections in a database system | |
JP2007034827A (ja) | 構造化文書記憶装置、構造化文書検索装置、構造化文書システム、方法およびプログラム | |
JP5385919B2 (ja) | データ構造のナビゲーションのための方法、システム、およびコンピュータ・プログラム(データ構造のナビゲーションのための方法およびシステム) | |
US20080306928A1 (en) | Method and apparatus for the searching of information resources | |
US7877400B1 (en) | Optimizations of XPaths | |
JP2008084070A (ja) | 構造化文書検索装置およびプログラム | |
US7805424B2 (en) | Querying nested documents embedded in compound XML documents | |
JP4649339B2 (ja) | XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体 | |
Sudarsan et al. | Metamodel search: Using XPath to search domain-specific models | |
Vidra et al. | Next Step in Online Querying and Visualization of Word-Formation Networks | |
JP2009251845A (ja) | 検索結果評価装置及び検索結果評価方法 | |
Tian et al. | VACXENE: a user-friendly visual synthetic XML generator | |
JP2002049636A (ja) | メタデータ変換装置、メタデータ変換方法および記録媒体 | |
Ullman | DBMS</title | |
JP2001344267A (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 |