JP2016091560A - 企業のコンテンツ管理における複数のオブジェクトをレポーティングするためのシステム及び方法 - Google Patents

企業のコンテンツ管理における複数のオブジェクトをレポーティングするためのシステム及び方法 Download PDF

Info

Publication number
JP2016091560A
JP2016091560A JP2015214617A JP2015214617A JP2016091560A JP 2016091560 A JP2016091560 A JP 2016091560A JP 2015214617 A JP2015214617 A JP 2015214617A JP 2015214617 A JP2015214617 A JP 2015214617A JP 2016091560 A JP2016091560 A JP 2016091560A
Authority
JP
Japan
Prior art keywords
query
report
access
index
definition
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
Application number
JP2015214617A
Other languages
English (en)
Other versions
JP5944039B2 (ja
Inventor
ストーン ジョン
Stone Jon
ストーン ジョン
オタ パトリック
Ota Patrick
オタ パトリック
ウォン イアン
Wong Ian
ウォン イアン
リー ジョージ
George Lee
リー ジョージ
ツィヴィーズ イゴー
Tsives Igor
ツィヴィーズ イゴー
バツドーフ エリック
Batzdorff Eric
バツドーフ エリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Veeva Systems Inc
Original Assignee
Veeva Systems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Veeva Systems Inc filed Critical Veeva Systems Inc
Publication of JP2016091560A publication Critical patent/JP2016091560A/ja
Application granted granted Critical
Publication of JP5944039B2 publication Critical patent/JP5944039B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24575Query processing with adaptation to user needs using context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】コンテンツ管理理システムにおいてマルチオブジェクトをレポーティングするためのシステム及び方法。【解決手段】レポートタイプの定義は、どのオブジェクトが関与し、かつどのように関連するかについて定義することができる。レポート実行エンジンは、マルチオブジェクト・クエリ言語ステートメントを生成して、レポートタイプの定義をクエリ言語に変換する。クエリ言語実行エンジンは、クエリ言語ステートメントを別個の単一のピースへ分割することができる。コスト最適化エンジンは、オブジェクトを結合することがコスト効率が良いかどうかを判断することができる。索引付きアクセス実行エンジンは、オフジェクトの一意のIDを抽出して、一意のIDを結合してインデックスを生成する。Luceneベースの検索エンジンに、インデックスに従ってアクセスすることができ、その応答は、マルチオブジェクトレポートを生成するために事後処理される。【選択図】図2

Description

本技術は、一般にコンテンツ管理に関し、より具体的には、企業のコンテンツ管理におけるオブジェクトのレポーティングに関する。
ユーザは、何時でも何処でもどのデバイスからでも管理されるユビキタスなアクセスのために、コンテンツ管理システムにますます依存する。しかしながら、一部の先行技術のコンテンツ管理システムは、そのシステム自体のレポーティングツールを有しておらず、システムのユーザは、第三者レポーティングツールを使用する必要がある。この第三者レポーティングツールは、ユーザが、完全に別個のデータストアを構築し、コンテンツ管理システムからデータをとり、これらのデータを第三者レポーティングツールへ移して変換することを要する。一部の先行技術のコンテンツ管理システムは、そのシステム自体のレポーティングツールを有するが、完全にドキュメント又はワークフローに対するものであり、通常はドキュメントごとのデータの行であるので、かなり柔軟性がない。図1は、先行技術のコンテンツ管理システムレポーティングツールによって提供される例示のレポートページを図示している。
したがって、顧客が複雑なオブジェクトを使用して、リアルタイムデータを柔軟なフォーマットで定義又はレポーティングすることができるように、コンテンツ管理システムにおけるデータの相関を可能にすることが望ましい。
開示される主題は、コンテンツ管理システムにおいて、複数のオブジェクトをレポーティングするためのコンピュータで実装される方法に関する。この方法は:複数のオブジェクトを記憶デバイスに格納するステップと;第1のオブジェクト、第2のオブジェクト及び第1のオブジェクトと第2のオブジェクトとの間の関係を定義する、レポートタイプの定義を受け取るステップと;レポートタイプの定義についてのマルチオブジェクト・クエリ言語ステートメントを生成するステップと;マルチオブジェクト・クエリ言語ステートメントを、第1のクエリと第2のクエリに分解するステップであって、第1のクエリが第1のオブジェクトに対応し、第2のクエリが第2のオブジェクトに対応する、ステップと;第1のクエリ及び前記第2のクエリについての索引付きアクセスのクエリ定義(indexed access query definition)を生成するステップと;索引付きアクセスのクエリ定義における第1のクエリに対応する第1のオブジェクトのIDと、索引付きアクセスのクエリ定義における第2のクエリに対応する第2のオブジェクトのIDを、Lucene(ルシーン)ベースの検索エンジンから抽出するステップと;第1のオブジェクトの抽出されたIDと、第2のオブジェクトの抽出されたIDを結合(join)するステップと;を含む。
先行技術のコンテンツ管理システムにおいて、レポーティングツールにより提供される例示のレポートページを示す図である。 本発明が実装され得る企業コンテンツ管理アーキテクチャについての例示の高レベルブロック図である。 コンピューティングデバイスの例示のブロック図である。 ユーザコンピューティングデバイスの例示の高レベルブロック図である。 本発明の一実施形態による、図2に示される企業コンテンツ管理アーキテクチャ内のレポート実行エンジンについての例示の高レベルブロック図である。 本発明の一実施形態による、図2に示される企業コンテンツ管理アーキテクチャ内のクエリ言語実行エンジンについての例示の高レベルブロック図である。 本発明の一実施形態による、図2に示される企業コンテンツ管理アーキテクチャ内のコスト最適化エンジンについての例示の高レベルブロック図である。 本発明の一実施形態による、図2に示される企業コンテンツ管理アーキテクチャ内の索引付きアクセスの実行エンジンについての例示の高レベルブロック図である。 本発明の一実施形態による、図2に示される企業コンテンツ管理アーキテクチャ内で複数のオブジェクトをレポーティングするための方法の例示のフローチャートである。 本発明の一実施形態による、図2に示される企業コンテンツ管理アーキテクチャ内で複数のオブジェクトをレポーティングするための方法の例示のフローチャートである。 本発明の一実施形態による、マルチオブジェクトのレポーティングを開始する例示のグラフィカルユーザインタフェース(GUI)を示す図である。 本発明の一実施形態による、レポートのユーザ定義を受け取る例示のGUIを示す図である。 本発明の一実施形態による、コスト最適化のための方法の例示のフローチャートである。 コンテンツ管理システムにおけるドキュメントを表示する例示のGUIを示す図である。 結合後の結果のインデックスファイルの例を示す図である。 本発明の一実施形態による、生成されたマルチオブジェクトレポートの例を表示するGUIを示す図である。
ここに記載される詳細な説明は、本技術の様々な構成の説明として意図されており、本技術が実施され得る構成のみを表すようには意図されていない。添付の図面はここに組み込まれ、詳細な説明の一部を構成する。詳細な説明は、本技術の全体的な理解を提供する目的で具体的な詳細を含んでいる。しかしながら、本技術は、ここで説明される具体的な詳細に限定されず、これらの具体的な詳細なしに実施されてもよい。一部の例において、周知の構造及びコンポーネントは、本技術の概念を曖昧にすることを避けるために、ブロック図の形式で示されている。
本技術は、コンテンツ管理システムにおいて複数のオブジェクトをレポーティングするための技術を対象とする。オブジェクトは、動的に変更可能なアイテム、例えばテーブルとすることができる。オブジェクトは、柔軟なフォーマットで格納され、検索エンジンにおいてインデックスを付けられることができる。検索エンジンは、例えばLucene(ルシーン)ベースの検索エンジンであってよく、Luceneベースの検索エンジンは、ドキュメントがテキストのフィールドを含むという考えに基づいている。この柔軟性は、LuceneのAPIがファイルフォーマットと独立であることを許容する。PDF、HTML、Microsoft(登録商標)Word及びOpenDocumentのドキュメントからのテキスト並びに多くの他のものからのテキストは、これらのテキストの情報を抽出することができる限りにおいて、全てインデックスを付けることができる。オブジェクトは、コンテンツ管理システムのサービスプロバイダ又は顧客によって、管理されるコンテンツ又はその一部分、例えば製品(プロダクト)(product)、ドキュメント又は国(country)に従って定義され得る。
コンテンツ管理システムにおいて、ドキュメントは、幾つかのプロパティ、例えば認められる場合には、製品、国、ファイル名、ファイルサイズ、ファイルタイプを有することができる。これらのプロパティのうちの1つ以上を、複数のプロパティ、例えばニックネーム、略称及び製品のタイプに更に関連付けることができる。ユーザがコンテンツ管理システム内でドキュメントを作成するとき、このユーザに、これらのプロパティを与えるかどうかを尋ねることができる。これらのプロパティを用いて、ユーザはデータを集計して、特定のプロパティ(例えば製品タイプ)を有する全てのドキュメントを見つけることができ、(例えば製品タイプによる又は国による)カウント、平均及び合計のような集計機能が提供され得る。ユーザは、データをグループ化することもでき、例えば最初に製品タイプによってデータをグループ化し、次いで国によってグループ化する、レポートを要求することもできる。したがって、オブジェクトがポインタしか有していないとしても、これは非常に複雑なオブジェクトである可能性がある。コンテンツ管理システムは、例えばその製品タイプがコレステロールの薬というドキュメントのみを表示するレポートを提供することにより、オブジェクトについてレポーティングし、フィルタをかけることが可能である必要がある。
変更があるといつもでも、全てのものが非正規化され、ユーザが検索基準に再び索引付けをしなければならない単一の大きな容量のオブジェクトを保持する代わりに、本発明のコンテンツ管理システムは、オブジェクトを構造化された別個の状態に保ち、データを分離し、そしてクエリに応答して、要求に応じて結合を実行することができる。データを小さなピースに区分しておくことは、コンテンツ管理システムを更に効率的かつ柔軟で、より維持しやすいものにすることを可能にする。
検索エンジンは、記憶デバイス内に格納されたオブジェクトをとることができ、結合エンジンは、検索エンジンから返されたオブジェクトを結合して、これらを複合オブジェクトに変えることができる。その情報は次いで、ドライバオブジェクト又はメインオブジェクトと、そのドライバオブジェクトに対する各オブジェクトの関連付けとを有するフォーマットで表示され得る。複数のオブジェクトが存在するとき、ある結合と別の結合との間の関係は非常に難しいことがある。例えばコンテンツ管理システム内のドキュメントは15個の製品を有するが、1つのみが国であり、異なるオブジェクトであり得る。したがって、これらの個々のオブジェクトは、明らかに異なるが、関連付けられる。ユーザは、ドライバオブジェクトのソートには実際には影響を与えることなく、これらのオブジェクトの各々においてソートを行うことができる。
一実装において、検索エンジン、例えばLuceneベースの検索エンジンは、オブジェクトのための高速データストアとして使用され得る。レポートのユーザ定義が結合を必要とするとき、索引付きアクセス方式に基づくデータベース及び標準的なハッシュ結合を使用して、Luceneベースの検索エンジン用の結合を書くことができ、別個のLuceneのインデックスをとって、これらを結合して結合されたオブジェクトを作成することができる。索引付きアクセス方式は、例えば索引付き順次アクセス方式(ISAM:indexed sequential access method)又は仮想記憶アクセス方式(VSAM:virtual storage access method)とすることができる。
図2は、本発明が実装され得る企業コンテンツ管理アーキテクチャ200の例示の高レベルブロック図を図示している。企業は会社や組織であってよい。示されるように、アーキテクチャ200は、ネットワーク250を介して相互に結合される、コンテンツ管理システム210及び複数のユーザコンピューティングデバイス220a、220b...220nを含み得る。コンテンツ管理システム210は、コンテンツ記憶デバイス211及びコンテンツ管理サーバ212を含み得る。ネットワーク250は、1つ以上のタイプの通信ネットワーク、例えばローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、イントラネットワーク、インターネットワーク(例えばインターネット)、電気通信ネットワーク及びピアツーピアネットワーク(例えばアドホック・ピアツーピアネットワーク)を含むことがあり、これらは有線又は無線とすることができる。
ユーザコンピューティングデバイス220a〜220nは、ユーザによってネットワーク250を介してコンテンツ管理システム210にアクセスするのに使用される任意のマシン又はシステムであってよく、ラップトップコンピュータ、デスクトップコンピュータ、モバイルフォン、スマートフォン、タブレットコンピュータ、ネットワーク及びパーソナルデジタルアシスタント(PDA)を含め、任意の市販のコンピューティングデバイスであってよい。クライアントアプリケーション221は、ユーザコンピューティングデバイス、例えば220aから実行することができ、ネットワーク250を介してコンテンツ管理システム210内のコンテンツにアクセスすることができる。ユーザコンピューティングデバイス220a〜220nは、図4により詳細に図示される。
コンテンツ記憶デバイス211は、ユーザコンピューティングデバイス220a〜220n内のクライアントアプリケーション(例えば221)がアクセスし得るコンテンツを格納することができ、任意の市販の記憶デバイスであってよい。一実装において、コンテンツ記憶デバイス211は、電子トライアルマスターファイル(eTMF)を格納する。このファイルは、薬が通過することになる処理、並びに治験の立ち上げ、実行及び記録のあらゆる段階で臨床上の書類に対する供与スポンサー(giving sponsor)及び開発業務受託機関(CRO:contract research organizations)のリアルタイムアクセスを記録するのに使用されるマスターファイルである。このドキュメントにおいて、例えば薬剤を検査する場所を示す「サイト」と呼ばれるオブジェクトが存在することがある。ドキュメントは、「研究(study)」にも関連付けられてよく、この研究は、例えば研究のタイプのように幾つかの異なるプロパティを有することがある。
一実装において、コンテンツ記憶デバイス211は、品質のコントロール、セキュリティ及びコンプライアンスを改善する際に、製薬会社、バイオテクノロジー及び医薬製品の会社を助けるために、製品の作り方や標準的な操作手順(SOP:standard operating procedure)、変更制御及び様々なFDAの指示による電子ドキュメントといった、顧客のセキュアな機密コンテンツを格納することがある。顧客は、コアバージョンのコントロール、ドキュメントステータス及び完全なオーディット・トレールとともに、効果的なSOP及び関連する品質のドキュメントタイプを作成、確認、承認、発行及び生成することができ、承認を迅速化し、厳しい規制の遵守を保証する。典型的なオブジェクトは、例えばワークフロー、流通(分布)(distribution)及び施設(facility)を含み得る。
一実装において、コンテンツ記憶デバイス211は、標準的な応答ドキュメント(response document)と医療上の手紙(medical letter)及びFAQを含む、医療上の通信を格納することができる。典型的なオブジェクトは、例えばドキュメント、ワークフロー、流通、製品及び国を含み得る。
一実装において、コンテンツ記憶デバイス211は、ライフサイエンス産業における宣伝用の資料(promotional materials)を格納してもよい。典型的なオブジェクトは、例えばドキュメント、ワークフロー、流通、製品及び国を含み得る。
コンテンツ記憶デバイス211が他の産業のコンテンツを含んでもよいことを理解されたい。
コンテンツ管理サーバ212は、典型的に、例えばネットワーク250のようなリモート又はローカルのネットワークを介してアクセス可能なリモートコンピュータシステムである。コンテンツ管理サーバ212は、任意の市販のコンピューティングデバイスとすることができる。クライアントアプリケーション(例えば211)のプロセスが、1つ以上のコンピューティングデバイス220a〜220n上でアクティブであってよく、対応するサーバプロセスは、コンテンツ管理サーバ212上でアクティブであり得る。クライアントアプリケーションプロセス及び対応するサーバプロセスは、ネットワーク250を介して相互に通信することができ、したがって分散機能を提供し、複数のクライアントアプリケーションがコンテンツ管理システム210の情報収集能力を利用することを可能にする。一実装において、コンテンツ管理サーバ212は、レポート実行エンジン213、クエリ言語実行エンジン214、コスト最適化エンジン215及び索引付きアクセス実行エンジン216を含むことができる。
レポート実行エンジン213は、レポートのユーザ定義を受け取り、次いでレポート定義を解析することができる。レポート実行エンジン213は、要求されたレポートが複数のオブジェクトを含むかどうかを判断し、複数のオブジェクトを含む場合、マルチオブジェクト・クエリ言語ステートメントを生成することができる。要求されたレポートが単一のオブジェクトしか含まないとき、レポート実行エンジン213は、単一オブジェクト・クエリ言語ステートメント生成することができる。レポート実行エンジン213は次いで、クエリの実行のために、クエリ言語ステートメントをクエリ言語実行エンジン214に送ることができる。レポート実行エンジン213は、クエリ言語実行エンジン214からクエリ実行結果を受け取り、この結果を事後処理して、ユーザフレンドリーなレポートを提示することができる。
クエリ言語実行エンジン214は、マルチオブジェクト・クエリ言語ステートメントをレポート実行エンジン213から受け取り、受け取ったマルチオブジェクト・クエリ言語ステートメントを解析して、関連するオブジェクトごとに個々のクエリへと分解(dissect)する。Luceneベースの検索エンジン自体は、索引付けをする検索ライブラリであり、クロール及びHTML解析機能を含まないので、解析は、ANTLR(Another Tool for Language Recognition)に基づくものであってよく、一実装ではJAVA(登録商標)オブジェクト内で行われてよい。クエリ言語実行エンジン214は、マルチオブジェクト・クエリ言語ステートメントが有効であるかどうかを判断し、有効な場合、実行計画を作成することができる。クエリ言語実行エンジン214は、オブジェクト間の関係を定義する個々のステートメントに基づいて、クエリ定義を生成することができる。一実装において、クエリ定義は、VSAMクエリ定義であってよい。クエリ言語実行エンジン214は次いで、結果として得られるインデックスを索引付きアクセス実行エンジン216から受け取り、クエリを実行して、事後処理のために結果をレポート実行エンジン213に返すことができる。クエリ言語実行エンジン214はまた、単一オブジェクト・クエリ実行ステートメントをレポート実行エンジン213から受け取り、クエリを実行して、事後処理のために結果をレポート実行エンジン213に返すこともできる。一実装において、クエリの実行は、Solr(ソーラー)検索プラットフォームにおいて行われる。
コスト最適化エンジン215は、コストベースの最適化により、クエリを最適化することができる。コスト最適化エンジン215は、クエリ言語実行エンジン214からクエリ定義を受け取り、クエリ内で関与する各オブジェクトのコストを計算する。コスト最適化エンジン215は、追加のフィルタリングが必要かどうかを判断することができる。追加のフィルタリングが必要な場合、コスト最適化エンジン215は、ベースオブジェクトを実行して、子オブジェクトに対してクエリを最適化することができる。
索引付きアクセス実行エンジン216において、クエリ定義内のオブジェクトの各々について、一意のIDをLucene/Solrから抽出することができ、各オブジェクトのメモリテーブル内においてMySQLに対してデータを存続(persist)させることができる。結合が外部キーの関係に基づいてオブジェクト間で実行され、予測される結果セットをフィルタダウンすることができる。結合の結果を、インデックスである固定の2進表現(fixed binary representation)に対してエクスポートすることができる。インデックスは、サイズベースのインデックスアクセス(index access)を実行することができるクエリ言語実行エンジン214に返される。一実装において、データベース内で結合するためにハッシュ関数が使用され、このハッシュ関数をLuceneベースの検索エンジンと組み合わせて、柔軟なデータスキーマを維持することができる。
レポート実行エンジン213、クエリ言語実行エンジン214、コスト最適化エンジン215及び索引付きアクセス実行エンジン216は1つのサーバ内に示されているが、これらは複数のサーバ内で実装されてもよいことを理解されたい。
一実装において、コンテンツ管理システム210は、ハードウェア及びソフトウェアの様々な要素が1以上の顧客によって共有され得る、マルチテナントシステムとすることができる。例えばサーバは、複数の顧客からの要求を同時に処理することができ、コンテンツ記憶デバイス211は、複数の顧客についてのコンテンツを格納することができる。マルチテナントシステムでは、ユーザは典型的に、特定の顧客に関連付けられる。一例において、ユーザは、コンテンツ管理システム10のテナント又は顧客である幾つかの製薬会社のうちの1つの従業員である可能性がある。
一実施形態において、コンテンツ管理システム210は、クラウドコンピューティングプラットフォーム上で動作することができる。ユーザは、仮想マシンイメージを使用することにより、あるいはクラウドデータベースプロバイダによって保持されるサーバへの購入アクセスにより、独立にクラウド上のコンテンツにアクセスすることができる。
一実施形態において、コンテンツ管理システム210は、ソフトウェア・アズ・ア・サービス(SaaS)として提供され、ユーザが、シンクライアントによりコンテンツ管理システム210へアクセスすることを可能にすることができる。
図3は、コンピューティングデバイス300の例示のブロック図を示しており、コンピューティングデバイス300は、図2のユーザコンピューティングデバイス220a〜220n、レポート実行エンジン213、クエリ言語実行エンジン214、コスト最適化エンジン215及び/又は索引付きアクセス実行エンジン216として使用することができる。コンピューティングデバイス300は、適切なコンピューティング環境の一例にすぎず、使用又は機能の範囲に関して如何なる限定を示唆するようにも意図されていない。コンピューティングデバイス300は、処理ユニット301、システムメモリ302、入力デバイス303、出力デバイス304、ネットワークインタフェース305及びこれらのコンポーネントを相互に結合するシステムバス306を含み得る。
処理ユニット301は、例えばシステムメモリ302のような、コンピュータ読取可能媒体内に記憶されるコンピュータ命令を実行するように構成され得る。処理ユニット301は中央処理ユニット(CPU)であってよい。
システムメモリ302は典型的に、様々なコンピュータ読取可能媒体を含み、このような媒体は、処理ユニット301によってアクセス可能な任意の利用可能な媒体であってよい。例えばシステムメモリ302は、読取専用メモリ(ROM)及び/又はランダムアクセスメモリ(RAM)といった揮発性及び/又は不揮発性メモリの形のコンピュータ記憶媒体を含むことができる。限定ではなく例として、システムメモリ302は、例えばオペレーティングシステム、プログラムモジュール、様々なアプリケーションプログラム及びプログラムデータといった、命令及びデータを格納することができる。
ユーザは、入力デバイス303を通してコマンド及び情報をコンピューティングデバイス300に入力することができる。入力デバイス303は、例えばキーボード、タッチスクリーン入力デバイス、タッチパッド、マウス、マイクロフォン及び/又はペンとすることができる。
コンピューティングデバイス300は、その出力を、出力デバイス304を介して提供することができ、出力デバイス304は、例えばモニタ若しくは他のタイプのディスプレイデバイス、スピーカ又はプリンタとすることができる。
コンピューティングデバイス300は、ネットワークインタフェース305を介して、1つ以上の他のコンピューティングデバイスへの論理接続を使用して、ネットワーク環境又は分散環境内で動作することができ、そのような他のコンピューティングデバイスは、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、スマートフォン又は任意の他のメディア消費若しくは伝送デバイスであってよく、上述の要素のいずれか又は全てを含んでよい。論理接続は、ネットワーク(例えばネットワーク250)及び/又はバスを含み得る。ネットワークインタフェース305は、コンピューティングデバイス300が、ネットワーク、例えばネットワーク250においてデータを送受信することを可能にするよう構成され得る。ネットワークインタフェース305は、1つ以上のネットワークインタフェースカード(NIC)を含んでよい。
図4は、本発明が実装され得るユーザコンピューティングデバイス(例えば220a)の例示の高レベルブロック図を示す。ユーザコンピューティングデバイス220aは、上述のコンピューティングデバイス300によって実装されてよく、システムバス2206を介して相互に結合される処理ユニット2201、システムメモリ2202、入力デバイス2203、出力デバイス2204及びネットワークインタフェース2205を有することができる。システムメモリ2202は、クライアントアプリケーション221を格納することができる。
図5は、本発明の一実施形態に係るレポート実行エンジン213の例示の高レベルブロック図を示す。レポート実行エンジン213は、コンピューティングデバイス300によって実装されてよく、システムバス2136を介して相互に結合される処理ユニット2131、システムメモリ2132、入力デバイス2133、出力デバイス2134及びネットワークインタフェース2135を有することができる。システムメモリ2132は、レポートタイプの定義を解析するためのレポートタイプ定義パーサ2137と、単一オブジェクト・クエリ言語ステートメントを生成するための単一オブジェクト・クエリ言語ステートメント・ジェネレータ2138Sと、マルチオブジェクト・クエリ言語ステートメントを生成するためのマルチオブジェクト・クエリ言語ステートメント・ジェネレータ2138Mと、クエリ言語実行エンジン214からの応答を処理して、ユーザに表示すべきレポートを生成するための事後処理ユニット2139とを格納することができる。
図6は、本発明の一実施形態に係るクエリ言語実行エンジン214の例示の高レベルブロック図を示す。クエリ言語実行エンジン214は、コンピューティングデバイス300によって実装されてよく、システムバス2146を介して相互に結合される処理ユニット2141、システムメモリ2142、入力デバイス2143、出力デバイス2144及びネットワークインタフェース2145を有することができる。システムメモリ2142は、レポート実行エンジン213からのマルチオブジェクト・クエリ言語ステートメントを解析するためANTLRベースのパーサ2147と、索引付きアクセスのクエリ定義を生成するための索引付きアクセス・クエリ定義ジェネレータ2148と、レポート実行エンジン213からの単一オブジェクト・クエリ言語ステートメントを受け取るか、かつ/又はマルチオブジェクト・クエリ言語ステートメントのために索引付きアクセス実行エンジン16によって生成されたインデックスを受け取り、インデックスアクセスを実行するための検索エンジン2149を格納することができる。
図7は、本発明の一実施形態に係るコスト最適化エンジン215の例示の高レベルブロック図を示す。コスト最適化エンジン215は、コンピューティングデバイス300によって実装されてよく、システムバス2156を介して相互に結合される処理ユニット2151、システムメモリ2152、入力デバイス2153、出力デバイス2154及びネットワークインタフェース2155を有することができる。システムメモリ2152は、クエリ言語実行エンジン214からの索引付きアクセスのクエリ定義内に含まれる各オブジェクトのコストを計算するための計算機2157と、ベースオブジェクトを実行するためのベースオブジェクト実行エンジン2158と、子オブジェクトのクエリを最適化するようクエリを書き直すためのクエリ・リライター2159を格納することができる。
図8は、本発明の一実施形態に係る索引付きアクセス実行エンジン216の例示の高レベルブロック図を示す。索引付きアクセス実行エンジン216は、コンピューティングデバイス300によって実装されてよく、システムバス2166を介して相互に結合される処理ユニット2161、システムメモリ2162、入力デバイス2163、出力デバイス2164及びネットワークインタフェース2165を有することができる。システムメモリ2162は、索引付きアクセスのクエリ定義内の各オブジェクトについて、Solr検索エンジンから一意のIDを抽出するためのエクストラクタ2167と、MySQLに対してデータを存続させるためのデータ存続ユニット2168と、オブジェクト間の結合を実行するための結合エンジン2169を格納することができる。
図9A〜図9Bは、本発明の一実施形態に従って、(図2に示されるような)企業コンテンツ管理システム200内で複数のオブジェクトをレポーティングするための方法の例示フローチャートを示す。要求を行うユーザは、どのオブジェクトが関与し、かつこれらのオブジェクトがどのように関連するかを定義する、レポートタイプの定義を入力することができる。レポート実行エンジン213は、レポートタイプの定義をクエリ言語に変換するよう、クエリ言語ステートメントを生成する。クエリ言語実行エンジン214は、クエリ言語ステートメントを、個別の単一のピースに分解することができ、コスト最適化エンジン215は、オブジェクトを結合することがコスト効率が良いかどうかを判断し、索引付きアクセス実行エンジン216は、レポートタイプの定義に基づいてリンクを作成することにより、物理的には接続されないオブジェクトを結合することができる。その後、インデックスアクセス及びレポーティングが実行され得る。
処理は901において開始する。
902において、ユーザはクライアントアプリケーション221にログインして、コンテンツ管理システム210にアクセスするよう認証され得る。
903において、図10に示されるようなGUI 1000を表示することができる。GUI 1000は、コンテンツ管理システム200と対話するためのユーザコマンドを受け取るメニューバー1001を有することができる。一実装において、メニューバー1001は、例えばHOME用の1002、LIBRARY用の1003、REPORTS用の1004及びDASHBOARDS用の1005といった、幾つかのボタン又はクリック可能なエリアを含むことができる。ユーザがレポートを実行したい場合、ユーザは、REPORTSボタンをクリックすることができる。
応答として、904において、図11に示されるようなGUI 1100を表示し、レポートのユーザ定義を受け取ることができる。一実装において、GUI 1100は、検索ウィンドウ1101、レポートタイプウィンドウ1102、フィルタウィンドウ1103及びグループウィンドウ1104を含め、ユーザ入力を受け取るための様々なウィンドウを有することができる。検索ウィンドウ1101は、ユーザからの検索語を受け取ることができる。レポートタイプウィンドウ1102は、レポートタイプについてのユーザ入力、例えば「ドキュメントを伴う製品(product with document)」又は「製品及び国を伴うドキュメント(document with product and country)」を受け取ることができる。フィルタウィンドウ1103は、ユーザが、レポート定義において1つ以上のフィルタを選択すること、例えば製品名「VPXR」をフィルタとして使用して、表示されるべきオブジェクトを、VPXRに関連するオブジェクトのみに狭めることを可能にすることができる。グループウィンドウ1104は、ユーザが、レポート内の行をグループ化する方法、例えば製品によって又はドキュメントによってグループ化することを選択することを可能にすることができる。例えば総称や略称によって行をグループ化するよう、ドキュメントの更なるプロパティを追加してもよい。ユーザがレポートタイプ及びフィルタを選択して、「実行」ボタン1105をクリックすると、レポーティング処理が始まる。
911において、GUI 1100で受け取ったレポートタイプの定義を、レポート実行エンジン213、より具体的にはレポートタイプ定義パーサ2137において解析することができる。図11に示されるGUI 1100上で受け取った「ドキュメントを伴う製品」というレポートタイプの定義について、データベース内の解析されるレポートタイプの定義は:
Primary object is product
public_key is product_with_document__c
report type definition is,
<downRelationships>
<downRelationship key="Product.document"
keyRef="reportTypeRef1403542951011" joinType="inner" />
</downRelationships>
</reportType>
とすることができる。
912において、要求されたレポートが複数のオブジェクトを含むかどうかが判断される。
要求されたレポートが1つのオブジェクトのみを含むとき、例えば製品又は国を含むとき、913において、要求されたレポートを表す単一オブジェクト・クエリ言語ステートメントを、レポート実行エンジンによって、より具体的には単一オブジェクト・クエリ言語ステートメント・ジェネレータ2138Sによって生成することができる。処理は、次いで923に進み、クエリ言語実行エンジン214においてクエリを実行することができる。
要求されたレポートが複数のオブジェクトを含む場合、914において、マルチオブジェクト・クエリ言語ステートメントを、レポート実行エンジン213、より具体的にはマルチオブジェクト・クエリ言語ステートメント・ジェネレータ2138Mにおいて生成することができる。
一実装において、product__v及びcountry__vは、それぞれオブジェクトタイプcountry__v及びcountry__vのオブジェクト参照(ObjectReference)ドキュメントフィールドである。これらのドキュメントフィールドによって参照されるオブジェクトのオブジェクトレコードデータを選択するために、次のマルチオブジェクト・クエリ言語ステートメントを914で生成することができる:
SELECT id,
(SELECT external_id__v FROM document_product__vr),
(SELECT name__v FROM document_country__vr)
FROM documents
WHERE name__v =‘Test’ 例(1)
マルチオブジェクト・クエリ言語ステートメントの例(1)では、オブジェクトフィールドは、フィールドで定義される関係パス表記(relationship path notation)を通してアクセスされる。document_product__vrとdocument_country__vrの関係は、それぞれドキュメントと製品の間及びドキュメントと国の間のJOIN(結合)関係である。
914で生成されるマルチオブジェクト・クエリ言語ステートメントの別の例は:
SELECT id,
(SELECT external_id__v FROMdocument_product__vr WHERE name__v=
‘CLCP01’ LIMIT 100),
(SELECT name__v FROM document_country__vr)
FROM documents FIND "search term"
WHERE name__v =‘Test’ 例(2)
とすることができる。
914で生成されるマルチオブジェクト・クエリ言語ステートメントの更なる例は:
SELECT id, name__v,
(SELECT id, name__v, major_version_number__v,
minor_version_number__v
FROM document_product__vr)
FROM product__v
WHERE id IN (SELECT product__v FROM document_product__vr)
例(3)
とすることができる。
マルチオブジェクト・クエリ言語ステートメントの例(3)は、図11に示されるGUI 1100で受け取られる、「ドキュメントを伴う製品」クエリに対応する。このクエリは、ドキュメント内で使用される製品を返すことになり、メインオブジェクトは製品である。
913及び914で生成されるクエリ言語ステートメントは、クエリ言語実行エンジン214に送ることができる。単一オブジェクト・クエリ言語ステートメントについては、923において、クエリ言語実行エンジン214が、クエリ、例えばSolrクエリを実行して、レポート実行エンジン213に応答を返すことができる。処理は、事後処理のために916に進む。
914で生成されるマルチオブジェクト・クエリ言語ステートメントについては、921において、ステートメントが解析され、クエリ言語実行エンジン214において関与するオブジェクトごとに、個々のクエリへと分解され得る。一実装において、個々のクエリは、ANTLRベースの解析によって生成され、JAVA(登録商標)オブジェクトで実行され得る。ANTLRベースのパーサ2147がマルチオブジェクト・クエリ言語を解析して、これが有効であるかどうかを判断し、有効である場合にはクエリ計画を作成することができる。例えば上記のマルチオブジェクト・クエリ言語ステートメントの例(3)では、2つの個々のクエリ、すなわち製品から選択することと、ドキュメントから選択することが存在し得る。クエリ計画の例は:
Main Query: PRIMARY|358fac27-2248-4bb3-9df0-635a4b6b1d1d|SELECT
id FROM product__v LIMIT 1000 OFFSET 0
Sub Query: CHILD|488e0503-f579-45d3-8009-5adc5a1a345e|SELECT
product__v, id FROM documents LIMIT 250 OFFSET 0
Join: 358fac27-2248-4bb3-9df0-635a4b6b1d1d|488e0503-f579-45d3-
8009-5adc5a1a345e|id|product__v|leftOuterJoin
Sub Query: CHILD|21e79b35-542b-420e-a012-d0b042d3334a|SELECT
product__v, id FROM documents LIMIT 250 OFFSET 0
Join: 358fac27-2248-4bb3-9df0-635a4b6b1d1d|21e79b35-542b-420e-
a012-d0b042d3334a|id|product__v|innerJoin
とすることができる。
922において、索引付きアクセスのクエリ定義を、クエリ言語実行エンジン214、より具体的には索引付きアクセス・クエリ定義ジェネレータ2148において、オブジェクト間の関係を定義する個々のステートメントに基づいて生成することができる。一実装では、索引付きアクセスのクエリ定義は、VSAMクエリ定義とすることができる。上記に示されるマルチオブジェクト・クエリ言語ステートメントの例(2)に関して、索引付きアクセスのクエリ定義は:3つの異なるオブジェクト(すなわち、ドキュメント、製品及び国)が存在すること、子が存在すること、ドキュメントを、プライマリである製品及び子である国から選択する必要があること、とすることができる。
931において、コスト最適化エンジン215は、索引付きアクセスのクエリ定義を、クエリ言語実行エンジン214から受け取り、索引付きアクセスのクエリ定義内で関与する各オブジェクトのコストを計算することができる。マルチオブジェクト・クエリ言語ステートメントの例(3)についてのコスト計算の例は、次の通りである:
Driver, ID=358fac27-2248-4bb3-9df0-635a4b6b1d1d
Cost=4
Solr=SELECT id FROM product__v ORDER BY id asc LIMIT 1000 OFFSET 0
Joins:
(0) ID=21e79b35-542b-420e-a012-d0b042d3334a
Type=innerJoin (parent_0), CHILD Cost=10
Solr=SELECT product__v, id FROM documents LIMIT 250 OFFSET 0
(1) ID=488e0503-f579-45d3-8009-5adc5a1a345e
Type=leftOuterJoin, CHILD Cost=10
Solr=SELECT product__v, id FROM documents ORDER BY product__v asc
LIMIT 250 OFFSET 0
932において、追加のフィルタリングが必要であるかどうかをコスト最適化エンジン215において判断することができる。マルチオブジェクト・クエリ言語ステートメントの例(1)のように、追加のフィルタリングが必要でない場合、処理は941に進み、索引付きアクセス実行、例えばVSAM実行を行うことができる。
追加のフィルタリングが必要な場合、コスト最適化エンジン215は、933において、ベースオブジェクトを実行し、次いで子オブジェクトに対してクエリを最適化することができる。例えばマルチオブジェクト・クエリ言語ステートメントの例(2)は、子オブジェクトをフィルタするようベースオブジェクトを必要とするWHERE節「WHERE name__v=‘Test’」を含むので、マルチオブジェクト・クエリ言語ステートメントの例(2)では、追加のフィルタリングが必要となる。同様に、マルチオブジェクト・クエリ言語ステートメントの例(3)では、ドキュメント内で使用される製品を選択するように、WHERE節は、子オブジェクト「ドキュメント」によってベースオブジェクト「製品」をフィルタリングすることを必要とする。
最適化は、データに依存し得る。一実装では、934において、データの量が閾値を超えるかどうかを判断することができる。閾値を超えない場合、最適化エンジン215は、図12に関連して以下で説明されるように、935において、より効率的になるようクエリを書き直すことができ、そして処理は941に進み、索引付きアクセス実行、例えばVSAM実行を行うことができる。例えばマルチオブジェクト・クエリ言語ステートメントの例(2)は、高度なフィルタオプションである可能性が最も高いので、935においてクエリが書き直されることがある。一方、多数のデータのピースが存在する場合、例えばデータの各ピースを、データの他の全てのピースに対して結合する必要があるとき、クエリを書き直すことは、処理をより効率的なものにしないので、処理は、書き直し処理をスキップして直接941に進み、結合を実行する。コスト最適化エンジン215は、オブジェクトのサイズ及び結果の予想サイズを含め、幾つかの異なるコスト影響を考慮し得る。
図12は、本発明の一実施形態に係るコスト最適化の方法の例示のフローチャートを示す。示されるように、1201において、それぞれ個々のクエリにより返される行の数を決定することができる。一実施形態では、外部結合(outer join)の前に内部結合(inner join)をチェックする。内部結合の個々のクエリのいずれかがゼロ行を返す場合は、空の結果セットを返すことができる。1202において、個々のクエリを、例えば行の数によって最低から最高まで各々について再順序付けすることができる。1203において、個々のクエリは、ベースクエリ又はドライバクエリから導かれる追加のWHERE節を追加することにより最適化され得る。
一実装において、WHERE節を個々のクエリに追加して、コスト最適化について処理すべき行を減らすことができる。ベース又はドライバクエリが製品に基づくとき、後続の個々のクエリも製品を有する必要があり、したがってWHERE節は:
“WHERE product__v != null”
とすることができる。
一実装において、元のクエリは「ドキュメントを伴う製品」であり、これに対するフィルタ、例えば「return only product = CC」(製品=CCのみを返す)を有する。最適化中に、製品のクエリを最初に実行することができる。続いて、下記のWHERE節をドキュメントのクエリに追加して、ドキュメントのクエリからの中間結果を限定することができ、その結果、後続のステップにおいて処理すべきデータはより少なくなる:
“WHERE product__v = ‘CC’”
図9に戻る。941において、索引付きアクセス実行が、索引付きアクセス実行エンジン216において開始され、索引付きアクセスのクエリ定義内のオブジェクトの各々について、一意のIDがLucene/Solrから抽出され得る。一実装では、ドキュメントについての一意のIDを「ID」とし、製品についての一意のIDを「ドキュメントID,ID」とすることができる。一実装において、マルチオブジェクト・クエリ言語ステートメントの例(2)では、IDと、当該IDに関連付けられる製品と、当該IDに関連付けられる国とを選択することができる。製品及び国は、ドキュメントからのものであってよい。次いで製品及び国から、これらのIDを選択することができる。
942において、IDの各々を、MySQLに個別のメモリテーブルへと存続させることができる。出力セットのサイズが閾値を超えるときは、メモリテーブルの代わりに、ディスクに格納してもよい。存続の例は、次の通りである:
Execute Primary Table SQL : CREATE TEMPORARY TABLE
d358fac2722484bb39df0635a4b6b1d1d (row_num BIGINT UNSIGNED NOT NULL
AUTO_INCREMENT, id CHAR(20), PRIMARY KEY(row_num))
INSERT INTO PRIMARY : INSERT INTO d358fac2722484bb39df0635a4b6b1d1d(id)
VALUES (?)
Execute JOIN Table SQL : CREATE TEMPORARY TABLE
c488e0503f57945d380095adc5a1a345e (row_num BIGINT UNSIGNED NOT NULL
AUTO_INCREMENT, fk CHAR(20), id CHAR(20), PRIMARY KEY(row_num))
INSERT INTO JOIN TABLE : INSERT INTO
c488e0503f57945d380095adc5a1a345e(fk,id) VALUES (?,?)
Execute JOIN Table SQL : CREATE TEMPORARY TABLE
c21e79b35542b420ea012d0b042d3334a (row_num BIGINT UNSIGNED NOT NULL
AUTO_INCREMENT, fk CHAR(20), id CHAR(20), PRIMARY KEY(row_num))
INSERT INTO JOIN TABLE : INSERT INTO
c21e79b35542b420ea012d0b042d3334a(fk,id) VALUES (?,?)
Execute Primary Table SQL : CREATE TEMPORARY TABLE
j8fb43757c91f41038b4bac735cabc4f4 (row_num BIGINT UNSIGNED NOT NULL
AUTO_INCREMENT, id CHAR(20), PRIMARY KEY(row_num))
PERFORM JOIN : INSERT INTO j8fb43757c91f41038b4bac735cabc4f4(id)
SELECT d358fac2722484bb39df0635a4b6b1d1d.id FROM
d358fac2722484bb39df0635a4b6b1d1d,c488e0503f57945d380095adc5a1a345e
WHERE c488e0503f57945d380095adc5a1a345e.fk =
d358fac2722484bb39df0635a4b6b1d1d.id ORDER BY
d358fac2722484bb39df0635a4b6b1d1d.row_num
CREATE CHILD INDEX TABLE : SELECT DISTINCT
LPAD(IFNULL(j8fb43757c91f41038b4bac735cabc4f4.id,0),20,' ') INTO
OUTFILE '/data2/reports/instance_2/358fac27-2248-4bb3-9df0-
635a4b6b1d1d/358fac27-2248-4bb3-9df0-635a4b6b1d1d.idx' FIELDS
TERMINATED BY ',' LINES TERMINATED BY '\n' FROM
j8fb43757c91f41038b4bac735cabc4f4 ORDER BY row_num
CREATE FILE INDEX: SELECT j8fb43757c91f41038b4bac735cabc4f4.id,
LPAD(IFNULL(min(t.min),0),9,'0'), LPAD(IFNULL(max(t.max),0),9,'0') INTO
OUTFILE '/data2/reports/instance_2/358fac27-2248-4bb3-9df0-
635a4b6b1d1d/358fac27-2248-4bb3-9df0-635a4b6b1d1d.idx' FIELDS
TERMINATED BY ',' LINES TERMINATED BY '\n' FROM
j8fb43757c91f41038b4bac735cabc4f4 LEFT OUTER JOIN (SELECT fk AS col,
min(row_num) AS min, max(row_num) AS max FROM
c21e79b35542b420ea012d0b042d3334a GROUP BY col) AS t ON
j8fb43757c91f41038b4bac735cabc4f4.id = t.col GROUP BY 1 ORDER BY
j8fb43757c91f41038b4bac735cabc4f4.row_num
この例では、INSERT(挿入)は、SolrからのデータをMySQLテーブルにプルするのに使用され、最後のSELECT... INTO OUTFILEの行は、インデックス及びデータファイルが生成される場所である。
943において、リンクとして使用される外部キーの関係に基づいて、全てのオブジェクトの間で結合が実行され、予測された結果セットをフィルタダウンする。結合の処理は、マルチオブジェクト・クエリ言語ステートメントの例(3)では「ドキュメントを伴う製品」というレポートタイプの定義の要件に合致する、オブジェクトの組み合わせを見つけることになる。ドキュメントがいずれの製品も使用しない場合、あるいは製品が、該製品に関連付けられるいずれのドキュメントも有さない場合、これらは、結合の結果には含まれない。
一実施形態において、ハッシュ関数を使用して、データベース内で結合を実装することができ、結合には、内部結合及び外部結合が含まれ得る。
944において、結合の結果を、ファイルシステム内の固定の2進表現にエクスポートすることができ、この固定の2進表現は基本的にインデックスである。マルチオブジェクト・クエリ言語ステートメントの例(2)に対する結合の後に結果として得られるインデックスファイルの例が、図13に示されている。示されるように、データは3つのインデックスファイル:すなわち、プライマリの第1のファイルと、製品についての第2のファイルと、国についての第3のファイルとに分割され得る。第1のファイルは、ドキュメントIDと、製品についての子の行開始(row start)と、製品についての子の行終了(row end)と、国についての子の行開始と、国についての子の行終了とを有することができる。最初の列は、ドキュメントIDが1であり、0として開始し、3として終了することを示す。製品についての2つ目のファイルでは、行ID0〜5に対して、最初の3つの行0、1及び2が、1つ目のファイル内のデータ(1,0,3)のチャンクに関連付けられ、次の2つの行が、1つ目のファイル内の(2,4,5)を表す。読み取りアルゴリズムは、ドキュメント、すなわちドライバの行にジャンプし、製品についての子の行開始を読み取り、次いでバイト計算に基づいて読み取る。国についての3つ目のファイルを同様の方法で読み取ることができる。実際のファイルは、データセットの全ては取得せずにそのIDのみを取得するので、かなり小さい。
一実施形態において、コンテンツ管理システム210内の製品は、CC、VP、VPXR及びWDを含むことができる。図14は、コンテンツ管理システム内のドキュメントを表示する例示のGUI 1400を図示している。示されるように、コンテンツ管理システム内には10個のドキュメントが存在する。GUI1400は、どの製品がどのドキュメントによって使用されるかについても表示することができる。例えばドキュメントTest4、Test2及びTest1の各々は、製品CCを使用し、ドキュメントNumber10は、製品CC及びVPXRを使用し、ドキュメントTest5は製品VPを使用する。内部結合ロジックを使用して同じであるものを示すことができる、例えば製品CCがTest1、Test2、Test4及びNumber10によって使用されるという事実に関心を有する。マルチオブジェクト・クエリ言語ステートメントの例(3)の索引付きアクセス実行の間、結合後の結果インデックスファイル及びその対応するデータファイルの例を下記に示す。製品WDはいずれのドキュメントにおいても使用されていないので、これはクエリ結果では返されず、結果インデックスファイルにも含まれない。

結果インデックスファイル
Figure 2016091560
対応するデータファイル
Figure 2016091560
結果のデータファイル内の最初の列は、製品キーであり、この製品キーは製品テーブルからのIDである。次の2つの列は、これらのキーは有効であるデータファイル内の開始行及び終了行である。結果インデックスファイルの1番目の行は、製品CCを使用するドキュメントである。対応するデータファイルにおいて、これらのドキュメントのIDは1、2、4、10である。結果インデックスファイル内の2番目の行は、対応するデータファイル内の行5〜行5が、製品キーとしてVPを有するドキュメントであることを示す。対応するデータファイルにおいて、ドキュメントのIDは5である。結果インデックスファイルの3番目の行は、対応するデータファイル内の行6〜行6が、製品VPXRを使用するドキュメントであることを示す。対応するデータファイルにおいて、ドキュメントのIDは10である。
図9Bに戻る。945において、結果として得られるインデックスが、クエリ言語実行エンジン214に返され、クエリ言語実行エンジン214においてサイズベースのインデックスアクセスを実行することができる。その後、その結果を、レポート実行エンジン213に返すことができる。一実装において、JSON内のクエリ言語実行エンジン214からの結果は:
{
"responseStatus":"SUCCESS",
"responseDetails":{
"find":"search term",
"limit":500,
"offset":500,
"size":500,
"totalFound":2000,
"previous_page":"/api/v9.0/query/00Q12334586932?limit=500&offset=0",
"next_page":"/api/v9.0/query/00Q12334586932?limit=500&offset=1000"
},
"data":[
{
"id":1,
"document_product__vr":{
"responseDetails":{
"limit":250,
"offset":0,
"size":250,
"totalFound":500,
"next_page":"/api/v9.0/query/00Q448829222?limit=250&offset=250"
},
"data":[
{
"external_id__v":"EXTID123"
}
]
},
"document_country__vr":{
"responseDetails":{
"limit":250,
"offset":250,
"size":250,
"totalFound":1000,
previous_page":"/api/v9.0/query/00Q24845839872?limit=250&offset=0",
"next_page":"/api/v9.0/query/00Q24845839872?limit=250&offset=500"
},
"data":[
{
"name__v":"Austria"
},
{
"name__v":"Costa Rica"
}
]
}
}
]
}
であり得る。
一実装において、クエリ言語実行エンジン214からの結果は、XMLでは、
<?xml version="1.0" encoding="utf-16"?>
<ResultSetRestResult>
<responseStatus>SUCCESS</responseStatus>
<responseDetails>
<find>search term</find>
<limit>500</limit>
<offset>500</offset>
<size>500</size>
<totalFound>2000</totalFound>
<previous_page>/api/v9.0/query/00Q12334586932?limit=500&amp;offset=0</previous_page>
<next_page>/api/v9.0/query/00Q12334586932?limit=500&amp;offset=1000</next_page>
</responseDetails>
<data>
<id>1</id>
<document_product__vr>
<responseDetails>
<limit>250</limit>
<offset>0</offset>
<size>250</size>
<totalFound>500</totalFound>
<next_page>/api/v9.0/query/00Q448829222?limit=250&amp;offset=250</next_page>
</responseDetails>
<data>
<external_id__v>EXTID123</external_id__v>
</data>
</document_product__vr>
<document_country__vr>
<responseDetails>
<limit>250</limit>
<offset>250</offset>
<size>250</size>
<totalFound>1000</totalFound>
<previous_page>/api/v9.0/query/00Q24845839872?limit=250&amp;offs t=0</previous_page>
<next_page>/api/v9.0/query/00Q24845839872?limit=250&amp;offset=500</next_page>
</responseDetails>
<data>
<name__v>Austria</name__v>
</data>
<data>
<name__v>Costa Rica</name__v>
</data>
</document_country__vr>
</data>
</ResultSetRestResult>
であり得る。
これらのIDにより、クエリ言語実行エンジン214は、必要とされる実際のピースは、オブジェクトの外部IDに対するものであると判断し、これらのIDに基づいて必要なデータのピースをプルし得る。データの代わりに単にIDについて結合し、データを正しい順序にすることで、索引付きアクセス実行エンジン216によりその性質「による順序付け」又は指示をサポートし、その後、クエリ言語実行エンジン214によりデータにアクセスして提供することによって、コンテンツ管理サーバ212は、クエリ処理を大いにスピードアップすることができ、最終的な結果セットをリアルタイムで提供することができる。
916において、クエリ言語実行エンジン214からの結果は、レポート実行エンジン213内の事後処理ユニット2139において事後処理を通過し、プレゼンテーションレイヤに置かれ、その結果、よりユーザフレンドリーなレポートにフォーマットされて提示され得る。
図15は、マルチオブジェクト・クエリ言語ステートメントの例(3)について、916で生成されるレポートの例を表示するGUI 1500を図示している。GUI 1500上に示されるように、6つの行が返され、この6つの行は、製品CCについての4つのドキュメント(すなわち、Test1、Test2、Test4及びNumber10)と、製品VPについての1つのドキュメント(すなわち、Test5)と、製品VPXRについての1つのドキュメント(すなわち、Number10)を含む。製品WDはいずれのドキュメントにおいても使用されていないので、クエリ結果では返されない。内部結合が、製品WDを結果セットから効果的に除外した。フィルタ1103がCCに対して設定される場合、3つのドキュメントを伴うCC行のみが表示されることになる。これに対して標準のデータベースクエリを実行することにより結果をソートすることができる。レポート実行エンジン213は、これらの結果をとり、自身のデータベース内に置き、そしてこれに作用することができる。
上述の特徴及び適用を、コンピュータ読取可能記憶媒体(コンピュータ読取可能媒体とも呼ばれる)上に記録される命令のセットとして指定される、ソフトウェア処理として実装することができる。これらの命令は、1つ以上の処理ユニット(例えば1つ以上のプロセッサ、プロセッサのコア又は他の処理ユニット)によって実行されると、処理ユニットに、命令内で支持される動作を実行させる。コンピュータ読取可能媒体の例には、これらに限られないが、CD−ROM、フラッシュドライブ、RAMチップ、ハードドライブ、EPROM等が含まれる。コンピュータ読取可能媒体は、無線で通過するか又は有線接続を経由して通過する搬送波や電気信号は含まない。
上述のこれらの機能を、デジタル電気回路で内で、コンピュータウェア、ファームウェア又はハードウェアとして実装することができる。本技術を、1つ以上のコンピュータプログラム製品を使用して実装することができる。プログラム可能なプロセッサ及びコンピュータをモバイルデバイスに含めるか、モバイルデバイスとしてパッケージすることができる。処理及び論理フローを、1つ以上のプログラム可能なプロセッサにより、そして1つ以上のプログラム可能な論理回路により実行することができる。汎用及び専用のコンピューティングデバイス及び記憶デバイスを、通信ネットワークを介して相互接続することができる。
本明細書において、「ソフトウェア」という用語は、プロセッサによる処理のためにメモリ内へ読み出すことができる、読取専用メモリ内に存在するファームウェア又は磁気ストレージ内に格納されるアプリケーションを含むよう意図される。また、一部の実装では、複数のソフトウェア技術を、別個のソフトウェア技術を残しつつ、大きなプログラムの一部の部分として実装することができる。一部の実装では、複数のソフトウェア技術を別個のプログラムとして実装することもできる。最後に、本明細書で説明されるソフトウェア技術を一緒に実装する別個のプログラムのいずれの組み合わせも、本技術の範囲内である。一部の実装において、ソフトウェアプログラムは、1つ以上の電気システムを動作させるようにインストールされると、ソフトウェアプログラムの動作を稼働させて実行する1つ以上の特定のマシン実装を定義する。コンピュータプログラム又はコンピュータコードの例には、例えばコンパイラによって生成されるマシンコード、及びコンピュータ、電気コンポーネント又はマイクロプロセッサによってインタプリタを使用して実行される高レベルコードを含むファイルが含まれる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト又はコードとしても知られる)を、コンパイル又は翻訳された言語、宣言的又は手続的言語を含め、任意の形式のプログラミング言語で書くことができ、スタンドアロンのプログラムとして、あるいはモジュール、コンポーネント、サブルーチン、オブジェクト又はコンピューティング環境における使用に適した他のユニットとして含まれる任意の形式で展開することができる。コンピュータプログラムは、必ずではないが、ファイルシステム内のファイルに対応し得る。プログラムを、他のプログラム又はデータを保持するファイルの一部分内(例えばマークアップ言語内に格納される1つ以上のスクリプト)、問題となっているプログラムに専用の単一のファイル内、複数の協調ファイル内(例えば1つ以上のモジュール、サブモジュール又はコードの一部を格納するファイル)に格納することができる。コンピュータプログラムを、1つのコンピュータ上で、あるいは1つのサイトに置かれるか、複数のサイトにわたって分散されて通信ネットワークにより相互接続される複数のコンピュータ上で実行されるように展開することができる。
本明細書及び本出願のいずれかの請求項で使用されるとき、「コンピュータ」、「サーバ」、「プロセッサ」及び「メモリ」という用語は全て、電気又は他の技術のデバイスを指す。これらの用語は、人又は人のグループを除外する。本明細書の目的では、ディスプレイ又は表示するという用語は、電子デバイス上で表示することを意味する。本明細書及び本出願のいずれかの請求項で使用されるとき、「(複数の)コンピュータ読取可能媒体」及び「(1つの)コンピュータ読取可能媒体」という用語は、全体的に、コンピュータによって読取可能な形式の情報を格納する、有形の物理的なものに制限される。これらの用語は、任意の無線信号、有線のダウンロード信号及び任意の他の一次的な信号は除外する。
理解されるように、開示される処理のステップのいずれかの具体的な順序又は階層は、例示的なアプローチの例である。設計上の好みに基づいて、処理におけるステップの具体的な順序又は階層を再配置することができ、あるいは図示されたステップの全てが実行されてもよいことが理解されよう。ステップのうちの幾つかが同時に実行されてもよい。例えば特定の環境では、マルチタスク化及び並行処理が有利であり得る。さらに、上記で説明される様々なシステムコンポーネントを分けることは、そのような分離を必ずしも必要であるように理解されるべきではなく、説明されるプログラムコンポーネント及びシステムは一般的に、単一のソフトウェア製品に一緒に統合することができ、複数のソフトウェア製品にパッケージ化することができることを理解されたい。
これらの態様に対する様々な修正が容易に明らかになり、ここで規定される一般的な原理を他の態様に適用してよい。したがって、特許請求の範囲は、本明細書で示される態様に限定されるように意図されておらず、特許請求の範囲の文言と互換性のある完全な範囲に合致することとする。特許請求の範囲においては、単数形の要素への言及は、特に記載されていない限り、「唯一」であることを意味するようには意図されていらず、「1つ又は複数」を意味するよう意図される。そうでないことを特に記載しない限り、「一部の、幾つかの(some)」という用語は、1つ又は複数を指す。

Claims (20)

  1. コンテンツ管理システムにおいて複数のオブジェクトをレポーティングするためにコンピュータで実装される方法であって:
    複数のオブジェクトを記憶デバイスに格納するステップと;
    第1のオブジェクト、第2のオブジェクト及び前記第1のオブジェクトと前記第2のオブジェクトとの間の関係を定義するレポートタイプの定義を受け取るステップと;
    前記レポートタイプの定義についてマルチオブジェクト・クエリ言語ステートメントを生成するステップと;
    前記マルチオブジェクト・クエリ言語ステートメントを、第1のクエリと第2のクエリに分解するステップであって、前記第1のクエリが前記第1のオブジェクトに対応し、前記第2のクエリが前記第2のオブジェクトに対応する、ステップと;
    前記第1のクエリ及び前記第2のクエリについて索引付きアクセスのクエリ定義を生成するステップと;
    前記索引付きアクセスのクエリ定義内の前記第1のクエリに対応する前記第1のオブジェクトのIDと、前記索引付きアクセスのクエリ定義内の前記第2のクエリに対応する前記第2のオブジェクトのIDを、Luceneベースの検索エンジンから抽出するステップと;
    前記第1のオブジェクトの抽出されたIDと、前記第2のオブジェクトの抽出されたIDを結合するステップと;
    を含む、方法。
  2. 結合結果について、インデックスを生成するステップ
    を更に含む、請求項1に記載の方法。
  3. 前記インデックスは、固定の2進表現である、
    請求項2に記載の方法。
  4. 前記インデックスについて、対応するデータファイルを生成するステップ
    を更に含む、請求項3に記載の方法。
  5. 前記インデックスに従って、前記Luceneベースの検索エンジンにおいてオブジェクトに対するインデックスアクセスを実行するステップ
    を更に含む、請求項2に記載の方法。
  6. Solrクエリを実行して、応答を返すステップ
    を更に含む、請求項5に記載の方法。
  7. 前記インデックスアクセスは、サイズベースである、
    請求項5に記載の方法。
  8. 前記インデックスアクセスの応答を事後処理して、表示するためのレポートを生成するステップ
    を更に含み、前記レポートは、前記第1のオブジェクト及び前記第2のオブジェクトを備える、
    請求項1に記載の方法。
  9. 前記第1のオブジェクトで前記レポート内のデータをグループ化することを可能にするステップ
    を更に含む、請求項8に記載の方法。
  10. 前記レポート内でデータを集計することを可能にするステップ
    を更に含む、請求項8に記載の方法。
  11. 前記第1のオブジェクトの抽出されたIDと、前記第2のオブジェクトの抽出されたIDをMySQLへ存続させるステップ
    を更に含む、請求項1に記載の方法。
  12. 前記インデックスアクセスの方式は、仮想記憶アクセス方式(VSAM)である、
    請求項1に記載の方法。
  13. 前記の分解は、ANTLRベースの解析を介する、
    請求項1に記載の方法。
  14. ハッシュ関数を使用して前記の結合を実装する、
    請求項1に記載の方法。
  15. 前記の結合は、内部結合及び外部結合を含む、
    請求項14に記載の方法。
  16. 前記の結合は、前記第1のオブジェクトと前記第2のオブジェクトとの間の外部キーの関係に基づく、
    請求項1に記載の方法。
  17. 前記索引付きアクセスのクエリ定義に関与する前記第1のオブジェクト及び前記第2のオブジェクトのコストを計算するステップ
    を更に含む、請求項1に記載の方法。
  18. 前記索引付きアクセスのクエリ定義が、前記第1のオブジェクトの更なるフィルタリングを必要とすることを決定するステップ
    を更に含む、請求項17に記載の方法。
  19. 結果のサイズを限定するよう前記第1のクエリを書き直すステップ
    を更に含む、請求項17に記載の方法。
  20. コンテンツ管理システムであって、
    複数のオブジェクトを格納する記憶デバイスと;
    第1のオブジェクト、第2のオブジェクト及び前記第1のオブジェクトと前記第2のオブジェクトとの間の関係を定義するレポートタイプの定義を受け取り、該レポートタイプの定義についてのマルチオブジェクト・クエリ言語ステートメントを生成する、レポート実行エンジンと;
    前記マルチオブジェクト・クエリ言語ステートメントを、前記第1のオブジェクトと前記第2のオブジェクトにそれぞれ対応する第1のクエリと第2のクエリに分解し、前記第1のクエリ及び前記第2のクエリについての索引付きアクセスのクエリ定義を生成し、Luceneベースの検索エンジンにおいて、インデックスに従ってオブジェクトについてのインデックスアクセスを実行する、クエリ言語実行エンジンと;
    前記索引付きアクセスのクエリ定義内の前記第1のクエリに対応する前記第1のオブジェクトのIDと、前記索引付きアクセスのクエリ定義内の前記第2のクエリに対応する前記第2のオブジェクトのIDを、前記Luceneベースの検索エンジンから抽出し、前記第1のオブジェクトの抽出されたIDと、前記第2のオブジェクトの抽出されたIDを結合する、索引付きアクセス実行エンジンと;
    を備える、システム。
JP2015214617A 2014-11-01 2015-10-30 企業のコンテンツ管理における複数のオブジェクトをレポーティングするためのシステム及び方法 Active JP5944039B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/530,694 2014-11-01
US14/530,694 US9208200B1 (en) 2014-11-01 2014-11-01 System and method for reporting multiple objects in enterprise content management

Publications (2)

Publication Number Publication Date
JP2016091560A true JP2016091560A (ja) 2016-05-23
JP5944039B2 JP5944039B2 (ja) 2016-07-05

Family

ID=54360083

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015214617A Active JP5944039B2 (ja) 2014-11-01 2015-10-30 企業のコンテンツ管理における複数のオブジェクトをレポーティングするためのシステム及び方法

Country Status (4)

Country Link
US (2) US9208200B1 (ja)
EP (1) EP3018595A1 (ja)
JP (1) JP5944039B2 (ja)
CN (1) CN105574070A (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11249968B2 (en) * 2016-05-09 2022-02-15 Sap Se Large object containers with size criteria for storing mid-sized large objects
US10664463B2 (en) * 2016-12-30 2020-05-26 Dropbox, Inc. Event context enrichment
JP7146921B2 (ja) * 2017-12-19 2022-10-04 ヴィーヴァ システムズ インコーポレイテッド 電子通信を制御するためのシステム及び方法
US11720236B1 (en) * 2019-01-29 2023-08-08 Veeva Systems Inc. Displaying reports in a content management system
US11853359B1 (en) * 2019-01-31 2023-12-26 Veeva Systems Inc. System and method for reporting multiple objects in enterprise content management
CN111625539A (zh) * 2020-04-28 2020-09-04 四川省金科成地理信息技术有限公司 一种应用于信息资源共享平台的索引创建及数据检索方法
US12061823B2 (en) 2021-03-09 2024-08-13 Esko Software Bv System and method for exchanging and preflighting documents for printing and publishing
USD1003317S1 (en) 2021-03-09 2023-10-31 Esko Software Bv Display screen or portion thereof with graphical user interface
US20230395208A1 (en) * 2022-06-06 2023-12-07 Commure, Inc. Federated data platform integrating multiple healthcare data sources including fhir and non-fhir sources

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348562A (ja) * 1993-06-08 1994-12-22 Hitachi Ltd データベース制御情報管理システム
JP2004246897A (ja) * 2003-02-12 2004-09-02 Microsoft Corp 宣言順レポートパラメータ化
JP2009157678A (ja) * 2007-12-27 2009-07-16 Canon Marketing Japan Inc データベース検索装置、データベース検索システム、データベース検索方法、プログラム、記録媒体
JP2012185740A (ja) * 2011-03-07 2012-09-27 Ricoh Co Ltd レポート作成装置、レポート作成システム、レポート作成方法、レポート作成プログラム及び記憶媒体

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6160549A (en) * 1994-07-29 2000-12-12 Oracle Corporation Method and apparatus for generating reports using declarative tools
AU1939099A (en) * 1997-12-22 1999-07-12 Roderic G. G. Cattell Methods and apparatus for efficiently splitting query execution across client and server in an object-relational mapping
US6748374B1 (en) * 1998-12-07 2004-06-08 Oracle International Corporation Method for generating a relational database query statement using one or more templates corresponding to search conditions in an expression tree
US6965891B1 (en) * 2001-02-27 2005-11-15 Oracle International Corporation Method and mechanism for partition pruning
US6931390B1 (en) * 2001-02-27 2005-08-16 Oracle International Corporation Method and mechanism for database partitioning
US7213013B1 (en) * 2001-06-18 2007-05-01 Siebel Systems, Inc. Method, apparatus, and system for remote client search indexing
US7546287B2 (en) * 2001-06-18 2009-06-09 Siebel Systems, Inc. System and method to search a database for records matching user-selected search criteria and to maintain persistency of the matched records
US7293014B2 (en) * 2001-06-18 2007-11-06 Siebel Systems, Inc. System and method to enable searching across multiple databases and files using a single search
US6910032B2 (en) * 2002-06-07 2005-06-21 International Business Machines Corporation Parallel database query processing for non-uniform data sources via buffered access
US20050010430A1 (en) * 2003-05-13 2005-01-13 Holger Gockel Systems, methods, and software applications for modeling the structure of enterprises
US8260764B1 (en) * 2004-03-05 2012-09-04 Open Text S.A. System and method to search and generate reports from semi-structured data
US20050273705A1 (en) * 2004-06-08 2005-12-08 Fortellio, Llc Method and system for automatically creating network software applications
US20060031206A1 (en) * 2004-08-06 2006-02-09 Christian Deubel Searching for data objects
US7689580B2 (en) * 2006-03-27 2010-03-30 Oracle International Corporation Search based application development framework
US7747562B2 (en) * 2006-08-15 2010-06-29 International Business Machines Corporation Virtual multidimensional datasets for enterprise software systems
US7895150B2 (en) * 2006-09-07 2011-02-22 International Business Machines Corporation Enterprise planning and performance management system providing double dispatch retrieval of multidimensional data
US7899837B2 (en) * 2006-09-29 2011-03-01 Business Objects Software Ltd. Apparatus and method for generating queries and reports
US7953727B2 (en) * 2008-04-04 2011-05-31 International Business Machines Corporation Handling requests for data stored in database tables
KR101380783B1 (ko) * 2008-08-22 2014-04-02 정태우 영상에 포함된 객체를 식별하여 부가 서비스를 제공하는 시스템
US20100153432A1 (en) * 2008-12-11 2010-06-17 Sap Ag Object based modeling for software application query generation
US10162851B2 (en) * 2010-04-19 2018-12-25 Salesforce.Com, Inc. Methods and systems for performing cross store joins in a multi-tenant store
WO2011130706A2 (en) * 2010-04-16 2011-10-20 Salesforce.Com, Inc. Methods and systems for performing cross store joins in a multi-tenant store
US8666970B2 (en) * 2011-01-20 2014-03-04 Accenture Global Services Limited Query plan enhancement
CN104160394B (zh) * 2011-12-23 2017-08-15 亚马逊科技公司 用于半结构化数据的可缩放分析平台
US9285960B2 (en) * 2011-12-30 2016-03-15 International Business Machines Corporation Business intelligence dashboard assembly tool with indications of relationships among content elements
US8957908B2 (en) * 2012-07-16 2015-02-17 International Business Machines Corporation Rapid representational thumbnail images for business intelligence dashboards
US9240061B2 (en) * 2012-10-02 2016-01-19 International Business Machines Corporation Pattern representation images for business intelligence dashboard objects
US9298814B2 (en) * 2013-03-15 2016-03-29 Maritz Holdings Inc. Systems and methods for classifying electronic documents
JP6416194B2 (ja) * 2013-03-15 2018-10-31 アマゾン・テクノロジーズ・インコーポレーテッド 半構造データのためのスケーラブルな分析プラットフォーム
US20140278813A1 (en) * 2013-03-15 2014-09-18 International Business Machines Corporation Recommendation engine
US11586600B2 (en) * 2013-11-05 2023-02-21 Varonis Systems, Inc In-advance indexing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348562A (ja) * 1993-06-08 1994-12-22 Hitachi Ltd データベース制御情報管理システム
JP2004246897A (ja) * 2003-02-12 2004-09-02 Microsoft Corp 宣言順レポートパラメータ化
JP2009157678A (ja) * 2007-12-27 2009-07-16 Canon Marketing Japan Inc データベース検索装置、データベース検索システム、データベース検索方法、プログラム、記録媒体
JP2012185740A (ja) * 2011-03-07 2012-09-27 Ricoh Co Ltd レポート作成装置、レポート作成システム、レポート作成方法、レポート作成プログラム及び記憶媒体

Also Published As

Publication number Publication date
CN105574070A (zh) 2016-05-11
EP3018595A1 (en) 2016-05-11
JP5944039B2 (ja) 2016-07-05
US9619533B2 (en) 2017-04-11
US20160125049A1 (en) 2016-05-05
US9208200B1 (en) 2015-12-08

Similar Documents

Publication Publication Date Title
JP5944039B2 (ja) 企業のコンテンツ管理における複数のオブジェクトをレポーティングするためのシステム及び方法
US11907247B2 (en) Metadata hub for metadata models of database objects
Mate et al. Ontology-based data integration between clinical and research systems
US8943059B2 (en) Systems and methods for merging source records in accordance with survivorship rules
Lomotey et al. Towards knowledge discovery in big data
Rashid et al. The semantic data dictionary–an approach for describing and annotating data
CN111971666A (zh) 优化sql查询计划的维度上下文传播技术
US20130318095A1 (en) Distributed computing environment for data capture, search and analytics
US10585981B2 (en) Method of data capture, storage and retrieval through user created form templates and data item templates by executing computer-executable instructions stored on a non-transitory computer-readable medium
Kaur et al. Scholarometer: A social framework for analyzing impact across disciplines
GB2507095A (en) Generating synthetic data from a decision tree model of a dataset
Uddin et al. Automatic api usage scenario documentation from technical q&a sites
Challawala et al. MySQL 8 for Big Data: Effective Data Processing with MySQL 8, Hadoop, NoSQL APIs, and Other Big Data Tools
Deshpande et al. Metadata-driven ad hoc query of patient data: meeting the needs of clinical studies
Owens et al. occCite: Tools for querying and managing large biodiversity occurrence datasets
Jun et al. Semantics-preserving optimisation of mapping multi-column key constraints for RDB to RDF transformation
Lee et al. Hands-On Big Data Modeling: Effective database design techniques for data architects and business intelligence professionals
Khashan et al. An adaptive spark-based framework for querying large-scale NoSQL and relational databases
US20160179476A1 (en) Method Of Operating A Software Engine For Storing, Organizing And Reporting Data In An Organizational Environment Through User Created Templates And Data Items By Executing Computer-Executable Instructions Stored On A Non-Transitory Computer-Readable Medium
US11853359B1 (en) System and method for reporting multiple objects in enterprise content management
Enaya An Experimental Performance Comparison of NoSQL and RDBMS Data Storage Systems in the ERP System Odoo
Cejovic et al. Using semantic web technologies to enable cancer genomics discovery at petabyte scale
Meadows et al. Pentaho Data Integration Cookbook
Mou et al. Visual orchestration and autonomous execution of distributed and heterogeneous computational biology pipelines
Szekely et al. T2WML: table to wikidata mapping language

Legal Events

Date Code Title Description
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: 20160426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160524

R150 Certificate of patent or registration of utility model

Ref document number: 5944039

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250