JP2007265384A - 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法 - Google Patents

構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法 Download PDF

Info

Publication number
JP2007265384A
JP2007265384A JP2006323130A JP2006323130A JP2007265384A JP 2007265384 A JP2007265384 A JP 2007265384A JP 2006323130 A JP2006323130 A JP 2006323130A JP 2006323130 A JP2006323130 A JP 2006323130A JP 2007265384 A JP2007265384 A JP 2007265384A
Authority
JP
Japan
Prior art keywords
information
structured data
index
reference element
search
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.)
Pending
Application number
JP2006323130A
Other languages
English (en)
Inventor
Tomohiro Asami
知弘 浅見
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.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan Ltd
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 Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP2006323130A priority Critical patent/JP2007265384A/ja
Priority to US11/699,345 priority patent/US7580957B2/en
Publication of JP2007265384A publication Critical patent/JP2007265384A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • G06F16/835Query processing
    • G06F16/8373Query execution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

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)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 構造化データをその汎用性及び拡張性の高さを保ちつつ高速に検索・更新等を行うことを可能とする構造化データの格納方法を提供する。
【解決手段】 テキストファイルである構造化データファイル101に構造化データを格納するとともに、構造化データの検索や更新等を高速化するために生成したインデックス情報をバイナリーファイルであるインデックスファイル102に格納する。専用構造化データ処理手段104は、外部機器側の汎用構造化データ処理手段103により構造化データファイル101の内容が更新された場合には、構造化データファイル101が更新されたことを検知し、更新された構造化データファイル101を解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いてインデックスファイル102を更新する機能を有する。
【選択図】 図1

Description

本発明は、XML(eXtensible Markup Language)に代表される構造化されたデータのデータベースに対して、インデックス情報により高速な検索を実現するとともに、テキストファイルとして提供される構造化データを参照・編集することをも可能とする構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法に関するものである。
汎用性・拡張性の高いデータ形式として、様々な分野においてXML形式による構造化データとしてデータが管理されることが多い。XMLは文書をタグ付けするマークアップ言語の一種であり、データを構造化して表現できるとともに、視認性が高いという特徴がある。その一方で、データを高速に検索するためには、データの格納方法を工夫する必要がある。
特許第3560043号公報では、XMLデータを表形式のテーブルに格納するXMLデータの格納方法が提供されている。この方法では、XMLデータのスキーマ情報に基づいてエレメント毎に1つのテーブルを作成し、そのテーブルにエレメントの内容及び属性情報を格納するとともに、エレメントの出現順序情報及び親子関係情報をも格納している。
特許第3560043号公報
特許第3560043号公報によるXMLデータの格納方法では、XMLの構造を保ちつつ表形式のテーブルにデータを格納することにより、高速に検索を行うことができる。また、スキーマ情報に基づいてテーブルを作成するため、自由な構造のXMLデータを格納することができ、XMLの持つ拡張性の高さも失われない。しかし、検索のための専用の装置またはプログラム等が必要であるため、汎用性の高さが失われている。また、データを部分的に更新するための手段が提供されていない。
そこで本発明は、構造化データをその汎用性及び拡張性の高さを保ちつつ高速に検索・更新等を行うことを可能とする構造化データの格納装置、プログラム、及び方法を提供するとともに、その構造化データにアクセスして参照・編集を行うことを可能とする構造化データの格納装置、プログラム、及び方法を提供することを目的とする。
そこで、上記課題を解決するために本発明は、以下の装置、プログラム、及び方法を提供するものである。
(1) 本装置内の記憶媒体に格納された構造化データファイルの閲覧・更新が外部機器から行える構造化データ格納装置において、
構造化データを有する構造化データファイルを前記記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを前記記憶媒体に格納する格納手段と、
前記記憶媒体内の構造化データファイルが前記外部装置により更新されたか否かを検出する検出手段と、
前記検出手段が更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記格納手段によって前記記憶媒体におけるインデックスファイルを更新させるインデックス情報生成手段と、
を備え、
前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
前記インデックス情報生成手段は、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成する手段である、
ことを特徴とする構造化データ格納装置。
(2) 構造化データを有する構造化データファイルを、本装置に着脱自在の第1の記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを、本装置内に固定された第2の記憶媒体に格納する格納手段と、
前記第1の記憶媒体内の構造化データファイルが外部装置により更新されたか否かを検出する検出手段と、
前記検出手段が更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記格納手段によって前記第2の記憶媒体におけるインデックスファイルを更新させるインデックス情報生成手段と、
を備え、
前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
前記インデックス情報生成手段は、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成する手段である、
ことを特徴とする構造化データ格納装置。
(3) 構造化データを有する構造化データファイルを本装置に着脱自在の記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを前記記憶媒体に格納する格納手段と、
前記記憶媒体内の構造化データファイルが外部装置により更新されたか否かを検出する検出手段と、
前記検出手段が更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記格納手段によって前記記憶媒体におけるインデックスファイルを更新させるインデックス情報生成手段と、
を備え、
前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
前記インデックス情報生成手段は、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成する手段である、
ことを特徴とする構造化データ格納装置。
(4) 内蔵する記憶媒体に格納された構造化データファイルの閲覧・更新が外部機器から行える構造化データ格納装置における構造化データ格納プログラムであって、
構造化データを有する構造化データファイルを前記記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを前記記憶媒体に格納する格納ステップと、
前記記憶媒体内の構造化データファイルが前記外部装置により更新されたか否かを検出する検出ステップと、
前記検出ステップが更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記記憶媒体におけるインデックスファイルを更新させるインデックス情報生成ステップと、
を構造化データ格納装置に実行させる構造化データ格納プログラムであり、
前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
前記インデックス情報生成ステップは、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成するステップである、
ことを特徴とする構造化データ格納プログラム。
(5) 記憶媒体に構造化データファイルの格納を行う構造化データ格納装置における構造化データ格納プログラムであって、
構造化データを有する構造化データファイルを、構造化データ格納装置に着脱自在の第1の記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを、前記構造化データ格納装置に固定された第2の記憶媒体に格納する格納ステップと、
前記第1の記憶媒体内の構造化データファイルが外部装置により更新されたか否かを検出する検出ステップと、
前記検出ステップが更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記第2の記憶媒体におけるインデックスファイルを更新させるインデックス情報生成ステップと、
を前記構造化データ格納装置に実行させる構造化データ格納プログラムであり、
前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
前記インデックス情報生成ステップは、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成するステップである、
ことを特徴とする構造化データ格納プログラム。
(6) 記憶媒体に構造化データファイルの格納を行う構造化データ格納装置における構造化データ格納プログラムであって、
構造化データを有する構造化データファイルを構造化データ格納装置に着脱自在の記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを前記着脱自在の記憶媒体に格納する格納ステップと、
前記着脱自在の記憶媒体内の構造化データファイルが外部装置により更新されたか否かを検出する検出ステップと、
前記検出ステップが更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記着脱自在の記憶媒体におけるインデックスファイルを更新させるインデックス情報生成ステップと、
を前記構造化データ格納装置に実行させる構造化データ格納プログラムであり、
前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
前記インデックス情報生成ステップは、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成するステップである、
ことを特徴とする構造化データ格納プログラム。
(7) 内蔵する記憶媒体に格納された構造化データファイルの閲覧・更新が外部機器から行える構造化データ格納装置における構造化データ格納方法であって、
構造化データを有する構造化データファイルを前記記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを前記記憶媒体に格納する格納ステップと、
前記記憶媒体内の構造化データファイルが前記外部装置により更新されたか否かを検出する検出ステップと、
前記検出ステップが更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記記憶媒体におけるインデックスファイルを更新させるインデックス情報生成ステップと、
を備え、
前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
前記インデックス情報生成ステップは、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成するステップである、
ことを特徴とする構造化データ格納方法。
(8) 記憶媒体に構造化データファイルの格納を行う構造化データ格納装置における構造化データ格納方法であって、
構造化データを有する構造化データファイルを、構造化データ格納装置に着脱自在の第1の記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを、前記構造化データ格納装置に固定された第2の記憶媒体に格納する格納ステップと、
前記第1の記憶媒体内の構造化データファイルが外部装置により更新されたか否かを検出する検出ステップと、
前記検出ステップが更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記第2の記憶媒体におけるインデックスファイルを更新させるインデックス情報生成ステップと、
を備え、
前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
前記インデックス情報生成ステップは、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成するステップである、
ことを特徴とする構造化データ格納方法。
(9) 記憶媒体に構造化データファイルの格納を行う構造化データ格納装置における構造化データ格納方法であって、
構造化データを有する構造化データファイルを構造化データ格納装置に着脱自在の記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを前記着脱自在の記憶媒体に格納する格納ステップと、
前記着脱自在の記憶媒体内の構造化データファイルが外部装置により更新されたか否かを検出する検出ステップと、
前記検出ステップが更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記着脱自在の記憶媒体におけるインデックスファイルを更新させるインデックス情報生成ステップと、
を備え、
前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
前記インデックス情報生成ステップは、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成するステップである、
ことを特徴とする構造化データ格納方法。
本発明によれば、上述の構成を備えた構造化データを記憶する(例えばテキストファイルとして記憶する)と共に、構造化データに関する上述の構成を備えたインデックス情報を生成してそのインデックス情報を記憶する(例えばバイナリーファイルとして記憶する)ことにより、構造化データの汎用性及び拡張性の高さを保ちつつ、構造化データを高速に検索・更新等を行うことを可能とするという効果を得ることができる。
図1は、本発明の構造化データ格納装置の概念を簡略的に示す図である。
図1において、本装置では、1つまたは複数のテキストファイルである構造化データファイル101に構造化データを格納するとともに、構造化データの検索や更新等を高速化するために生成したインデックス情報をバイナリーファイルであるインデックスファイル102に格納する。
外部機器側の汎用構造化データ処理手段103は、構造化データの汎用的なパーサー、汎用的な構造化データの汎用的なエディター、テキストエディター等で構成され、構造化データファイルの内容を参照・更新する機能を有する。
専用構造化データ処理手段104は、構造化データファイル101を解析してその構造化データに関するインデックス情報を生成し(専用構造化データ処理手段104が構造化データを生成する場合には、その構造化データ生成と同時に構造化データに関するインデックス情報を生成する、またはその構造化データ生成の直後にその構造化データを解析してインデックス情報を生成する)、インデックスファイル102に格納する機能、構造化データファイル101及びインデックスファイル102を利用して構造化データを検索・更新する機能等を有する。
また、専用構造化データ処理手段104は、外部機器側の汎用構造化データ処理手段103により構造化データファイル101の内容が更新された場合には、構造化データファイル101が更新されたことを検知し、更新された構造化データファイル101を解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いてインデックスファイル102を更新する機能を有する。
[実施例]
次に、本発明の構造化データ格納装置を適用した一実施例について説明する。
<実施例の構成>
図2は構造化データ格納装置の一実施例を示す構成図である。本実施例は、ビデオカメラに適用したものであり、メタデータ管理に応用するものである。
ビデオカメラ201は、装置内固定型の記憶媒体であるハードディスク202を内蔵するものであり、動画の記録・再生等の通常のビデオカメラの機能を有するものである。レンズ、マイク等のビデオカメラとして必要な装置を備え、また、USBインターフェース209を介して外部機器であるパソコン210と接続する機能を有する。
ハードディスク202は、動画データやその他の管理情報等を記録するための記憶装置である。
ビデオカメラ201により撮影された動画データは、動画ファイル203としてハードディスク202に記録される。動画ファイル203のフォーマットには、例えばMPEG−2等を用いる。
動画データに関する構造化データであるメタデータは、テキストファイルであるXML(eXtensible Markup Language)ファイル204としてハードディスク202に記録される。メタデータは構造化されたXMLデータであり、その内容としては例えばタイトル、撮影日時、ジャンル等が含まれる。
XMLデータに対して高速に検索・更新等の処理を行うために、インデックス情報がバイナリーファイルであるインデックスファイル205としてハードディスク202に記録される。このインデックスファイル205は、ハードディスク202内のパソコン210からは更新できない領域に格納する。なお、このインデックスファイル205をハードディスク202内のパソコン210から更新できる領域に格納する構成にしてもよいが、その場合には、本実施例を搭載する商品の取扱説明書等にパソコン側からインデックスファイル205を更新しないようにといった説明を記載した方がよい。
アプリケーションプログラム206は、ビデオカメラ201上で動作するプログラムであり、ビデオカメラ201全体の動作を制御する機能を有する。動画の記録・再生等のビデオカメラとしての通常の動作を制御するとともに、XMLファイルを新規作成するためのXMLデータをXMLDBプログラム207へ出力する機能、アプリケーションプログラム206によって生成される、またはユーザーインターフェース208より入力される動画に関するメタデータをXMLDBプログラム207へ出力する機能、ユーザーインターフェース208より入力される検索条件を用いてXMLDBプログラム207に対して検索を指示する機能、及びXMLDBプログラム207より入力される動画に関するメタデータをユーザーインターフェースへ出力する機能を有する。
XMLDBプログラム207は、XMLに基づくデータベースとして動作するプログラムであり、動画に関するメタデータを管理するものである。XMLファイル204を新規作成する機能、XMLファイル204を解析してそのXMLデータに関するインデックス情報を生成し、インデックスファイル205に格納する機能、及びアプリケーションプログラム206の指示によりXMLファイル204及びインデックスファイル205に格納されているXMLデータを検索・更新・追加する機能等を有する。
ユーザーインターフェース208は、液晶モニター及び複数個のキー等で構成される。ユーザーに動画データやメタデータ等を提示する機能、ユーザーからの撮影開始・停止等の指示を受ける機能、及びユーザーからのメタデータの表示、検索等の指示を受ける機能を有する。
USBインターフェース209は、USBケーブルによりパソコン210と接続するための端子である。USBインターフェース209を介してビデオカメラ201とパソコン210が接続された場合に、パソコン210からハードディスク202に記録されているファイルを読み書きする機能を提供する。
パソコン210は、USB端子を備える通常のパソコンである。USBケーブルを介してビデオカメラ201と接続されると、ビデオカメラ201に内蔵されているハードディスク202に記録されているファイルを読み書きすることができる。
XMLエディター211は、XMLファイルを読み書きするための汎用的なプログラムである。パソコン210とビデオカメラ202がUSBケーブルによって接続されると、ユーザーはXMLエディター211を利用してハードディスク202に記録されているXMLファイル204を読み書きすることができる。なお、XMLエディター211の代わりに、汎用的なテキストエディターや、ビデオカメラの動画データに関するメタデータを読み書きすることに特化したプログラムを利用する構成にしても良い。
以上が本実施例の構成であるが、XMLファイル204をハードディスク202に記録し、USBインターフェース209によりパソコン210と接続する代わりに、XMLファイルをSDメモリー等のビデオカメラと着脱自在な記憶媒体に記録し、ビデオカメラから取り外した記憶媒体をパソコンに備えられた読み書き装置に装着することにより、パソコンからXMLファイルを読み書きすることが可能となるような構成にしてもよい。また、XMLファイル204と共にインデックスファイル205をもSDメモリー等の着脱自在な記憶媒体に記録するようにしても良い。この場合には、本実施例を搭載する商品の取扱説明書等にパソコンでインデックスファイル205を更新しないようにといった説明を記載した方がよい。
<XML用語の説明>
ここで、本実施例の構造化データであるXMLデータで用いるXMLの用語について簡単に説明する。
XMLでは、「<」で始まり「>」で終わるタグを用いてデータを構造化する。タグには開始タグ、終了タグ及び空要素タグの種類がある。開始タグと終了タグで囲まれたデータ単位及び空要素タグで表されたデータ単位をエレメントと呼ぶ。開始タグ及び空要素タグは、その内部にアトリビュートを記述することができる。また、タグの外側に存在するテキストデータの単位をテキストノードと呼ぶ。また、「<!−−」で始まり「−−>」で終わるタグで表されたデータ単位をコメントと呼ぶ。
XMLを構成するエレメント、アトリビュート、テキストノード、コメント等を総称してノードと呼ぶ。XMLには上記以外のノードの種類も存在するが、本発明の説明には不要であるため説明を省略する。
エレメントを構成する開始・終了タグの内側に存在するノードをそのエレメントの子孫ノードと呼ぶ。ただし、子孫ノードにはアトリビュートは含まれない。特に、そのエレメントの直下に存在するノードをそのエレメントの子ノードと呼ぶ。逆に、子ノードに対してそれが属するエレメントを親エレメントと呼ぶ。また、同一の親ノードを持つノード同士を兄弟ノードと呼ぶ。
<インデックスファイルの構成>
次に、インデックスファイル205の構成について説明する。
図3は、本実施例のインデックスファイルの概念的な構成図である。インデックスファイルは、概念的に、下位に位置するマップ層と上位に位置するデータベース層により構成される。
マップ層は、キーと値の組を関連付けるものである。キー及び値は文字列のデータである。マップ層の構造は、あるキーに関連付けられた値の検索、あるキーに関連付けられた値の更新、あるキーとそれに関連付けられた値の組の削除、及びキーの昇順または降順での値の順次取得等の処理が可能なものでなければならない。また、マップ名によってキーと値の組をグループ分けする、すなわちマップ名を指定することによりそのマップに属するキーと値の組に対してのみ検索等の各種処理を行うことが可能なものでなければならない。具体的な実現手段としては、B−Tree(平衡木;Balanced Tree)を用いる。あるいは、リレーショナルデータベースを用いても良い。
データベース層は、マップ層の機能を利用し、XMLデータに関するインデックス情報を構成するものである。データベース層は、XML文書IDマップ、XML文書情報マップ、インデックス情報マップ、ベースエレメント値マップ、及び検索インデックスマップにより構成される。具体例は後述する図16〜図19に示す。
XML文書IDマップは、XML文書のファイルパスをキーとし、XML文書を一意に識別するXML文書IDを値とするマップである。
XML文書情報マップは、XML文書IDをキーとし、XML文書情報を値とするマップである。XML文書情報には、ファイルパス、ファイルサイズ、及びファイルの最終更新日時が含まれる。
インデックス情報マップは、XML文書のエレメントを特定するXパスをキーとし、インデックス情報を値とするマップである。以下、キーとなるXパスにより指定されるエレメントをベースエレメント(基準要素)と呼ぶ。インデックス情報には、ベースエレメントの子孫ノードのうち検索に使用するノード(以下、検索ノード(検索要素)と呼ぶ)を特定するベースエレメントからの相対パスが含まれる。なお、ベースエレメントを特定するXパスは複数種類あってもよい。また、検索ノードを特定する相対パスはベースエレメントを特定するXパス毎に指定し、1種類のベースエレメントに対して複数種類の相対パスを含めてもよい。相対パスは、対応するベースエレメント毎に、指定された順番で、0から始まる非負整数のIDで識別することにする。
ベースエレメント値マップ(第1のインデックス構成要素)は、ベースエレメントを一意に識別するノードID(基準要素を一意に識別する情報)をキーとし、ベースエレメント値を値とするマップである。ベースエレメント値には、そのベースエレメントを含むXML文書のXML文書ID(その一意に識別された該基準要素を備える構造化データを有する構造化データファイルを特定する情報)、そのベースエレメントのXML文書中の位置を特定するポジションパス(その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報)、及びその子孫に存在する検索ノードのノード値(該基準要素の下位に位置する各検索要素を特定する情報と、その各検索要素の内容情報)が含まれる。なお、検索ノードのノード値は、対応する検索ノードの相対パスを識別するID(検索要素を特定する情報)とともにベースエレメント値に含める。
検索インデックスマップ(第2のインデックス構成要素)は、検索ノードのノード値(検索要素の内容情報)をキーとし、その検索ノードを子孫に持つベースエレメントのノードID(その内容情報を有する該検索要素を備える基準要素を一意に識別する情報)を値とするマップである。検索インデックスマップは、インデックス情報マップにおけるインデックス情報に含まれる検索ノードを特定する相対パス毎(検索要素を特定する情報毎)に1つずつ用意する。
<ポジションパスの説明>
次に、前記のベースエレメント値に含まれるポジションパスについて説明する。
ポジションパスは、XML文書中のノードを特定するための情報である。同様の機能を持つものにXパスがあるが、Xパスよりも少ない情報量で高速に処理することを目的とする。Xパスが複数のノードを同時に指定することもできるのに対して、ポジションパスでは必ず1つのノードを特定する。
図4は、本実施例のポジションパスのフォーマットを関数形式で表記した図である。
ポジションパスは、まずNumOfPositionsフィールドから開始される。NumOfPositionsフィールドは32ビットの非負整数であり、後に続くPositionフィールドの個数を指定する。
次に、NumOfPositionsフィールドで指定した数だけPositionフィールドが続く。Positionフィールドは16ビットの正数であり、あるエレメントの子供ノードのうちの1つを、そのノードが親エレメントの何番目の子供であるかという値で指定する。
NumOfPositionsフィールドが0の場合、そのポジションパスで特定されるノードはルートエレメントである。
NumOfPositionsフィールドが1以上の場合、最初のPositionフィールド(Position[0])でルートエレメントの子供ノードの1つが指定される。さらに指定された子供ノードがエレメントの場合、次のPositionフィールド(Position[1])でその子供ノードの1つが指定される。以下、同様にPositionフィールドの数だけノードをたどって行き、最後のPositionフィールド(Position[NumOfPositions−1])で指定されるノードがそのポジションパスで特定されるノードである。なお、最後のPositionフィールド以外のPositionフィールドで指定されるノードは、必ずエレメントでなければならない。
なお、本実施例のポジションパスのフォーマットではアトリビュートを特定することはできないが、本実施例のポジションパスはベースエレメントを特定するためにのみ用いられるため、特に問題とはならない。
<XMLファイル解析判断処理の流れ>
次に、本実施例のXMLDBプログラムによるXMLファイル解析判断処理の流れについて説明する。
なお、XMLファイル解析判断処理は、アプリケーションプログラムからのXMLデータの入力によりXMLDBプログラムがXMLファイルを新規作成した後や、USBインターフェースによるビデオカメラとパソコンの接続が切断された後、また、SDメモリー等の着脱自在な記憶媒体を使用する構成の場合にはその記憶媒体がビデオカメラに装着された後など、XMLファイルが更新された可能性があるときにXMLDBプログラムによって行われる。アプリケーションプログラムがXMLDBに解析するXMLファイルのファイルパスを入力パラメーターとして渡すことにより、XMLファイル解析判断処理が行われる。
図5は、XMLDBプログラムによるXMLファイル解析判断処理の流れを示す図である。
XMLファイル解析判断処理が開始される(S501)。
まず、解析するXMLファイルのファイル属性を取得する(S502)。ここで取得するファイル属性は、ファイルサイズと最終更新時刻である。
次に、XML文書IDマップに登録されているキーに、解析するXMLファイルのファイルパスに一致するものが存在するか否かを判別する(S503)。解析するXMLファイルのファイルパスに一致するものが存在する場合はステップS504へ進み、存在しない場合はステップS508へ進む。
ステップS504では、解析するXMLファイルに対するXML文書IDを取得する。すなわち、XML文書IDマップから、キーとなる解析するXMLファイルのファイルパスに対応する値を取得する。
次に、XML文書情報マップよりXML文書情報を取得する(S505)。すなわち、XML文書情報マップから、キーとなるステップS504で取得したXML文書IDに対応する値を取得する。XML文書情報には、前述のとおり、ファイルサイズと最終更新時刻が含まれる。
次に、XML文書に更新の可能性があるか否かを判別する(S506)。具体的には、ステップS502で取得したファイル属性に含まれるファイルサイズ及び最終更新時刻と、ステップS505で取得したXML文書情報に含まれるファイルサイズ及び最終更新時刻とが完全に一致する場合のみXML文書に更新の可能性がないと判断し、それ以外の場合は更新の可能性があると判断する。
XML文書に更新の可能性がある場合、XML文書情報マップを更新する(S507)。具体的には、ステップS504で取得したXML文書IDに対応するXML文書情報のファイルサイズ及び最終更新時刻を、ステップS502で取得したファイル属性に含まれるファイルサイズ及び最終更新時刻に更新する。その後、S510へ進む。
XML文書に更新の可能性がない場合、終了ステップS511へ進む。
ステップS508では、XML文書IDマップに解析するXMLファイルに対するXML文書IDを登録する。具体的には、既存のXML文書IDと重複しないIDを生成し、解析するXMLファイルのファイルパスをキーとし、生成したXML文書IDを値とするエントリーをXML文書IDマップに追加する。なお、XML文書IDは正数であり、その生成方法としては、例えば既存のIDの最大値に1を加えたものを選べばよい。または、XML文書IDのための初期値が1であるカウンターを別途用意し、カウンターの値をXML文書IDとして取得してからカウンターに1を加える処理を行うようにしてもよい。
次に、XML文書情報マップに、解析するXMLファイルに対するXML文書情報を登録する(S509)。具体的には、解析するXMLファイルのファイルパス、及びステップS502で取得したファイルサイズと最終更新時刻によりXML文書情報を生成し、ステップS508で生成したXML文書IDをキーとし、ここで生成したXML文書情報を値とするエントリーをXML文書情報マップに追加する。その後、ステップS510へ進む。
ステップS510では、XMLファイル解析処理を行う。このとき、入力パラメーターとして、解析するXMLファイルのファイルパス、及びステップS504またはステップS508で得られたXML文書IDを渡す。
XMLファイル解析判断処理を終了する(S511)。
<XMLファイル解析処理の流れ>
次に、XMLファイル解析処理ステップS510におけるXMLファイル解析処理の流れについて説明する。
図6は、XMLDBプログラムによるXMLファイル解析処理の流れを示す図である。
XMLファイル解析処理を開始する(S601)。
入力パラメーターとして渡されたファイルパスにより特定されるXMLファイルをXMLパーサーにより解析する(S602)。XMLパーサーはXMLDBプログラムの構成要素の一つであり、XMLファイルからデータを読み込み、読み込んだXMLデータをノードに分解するXMLパーサーとしての一般的な機能を持つものである。
次に、XMLパーサーにより解析されたXMLデータに関して、変数nをルートエレメントとする(S603)。
次に、変数nの示すノードがベースエレメントであるか否かを判別する(S604)。判別には、XMLDBプログラムの初期設定として予め定められたベースエレメントを特定するXパスを用いる。前記変数nの示すノードが前記Xパスに合致する場合に、前記変数nの示すノードがベースエレメントであると判断する。
変数nの示すノードがベースエレメントである場合、変数nの示すノードに対してベースエレメント解析処理を行う(S605)。このとき、入力パラメーターとして、XMLファイル解析処理の入力パラメーターであるファイルパスとXML文書ID、及びステップS604で変数nの示すノードが合致したXパス、すなわちベースエレメントを特定するXパスを渡す。この後、変数nの示すノードの次に兄弟ノードがあるか否かの判別ステップS606へ進む。
変数nの示すノードがベースエレメントではない場合、変数nの示すノードが子ノードを持つか否かを判別する(S606)。
変数nの示すノードが子ノードを持つ場合、変数nを変数nの最初の子ノードとして(S607)、変数nの示すノードがベースエレメントか否かの判別ステップS604へ進む。
変数nの示すノードが子ノードを持たない場合、変数nの示すノードと同じ親エレメントを持つノード、すなわち変数nの示すノードの兄弟ノードのうち、変数nの示すノードの次に位置するノードが存在するか否かを判別する(S608)。すなわち、変数nの示すノードが、その親エレメントの子ノードのうち最後のノードであるか否かを判別する。
変数nの示すノードの次の兄弟ノードが存在する場合、変数nを変数nの次の兄弟ノードとして(S609)、変数nの示すノードがベースエレメントか否かの判別ステップS604へ進む。
変数nの示すノードの次の兄弟ノードが存在しない場合、変数nの示すノードがルートエレメントであるか否かを判別する(S610)。
変数nの示すノードがルートエレメントではない場合、変数nを変数nの親エレメントとして(S611)、変数nの示すノードの次に兄弟ノードが存在するか否かの判別ステップS608へ進む。
変数nの示すノードがルートエレメントである場合、XMLファイル解析処理を終了する(S612)。
<ベースエレメント解析処理の流れ>
次に、前記ベースエレメント解析処理ステップS606について詳細に説明する。
図7は、XMLDBプログラムによるベースエレメント解析処理の流れを示す図である。
ベースエレメント解析処理を開始する(S701)。
まず、インデックス情報マップより、処理対象のベースエレメントに対応するインデックス情報を取得する(S702)。具体的には、入力パラメーターのベースエレメントを特定するXパスをキーとする値、すなわちインデックス情報をインデックス情報マップより取得する。
次に、ベースエレメントのノードIDを取得する(S703)。ノードIDは正数であり、既存のIDと重複しないIDを選択する。より具体的には、例えば、既存IDの最大値に1を加えたものとすればよい。あるいは、ノードIDのための初期値が1であるカウンターを別途用意し、カウンターの値をノードIDとして取得してからカウンターに1を加える処理を行うようにしてもよい。
次に、ベースエレメントのポジションパスを作成する(S704)。
次に、ステップS703で取得したノードID、及びステップS704で作成したポジションパスからベースノード値を作成する(S705)。ここでは検索ノードのノード値は空にしておく。
次に、ステップS706から開始し、ステップS712で終了する処理を、入力パラメーターのベースエレメントを特定するXパスにおける検索ノードを特定する相対パス毎に繰り返す。このとき、検索ノードを特定する相対パスはステップS702で取得したインデックス情報に含まれている。この処理を繰り返し(1)とする。
繰り返し(1)では、まず、処理対象の検索ノードを特定する相対パスにおいて、ベースエレメント以下のノードから相対パスに合致するノードを選択する(S707)。ここで、ベースエレメント以下のノードとは、ベースエレメントの子孫ノード、及びベースエレメントと子孫ノードのアトリビュートである。
次に、ステップS708から開始し、ステップS711で終了する処理を、ステップS707で選択されたノード毎に繰り返す。この処理を繰り返し(2)とする。
繰り返し(2)では、まず、繰り返し(1)における処理対象の検索ノードを特定する相対パスを識別するIDと、繰り返し(2)の処理対象のノードのノード値とを、ベースエレメント値に追加する(S709)。
次に、処理対象ノードのノード値とステップS703で取得したベースエレメントのノードIDを検索インデックスマップに登録する(S710)。具体的には、処理対象ノードのノード値をキーとし、ベースエレメントのノードIDを値とするエントリーを、繰り返し(1)における処理対象の検索ノードを特定する相対パスに対する検索インデックスマップに追加する。
繰り返し(2)を終了する(S711)。
繰り返し(1)を終了する(S712)。
次に、ステップS703で取得したベースエレメントのノードIDと、ステップS705で作成し、ステップS709で更新したベースエレメント値をベースエレメント値マップに登録する(S713)。具体的には、ベースエレメントのノードIDをキーとし、ベースエレメント値を値とするエントリーを、ベースエレメント値マップに追加する。
ベースエレメント解析処理を終了する(S714)。
<検索処理の流れ>
次に、本実施例のXMLDBプログラムによる検索処理の流れを説明する。
検索処理は、アプリケーションプログラムからの指示によりXMLDBプログラムが実行する。入力パラメーターとして、ベースエレメントを特定するXパス、検索結果のノードを特定するベースエレメントからの相対パス、検索ノードを特定するベースエレメントからの相対パス、及び検索キーを渡す。検索結果として、ノードのリストがXMLDBプログラムからアプリケーションプログラムへ返される。
図8は、XMLDBプログラムによる検索処理の流れを示す図である。
検索処理を開始する(S801)。
まず、インデックス情報マップより、入力パラメーターのベースエレメントを特定するXパスに対応するインデックス情報を取得する(S802)。具体的には、入力パラメーターのベースエレメントを特定するXパスをキーとする値、すなわちインデックス情報をインデックス情報マップより取得する。
次に、入力パラメーターのベースエレメントを特定するXパスにおける入力パラメーターの検索ノードを特定する相対パスに対する検索インデックスマップから、入力パラメーターの検索キーをキーとする値、すなわちベースエレメントのノードIDを取得する(S803)。取得されるノードIDは0個の可能性もあるし、複数個の可能性もある。
次に、ステップS804から開始され、ステップS812で終了する処理を、ステップS803で取得したノードID毎に繰り返す。S803で取得したノードIDが0個の場合は、繰り返し処理を行わずにステップS814へ進む。
繰り返し処理では、まず、ベースエレメント値マップに処理対象のノードIDと同じノードIDのキーが存在するか否かを判別する(S805)。存在する場合はステップS806へ進む。存在しない場合はステップS815へ進む、すなわち、次の繰り返し処理へ進む、または最後の繰り返し処理の場合は繰り返しを終了する。
ステップS806では、ベースエレメント値マップから処理対象のノードIDをキーとする値、すなわちベースエレメント値を取得する。
次に、入力パラメーターの検索結果のノードを特定する相対パスが、ステップS802で取得したインデックス情報に含まれるか否かを判別する(S807)。含まれる場合はステップS808へ進み、含まれない場合はステップS809へ進む。
ステップS808では、ステップS806で取得したベースエレメント値より入力パラメーターの検索結果のノードを特定する相対パスで特定されるノードのノード値を取得する。具体的には、検索結果のノードを特定する相対パスがステップS802で取得したインデックス情報に含まれる順番により相対パスのIDを特定し、ベースエレメント値にその相対パスIDとともに含まれているノード値を取得する。なお、取得されるノード値は0個の可能性もあるし、複数個の可能性もある。この後、ステップS814へ進む。
ステップS809では、ステップS806で取得したベースエレメント値に含まれるXML文書IDとポジションパスを取得する。
次に、XML文書情報マップよりXMLファイルのファイルパスを取得する(S810)。具体的には、ステップS809で取得したXML文書IDをキーとする値、すなわちファイルパスをXML文書情報マップより取得する。
次に、ステップS810で取得したファイルパスにより特定されるXMLファイルをXMLパーサーにより解析する(S811)。
次に、ステップS811で解析されたXMLデータから、ステップS809で取得したポジションパスで特定されるベースエレメントを選択する(S812)。なお、ここでは必ず1つのエレメントが選択される。
次に、ステップS812で選択されたベースエレメントに対して、入力パラメーターの検索結果のノードを特定する相対パスで特定されるノードのノード値を取得する(S813)。なお、取得されるノード値は0個の可能性もあるし、複数個の可能性もある。この後、ステップS814へ進む。
ステップS814では、ステップS808またはステップS813で取得したノード値を検索結果リストに追加する。なお、取得したノード値が0個の場合は何も行わない。
繰り返し処理を終了する(S815)。
検索処理を終了する(S816)。検索結果リストがXMLDBプログラムからアプリケーションプログラムへ返される。
<削除処理の流れ>
次に、本実施例のXMLDBプログラムによる削除処理の流れについて説明する。
削除処理は、アプリケーションプログラムからの指示によりXMLDBプログラムが実行する。入力パラメーターとして、ベースエレメントを特定するXパス、削除対象のノードを特定するベースエレメントからの相対パス、検索ノードを特定するベースエレメントからの相対パス、及び検索キーを渡す。
図9は、XMLDBプログラムによる削除処理の流れを示す図である。
削除処理を開始する(S901)。次のステップS802及びステップS803の処理は、図8のXMLDBプログラムによる検索処理の流れを示す図におけるステップS802及びステップS803と同じである。
次に、ステップS904から開始し、ステップS916で終了する処理を、ステップS803で取得したベースエレメントのノードID毎に繰り返す。
ステップS806及びステップS809からS812の処理は、図8のXMLDBプログラムによる検索処理の流れを示す図におけるステップS806及びステップS809からS812と同じである。
次に、ステップS812で選択したベースエレメント以下のノードにおいて、削除対象ノードの相対パスで特定されるノードをコメントで置換する(S913)。なお、ここではベースエレメント自体が置換される可能性もある。
次に、ステップS913で更新されたXMLデータをステップS811で読み込んだファイルに上書きする(S914)。
次に、削除用のベースエレメント再解析処理を行う(S915)。ここでは、入力パラメーターとして、ステップS913においてベースエレメント自体が削除(より正確には置換)されたか否か、繰り返し処理の処理対象のベースエレメントのノードID、ステップS802で取得したインデックス情報、ステップS806で取得したベースエレメント値、ステップS809で取得したXML文書ID、及びステップS812で取得したベースエレメントを渡す。
繰り返し処理を終了する(S916)。
削除処理を終了する(S917)。
<削除用のベースエレメント再解析処理の流れ>
次に、ステップS915の削除用のベースエレメント再解析処理について説明する。
図10は、XMLDBプログラムによる削除用のベースエレメント再解析処理の流れを示す図である。
ベースエレメント再解析処理を開始する(S1001)。
まず、削除処理においてベースエレメント自体が削除されたか否かを判別する(S1002)。ベースエレメント自体が削除されたか否かは入力パラメーターにより判別できる。ベースエレメント自体が削除された場合はステップS1003へ進み、それ以外の場合はステップS1004へ進む。
ステップS1003では、ベースエレメント値マップから入力パラメーターのベースエレメントのノードIDをキーとするエントリーを削除する。その後、ステップS1014へ進む。
ステップS1004では、入力パラメーターのベースエレメント値からすべての相対パスIDとノード値を削除する。
ステップS706からステップS712は、図7のベースエレメント解析処理の流れを示す図におけるステップS706からステップS712と同じである。ただし、インデックス情報、ベースエレメント、ベースエレメントのノードID、及びベースエレメント値は、入力パラメーターのものを使用する。
次に、ベースエレメント値マップを更新する(S1013)。具体的には、ベースエレメント値マップにおける入力パラメーターのベースエレメントのノードIDをキーとする値を、入力パラメーターとして入力され、ステップS1004からステップS712までの処理で更新されたベースエレメント値で更新する。その後、ステップS1014へ進む。
ステップS1014では、XML文書情報マップを更新する。具体的には、XML文書情報マップよりXML文書IDをキーとする値、すなわちXML文書情報を取得し、取得したXML文書情報に含まれるファイルパスの示すファイルのファイルサイズ及び最終更新時刻を取得し、取得したファイルサイズ及び最終更新時刻によりXML文書情報を更新し、更新されたXML文書情報でXML文書情報マップの前記XML文書IDをキーとする値を更新する。
削除用のベースエレメント再解析処理を終了する(S1015)。
<更新処理の流れ>
次に、本実施例のXMLDBプログラムによる更新処理の流れについて説明する。
更新処理は、アプリケーションプログラムからの指示によりXMLDBプログラムが実行する。入力パラメーターとして、ベースエレメントを特定するXパス、更新対象のノードを特定するベースエレメントからの相対パス、更新に使用する新しいノード(以下、更新ノードと呼ぶ)、検索ノードを特定するベースエレメントからの相対パス、及び検索キーを渡す。
図11は、XMLDBプログラムによる更新処理の流れを示す図である。
更新処理を開始する(S1101)。
ステップS802及びステップS803の処理は、図8のXMLDBプログラムによる検索処理の流れを示す図におけるステップS802及びステップS803と同じである。
次に、ステップS1104から開始し、ステップS1116で終了する処理を、ステップS803で取得したベースエレメントのノードID毎に繰り返す。
ステップS806及びステップS809からS812の処理は、図8のXMLDBプログラムによる検索処理の流れを示す図におけるステップS806及びステップS809からS812と同じである。
次に、ステップS812で選択したベースエレメント以下のノードにおいて、更新対象ノードの相対パスで特定されるノードを更新ノードで置換する(S1113)。なお、ベースエレメント自体が更新されることはないものとする。すなわち、入力パラメーターの更新対象のノードを特定するベースエレメントからの相対パスにおいて、ベースエレメント自体を示すような相対パスが指定されることはない。
ステップS914の処理は、図9のXMLDBプログラムによる削除処理の流れを示す図におけるステップS914と同じである。
次に、更新用のベースエレメント再解析処理を行う(S1115)。ここでは、入力パラメーターとして、繰り返し処理の処理対象のベースエレメントのノードID、ステップS802で取得したインデックス情報、ステップS806で取得したベースエレメント値、ステップS809で取得したXML文書ID、及びステップS812で取得したベースエレメントを渡す。
繰り返し処理を終了する(S1116)。
更新処理を終了する(S1117)。
<更新用のベースエレメント再解析処理の流れ>
次に、ステップS1115の更新用のベースエレメント再解析処理について説明する。
図12は、XMLDBプログラムによる更新用のベースエレメント再解析処理の流れを示す図である。
ベースエレメント再解析処理を開始する(S1201)。
ステップS1004、S706からS712、S1013及びS1014の処理は、図10の削除用のベースエレメント再解析処理の流れを示す図におけるステップS1004、S706からS712、S1013及びS1014と同じである。
ベースエレメント再解析処理を終了する(S1215)。
<追加処理の流れ>
次に、本実施例のXMLDBプログラムによる追加処理の流れについて説明する。
追加処理は、アプリケーションプログラムからの指示によりXMLDBプログラムが実行する。入力パラメーターとして、追加対象のXMLファイルを特定するファイルパス、追加対象のノードを特定するXパス、追加対象ノードに対して追加する位置を示すフラグ、及び追加に使用する新しいノード(以下、追加ノードと呼ぶ)を渡す。
前記の追加対象ノードに対して追加する位置を示すフラグとは、追加ノードを追加対象ノードの最後の子ノードとして追加するか(この場合、追加対象ノードはエレメントでなければならない)、あるいは追加対象ノードの直前の兄弟ノードとして追加するかを示すフラグである。
図13は、XMLDBプログラムによる追加処理の流れを示す図である。
追加処理を開始する(S1301)。
ステップS503、S504、S508及びS509の処理は、図5のXMLファイル解析判断処理の流れを示す図におけるステップS503、S504、S508及びS509と同じである。ただし、ステップS504の後、及びステップS509の後はステップS1310へ進む。
ステップS1310では、入力パラメーターのファイルパスで特定されるファイルをXMLパーサーで解析する。
次に、ステップS1310で解析されたXMLデータから入力パラメーターの追加対象のノードを特定するXパスによって特定されるノードを選択する(S1311)。なお、選択されるノードは1つになるものとする。すなわち、入力パラメーターのXパスは1つのノードを特定するようなものであるとする。
次に、ステップS1311で選択された追加対象ノードに対して、入力パラメーターの追加位置を示すフラグにより指定される位置に、入力パラメーターの追加ノードを追加する(S1312)。
次に、追加ノード解析処理を行う(S1313)。ここでは、入力パラメーターとして、ステップS504で取得した、またはステップS508で作成したXML文書ID、及びステップS1312で追加した追加後の追加ノードを渡す。
追加処理を終了する(S1314)。
<追加ノード解析処理の流れ>
次に、ステップS1313の追加ノード解析処理について説明する。
図14は、XMLDBプログラムによる追加ノード解析処理の流れを示す図である。
追加ノード解析処理を開始する(S1401)。
次に、変数nを入力パラメーターの追加ノードとする(S1403)。
ステップS604からS609及びS611の処理は、図6のXMLファイル解析処理の流れを示す図におけるステップS604からS609及びS611と同じである。ただし、ステップS608でnの次に兄弟ノードは存在しないと判断された場合はステップS1410へ進む。
ステップS1410では、nが追加ノードであるか否かの判別処理を行う。nが追加ノードではないと判断された場合はステップS611へ進み、nが追加ノードであると判断された場合はステップS1412へ進む。
ステップS1412では、XML文書情報マップを更新する。具体的には、XML文書情報マップより入力パラメーターのXML文書IDをキーとする値、すなわちXML文書情報を取得し、取得したXML文書情報に含まれるファイルパスの示すファイルのファイルサイズ及び最終更新時刻を取得し、取得したファイルサイズ及び最終更新時刻によりXML文書情報を更新し、更新されたXML文書情報でXML文書情報マップの前記XML文書IDをキーとする値を更新する。
追加ノード解析処理を終了する(S1413)。
<XMLデータの具体例>
次に、XMLデータの具体例を用いて、本実施例の各処理をより具体的に説明する。
図15は、本実施例におけるXMLデータの具体例である。ただし、左側に縦に並ぶ数字は説明の便宜のために記した行番号であり、実際のXMLデータには含まれない。
本XMLデータ例は、全体が「SDVideo」という名前のエレメントになっており、これが本XMLデータ例のルートエレメントである。各XMLファイルには、1つのルートエレメントから成るXMLデータが格納される。
2行目から6行目や7行目から11行目等の「Movie」という名前のエレメントに、ビデオカメラに格納される1つの動画ファイルに対応するメタデータが格納される。具体的には、Movieエレメント以下に動画ファイルを識別するID(idアトリビュート)、イベント種別(Eventエレメント)、画質(Qualityエレメント)、撮影日時(Dateエレメント)等のデータが格納される。本実施例では、このように同一構造のXMLデータの断片(以下、XMLデータ単位と呼ぶ)が複数存在するようなXMLデータを格納する。なお、本XMLデータ例ではXMLデータ単位は1種類であるが、XMLデータの中に複数種類のXMLデータ単位が存在してもよい。
XMLデータ単位の最上位に位置するMovieエレメントが、本実施例のベースエレメントに相当するものである。ベースエレメントを特定するXパスは“/SDVideo/Movie”となる。
動画ファイルに対するイベント種別、画質等のメタデータを対象として検索等の処理を行うため、それらのデータを格納するノードが検索ノードとなる。例えば、イベント種別を格納するノードは厳密にはEventエレメントの子ノードであるテキストノードであり、検索ノードを特定するベースエレメントからの相対パスは“Event/text()”となる。また、画質を格納するノードは厳密にはQualityエレメントの子ノードであるテキストノードであり、検索ノードを特定するベースエレメントからの相対パスは“Quality/text()”となる。また、動画ファイルを識別するIDを格納するノードはidアトリビュートであり、検索ノードを特定するベースエレメントからの相対パスは“@id”となる。前記インデックスファイルにおける検索インデックスマップは、これらの検索ノードを特定する相対パス毎に1つずつ用意する。
例えば、前記検索処理において、イベント種別が“11”である動画のIDを取得する場合には、検索処理の入力パラメーターとして、ベースエレメントを特定するXパス“/SDVideo/Movie”、検索結果のノードを特定するベースエレメントからの相対パス“@id”、検索ノードを特定するベースエレメントからの相対パス“Event/text()”、及び検索キー“11”を渡す。
例えば、前記削除処理において、画質が“1”である動画のメタデータ全体を削除する場合には、削除処理の入力パラメーターとしてベースエレメントを特定するXパス“/SDVideo/Movie”、削除対象のノードを特定するベースエレメントからの相対パス“.”(ベースエレメントそのものを表す)、検索ノードを特定するベースエレメントからの相対パス“Quality/text()”、及び検索キー“1”を渡す。削除対象のノードは、図15の12行目にあるようなコメントで置換される。
例えば、前記更新処理において、動画ファイルを識別するIDが“001−001”である動画のイベント種別を“34”に更新する場合には、更新処理の入力パラメーターとして、ベースエレメントを特定するXパス“/SDVideo/Movie”、更新対象のノードを特定するベースエレメントからの相対パス“Event/text()”、更新ノード(ノード値が“34”であるテキストノード)、検索ノードを特定するベースエレメントからの相対パス“@id”、及び検索キー“001−001”を渡す。
例えば、前記追加処理において、図15のXMLデータの末尾に新たな動画ファイルのメタデータを追加する場合には、まず新たな動画ファイルのメタデータを含むMovieエレメントを最上位ノードとするXMLデータを作成し(これが追加ノードとなる)、追加処理の入力パラメーターとして、追加対象のXMLファイルを特定するファイルパス(図15のXMLデータが格納されているXMLファイルのファイルパス)、追加対象のノードを特定するXパス“/SDVideo”、追加対象ノードに対して追加する位置を示すフラグ(最後の子ノードを示すフラグ)、及び追加ノード(新たな動画ファイルのメタデータを含むXMLデータ)を渡す。
また、例えば、前記追加処理において、図15のXMLデータの13行目から始まるXMLデータ単位の前に新たな動画ファイルのメタデータを追加する場合には、まず新たな動画ファイルのメタデータを含むMovieエレメントを最上位ノードとするXMLデータを作成し(これが追加ノードとなる)、追加処理の入力パラメーターとして、追加対象のXMLファイルを特定するファイルパス(図15のXMLデータが格納されているXMLファイルのファイルパス)、追加対象のノードを特定するXパス“/SDVideo/Movie[@id=‘001−003’]”、追加対象ノードに対して追加する位置を示すフラグ(直前の兄弟ノードを示すフラグ)、及び追加ノード(新たな動画ファイルのメタデータを含むXMLデータ)を渡す。
<まとめ>
以上の構成により、ビデオカメラのメタデータをXMLによる構造化されたデータとして管理することが可能となる。
また、本発明は、上記した実施例の機能をデータ格納装置に実現させるためのプログラムを含むものである。これらのプログラムは、記録媒体から読みとられてデータ格納装置に取り込まれてもよいし、通信ネットワークを介して伝送されてデータ格納装置に取り込まれてもよい。
<インデックスファイルの詳細>
次に、インデックスファイルの図3で説明したデータベース層の構成について、より詳細に説明する。
図16は、XML文書IDマップ及びXML文書情報マップの構成図である。
XML文書IDマップ1601は、XML文書のファイルパスをキーとし、XML文書IDを値とするマップである。図16の例においては、ファイルパス“file1.xml”に対してID:1、ファイルパス“file2.xml”に対してID:2がそれぞれ割り当てられている。
XML文書情報マップ1602は、XML文書IDをキーとし、ファイルパス、ファイルサイズ、及びファイルの最終更新日時からなるXML文書情報を値とするマップである。図16の例においては、ID:1に対してXMLファイル1603の情報が、またID:1に対してXMLファイル1604の情報がそれぞれ割り当てられている。
図17は、インデックス情報マップの構成図である。
インデックス情報マップ1701は、ベースエレメントのXパスをキーとし、インデックス情報を値とするマップである。図17の例においては、インデックス情報マップに2つのレコードがあり、それぞれベースエレメント及び検索ノードの構成1702及び1703で示される構成のインデックス情報を格納している。
ベースエレメント及び検索ノードの構成1702に示される構成のインデックス情報においては、ルートエレメントがSDVideo、ベースエレメントがMovieであり、ベースエレメントのXパスは“/SDVideo/Movie”となる。検索ノードはMovieエレメントのidアトリビュート、及びEvent、Quality、Dateの各エレメントの子ノードとなるテキストノードであり、それらのベースエレメントMovieからの相対パスがインデックス情報に含まれる。
ベースエレメント及び検索ノードの構成1703についても同様である。
図18は、ベースエレメント値マップ(第1のインデックス構成要素)の構成図である。
ベースエレメント値マップ1801は、ベースエレメントのノードID(基準要素を一意に識別する情報)をキーとし、XML文書ID(その一意に識別された該基準要素を備える構造化データを有する構造化データファイルを特定する情報)、ポジションパス(その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報)、各検索ノードのノード値(該基準要素の下位に位置する各検索要素を特定する情報と、その各検索要素の内容情報)からなるベースエレメント値を値とするマップである。図18は、XMLデータ1802のMovieエレメントをベースエレメントとする例であり、ベースエレメント値マップ1801の各レコードがXMLデータ1802の各ベースエレメントに対応するベースエレメント値を格納する。
図19は、検索インデックスマップ(第2のインデックス構成要素)の構成図である。
検索インデックスマップ1901は、検索ノードのノード値(検索要素の内容情報)をキーとし、そのノード値を持つ検索ノードを子孫に持つベースエレメントのノードID(その内容情報を有する該検索要素を備える基準要素を一意に識別する情報)を値とするマップである。図19は検索要素を特定する情報(Event)により検索ノードがEventとして特定されるEventエレメント(正確にはEventエレメントの子ノードであるテキストノード)についての例であり、1種類のキーに対して1つまたは複数の値が格納されている。値に格納されているベースエレメントのノードIDは、ベースエレメント値マップ1902のキーに格納されているノードIDに対応する。
<本発明の応用例>
次に、実施例の具体的な応用例について説明する。
図20は、一実施例を適用した構造化データ格納装置をビデオカメラに応用する例における、ビデオカメラの液晶モニターに表示されるイベント一覧画面の例である。
本応用例では、利用者が撮影を開始する前にイベント登録のためのメニュー操作を行うと、図20のように予め機器内に記憶されている「子供」「運動会」等のイベントの一覧が表示される。イベント名の代わりに、イベントの種類を示すアイコン等を表示してもよい。
利用者が任意のイベントを選択すると、選択されたイベントが機器内に記憶される。その後、利用者が撮影を行うと、撮影された動画の属性情報のひとつとして選択されたイベントのIDが本発明の構造化データ格納装置に格納される。
次に、利用者が撮影した動画を視聴するときには、利用者がイベント選択のためのメニュー操作を行うと、図20のように「子供」「運動会」等のイベントの一覧が表示される。
利用者が任意のイベントを選択すると、本発明の構造化データ格納装置において選択されたイベントのIDを持つ動画を検索し、検索結果として取得された動画のサムネイル(代表画像)を図21のように一覧で表示される。利用者が表示された動画サムネイルの一覧から任意の動画を選択すると、選択された動画の再生が開始される。
本発明の構造化データ格納装置の概念を簡略的に示す図である。 本発明の構造化データ格納装置の一実施例を示す構成図である。 一実施例におけるインデックスファイルの概念的な構成図である。 一実施例におけるポジションパスのフォーマットを関数形式で表記した図である。 一実施例におけるXMLDBプログラムによるXMLファイル解析判断処理の流れを示す図である。 一実施例におけるXMLDBプログラムによるXMLファイル解析処理の流れを示す図である。 一実施例におけるXMLDBプログラムによるベースエレメント解析処理の流れを示す図である。 一実施例におけるXMLDBプログラムによる検索処理の流れを示す図である。 一実施例におけるXMLDBプログラムによる削除処理の流れを示す図である。 一実施例におけるXMLDBプログラムによる削除用のベースエレメント再解析処理の流れを示す図である。 一実施例におけるXMLDBプログラムによる更新処理の流れを示す図である。 一実施例におけるXMLDBプログラムによる更新用のベースエレメント再解析処理の流れを示す図である。 一実施例におけるXMLDBプログラムによる追加処理の流れを示す図である。 一実施例におけるXMLDBプログラムによる追加ノード解析処理の流れを示す図である。 一実施例におけるXMLデータの具体例である。 一実施例におけるXML文書IDマップ及びXML文書情報マップの構成図である。 一実施例におけるインデックス情報マップの構成図である。 一実施例におけるベースエレメント値マップの構成図である。 一実施例における検索インデックスマップの構成図である。 実施例の応用例におけるイベント一覧画面の例である。 実施例の応用例における動画一覧画面の例である。
符号の説明
101 XMLファイル
102 インデックスファイル
103 汎用XML処理手段
104 専用XML処理手段
201 ビデオカメラ
202 ハードディスク
203 動画ファイル
204 XMLファイル
205 インデックスファイル
206 アプリケーションプログラム
207 XMLDBプログラム
208 ユーザーインターフェース
209 USBインターフェース
210 パソコン
211 XMLエディター
1601 XML文書IDマップ
1602 XML文書情報マップ
1603 XMLファイル
1604 XMLファイル
1701 インデックス情報マップ
1702 ベースエレメント及び検索ノードの構成
1703 ベースエレメント及び検索ノードの構成
1801 ベースエレメント値マップ
1802 XMLデータ
1901 検索インデックスマップ
1902 ベースエレメント値マップ

Claims (9)

  1. 本装置内の記憶媒体に格納された構造化データファイルの閲覧・更新が外部機器から行える構造化データ格納装置において、
    構造化データを有する構造化データファイルを前記記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを前記記憶媒体に格納する格納手段と、
    前記記憶媒体内の構造化データファイルが前記外部装置により更新されたか否かを検出する検出手段と、
    前記検出手段が更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記格納手段によって前記記憶媒体におけるインデックスファイルを更新させるインデックス情報生成手段と、
    を備え、
    前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
    前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
    前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
    前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
    前記インデックス情報生成手段は、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成する手段である、
    ことを特徴とする構造化データ格納装置。
  2. 構造化データを有する構造化データファイルを、本装置に着脱自在の第1の記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを、本装置内に固定された第2の記憶媒体に格納する格納手段と、
    前記第1の記憶媒体内の構造化データファイルが外部装置により更新されたか否かを検出する検出手段と、
    前記検出手段が更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記格納手段によって前記第2の記憶媒体におけるインデックスファイルを更新させるインデックス情報生成手段と、
    を備え、
    前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
    前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
    前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
    前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
    前記インデックス情報生成手段は、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成する手段である、
    ことを特徴とする構造化データ格納装置。
  3. 構造化データを有する構造化データファイルを本装置に着脱自在の記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを前記記憶媒体に格納する格納手段と、
    前記記憶媒体内の構造化データファイルが外部装置により更新されたか否かを検出する検出手段と、
    前記検出手段が更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記格納手段によって前記記憶媒体におけるインデックスファイルを更新させるインデックス情報生成手段と、
    を備え、
    前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
    前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
    前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
    前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
    前記インデックス情報生成手段は、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成する手段である、
    ことを特徴とする構造化データ格納装置。
  4. 内蔵する記憶媒体に格納された構造化データファイルの閲覧・更新が外部機器から行える構造化データ格納装置における構造化データ格納プログラムであって、
    構造化データを有する構造化データファイルを前記記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを前記記憶媒体に格納する格納ステップと、
    前記記憶媒体内の構造化データファイルが前記外部装置により更新されたか否かを検出する検出ステップと、
    前記検出ステップが更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記記憶媒体におけるインデックスファイルを更新させるインデックス情報生成ステップと、
    を構造化データ格納装置に実行させる構造化データ格納プログラムであり、
    前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
    前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
    前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
    前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
    前記インデックス情報生成ステップは、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成するステップである、
    ことを特徴とする構造化データ格納プログラム。
  5. 記憶媒体に構造化データファイルの格納を行う構造化データ格納装置における構造化データ格納プログラムであって、
    構造化データを有する構造化データファイルを、構造化データ格納装置に着脱自在の第1の記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを、前記構造化データ格納装置に固定された第2の記憶媒体に格納する格納ステップと、
    前記第1の記憶媒体内の構造化データファイルが外部装置により更新されたか否かを検出する検出ステップと、
    前記検出ステップが更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記第2の記憶媒体におけるインデックスファイルを更新させるインデックス情報生成ステップと、
    を前記構造化データ格納装置に実行させる構造化データ格納プログラムであり、
    前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
    前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
    前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
    前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
    前記インデックス情報生成ステップは、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成するステップである、
    ことを特徴とする構造化データ格納プログラム。
  6. 記憶媒体に構造化データファイルの格納を行う構造化データ格納装置における構造化データ格納プログラムであって、
    構造化データを有する構造化データファイルを構造化データ格納装置に着脱自在の記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを前記着脱自在の記憶媒体に格納する格納ステップと、
    前記着脱自在の記憶媒体内の構造化データファイルが外部装置により更新されたか否かを検出する検出ステップと、
    前記検出ステップが更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記着脱自在の記憶媒体におけるインデックスファイルを更新させるインデックス情報生成ステップと、
    を前記構造化データ格納装置に実行させる構造化データ格納プログラムであり、
    前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
    前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
    前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
    前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
    前記インデックス情報生成ステップは、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成するステップである、
    ことを特徴とする構造化データ格納プログラム。
  7. 内蔵する記憶媒体に格納された構造化データファイルの閲覧・更新が外部機器から行える構造化データ格納装置における構造化データ格納方法であって、
    構造化データを有する構造化データファイルを前記記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを前記記憶媒体に格納する格納ステップと、
    前記記憶媒体内の構造化データファイルが前記外部装置により更新されたか否かを検出する検出ステップと、
    前記検出ステップが更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記記憶媒体におけるインデックスファイルを更新させるインデックス情報生成ステップと、
    を備え、
    前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
    前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
    前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
    前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
    前記インデックス情報生成ステップは、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成するステップである、
    ことを特徴とする構造化データ格納方法。
  8. 記憶媒体に構造化データファイルの格納を行う構造化データ格納装置における構造化データ格納方法であって、
    構造化データを有する構造化データファイルを、構造化データ格納装置に着脱自在の第1の記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを、前記構造化データ格納装置に固定された第2の記憶媒体に格納する格納ステップと、
    前記第1の記憶媒体内の構造化データファイルが外部装置により更新されたか否かを検出する検出ステップと、
    前記検出ステップが更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記第2の記憶媒体におけるインデックスファイルを更新させるインデックス情報生成ステップと、
    を備え、
    前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
    前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
    前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
    前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
    前記インデックス情報生成ステップは、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成するステップである、
    ことを特徴とする構造化データ格納方法。
  9. 記憶媒体に構造化データファイルの格納を行う構造化データ格納装置における構造化データ格納方法であって、
    構造化データを有する構造化データファイルを構造化データ格納装置に着脱自在の記憶媒体に格納すると共に、前記構造化データの検索のための情報であるインデックス情報を有するインデックスファイルを前記着脱自在の記憶媒体に格納する格納ステップと、
    前記着脱自在の記憶媒体内の構造化データファイルが外部装置により更新されたか否かを検出する検出ステップと、
    前記検出ステップが更新有りと検出した場合に、更新された構造化データファイルを解析してその構造化データファイルの有する構造化データに関する新たなインデックス情報を生成し、その新たなインデックス情報を用いて前記着脱自在の記憶媒体におけるインデックスファイルを更新させるインデックス情報生成ステップと、
    を備え、
    前記構造化データは階層構造の要素を備えた同一構成のデータ単位を複数有するものであり、各前記データ単位は各データ単位の最上位に位置する要素である基準要素と、その基準要素の下位に位置し検索対象となる要素である検索要素とを備えてなる構造化データであり、
    前記インデックス情報は第1のインデックス構成要素と第2のインデックス構成要素とを備え、
    前記第1のインデックス構成要素は、前記基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する各前記検索要素を特定する情報と、その各検索要素の内容情報とを関連付けて有する情報であり、
    前記第2のインデックス構成要素は、前記検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記基準要素を特定するための前記基準要素を一意に識別する情報とを関連付けて有する情報であり、
    前記インデックス情報生成ステップは、前記更新された構造化データファイルの解析を、前記更新された構造化データファイルの有する構造化データに含まれる基準要素を検出し、その検出した前記基準要素以下に存在する検索要素を検出して行い、新たな第1のインデックス構成要素と新たな第2のインデックス構成要素とを備えた前記新たなインデックス情報を生成するものであり、前記新たな第1のインデックス構成要素として、前記検出した基準要素を一意に識別する情報と、その一意に識別された該基準要素を備える前記構造化データを有する前記更新された構造化データファイルを特定する情報と、その特定された該構造化データファイルの有する該構造化データにおける該基準要素の位置を特定する情報と、該基準要素の下位に位置する前記検出した検索要素を特定する情報と、前記検出した検索要素の内容情報とを関連付けて有する情報を生成し、前記新たな第2のインデックス構成要素として、前記検出した検索要素を特定する情報と、その特定された該検索要素の内容情報と、その内容情報を有する該検索要素を備える前記検出した基準要素を特定するための前記検出した基準要素を一意に識別する情報とを関連付けて有する情報を生成するステップである、
    ことを特徴とする構造化データ格納方法。
JP2006323130A 2006-01-31 2006-11-30 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法 Pending JP2007265384A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006323130A JP2007265384A (ja) 2006-01-31 2006-11-30 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法
US11/699,345 US7580957B2 (en) 2006-01-31 2007-01-30 Structured data storage device and structured data storage method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006023129 2006-01-31
JP2006052134 2006-02-28
JP2006323130A JP2007265384A (ja) 2006-01-31 2006-11-30 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法

Publications (1)

Publication Number Publication Date
JP2007265384A true JP2007265384A (ja) 2007-10-11

Family

ID=38323355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006323130A Pending JP2007265384A (ja) 2006-01-31 2006-11-30 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法

Country Status (2)

Country Link
US (1) US7580957B2 (ja)
JP (1) JP2007265384A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265385A (ja) * 2006-01-31 2007-10-11 Victor Co Of Japan Ltd 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法
JP2007265386A (ja) * 2006-01-31 2007-10-11 Victor Co Of Japan Ltd 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG140510A1 (en) * 2006-09-01 2008-03-28 Yokogawa Electric Corp System and method for database indexing, searching and data retrieval
WO2009020567A2 (en) * 2007-08-03 2009-02-12 Syed Zafar Kazmi Method and system for generating an application
KR20090058660A (ko) * 2007-12-05 2009-06-10 삼성전자주식회사 휴대용 단말기에서 메타데이터 관리 방법 및 장치
US9697229B2 (en) * 2008-04-11 2017-07-04 Adobe Systems Incorporated Methods and systems for creating and storing metadata
US7917494B2 (en) * 2008-07-11 2011-03-29 Adobe Software Trading Company Limited System and method for a log-based data storage
US8676863B1 (en) * 2008-09-15 2014-03-18 Liberty Mutual Insurance Company Maintaining a relational database and its schema in response to a stream of XML messages based on one or more arbitrary and evolving XML schemas
EP2172853B1 (en) * 2008-10-01 2011-11-30 Software AG Database index and database for indexing text documents
WO2012039771A1 (en) * 2010-09-21 2012-03-29 Servio, Inc. Outsourcing tasks via a network
US9218411B2 (en) * 2012-08-07 2015-12-22 International Business Machines Corporation Incremental dynamic document index generation
US20140258832A1 (en) * 2013-03-11 2014-09-11 Dartmouth Journal Services, Inc. Computer Implemented System and Method for Author Editing of XML Documents With Structured Element Protection
US9489442B1 (en) * 2014-02-04 2016-11-08 Emc Corporation Prevention of circular event publication in publish/subscribe model using path vector
US9992261B2 (en) * 2014-03-13 2018-06-05 Canon Information And Imaging Solutions, Inc. System and method for forwarding a file
US10565178B1 (en) * 2015-03-11 2020-02-18 Fair Isaac Corporation Efficient storage and retrieval of XML data
CN105700825B (zh) * 2015-12-29 2018-10-19 歌尔科技有限公司 一种基于Android系统的缩略图存储方法和装置
JP6668948B2 (ja) * 2016-05-27 2020-03-18 富士通株式会社 ファイル判定プログラム、ファイル判定装置およびファイル判定方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09204442A (ja) * 1996-01-24 1997-08-05 Dainippon Screen Mfg Co Ltd ドキュメントデータ検索システム
JP2000148796A (ja) * 1998-09-03 2000-05-30 Jisedai Joho Hoso System Kenkyusho:Kk 映像インデックス情報を用いた映像検索方法および音声インデックス情報を用いた音声検索方法並びに映像検索システム
JP2001195406A (ja) * 2000-01-06 2001-07-19 Media Fusion Co Ltd データベース管理システム
JP2002318720A (ja) * 2001-04-19 2002-10-31 Oki Electric Ind Co Ltd コンテンツ配信管理システム
JP2003323427A (ja) * 2002-05-02 2003-11-14 Nippon Telegr & Teleph Corp <Ntt> Xml情報検索装置と方法、該方法の実行プログラム、および該方法の実行プログラムを記録した記録媒体
JP2004228780A (ja) * 2003-01-21 2004-08-12 Canon Inc 情報処理装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6175835B1 (en) * 1996-07-26 2001-01-16 Ori Software Development, Ltd. Layered index with a basic unbalanced partitioned index that allows a balanced structure of blocks
US6278992B1 (en) * 1997-03-19 2001-08-21 John Andrew Curtis Search engine using indexing method for storing and retrieving data
JP3396639B2 (ja) * 1998-09-30 2003-04-14 株式会社東芝 階層記憶装置及び階層記憶制御方法
JP3560043B2 (ja) 2002-11-25 2004-09-02 株式会社セック Xmlデータの格納方法及び格納装置、並びにプログラムおよびプログラムを記録した記録媒体
US7287068B1 (en) * 2002-12-13 2007-10-23 Bmc Software, Inc. System and method for updating devices that execute an operating system or application program directly from nonvolatile storage
US7707178B2 (en) * 2005-11-28 2010-04-27 Commvault Systems, Inc. Systems and methods for classifying and transferring information in a storage network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09204442A (ja) * 1996-01-24 1997-08-05 Dainippon Screen Mfg Co Ltd ドキュメントデータ検索システム
JP2000148796A (ja) * 1998-09-03 2000-05-30 Jisedai Joho Hoso System Kenkyusho:Kk 映像インデックス情報を用いた映像検索方法および音声インデックス情報を用いた音声検索方法並びに映像検索システム
JP2001195406A (ja) * 2000-01-06 2001-07-19 Media Fusion Co Ltd データベース管理システム
JP2002318720A (ja) * 2001-04-19 2002-10-31 Oki Electric Ind Co Ltd コンテンツ配信管理システム
JP2003323427A (ja) * 2002-05-02 2003-11-14 Nippon Telegr & Teleph Corp <Ntt> Xml情報検索装置と方法、該方法の実行プログラム、および該方法の実行プログラムを記録した記録媒体
JP2004228780A (ja) * 2003-01-21 2004-08-12 Canon Inc 情報処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265385A (ja) * 2006-01-31 2007-10-11 Victor Co Of Japan Ltd 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法
JP2007265386A (ja) * 2006-01-31 2007-10-11 Victor Co Of Japan Ltd 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法

Also Published As

Publication number Publication date
US20070179996A1 (en) 2007-08-02
US7580957B2 (en) 2009-08-25

Similar Documents

Publication Publication Date Title
JP2007265384A (ja) 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法
US8078627B2 (en) File management apparatus, method for controlling file management apparatus, computer program, and storage medium
JP4477689B2 (ja) 異なる情報システムのデータで協働アプリケーションにおけるドキュメントに注釈付与すること
JP3943880B2 (ja) 動画データ処理装置及び方法
JP4072302B2 (ja) データ処理方法及び装置及び記憶媒体
JP2010134920A (ja) 画像蓄積装置及びプログラム
JPWO2006098031A1 (ja) キーワード管理装置
EP1505602A1 (en) Recording/reproduction system, recording/reproduction method, program, and recording medium
JP5988798B2 (ja) 画像表示装置及びその制御方法、プログラム、並びに記憶媒体
US20080208829A1 (en) Method and apparatus for managing files and information storage medium storing the files
JP2007265383A (ja) 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法
JP2012064297A (ja) コンテンツファイル分類装置およびコンテンツファイル分類方法
JP2007265387A (ja) 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法
JP2007156680A (ja) ファイル管理装置
Echavarria et al. Semantically rich 3D documentation for the preservation of tangible heritage
JP2007265385A (ja) 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法
JP2007265386A (ja) 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法
JP2009098733A (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2006215811A (ja) ファイリング装置、検索管理方法、及びプログラム
JP2005244614A (ja) 電子カメラ装置、及び記録媒体
US20070055928A1 (en) User workflow lists to organize multimedia files
JP2004062216A (ja) データファイリング方法、データファイリング装置、記憶媒体、プログラム
JP6753190B2 (ja) 文書検索装置及びプログラム
KR102507487B1 (ko) 문서를 구성하는 페이지들을 빠르게 편집할 수 있도록 지원하기 위한 전용 문서 파일을 생성하는 전자 장치 및 그 동작 방법
Gruenpeter et al. Software Stories for landmark legacy code

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110311

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110712