【手続補正書】
【提出日】平成27年8月7日(2015.8.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クエリシステムを操作する方法であって、前記方法は、
データソースからオブジェクトを取り出し、前記取り出されたオブジェクトのそれぞれが、データおよび前記データを記述するメタデータを含み、
前記取り出された新しいオブジェクトのそれぞれに、前記オブジェクトの前記メタデータおよび前記オブジェクトの前記推論された要素のタイプに基づいて、前記新しいオブジェクトのためにスキーマを推論することによって累積スキーマを動的に生成すること、
、前記推論されたスキーマを既存の累積スキーマと併合すること、
前記取り出されたオブジェクトのそれぞれの前記データをストレージサービス内に記憶すること、
クエリをユーザから受信すること、
前記ストレージサービスによって記憶された前記データに基づいて前記クエリに応答することを含む方法。
【請求項２】
前記累積スキーマを関係スキーマに変換すること、
前記関係スキーマを前記ユーザに提示することであって、前記ユーザからの前記クエリが前記関係スキーマ上で構築される、当該提示することを更に含む、請求項１に記載の方法。
【請求項３】
前記取り出された第１のオブジェクトの前記データを第１のインデックスおよび配列インデックスの少なくとも１つ内に記憶することであって、前記ストレージサービスが前記第１のインデックスおよび前記配列インデックスを含む、当該記憶することと、
前記第１のインデックスおよび前記配列インデックスの少なくとも１つからのデータに
基づいて前記クエリに応答することを更に含む、請求項２に記載の方法。
【請求項４】
キーと値のペアとして前記第１のインデックス内の第１のオブジェクトからのデータを記憶することを更に含み、前記キーと値のペアの前記値は前記データであり、前記キーと値のペアの前記キーは、前記関係スキーマと矛盾しない前記データのパスおよび前記第１のオブジェクトの固有識別子に基づく、請求項３に記載の方法。
【請求項５】
前記キーと値のペアの前記キーは、前記第１のインデックスが、キーと値のペアを最初に前記パスによって、その後、前記固有識別子によって併置するように構築される請求項４に記載の方法。
【請求項６】
配列の一部であるデータが、前記配列インデックス内に記憶される、請求項３に記載の方法。
【請求項７】
配列の一部であるデータが、前記第１のインデックス内に記憶されない、請求項６に記載の方法。
【請求項８】
前記データは、キーと値のペアとして前記配列インデックス内に記憶され、前記キーと値のペアの前記値は前記データであり、前記キーと値のペアの前記キーは、前記関係スキーマと矛盾しない前記データのパス、前記取り出されたオブジェクトの固有識別子、および前記配列における前記データの位置のインデックスに基づく方法。
【請求項９】
前記データを補助配列インデックス内に選択的に記憶することを更に含み、
前記データは、キーと値のペアとして前記補助配列インデックス内に記憶され、前記キーと値のペアの前記値は前記データであり、前記キーと値のペアの前記キーは、前記関係スキーマと矛盾しない前記データのパス、前記配列における前記データの位置のインデックス、および前記オブジェクトの固有識別子に基づく請求項６に記載の方法。
【請求項１０】
前記第１のインデックスを順序を保つインデックスストア内に記憶することを更に含み、前記ストレージサービスは、前記順序を保つインデックスストアを含む請求項３に記載の方法。
【請求項１１】
マップとして前記累積スキーマのオブジェクトを選択的に識別することを更に含む、請求項２に記載の方法。
【請求項１２】
前記累積スキーマの前記オブジェクトは、前記取り出されたオブジェクト内の前記オブジェクトのフィールドの発生の頻度に基づいて、マップとして識別され、
前記累積スキーマを動的に生成する間に、前記発生の頻度を追跡すること、
累積スキーマの前記オブジェクトは、閾値より下の前記発生の頻度の平均に応答して、マップとして識別されること、
の少なくとも１つを更に含む、請求項１１に記載の方法。
【請求項１３】
前記マップに対応するデータをキーと値のペアとしてマップインデックスの中に記憶することを更に含み、前記キーと値のペアの前記値は前記データであり、前記キーと値のペアの前記キーは、前記関係スキーマと矛盾しない前記データのパス、前記第１のオブジェクトが前記データを提供する前記取り出されたオブジェクトの第１のオブジェクトの固有識別子、前記マップの結合キー、および前記マップ内の前記データのマップキーに基づき、
前記キーと値のペアの前記キーは、前記マップインデックスが、キーと値のペアを最初に前記パスによって、次に、前記固有識別子によって、次に、前記結合キーによって、その後、前記マップキーによって併置するように、構築され、または、
前記マップに対応するデータを補助マップインデックスの中にキーと値のペアとして記憶し、前記キーと値のペアの前記値は前記データであり、前記キーと値のペアの前記キーは、前記関係スキーマと矛盾しない前記データのパス、前記マップ内の前記データのマップキー、前記第１のオブジェクトが前記データを提供する、前記取り出されたオブジェクトの第１のオブジェクトの固有識別子、および前記マップの結合キーに基づき、
前記キーと値のペアの前記キーは、前記補助マップインデックスが、キーと値のペアを最初に前記パスによって、次に、前記マップキーによって、次に、前記固有識別子によって、その後、前記結合キーによって併置するように、構築される、請求項１１に記載の方法。
【請求項１４】
前記累積スキーマを前記関係スキーマに変換することは、前記累積スキーマのトップレベルにおける各要素についてカラムでルート表を生成することを含む、請求項２に記載の方法。
【請求項１５】
前記累積スキーマを前記関係スキーマに変換することは、前記累積スキーマにおける各配列について前記関係スキーマ内に追加表を生成することを含み、
前記追加表は、結合キーカラム、インデックスカラム、および、前記配列における各スカラ型データについての、値カラムを含み、前記方法は、前記配列が前記累積スキーマの前記トップレベルにあるときに、結合キーカラムを前記追加表および前記結合キーカラムに挿入することを更に含み、
前記配列が前記トップレベルより下の前記累積スキーマ内にネストされるときに、結合キーカラムを前記追加表におよび結合キーコラムを中間表に挿入することを更に含む、請求項１４に記載の方法。
【請求項１６】
前記累積スキーマを前記関係スキーマに変換することは、前記累積スキーマ内にあるよう決定された各マップについて、前記関係スキーマ内に追加表を生成することを更に含み、
前記追加表は結合キーカラム、キーカラム、および前記マップにおける各スカラ型データについての、値カラムを含み、
前記方法は、前記マップが前記累積スキーマの前記トップレベルにあるときに、結合キーカラムを前記追加表に、および結合キーコラムを前記ルート表に挿入し、および、前記マップが前記トップレベルより下の前記累積スキーマ内にネストされるときに、結合キーカラムを前記追加表におよび結合キーカラムを中間表に挿入することを更に含む、請求項１４に記載の方法。
【請求項１７】
取り出されたオブジェクトの第１のオブジェクトのデータ値をキーと値のペアとして値インデックス内に選択的に記憶することを更に含み、前記キーと値のペアの前記キーは、前記関係スキーマと矛盾しない前記データ値のパス、および前記データ値に基づき、前記キーと値のペアの前記値は、前記第１のオブジェクトの固有識別子に基づき、前記ストレージサービスは、前記値インデックスを含み、
前記キーと値のペアの前記キーは、前記値インデックスが、キーと値のペアを最初に前記パスによって、その後、前記データ値によって併置するように、構築され、または、
前記データ値が配列の一部であるとき、前記キーと値のペアの前記値は、前記配列内の前記データ値のインデックスに更に基づき、
前記キーと値のペアの前記値は、前記配列の結合キーに更に基づき、または、
前記データ値がマップの一部であるとき、前記キーと値のペアの前記値は、前記マップ内の前記データ値のマップキーに更に基づき、
前記キーと値のペアの前記値は、前記マップの結合キーに更に基づく、
請求項２に記載の方法。
【請求項１８】
メタデータを前記データソースから取得された生データに追加することによって、前記取り出されたオブジェクトを生成することを更に含み、
前記取り出されたオブジェクトのそれぞれについて、前記オブジェクトの前記データは値を含み、前記オブジェクトの前記メタデータは、前記値の名前を含み、
前記取り出されたオブジェクトのそれぞれのオブジェクトは、Ｊａｖａスクリプトオブジェクト表記（ＪＳＯＮ：ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）オブジェクトであり、
前記累積スキーマは、Ｊａｖａスクリプトオブジェクト表記（ＪＳＯＮ）スキーマであり、
前記取り出されたオブジェクトのそれぞれのオブジェクトを行インデックス内に選択的に記憶することを更に含み、前記ストレージサービスは前記行インデックスを含み、
前記取り出されたオブジェクトの第１のオブジェクトは、キーと値のペアとして前記行インデックス内に記憶され、前記キーと値のペアの前記キーは前記第１のオブジェクトの固有識別子であり、前記キーと値のペアの前記値は、前記第１のオブジェクト全体の直列化であるうちの少なくとも１つを含む請求項１に記載の方法。
【請求項１９】
前記関係スキーマは構造化クエリ言語（ＳＱＬ：Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）スキーマであり、前記クエリはＳＱＬであり、または、前記クエリはＨｉｖｅ‐ＱＬクエリ、ｊａｑｌクエリ、およびＸＱｕｅｒｙのうちの１つである、請求項２または請求項２に従属するいずれかの請求項に記載の方法。