JP2016085731A - Jsonドキュメントを表すexiドキュメントを符号化する方法及びコンピュータ可読媒体 - Google Patents

Jsonドキュメントを表すexiドキュメントを符号化する方法及びコンピュータ可読媒体 Download PDF

Info

Publication number
JP2016085731A
JP2016085731A JP2015156091A JP2015156091A JP2016085731A JP 2016085731 A JP2016085731 A JP 2016085731A JP 2015156091 A JP2015156091 A JP 2015156091A JP 2015156091 A JP2015156091 A JP 2015156091A JP 2016085731 A JP2016085731 A JP 2016085731A
Authority
JP
Japan
Prior art keywords
document
token
grammar
exi
json
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.)
Withdrawn
Application number
JP2015156091A
Other languages
English (en)
Inventor
卓己 上谷
Takuki Kamiya
卓己 上谷
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2016085731A publication Critical patent/JP2016085731A/ja
Withdrawn 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/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】2進形式のJavaScript Object Notation(JSON)の使用なしでJSONドキュメントを表すようEfficient XML Interchange(EXI)ドキュメントを符号化する方法等を提供する。
【解決手段】方法は、JSONドキュメントに関連するトークンの組をフェッチすることを有してよい。方法は、トークンの組に関連する1つ以上の終端タイプを決定することを更に有してよい。方法は、組に含まれるトークンの終端タイプに部分的に基づき、トークンの組に関連する1つ以上の現在の名称及び1つ以上の現在の距離を決定することを更に有してよい。方法は、JSONドキュメントに関連するトークンの組についての1つ以上の現在の名称及び1つ以上の現在の距離に基づき、JSONドキュメントを表すEXIドキュメントを符号化することを更に有してよい。
【選択図】図1B

Description

ここで論じられる実施形態は、JavaScript(登録商標) Object Notation(JSON)ドキュメントを表すためのEfficient XML Interchange(EXI)フォーマットに関する。
Extensible Markup Language(XML)は、人間及び機械の両方が読むことができる平文フォーマットにおいてドキュメントを符号化するための規則の組を定義するマークアップ言語である。XMLの1つのバージョンは、2008年11月26日付けでWorld Wide Web Consortium(W3C)によって作成されたXML1.0規格において定義される。この規格は、その全文を参照により本願に援用される。XML1.0規格は、適格且つ妥当であるテキストとしてXMLドキュメントを定義する。
XMLスキーマは、XML1.0規格自体によって課されている基本的な構文制約に加えて、そのようなドキュメントの構造及びコンテンツに対する制約に関して通常は表現されるXMLドキュメントの1タイプの記述である。それらの制約は、一般に、要素の順序を支配する文法規則と、コンテンツに関連するブーリンアン述語と、要素及び属性の中身を支配するデータタイプと、例えば一意性及び参照整合性制約などのより特別な規則との何らかの組み合わせを用いて表現される。XMLドキュメントがXMLスキーマに従うかどうかを確認するようチェックするプロセスは、バリデーションと呼ばれており、統語的適格性についてのXMLの中核概念とは別である。全てのXMLドキュメントは、適格であるものとして定義されるが、あるXMLドキュメントは、XMLプロセッサが“バリデーション”の最中であるところの妥当性のチェックにあり、その場合に、XMLドキュメントは、その関連するスキーマとの一致をチェックされる。
XMLドキュメントの平文の人間が読むことができる態様は、多くの状況において有益であり得るが、このような人間が読むことができる態様はまた、サイズが大きく、従って、メモリ又は記憶容量が限られた装置と互換性がないXMLドキュメントを生じさせることがある。XMLドキュメントのサイズを低減する努力は、従って、よりコンパクトな2進表現を支持して、この平文の人間が読むことができる態様をしばしば排してきた。
EXIは、XMLドキュメントが平文よりむしろ2進データフォーマットにおいて符号化される2進XMLフォーマットである。一般に、2進XMLフォーマットを用いることは、XMLドキュメントのサイズ及び冗長を低減し、XMLドキュメントをパースすることに伴う時間及び努力に関してコストを減らすことができる。EXIは、2011年3月10日付けでW3Cによって作成されたEXIフォーマット1.0規格において公式に定義されている。この規格は、その全文を参照により本願に援用される。XMLドキュメントは、別個のEXIストリームとしてEXIフォーマットにおいて符号化されてよい。
スキーマ情報が利用可能でない場合に、又は利用可能なスキーマ情報がEXIストリームの部分しか記述しない場合に、EXIは組み込み要素文法を用いる。組み込み要素文法は動的であり、EXIストリームを処理する間に学習された知識を反映するよう絶え間なく進化する。新しい組み込み要素文法は、新たに直面した要素のコンテンツを記述するために生成され、新しい文法プロダクションは、既存の組み込み文法を精緻化するために付加される。新たに学習された文法及びプロダクションは、EXIストリームにおける後続の要素をより有効に表すために使用される。
JSONは、軽量なデータ交換フォーマットである。JSONは、1つには人が読み書きするのが容易であると考えられることから、人気が高まりつつある。JSONは、如何なる言語にも依存しないテキストフォーマットであるが、例えばC、C++、C#、Java(登録商標)、JavaScript(登録商標)、Perl(登録商標)、Python(登録商標)、及び他などの、Cの流れをくむ言語になじみがあると考えられ得る仕様を使用する。JSONは、1つにはCの流れをくむ言語との仕様の重なりのために、データ交換言語と見なされ得る。
ここで請求される対象は、上記のもののような環境においてしか動作しないか、あるいはあらゆる欠点を解決する実施形態に制限されない。むしろ、この背景は、ここで記載される幾つかの実施形態が実施され得る一例となる技術を説明するためにのみ与えられている。
上記の背景技術を鑑み、本発明は、2進形式のJavaScript Object Notation(JSON)の使用なしでJSONドキュメントを表すようEfficient XML Interchange(EXI)ドキュメントを符号化する方法及び非一時的なコンピュータ可読媒体を提供することを目的とする。
実施形態の態様に従って、2進形式のJavaScript Object Notation(JSON)の使用なしでJSONドキュメントを表すようEfficient XML Interchange(EXI)ドキュメントを符号化する方法は、JSONドキュメントに関連するトークンの組をフェッチすることを有してよい。方法は、前記トークンの組に関連する1つ以上の終端タイプを決定することを更に有してよい。方法は、前記組に含まれるトークンの終端タイプに部分的に基づき、前記トークンの組に関連する1つ以上の現在の名称及び1つ以上の現在の距離を決定することを更に有してよい。方法は、前記JSONドキュメントに関連する前記トークンの組についての前記1つ以上の現在の名称及び前記1つ以上の現在の距離に基づき、前記JSONドキュメントを表すEXIドキュメントを符号化することを更に有してよい。
本発明の実施形態によれば、2進形式のJavaScript Object Notation(JSON)の使用なしでJSONドキュメントを表すようEfficient XML Interchange(EXI)ドキュメントを符号化することが可能となる。
例となる実施形態は、添付の図面の仕様を通じて、更なる特定及び詳細を持って記載され説明される。
例となるJavaScript Object Notation(JSON)表現システムのブロック図である。 例となるJavaScript Object Notation(JSON)表現システムのブロック図である。
Efficient XML Interchange(EXI)のための例となる組み込み要素文法を表す。
呼び出し前後のEXIのための例となる組み込み要素文法を表す。
EXI文法の一例のブロック図である。
EXIにおいてJSONオブジェクトを表すためのオブジェクト文法の一例のブロック図である。
EXIにおいてJSONアレイを表すためのアレイ文法の一例のブロック図である。
EXIにおいてJSONドキュメントを表すためのドキュメント文法の一例のブロック図である。
現在の名称及び現在の距離を決定する例となる方法のブロック図である。 現在の名称及び現在の距離を決定する例となる方法のブロック図である。 現在の名称及び現在の距離を決定する例となる方法のブロック図である。
文字列値パーティション及び値チャネルを決定する例となる方法のブロック図である。 文字列値パーティション及び値チャネルを決定する例となるシステムのブロック図である。
有効な名称及び有効な距離を決定する例となる方法のブロック図である。 オブジェクト文法及びアレイ文法を決定する例となるシステムのブロック図である。
オブジェクト文法の自己較正を提供する例となる方法のブロック図である。
アレイ文法の自己較正を提供する例となる方法のブロック図である。
実施形態の目的及び利点は、特許請求の範囲において特に指し示される要素、特徴、及び組み合わせによって少なくとも実現され達成される。
前述の概要及び以下の詳細な説明はいずれも例示及び説明であり、請求される発明の限定でない点が理解されるべきである。
ここで論じられる実施形態は、JavaScript Object Notation(JSON)ドキュメントを表すためのEfficient XML Interchange(EXI)フォーマットに関する。EXIフォーマットは、構造化されたドキュメントを効率的に表すよう設計されてよい。EXIフォーマットは、2014年2月11日付けでW3Cによって作成されたEfficient XML Interchange(EXI)フォーマット1.0(セカンドエディション)によって記載されてよい。この仕様は、その全文を参照により本願に援用される。1つ以上のEXIプロセッサは、ここで記載される技術に従って変更され、如何なるJavaScript Object Notation(JSON)ドキュメントも表すようEXIドキュメントを符号化するために使用されてよく、結果的に、数あるメトリクスの中でも、コンパクトさ及び処理効率の両方に関して、2進形式のJSON表現法を用いてJSONドキュメントを表すことに対する改善をもたらす。例となる2進形式のJSON表現法には、Concise Binary Object Representation(CBOR)がある。
本発明の実施形態は、添付の図面を参照して説明される。
図1Aは、ここで記載される少なくとも幾つかの実施形態に従って配置される、例となるJSON表現システム100のブロック図である。JSON表現システム100は、プロセッサベースのコンピュータ装置のコンポーネントとして実装されてよい。例えば、JSON表現システム100は、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、メインフレーム、又はあらゆる他のプロセッサベースのコンピュータ装置の1つ以上のコンポーネントを含んでよい。
JSON表現システム100は、JSONドキュメント105と、JSONのためのEXI文法110(ここでは“EXI文法110”と呼ばれる。)と、EXIプロセッサ125と、JSONドキュメント105を表すEXIドキュメント130とを含んでよい。EXIプロセッサ125はパーティションモジュール115を含んでよい。
JSONドキュメント105は、JSONフォーマットにおいて記述又は符号化されたあらゆるドキュメントを含んでよい。EXIドキュメント130は、JSONドキュメント105を表す、EXIフォーマットにおいて記述又は符号化されたあらゆるドキュメントを含んでよい。EXIドキュメント130は、EXIストリームであるか、あるいは、それを含んでよい。EXIプロセッサ125は、JSONドキュメントを解析し、そのJSONドキュメントを表すEXIドキュメントを符号化するよう構成されたコード及びルーチンを含んでよい。例えば、EXIプロセッサ125は、入力としてJSONドキュメント105を受け取り、JSONドキュメント105を表すEXIドキュメント130を出力する。代わりに、EXIプロセッサ125は、ハードウェアにおいて実装されてよく、あるいは、ハードウェア並びにコード及び/又はルーチンの組み合わせを含んでよい。
一実施形態において、EXIプロセッサ125は、パーティションモジュール115又はEXI文法110を含む。EXIプロセッサ125は、1つ以上のEXIエンコーダ、EXIデコーダ、又はEXIプロセッサ125の機能性を提供するよう構成された他のEXIコード及びルーチンを更に含んでよい。EXIプロセッサ、EXIエンコーダ、EXIデコーダ、並びに他のEXIコード及びルーチンの例は、Efficient XML Interchange(EXI)フォーマット1.0(セカンドエディション)において記載されてよい。この仕様は、その全文を参照により本願に援用される。
EXIプロセッサ125は、JSON入力若しくはJSON出力のための、又はJSON入力及びJSON出力の両方ためのサポートを含んでよい。EXIプロセッサ125は、2進形式のJSON表現法の使用なしでJSONドキュメント105を表すEXIドキュメント130を符号化するよう構成されてよい。例えば、EXIプロセッサ125は、JSONドキュメント105のコンパクションのためのGZipファイルフォーマット又はConcise Binary Object Representation(CBOR)の使用なしでJSONドキュメント105を表すEXIドキュメント130を符号化するよう構成されてよい。パーティションモジュール115及びEXI文法110については、これより、幾つかの実施形態に従って記載される。
パーティションモジュール115は、JSONドキュメントを解析し、指名されたオブジェクトからの距離に基づきJSONドキュメントの1つ以上の要素を区分化するよう構成されたコード及びルーチンを含んでよい。例えば、パーティションモジュール115は、図10Bを参照して後述されるようにオブジェクト文法1016を決定するために、指名されたオブジェクトからの距離を用いてJSONドキュメント105の1つ以上のオブジェクトを区分化してよい。パーティションモジュール115はまた、図10Bを参照して後述されるようにアレイ文法1018を決定するために、指名されたオブジェクトからの距離を用いてJSONドキュメント105の1つ以上のアレイを区分化してよい。パーティションモジュール115はまた、図9Bを参照して後述されるように、文字列値パーティション916又は値チャネル918を決定してよい。幾つかの実施形態において、JSON表現システム100は、JSONドキュメント105、EXI文法110、オブジェクト文法1016、アレイ文法1018、文字列値パーティション916、又は値チャネル918のうちの1つ以上に基づき、JSONドキュメント105を記述するEXIドキュメント130を符号化してよい。
一実施形態において、EXIプロセッサ125又はパーティションモジュール115は、プロセッサベースのコンピュータ装置(図1Bを参照)によって実行される場合に、図8A乃至12を参照して後述される方法800、900、1000、1100、1200の1つ以上のブロックを実施するよう構成されたコード及びルーチンを含んでよい。パーティションモジュール115は、図1B及び8A乃至12を参照して以下でより詳細に記載される。
EXI文法110は、EXIプロセッサ125がJSONドキュメントを入力として受け取り、そのJSONドキュメント105を表すEXIドキュメント130を出力として符号化することを可能にするよう構成されたEXI文法を含んでよい。例えば、EXIプロセッサ125は、JSONドキュメント105及びEXI文法110を入力として受け取り、JSONドキュメント105及びEXI文法110に基づき、JSONドキュメント105を表すEXIドキュメント130を出力として符号化するよう構成される。EXIプロセッサ125は、EXI文法110をロードし、EXI文法110に基づきJSONドキュメント105を解析してよい。EXI文法110の例は、図9を参照して以下でより詳細に記載される。
図1Bは、ここで記載される少なくとも一実施形態に従って配置される、例となるJSON表現システム100のブロック図である。図1BのJSON表現システム100は、図1Aを参照して上述されたJSON表現システム100の例となる実施形態である。幾つかの実施形態において、JSON表現システム100は、プロセッサベースのコンピュータ装置を含んでよい。例えば、JSON表現システム100は、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、メインフレーム、又はあらゆる他のプロセッサベースのコンピュータ装置を含んでよい。幾つかの実施形態において、JSON表現システム100は、図8A乃至12を参照して後述される方法800、900、1000、1100、1200の1つ以上のブロックを実行するよう構成された特殊用途のプロセッサベースのコンピュータ装置を含んでよい。
JSON表現システム100は、EXIプロセッサ125と、プロセッシング装置160と、メモリ170とを含んでよい。JSON表現システム100の様々なコンポーネントは、バス171を介して互いと通信上結合されてよい。
EXIプロセッサ125は、パーティションモジュール115を含んでよい。EXIプロセッサ125及びパーティションモジュール115は、図1Aを参照して上述されており、それらの説明はここで繰り返されない。
プロセッシング装置160は、計算を実行し且つ電子表示信号をディスプレイ装置へ供給するよう、算術論理演算ユニット、マイクロプロセッサ、汎用コントローラ、又は何らかの他のプロセッサアレイを含んでよい。プロセッシング装置160は、データ信号を処理し、複数命令セットコンピュータ(CISC;complex instruction set computer)アーキテクチャ、縮小命令セットコンピュータ(RISC;reduced instruction set computer)アーキテクチャ、又は命令セットの組み合わせを実装するアーキテクチャを含む様々なコンピュータアーキテクチャを含んでよい。図1Bは単一のプロセッシング装置160を含むが、複数のプロセッシング装置160が含まれてよい。他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ、及び物理的構成が可能である。
一実施形態において、JSON表現システム100は、プロセッシング装置160によって実行される場合に、図8A乃至12を参照して後述される方法800、900、1000、1100、1200の1つ以上のブロックを実行するか又はその実行を制御するよう構成されたコード及びルーチンを含んでよい。
メモリ170は、プロセッシング装置160によって実行され得る命令及び/又はデータを記憶してよい。命令及び/又はデータは、ここで記載される技術を実行するためのコードを含んでよい。幾つかの実施形態において、命令は、プロセッシング装置160に特定の機能又は機能のグループを実行させる命令及びデータを含んでよい。
幾つかの実施形態において、メモリ170は、コンピュータ実行可能命令又はデータ構造を搬送するか又は記憶されるコンピュータ可読媒体を含んでよい。そのようなコンピュータ可読媒体は、コンピュータ可読媒体に記憶されているコンピュータ実行可能命令を実行するようプログラムされ得るプロセッシング装置160によってアクセスされ得るあらゆる利用可能な媒体であってよい。一例として、制限なしに、そのようなコンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、読出専用メモリ(ROM)、電気的消去可能なプログラム可能読出専用メモリ(EEPROM)、コンパクトディスク型読出専用メモリ(CD−ROM)若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶装置、フラッシュメモリ装置(例えば、ソリッドステートメモリ装置)、又はコンピュータ実行可能命令若しくはデータ構造の形で所望のプログラムコードを搬送若しくは記憶するのに使用され且つプロセッシング装置160によってアクセスされ得るあらゆる他の非一時的な記憶媒体を含む非一時的なコンピュータ可読記憶媒体を含んでよい。メモリ170は、プロセッシング装置160によってアクセスされて実行され得る実行可能命令を記憶する有形な又は非一時的なコンピュータ可読媒体であってよい。上記のものの組み合わせもコンピュータ可読媒体の適用範囲内に含まれてよい。
描かれている実施形態では、メモリ170は、EXI文法110と、JSONドキュメント105と、JSONドキュメント105を表すEXIドキュメント130と、組み込み要素文法197と、区分文字列テーブル195と、区分圧縮193とを記憶してよい。
任意に、幾つかの実施形態において、メモリ170は、パーティションモジュール115によってその機能性を提供するために使用され得るあらゆる他のデータを記憶してよい。例えば、メモリ170は、標準関数又はカスタム関数の1つ以上のライブラリを記憶してよい。幾つかの実施形態において、メモリ170は、1つ以上のハッシュテーブルを記憶してよい。例えば、メモリ170は、図9B及び10Bを参照して後述されるハッシュテーブル912、914、1012、1015のうちの1つ以上を記憶してよい。幾つかの実施形態において、EXIプロセッサ125又はパーティションモジュール115は、メモリ170に記憶されており且つプロセッシング装置160によって実行されるコード及びルーチンを含んでよい。
EXI文法110、JSONドキュメント105、及びEXIドキュメント130は図1Aを参照して上述されており、それらの説明はここで繰り返されない。
一実施形態において、組み込み要素文法197、区分文字列テーブル195、及び区分圧縮193は、JSONドキュメント105を表すEXIドキュメント130の要素である。
組み込み要素文法197は、EXI組み込み要素文法を含んでよい。組み込み要素文法197の例は、図2及び3を参照して後述される。EXIプロセッサ125は、JSONドキュメント105を表すEXIドキュメント130を符号化するために組み込み要素文法197を使用してよい。
区分文字列テーブル195は、1つ以上の文字列値の表現を可能にする文字列テーブルを含んでよい。例えば、区分文字列テーブル195は、JSONドキュメント105に関連する1つ以上の文字列値を表すデータを含む文字列テーブルを含んでよい。
区分圧縮193は、値チャネルに区分化された圧縮を含んでよい。例えば、区分圧縮は、図9Bを参照して後述される値チャネル918に区分化された圧縮を含んでよい。区分圧縮193は、JSONドキュメント105を表すEXI圧縮を含んでよい。一実施形態において、区分圧縮193は、1つ以上のEXI圧縮チャネルに区分化された統合冗長に基づくEXI圧縮を含んでよい。
幾つかの実施形態において、JSON表現システム100は、EXI文法110、組み込み要素文法197、区分文字列テーブル195、又は区分圧縮193のうちの1つ以上を用いて、JSONドキュメント105を表すEXIドキュメント130を符号化してよい。
幾つかの実施形態において、組み込み要素文法197、区分文字列テーブル195、及び区分圧縮193は、JSONドキュメント105に含まれる1つ以上の名称に基づき区分化される。例えば、それらの要素は、JSONドキュメント105に含まれる1つ以上の要素名又は属性名に基づき区分化されてよい。幾つかの実施形態において、それらの要素は、パーティションモジュール115によって区分化されてよい。区分文字列テーブル195又は区分圧縮193は、ハッシュ関数を用いて区分化されてよい。区分化のために使用され得る例となるハッシュテーブルは、図9Bの要素912及び914を参照して後述される。
幾つかの実施形態において、JSONドキュメント105に含まれる1つ以上の名称に基づき組み込み要素文法197、区分文字列テーブル195、及び区分圧縮193を区分化することは、有利なことには、それらの要素の夫々をより効率的に機能させることができる。例えば、JSONドキュメント105に含まれる1つ以上の名称に基づき組み込み要素文法197を区分化することは、組み込み要素文法197がJSONドキュメント105の夫々の名称についてのより正確な文法較正を備えることをもたらすことができる。
幾つかの実施形態において、JSONドキュメント105に含まれる1つ以上の名称に基づき文字列テーブル195を区分化することは、区分化された文字列テーブル195について、区分化されていない文字列テーブルよりも小さいインデックス数をもたらし、それによって、JSONドキュメント105を表すためのより少ないビット及びより効率的な符号化をもたらすことができる。
幾つかの実施形態において、JSONドキュメント105に含まれる1つ以上の名称に基づき圧縮193を区分化することは、同じ名称が類似したデータを提供することをもたらし、それによって、EXIドキュメント130をストリーミングするためのより高い圧縮率、より高い処理効率、及びより高い従順性をもたらすことができる。
幾つかの実施形態において、パーティションモジュール115は、JSONドキュメント105、EXIドキュメント130、又はJSONドキュメント105若しくはEXIドキュメント130の部分を1つ以上の重なり合わないパーティションに分割してよい。EXIプロセッサ125又はパーティションモジュール115は、ユーザがJSONドキュメント105又はEXIドキュメント130を編集することを可能にする機能性を含んでよい。例えば、EXIプロセッサ125は、ユーザがメモリ170に記憶されているJSONドキュメント105、EXIドキュメント130、又はあらゆる他のドキュメントを編集することを可能にするよう構成されたコード及びルーチンを含むテキストエディタモジュール(図示せず。)を含んでよい。これは後述される。上述されたように、メモリ170は、例えば、関数の1つ以上のライブラリ(図示せず。)を含む、パーティションモジュール115によってその機能性を提供するために使用される他のデータを記憶してよい。パーティションモジュール115は、あらゆるドキュメントについて1つ以上の明示的なパーティションを定義してよい。パーティションモジュール115は、それらを、メモリ170のライブラリのうちの1つに記憶されているパーティション関数のインスタンスと関連することによって、ドキュメントを区分化してよい。幾つかの実施形態において、パーティションモジュール115は、1つ以上のハッシュ関数又は1つ以上のハッシュテーブルを用いてドキュメントを区分化してよい。パーティション関数は、パーティションモジュール115の要素であってよい。
幾つかの実施形態において、パーティションモジュール115のパーティション関数は、パーティションスキャナ(図示せず。)を含んでよい。パーティションスキャナは、JSONドキュメント105のための1つ以上のパーティションを定義するよう構成されたコード及びルーチンを含んでよい。パーティションスキャナは、JSONドキュメント105の範囲を決定し、JSONドキュメント105のその範囲についてのパーティションの夫々を記述する1つ以上のトークンの組を特定してよい。パーティションモジュール115は、JSONドキュメント105を表すようEXIドキュメント130を生成し、パーティションスキャナは、EXIドキュメント130がJSONドキュメント105を表すように、JSONドキュメント105において特定されたトークンの組に部分的に基づきEXIドキュメント130について1つ以上のトークンを決定してよい。
幾つかの実施形態において、パーティションモジュール115は、部分的にEXI文法110に基づき、その機能性を提供してよい。パーティションモジュール115のパーティション関数又はパーティションスキャナは、プロセッシング装置160によって実行される場合に、図8A乃至12を参照して後述される方法800、900、1000、1100、1200の1つ以上のブロックを実施するよう構成されてよい。
パーティションモジュール115は、パーティションモジュール115によって特定されるJSONドキュメント105に含まれている要素の名称によって、組み込み要素文法197、区分文字列テーブル195、及び区分圧縮193のうちの1つ以上を区分化してよい。しかし、JSONを用いて符号化されたデータは、無名の部分を含むことがある。一実施形態において、JSONドキュメント105は、“オブジェクト”データタイプが使用され得るたびに“オブジェクト”根の全ての子が名を付けられるように構成されてよい。子は“オブジェクト”タイプ又は“アレイ”タイプを含んでよい。然るに、パーティションモジュール115は、(1)最も近いコンテナ(すなわち、最も近い“オブジェクト”又は“アレイ”)の名称と、(2)最も近いコンテナからの距離とを用いて、組み込み要素文法197、区分文字列テーブル195、及び区分圧縮193を区分化するよう構成されてよい。そのような区分化の例は、図9B及び10Bを参照して後述される。
ここで使用されるように、語「モジュール」又は「コンポーネント」は、JSON表現システム100において記憶され及び/又はそれによって実行され得るモジュール若しくはコンポーネント及び/又はソフトウェアオブジェクト若しくはソフトウェアルーチンの動作を実行するよう構成された具体的なハードウェア実装をいう。幾つかの実施形態において、ここで記載される種々のコンポーネント及びモジュールは、コンピュータシステムにおいて(例えば、別々のスレッドとして)実行するオブジェクト又はプロセスとして実装されてよい。ここで記載されるシステム及び方法の幾つかは、概して、ソフトウェア(JSON表現システム100において記憶され及び/又はそれによって実行される。)において実装されるものとして記載されるが、特定のハードウェア実装又はソフトウェア及び具体的なハードウェア実装の組み合わせも可能であり、考えられている。本明細書において、「コンピュータエンティティ」は、ここで定義されるあらゆるコンピュータシステム、又は例えばJSON表現システム100などのコンピュータシステムにおいて実行されるあらゆるモジュール若しくはモジュールの組み合わせを含んでよい。
図2は、EXIのための例となる組み込み要素文法200を表す。組み込み要素文法200は、例えば、JSONドキュメント105を復号するか又はJSONドキュメント105を表すEXIドキュメント130を符号化する場合にEXIプロセッサ125によって用いられてよい。組み込み要素文法200は、1つ以上のトークンを含んでよい。トークンはEXI文法表記であってよい。トークンは、異なったイベントを記述してよい。例えば、組み込み要素文法200は、次のトークン:EE、AT(*)、SE(*)、及びCHのうちの1つ以上を含んでよい。EEトークンは、終了要素(End Element)EXIイベントタイプに対応してよい。AT(*)トークンは、属性(Attribute)EXIイベントタイプに対応してよい。SE(*)トークンは、開始要素(Start Element)EXIイベントタイプに対応してよい。CHトークンは、文字(Characters)イベントタイプに対応してよい。
図3は、組み込み要素文法200の例となる呼び出しを表す。例となる組み込み要素文法200は、図2を参照して上述されており、その説明はここで繰り返されない。要素300は、組み込み要素文法200に含まれるSE(*)トークンの呼び出し305の後の組み込み要素文法200の例を表す。この例において、SE(*)トークンは、要素SE(A)により呼び出し305されてよい。SE(*)トークンは、SE(*)トークンの呼び出し305を示すよう組み込み要素文法200において太字により表されてよい。要素300を参照すると、新しいプロダクションSE(A)は、呼び出し305の結果として、スタックの一番上に挿入されてよい。SE(A)トークンは、SE(*)の呼び出し305により生じた新しいプロダクションをSE(A)により示すよう要素300において太字により表されてよい。新しいプロダクションSE(A)は、次にEXIプロセッサ125がSE(A)のインスタンスを特定するときに呼び出される。SE(A)プロダクションの呼び出しは、有利なことには、SEトークンを表すビットの削減をもたらすことができる。然るに、図3の記載は、如何にしてEXIプロセッサが組み込み要素文法200を動的に拡張することができるかの例を説明する。
図4は、EXIプロセッサ125がJSONドキュメント105を表すEXIドキュメント130を符号化することを可能にするための図1A及び1BのEXI文法110のブロック図を含む。EXI文法110は、図1を参照して上述されており。この説明はここで繰り返されない。この例では、EXI文法110は、オブジェクト文法405、アレイ文法410、及びドキュメント文法415を含んでよい。
図1A、1B、及び4を組み合わせて参照して、オブジェクト文法405は、EXIプロセッサ125に入力され得るJSONドキュメント105に含まれる1つ以上のJSONオブジェクトを記述する動的な文法を含んでよい。JSONドキュメント105において特定される夫々の名称について1つのオブジェクト文法405が存在してよい。例えば、EXI文法110は、JSONドキュメント105に含まれる夫々の名称について1つのオブジェクト文法405を含む。オブジェクト文法405は、図5を参照して以下でより詳細に記載される。
アレイ文法410は、EXIプロセッサ125に入力され得るJSONドキュメント105に含まれる1つ以上のJSONアレイを記述する動的な文法を含んでよい。JSONドキュメント105において特定される夫々の名称について1つのアレイ文法410が存在してよい。例えば、EXI文法110は、JSONドキュメント105に含まれる夫々の名称について1つのアレイ文法410を含む。アレイ文法410は、図6を参照して以下でより詳細に記載される。
ドキュメント文法415は、EXIプロセッサ125に入力され得るJSONドキュメント105を記述する静的な文法を含んでよい。ドキュメント文法415は、JSONドキュメント105を表すよう構成された不変の文法を含んでよい。ドキュメント文法415は、図12を参照して以下でより詳細に記載される。
図5は、図4のオブジェクト文法405の実施形態を表す。図5で表されているオブジェクト文法405の実施形態は、次のようなオブジェクト要素:EO、SV(*)Object、NV(*)Object、BV(*)Object、SO(*)Object、SA(*)Object、及びNL(*)Objectを含んでよい。オブジェクト文法キー505は、オブジェクト文法405に含まれる異なる終端タイプを記述してよい。“(*)”表記は、あらゆるオブジェクト名に適合するワイルドカードを表してよい。
オブジェクト文法405における夫々のオブジェクトは、対応するイベントコードを有してよい。オブジェクトとイベントコードとの組み合わせは、プロダクションと呼ばれてよい。例えば、EOオブジェクト及び対応するイベントコード“0”はEOプロダクションを形成し、SV(*)Object及び対応するイベントコード“1.0”はSVプロダクションを形成する。
オブジェクト文法405のプロダクションのためのイベントコード長は、割り当てられているイベントコードに含まれる数字の個数によって決定されてよい。例えば、オブジェクト文法405において表されているEOプロダクションのイベントコード長は“1”であってよく、SV、NV、及びBVプロダクションのイベントコード長は“2”であってよい。同様に、SO、SA、及びNLプロダクションのイベントコード長は“3”であってよい。図1及び1Bを参照して上述されたEXIプロセッサ125又はパーティションモジュール115は、オブジェクト文法405に含まれるプロダクションのうちの1つ以上を呼び出してよい。
一実施形態において、“1”よりも長いイベントコード長を持ったオブジェクト文法405に含まれるプロダクション(図5に表されるEO以外の全てのプロダクション)の呼び出しは、次のステップのうちの1つ以上が実行されることを生じさせ得る:(1)具体的な名称を持った新しいプロダクションは、“0”に設定されたイベントコードを伴ってスタックの一番上に挿入されてよい;そして、(2)オブジェクト文法405における残りのイベントコードは1だけシフトされる。例えば、SO(*)は、要素SO(A)により呼び出され得るとする。SO(A)は、“0”に設定されたイベントコードを伴ってスタックの一番上に移動されてよい。EOは、これより、“1”に設定されたイベントコードを有してよく、SV(*)は、これより、“2.0”に設定されたイベントコードを有してよく、スタックにおける他のプロダクションは、NL(*)が“2.3.2”に設定され得るように、同様に1ずつシフトされてよい。
図6は、図4のアレイ文法410の実施形態を表す。図6で表されているアレイ文法410の実施形態は、次のようなアレイ要素:EA、SO、SA、SV、NV、BV、及びNLを含む。アレイ文法キー605は、アレイ文法410に含まれる終端タイプを記述してよい。
アレイ文法410における夫々のアレイは、対応するイベントコードを有してよい。アレイとイベントコードとの組み合わせは、プロダクションと呼ばれてよい。例えば、EOアレイ及び対応するイベントコード“0”はEAプロダクションを形成し、SOアレイ及び対応するイベントコード“1.0”はSOプロダクションを形成する。
アレイ文法410のプロダクションのためのイベントコード長は、割り当てられているイベントコードに含まれる数字の個数によって決定されてよい。例えば、アレイ文法410において表されているEAプロダクションのイベントコード長は“1”であってよく、SO及びSAプロダクションのイベントコード長は“2”であってよい。同様に、SV、NV、BV、及びNLプロダクションのイベントコード長は“3”であってよい。図1及び1Bを参照して上述されたEXIプロセッサ125又はパーティションモジュール115は、アレイ文法410に含まれるプロダクションのうちの1つ以上を呼び出してよい。
一実施形態において、“1”よりも長いイベントコード長を持ったアレイ文法410に含まれるプロダクション(図6に表されるEA以外の全てのプロダクション)の呼び出しは、次のステップのうちの1つ以上が実行されることを生じさせ得る:(1)同じプロダクションは、“0”に設定されたイベントコードを伴ってスタックの一番上に挿入されてよい;そして、(2)アレイ文法410における残りのイベントコードは1だけシフトされる。例えば、SAが呼び出され得るとする。SAは、“0”に設定されたイベントコードを伴ってスタックの一番上に移動されてよい。EAは、これより、“1”に設定されたイベントコードを有してよく、SO)は、これより、“2.0”に設定されたイベントコードを有してよく、スタックにおける他のプロダクションは、NL(*)が“2.2.3”に設定され得るように、同様に1ずつシフトされてよい。
図7は、図4のドキュメント文法415の実施形態を表す。図7で表されているドキュメント文法415の実施形態は、次のようなドキュメント要素:SO、SA、SV、NV、BV、及びNLを含んでよい。ドキュメント文法キー705は、ドキュメント文法415に含まれる終端タイプを記述してよい。
ドキュメント文法415はJSONドキュメント105を表してよい。一実施形態において、ドキュメント文法415は静的且つ不変であってよい。例えば、ドキュメント文法415は変更不可能であってよい。
図8A乃至8Cは、ここで記載される少なくとも一実施形態に従って配置される、JSONドキュメント105に含まれるトークンについて現在の名称及び現在の距離を決定する方法800の例となるフロー図を示す。たとえ個別的なブロックとして表されているとしても、様々なブロックは、所望の実施に依存して、更なるブロックに分けられても、より少ないブロックにまとめられても、あるいは、削除されてもよい。方法800は、図1A乃至7を参照して後述されてよい。
幾つかの実施形態において、方法800は、例えば、図1A及び1BのJSON表現システム100などのシステムによって実行されてよい。例えば、図1Bのプロセッシング装置160は、図8A乃至8Cの方法800のブロックのうちの1つ以上によって表される機能及び動作を実行するために、メモリ170に記憶されているコンピュータ命令を実行するよう構成されてよい。
方法800は、JSONドキュメント105の部分に対する現在の名称及び現在の距離を決定するために有利であり得る。
方法800はブロック802から開始してよい。ブロック802で、トークンは、JSON表現システム100によって決定又は特定されてよい。トークンは、EXIプロセッサ125に入力されてJSON表現システム100によって解析されるJSONドキュメント105の部分又は範囲に対応してよい。
ブロック804で、JSON表現システム100は、ブロック802で特定されたトークンがタイプSV、NV、BV、又はNLを有するかどうかを決定してよい。例えば、決定は、トークンの終端タイプがSV、NV、BV、又はNLであるかどうかに関して為されてよい。ブロック802で特定されたトークンがタイプSV、NV、BV、又はNLを有する場合は、方法800はブロック805へ進んでよい。
ブロック805で、JSON表現システム100は、トークンの現在の名称及び距離を決定してよい。例えば、現在の名称及び現在の距離は、夫々、スタックの一番上にある項目に格納されている名称及び距離であってよい。
ブロック806で、JSON表現システム100は、現在の名称又は現在の距離が不変であることを決定してよい。タイプSVのトークンは、図9Aを参照して上述される方法900に従って、JSON表現システム100によって更に解析されてよい。
ブロック802で特定されたトークンがSV、NV、BV、又はNL以外の他のタイプであるとJSON表現システム100がブロック804で決定する場合は、方法800はブロック808へ進んでよい。ブロック808で、JSON表現システム100は、ブロック802で特定されたトークンがタイプEO又はEAであるかどうかを決定してよい。トークンがタイプEO又はEAである場合は、方法800は、図8Bに表されているブロック812へ進んでよい。図8Bに示されているブロックは、図8Bを参照して以下でより詳細に記載される。
ブロック808でトークンがEO又はEA以外の他のタイプである場合は、方法800はブロック810へ進んでよい。ブロック810で、JSON表現システム100は、トークンの終端タイプがSO又はSAであると決定してよい。方法800は、図8Cに表されているブロック818へ進んでよい。これは、以下でより詳細に記載される。
これより図8Bを参照すると、ブロック812で、決定は、トークンが所与の名称を有するか又は根であるかどうかに関して為されてよい。例えば、JSON表現システム100は、トークンが所与の名称に関連するか又は1つ以上の子を有するかどうかを決定してよい。
トークンが所与の名称に関連しておらず且つ根でないとJSON表現システム100がブロック812で決定する場合は、方法800はブロック814へ移動し、JSON表現システム100は、現在の距離を1だけ減じてよい。例えば、現在の名称及び現在の距離は、夫々、スタックの一番上にある項目に格納されている名称及び距離であってよい。ブロック814で、現在の距離は1だけ減じられてよい。現在の名称は変更されないままであってよく、一方、現在の距離は1だけ減じられてよい。
トークンが所与の名称を有するか又は根であるとJSON表現システム100がブロック812で決定する場合は、方法800はブロック816へ進んでよい。ブロック816で、JSON表現システム100は、現在の名称及び現在の距離を、スタックからポッピングすることによって置き換えてよい。例えば、現在の名称及び現在の距離は、夫々、スタックの一番上にある項目に格納されている名称及び距離であってよい。ブロック816で、JSON表現システム100は、新しい現在の名称及び新しい現在の距離がスタックの一番上に格納されるように、スタックからポッピングすることによって現在の名称及び現在の距離を置き換えてよい。
これより図8Cを参照すると、ブロック818で、決定は、トークンが所与の名称を有するか又は根であるかどうかに関して為されてよい。例えば、JSON表現システム100は、トークンがそれと関連する所与の名称を有するか又は1つ以上の子を有するかどうかを決定してよい。
トークンが所与の名称に関連しておらず且つ根でないとJSON表現システム100がブロック818で決定する場合は、方法800はブロック820へ進んでよい。ブロック820で、現在の距離は1だけ増やされてよい。例えば、現在の名称及び現在の距離は、夫々、スタックの一番上にある項目に格納されている名称及び距離であってよい。現在の距離は、ブロック8201だけ増やされてよい。この例では、現在の名称は変更されないままであってよく、一方、現在の距離は1だけ増やされてよい。
トークンが所与の名称を有するか又は根であるとJSON表現システム100がブロック818で決定する場合は、方法800はブロック822へ進んでよい。ブロック822で、JSON表現システム100は、現在の名称及び現在の距離をスタックへプッシュするによって、現在の名称及び現在の距離を置き換えてよい。
ブロック818でトークンが所与の名称と関連する場合は、ブロック822で、所与の名称は、現在の名称を置き換えるようスタックの一番上へプッシュされ、現在の距離は零に設定される。例えば、現在の名称及び現在の距離は、夫々、スタックの一番上にある項目に格納されている名称及び距離であってよい。現在の名称は、ブロック818で特定された所与の名称によって置換されてよい。このように、所与の名称は、新しい現在の名称として設定されてよい。スタックの一番上にある距離は零に設定されてよい。このように、新しい現在の距離は零に設定されてよい。
ブロック818でトークンが根である場合は、所与の名称がブロック818で特定され得ないので、ブロック822で、トークンに関連した擬似名称が、所与の名称の代わりにスタックの一番上へプッシュされる。擬似名称は、“_document_”又は同様の擬似名称であってよい。現在の名称は、ブロック818で特定された根について擬似名称によって置換されてよい。このように、擬似名称は、新しい現在の名称として設定されてよい。スタックの一番上にある距離は零に設定されてよい。このように、新しい現在の距離は零に設定されてよい。
図9Aは、ここで記載される少なくとも一実施形態に従って配置される、JSONドキュメント105に含まれるトークンについて文字列値パーティション及び値チャネルを決定する方法900の例となるフロー図を示す。
ブロック902で、JSON表現システム100は、トークンがタイプSV(“String Value(文字列値)”)であることを決定してよい。例えば、トークンの終端タイプはSVであってよい。ブロック904で、JSON表現システム100は、トークンがそれに関連する所与の名称を有するかどうかを決定してよい。
トークンがそれに関連する所与の名称を有する場合は、方法900はブロック905へ進んでよい。ブロック905で、JSON表現システム100は、有効な名称が、ブロック904で特定されたトークンに関連する所与の名称であってよく、且つ、有効な距離が零であってよいことを決定する。例えば、有効な距離は零に設定される。
トークンが所与の名称と関連しない場合は、方法900はブロック906へ進んでよい。ブロック906で、JSON表現システム100は、現在の名称及び現在の距離を決定し、有効な名称を現在の名称として且つ有効な距離を現在の距離として設定してよい。例えば、現在の名称及び現在の距離は、夫々、スタックの一番上にある項目に格納されている名称及び距離であってよい。現在の名称は、有効な名称として設定されてよく、現在の距離は、有効な距離として設定されてよい。
図9Bは、文字列値パーティション及び値チャネルを決定する例となるシステム999のブロック図を示す。有効な名称及び有効な距離は、図9Aを参照して上述されたように決定されてよい。
幾つかの実施形態において、方法900によって決定された有効な名称及び有効な距離は、文字列値ハッシュテーブル912への入力908となってよい。文字列値ハッシュテーブル912は、有効な名称及び有効な距離を入力908として受け取り、文字列値パーティション916を出力として供給するよう構成されたハッシュテーブルであってよい。例えば、文字列値パーティション916は、方法900によって決定された有効な名称及び有効な距離をハッシングすることによって決定されてよい。文字列値パーティション916は、図1Bを参照して上述された区分文字列テーブル195を決定するために使用されてよい。
幾つかの実施形態において、方法900によって決定された有効な名称及び有効な距離は、値チャネルハッシュテーブル914への入力910となってよい。値チャネルハッシュテーブル914は、有効な名称及び有効な距離を入力910として受け取り、値チャネル918を出力として供給するよう構成されたハッシュテーブルであってよい。例えば、値チャネル918は、方法900によって決定された有効な名称及び有効な距離をハッシングすることによって決定されてよい。値チャネル918は、1つ以上の値コンテンツ項目を含んでよい。値チャネル918の夫々の値コンテンツ項目は、関連するスキーマデータタイプに基づき符号化されてよい。関連するスキーマデータタイプがない場合は、値コンテンツ項目は文字列として符号化されてよい。値チャネル918は、図1Bを参照して上述された区分圧縮193を決定するために使用されてよい。例えば、区分圧縮193は、値チャネル918に基づきチャネルに区分化された統合冗長に基づく圧縮を含んでよい。
幾つかの実施形態において、JSON表現システム100は、文字列値パーティション916及び値チャネル918のうちの1つ以上を用いて、JSONドキュメント105を表すEXIドキュメント130を符号化してよい。
図10Aは、ここで記載される少なくとも一実施形態に従って配置される、JSONドキュメント105に含まれるトークンについて有効な名称及び有効な距離を決定する方法1000の例となるフロー図を示す。
ブロック1002で、JSON表現システム100は、トークンがタイプSO(“Start Object(開始オブジェクト)”)又はSA(“Start Array(開始アレイ)”)であることを決定してよい。例えば、トークンの終端タイプはSO又はSAであってよい。ブロック1004で、JSON表現システム100は、有効な名称が現在の名称であり且つ有効な距離が現在の距離であることを決定してよい。例えば、現在の名称及び現在の距離は、夫々、スタックの一番上にある項目に格納されている名称及び距離であってよい。現在の名称は有効な名称として設定されてよく、現在の距離は有効な距離として設定されてよい。
図10Bは、オブジェクト文法及びアレイ文法を決定する例となるシステム1099のブロック図を示す。有効な名称及び有効な距離は、図10Aを参照して上述されたように決定されてよい。
終端タイプがSOであると決定され得る幾つかの実施形態において、方法1000によって決定された有効な名称及び有効な距離は、オブジェクト文法ハッシュテーブル1012への入力1008となってよい。オブジェクト文法ハッシュテーブル1012は、有効な名称及び有効な距離を入力1008として受け取り、オブジェクト文法1016を出力として供給するよう構成されたハッシュテーブルを含んでよい。例えば、オブジェクト文法1016は、方法1000によって決定された有効な名称及び有効な距離をハッシングすることによって決定されてよい。オブジェクト文法1016は、図4及び5を参照して上述されたオブジェクト文法405を含んでよい。このように、オブジェクト文法1016は、JSONドキュメント105の夫々の名称について決定されてよい。
終端タイプがSAであると決定され得る幾つかの実施形態において、方法1000によって決定された有効な名称及び有効な距離は、アレイ文法ハッシュテーブル1015への入力1010となってよい。アレイ文法ハッシュテーブル1015は、有効な名称及び有効な距離を入力1010として受け取り、アレイ文法1018を出力として供給するよう構成されたハッシュテーブルを含んでよい。例えば、アレイ文法1018は、方法1000によって決定された有効な名称及び有効な距離をハッシングすることによって決定されてよい。アレイ文法1018は、図4及び6を参照して上述されたアレイ文法410を含んでよい。このように、アレイ文法1018は、JSONドキュメント105の夫々の名称について決定されてよい。
幾つかの実施形態において、JSON表現システム100は、オブジェクト文法1016及びアレイ文法1018のうちの1つ以上を用いて、JSONドキュメント105を表すEXIドキュメント130を符号化してよい。
図11は、ここで記載される少なくとも一実施形態に従って配置される、オブジェクト文法の自己較正を提供する方法1100の例となるフロー図を示す。ブロック1102で、トークンがフェッチされてよい。ブロック1106で、適合するプロダクションが特定されてよい。ブロック1108で、トークン及びその関連するコンテンツ項目が符号化又は復号されてよい。ブロック1110で、決定は、適合するプロダクションの終端部分がワイルドカードに関連するかどうかに関して為されてよい。適合するプロダクションの終端部分がブロック1110でワイルドカードに関連しない場合は、方法1100は、既に上述されたブロック1102へ進んでよい。適合するプロダクションの終端部分がブロック1110でワイルドカードに関連する場合は、方法1100はブロック1112へ進んでよい。ブロック1112で、新しいプロダクションは、ワイルドカードを置き換えるよう具体的な名称により生成されてよく且つプロダクションのイベントコードは零に設定されてよく、他のプロダクションは、1だけ増分されたそれらのイベントコードの第1の部分を有してよい。例えば、“1.0”に設定されたイベントコードを有するプロダクションは“2.0”に増分されてよく、あるいは、“1.3.2”に設定されたイベントコードを有するプロダクションは“2.3.2”に増分されてよい。
図12は、ここで記載される少なくとも一実施形態に従って配置される、アレイ文法の自己較正を提供する方法1200の例となるフロー図を示す。ブロック1202で、トークンがフェッチされてよい。ブロック1206で、適合するプロダクションが特定されてよい。ブロック1208で、トークン及びその関連するコンテンツ項目が符号化又は復号されてよい。ブロック1210で、決定は、プロダクションに関連するプロダクションが1以上のイベントコード長を有するかどうかに関して為されてよい。プロダクションが1に満たないイベントコードを有する場合は、方法1200は、既に上述されたブロック1202へ進んでよい。そうでない場合は、方法1200はブロック1212へ進んでよい。ブロック1212で、決定は、プロダクションが、零であるイベントコードを有して、ブロック1202で特定されたトークンと同じ終端シンボルを有するスタックにおいて存在するかどうかに関して為されてよい。そのようなプロダクションがスタックに存在しない場合は、生成されてよい。そのようなプロダクションが存在する場合は、ブロック1202で特定されたトークンのイベントコードは1だけ増やされてよい。
幾つかの実施形態は、2進形式のJSON表現法の使用なしでJSONドキュメントを表すようEXIドキュメントを符号化する方法を含んでよい。方法は、JSONドキュメントに関連するトークンの組をフェッチすることを有してよい。方法は、前記トークンの組に関連する1つ以上の終端タイプを決定することを有してよい。方法は、前記トークンの夫々の終端タイプに部分的に基づき前記トークンの組について1つ以上の現在の名称及び1つ以上の現在の距離を決定することを有してよい。方法は、前記符号化を実行するようプログラムされたプロセッサベースのコンピュータ装置によって、前記JSONドキュメントに関連する1つ以上のトークンの組についての前記1つ以上の現在の名称及び前記1つ以上の現在の距離に基づき、前記JSONドキュメントを表すEXIドキュメントを符号化することを有してよい。
ここで記載される実施形態は、先に詳細に論じられたように、様々なコンピュータハードウェア又はソフトウェアモジュールを含む専用又は汎用のコンピュータの仕様を含んでよい。
対象は、構造的な特徴及び/又は方法論的な動作に特有の言語において記載されてきたが、添付の特許請求の範囲において定義される対象は、上記の具体的な特徴及び動作に必ずしも制限されない点が理解されるべきである。むしろ、上記の具体的な特徴及び動作は、特許請求の範囲を実施する例となる形態として開示されている。
ここで挙げられている全ての例及び条件付き言語は、当該技術を促進することに発明者によって寄与される概念及び発明を読者が理解するのを助ける教育的な目的を意図され、そのような具体的に挙げられている例と及び条件に制限されないものとして解釈されるべきである。本発明の実施形態が詳細に記載されてきたが、様々な変形、置換、及び代替は、発明の主旨及び適用範囲から逸脱せずにそれらに対して為されてよいことが理解されてよい。
上記の実施形態に加えて、以下の付記を開示する。
(付記1)
2進形式のJavaScript Object Notation(JSON)の使用なしでJSONドキュメントを表すようEfficient XML Interchange(EXI)ドキュメントを符号化する方法であって、
JSONドキュメントに関連するトークンの組をフェッチし、
前記トークンの組に関連する1つ以上の終端タイプを決定し、
前記組に含まれるトークンの終端タイプに部分的に基づき、前記トークンの組に関連する1つ以上の現在の名称及び1つ以上の現在の距離を決定し、
前記符号化を実行するようプログラムされたプロセッサベースのコンピュータ装置によって、前記JSONドキュメントに関連する前記トークンの組についての前記1つ以上の現在の名称及び前記1つ以上の現在の距離に基づき、前記JSONドキュメントを表すEXIドキュメントを符号化する
ことを有する方法。
(付記2)
前記組に含まれるあるトークンについての終端タイプがSVであると決定することに応答して、当該方法は、当該トークンが所与の名称に関連するかどうかを判断することを更に有する、
付記1に記載の方法。
(付記3)
前記トークンが前記所与の名称に関連しないと決定することに応答して、当該方法は、
前記トークンについての有効な名称が前記トークンに関連する現在の名称であると決定し、
前記トークンについての有効な距離が前記トークンに関連する現在の距離であると決定し、
前記有効な名称及び前記有効な距離をハッシングすることによって文字列値パーティション及び値チャネルを決定することを更に有し、
前記JSONドキュメントを表す前記EXIドキュメントは、前記文字列値パーティション及び前記値チャネルを用いて符号化される、
付記2に記載の方法。
(付記4)
前記トークンが前記所与の名称に関連すると決定することに応答して、当該方法は、
前記トークンに関連する現在の名称が前記所与の名称であると決定し、
前記トークンについての有効な名称が前記現在の名称であると決定し、
前記トークンに関連する現在の距離を零に設定し、
前記トークンについての有効な距離が前記現在の距離であると決定し、
前記有効な名称及び前記有効な距離をハッシングすることによって文字列値パーティション及び値チャネルを決定することを更に有し、
前記JSONドキュメントを表す前記EXIドキュメントは、前記文字列値パーティション及び前記値チャネルを用いて符号化される、
付記2に記載の方法。
(付記5)
前記組に含まれるあるトークンについての終端タイプがSOであると決定することに応答して、当該方法は、
当該トークンについての有効な名称が当該トークンに関連する現在の名称であると決定し、
当該トークンについての有効な距離が当該トークンに関連する現在の距離であると決定し、
前記有効な名称及び前記有効な距離のハッシュに基づきオブジェクト文法を決定することを更に有し、
前記JSONドキュメントを表す前記EXIドキュメントは、前記オブジェクト文法を用いて符号化される、
付記1に記載の方法。
(付記6)
前記組に含まれるあるトークンについての終端タイプがSAであると決定することに応答して、当該方法は、
当該トークンについての有効な名称が当該トークンに関連する現在の名称であると決定し、
当該トークンについての有効な距離が当該トークンに関連する現在の距離であると決定し、
前記有効な名称及び前記有効な距離のハッシュに基づきアレイ文法を決定することを更に有し、
前記JSONドキュメントを表す前記EXIドキュメントは、前記アレイ文法を用いて符号化される、
付記1に記載の方法。
(付記7)
前記JSONドキュメントを表す前記EXIドキュメントは、オブジェクト文法、アレイ文法及びドキュメント文法を含むEXI文法を用いて符号化される、
付記1に記載の方法。
(付記8)
前記オブジェクト文法は、前記EXIドキュメントによって表される前記JSONドキュメントに含まれる1つ以上のオブジェクトを記述する動的な文法を有する、
付記7に記載の方法。
(付記9)
前記アレイ文法は、前記EXIドキュメントによって表される前記JSONドキュメントに含まれる1つ以上のアレイを記述する動的な文法を有する、
付記7に記載の方法。
(付記10)
前記ドキュメント文法は、前記EXIドキュメントによって表される前記JSONドキュメントのコンテンツを記述する静的な文法を有する、
付記7に記載の方法。
(付記11)
JavaScript Object Notation(JSON)ドキュメントに関連するトークンの組をフェッチし、
前記トークンの組に関連する1つ以上の終端タイプを決定し、
前記組に含まれるトークンの終端タイプに部分的に基づき、前記トークンの組に関連する1つ以上の現在の名称及び1つ以上の現在の距離を決定し、
符号化を実行するようプログラムされたプロセッサベースのコンピュータ装置によって、前記JSONドキュメントに関連する前記トークンの組についての前記1つ以上の現在の名称及び前記1つ以上の現在の距離に基づき、前記JSONドキュメントを表すEfficient XML Interchange(EXI)ドキュメントを符号化する
動作を実行するか又は該動作の実行を制御するようプロセッシング装置によって実行可能なコンピュータ命令を記憶している非一時的なコンピュータ可読媒体。
(付記12)
前記組に含まれる前記トークンのうちの1つについての終端タイプがSVであると決定することに応答して、前記動作は、当該トークンが所与の名称に関連するかどうかを判断することを更に有する、
付記11に記載の非一時的なコンピュータ可読媒体。
(付記13)
前記トークンが前記所与の名称に関連しないと決定することに応答して、前記動作は、
前記トークンについての有効な名称が前記トークンに関連する現在の名称であると決定し、
前記トークンについての有効な距離が前記トークンに関連する現在の距離であると決定し、
前記有効な名称及び前記有効な距離をハッシングすることによって文字列値パーティション及び値チャネルを決定することを更に有し、
前記JSONドキュメントを表す前記EXIドキュメントは、前記文字列値パーティション及び前記値チャネルを用いて符号化される、
付記12に記載の非一時的なコンピュータ可読媒体。
(付記14)
前記トークンが前記所与の名称に関連すると決定することに応答して、前記動作は、
前記トークンについての有効な名称が前記所与の名称であると決定し、
前記トークンについての有効な距離が零であると決定し、
前記有効な名称及び前記有効な距離をハッシングすることによって文字列値パーティション及び値チャネルを決定することを更に有し、
前記JSONドキュメントを表す前記EXIドキュメントは、前記文字列値パーティション及び前記値チャネルを用いて符号化される、
付記12に記載の非一時的なコンピュータ可読媒体。
(付記15)
前記組に含まれるあるトークンについての終端タイプがSOであると決定することに応答して、前記動作は、
当該トークンについての有効な名称が当該トークンに関連する現在の名称であると決定し、
当該トークンについての有効な距離が当該トークンに関連する現在の距離であると決定し、
前記有効な名称及び前記有効な距離のハッシュに基づきオブジェクト文法を決定することを更に有し、
前記JSONドキュメントを表す前記EXIドキュメントは、前記オブジェクト文法を用いて符号化される、
付記11に記載の非一時的なコンピュータ可読媒体。
(付記16)
前記組に含まれるあるトークンについての終端タイプがSAであると決定することに応答して、前記動作は、
当該トークンについての有効な名称が当該トークンに関連する現在の名称であると決定し、
当該トークンについての有効な距離が当該トークンに関連する現在の距離であると決定し、
前記有効な名称及び前記有効な距離のハッシュに基づきアレイ文法を決定することを更に有し、
前記JSONドキュメントを表す前記EXIドキュメントは、前記アレイ文法を用いて符号化される、
付記11に記載の非一時的なコンピュータ可読媒体。
(付記17)
前記JSONドキュメントを表す前記EXIドキュメントは、オブジェクト文法、アレイ文法及びドキュメント文法を含むEXI文法を用いて符号化される、
付記11に記載の非一時的なコンピュータ可読媒体。
(付記18)
前記オブジェクト文法は、前記EXIドキュメントによって表される前記JSONドキュメントに含まれる1つ以上のオブジェクトを記述する動的な文法を有する、
付記17に記載の非一時的なコンピュータ可読媒体。
(付記19)
前記アレイ文法は、前記EXIドキュメントによって表される前記JSONドキュメントに含まれる1つ以上のアレイを記述する動的な文法を有する、
付記17に記載の非一時的なコンピュータ可読媒体。
(付記20)
前記ドキュメント文法は、前記EXIドキュメントによって表される前記JSONドキュメントのコンテンツを記述する静的な文法を有する、
付記17に記載の非一時的なコンピュータ可読媒体。
100 JSON表現システム
105 JSONドキュメント
110 EXI文法
115 パーティションモジュール
125 EXIプロセッサ
130 EXIドキュメント
160 プロセッシング装置
170 メモリ
193 区分圧縮
195 区分文字列テーブル
197,200 組み込み要素文法
405,1016 オブジェクト文法
410,1018 アレイ文法
415 ドキュメント文法
916 文字列値パーティション
918 値チャネル

Claims (20)

  1. 2進形式のJavaScript Object Notation(JSON)の使用なしでJSONドキュメントを表すようEfficient XML Interchange(EXI)ドキュメントを符号化する方法であって、
    JSONドキュメントに関連するトークンの組をフェッチし、
    前記トークンの組に関連する1つ以上の終端タイプを決定し、
    前記組に含まれるトークンの終端タイプに部分的に基づき、前記トークンの組に関連する1つ以上の現在の名称及び1つ以上の現在の距離を決定し、
    前記符号化を実行するようプログラムされたプロセッサベースのコンピュータ装置によって、前記JSONドキュメントに関連する前記トークンの組についての前記1つ以上の現在の名称及び前記1つ以上の現在の距離に基づき、前記JSONドキュメントを表すEXIドキュメントを符号化する
    ことを有する方法。
  2. 前記組に含まれるあるトークンについての終端タイプがSVであると決定することに応答して、当該方法は、当該トークンが所与の名称に関連するかどうかを判断することを更に有する、
    請求項1に記載の方法。
  3. 前記トークンが前記所与の名称に関連しないと決定することに応答して、当該方法は、
    前記トークンについての有効な名称が前記トークンに関連する現在の名称であると決定し、
    前記トークンについての有効な距離が前記トークンに関連する現在の距離であると決定し、
    前記有効な名称及び前記有効な距離をハッシングすることによって文字列値パーティション及び値チャネルを決定することを更に有し、
    前記JSONドキュメントを表す前記EXIドキュメントは、前記文字列値パーティション及び前記値チャネルを用いて符号化される、
    請求項2に記載の方法。
  4. 前記トークンが前記所与の名称に関連すると決定することに応答して、当該方法は、
    前記トークンに関連する現在の名称が前記所与の名称であると決定し、
    前記トークンについての有効な名称が前記現在の名称であると決定し、
    前記トークンに関連する現在の距離を零に設定し、
    前記トークンについての有効な距離が前記現在の距離であると決定し、
    前記有効な名称及び前記有効な距離をハッシングすることによって文字列値パーティション及び値チャネルを決定することを更に有し、
    前記JSONドキュメントを表す前記EXIドキュメントは、前記文字列値パーティション及び前記値チャネルを用いて符号化される、
    請求項2に記載の方法。
  5. 前記組に含まれるあるトークンについての終端タイプがSOであると決定することに応答して、当該方法は、
    当該トークンについての有効な名称が当該トークンに関連する現在の名称であると決定し、
    当該トークンについての有効な距離が当該トークンに関連する現在の距離であると決定し、
    前記有効な名称及び前記有効な距離のハッシュに基づきオブジェクト文法を決定することを更に有し、
    前記JSONドキュメントを表す前記EXIドキュメントは、前記オブジェクト文法を用いて符号化される、
    請求項1に記載の方法。
  6. 前記組に含まれるあるトークンについての終端タイプがSAであると決定することに応答して、当該方法は、
    当該トークンについての有効な名称が当該トークンに関連する現在の名称であると決定し、
    当該トークンについての有効な距離が当該トークンに関連する現在の距離であると決定し、
    前記有効な名称及び前記有効な距離のハッシュに基づきアレイ文法を決定することを更に有し、
    前記JSONドキュメントを表す前記EXIドキュメントは、前記アレイ文法を用いて符号化される、
    請求項1に記載の方法。
  7. 前記JSONドキュメントを表す前記EXIドキュメントは、オブジェクト文法、アレイ文法及びドキュメント文法を含むEXI文法を用いて符号化される、
    請求項1に記載の方法。
  8. 前記オブジェクト文法は、前記EXIドキュメントによって表される前記JSONドキュメントに含まれる1つ以上のオブジェクトを記述する動的な文法を有する、
    請求項7に記載の方法。
  9. 前記アレイ文法は、前記EXIドキュメントによって表される前記JSONドキュメントに含まれる1つ以上のアレイを記述する動的な文法を有する、
    請求項7に記載の方法。
  10. 前記ドキュメント文法は、前記EXIドキュメントによって表される前記JSONドキュメントのコンテンツを記述する静的な文法を有する、
    請求項7に記載の方法。
  11. JavaScript Object Notation(JSON)ドキュメントに関連するトークンの組をフェッチし、
    前記トークンの組に関連する1つ以上の終端タイプを決定し、
    前記組に含まれるトークンの終端タイプに部分的に基づき、前記トークンの組に関連する1つ以上の現在の名称及び1つ以上の現在の距離を決定し、
    符号化を実行するようプログラムされたプロセッサベースのコンピュータ装置によって、前記JSONドキュメントに関連する前記トークンの組についての前記1つ以上の現在の名称及び前記1つ以上の現在の距離に基づき、前記JSONドキュメントを表すEfficient XML Interchange(EXI)ドキュメントを符号化する
    動作を実行するか又は該動作の実行を制御するようプロセッシング装置によって実行可能なコンピュータ命令を記憶している非一時的なコンピュータ可読媒体。
  12. 前記組に含まれる前記トークンのうちの1つについての終端タイプがSVであると決定することに応答して、前記動作は、当該トークンが所与の名称に関連するかどうかを判断することを更に有する、
    請求項11に記載の非一時的なコンピュータ可読媒体。
  13. 前記トークンが前記所与の名称に関連しないと決定することに応答して、前記動作は、
    前記トークンについての有効な名称が前記トークンに関連する現在の名称であると決定し、
    前記トークンについての有効な距離が前記トークンに関連する現在の距離であると決定し、
    前記有効な名称及び前記有効な距離をハッシングすることによって文字列値パーティション及び値チャネルを決定することを更に有し、
    前記JSONドキュメントを表す前記EXIドキュメントは、前記文字列値パーティション及び前記値チャネルを用いて符号化される、
    請求項12に記載の非一時的なコンピュータ可読媒体。
  14. 前記トークンが前記所与の名称に関連すると決定することに応答して、前記動作は、
    前記トークンについての有効な名称が前記所与の名称であると決定し、
    前記トークンについての有効な距離が零であると決定し、
    前記有効な名称及び前記有効な距離をハッシングすることによって文字列値パーティション及び値チャネルを決定することを更に有し、
    前記JSONドキュメントを表す前記EXIドキュメントは、前記文字列値パーティション及び前記値チャネルを用いて符号化される、
    請求項12に記載の非一時的なコンピュータ可読媒体。
  15. 前記組に含まれるあるトークンについての終端タイプがSOであると決定することに応答して、前記動作は、
    当該トークンについての有効な名称が当該トークンに関連する現在の名称であると決定し、
    当該トークンについての有効な距離が当該トークンに関連する現在の距離であると決定し、
    前記有効な名称及び前記有効な距離のハッシュに基づきオブジェクト文法を決定することを更に有し、
    前記JSONドキュメントを表す前記EXIドキュメントは、前記オブジェクト文法を用いて符号化される、
    請求項11に記載の非一時的なコンピュータ可読媒体。
  16. 前記組に含まれるあるトークンについての終端タイプがSAであると決定することに応答して、前記動作は、
    当該トークンについての有効な名称が当該トークンに関連する現在の名称であると決定し、
    当該トークンについての有効な距離が当該トークンに関連する現在の距離であると決定し、
    前記有効な名称及び前記有効な距離のハッシュに基づきアレイ文法を決定することを更に有し、
    前記JSONドキュメントを表す前記EXIドキュメントは、前記アレイ文法を用いて符号化される、
    請求項11に記載の非一時的なコンピュータ可読媒体。
  17. 前記JSONドキュメントを表す前記EXIドキュメントは、オブジェクト文法、アレイ文法及びドキュメント文法を含むEXI文法を用いて符号化される、
    請求項11に記載の非一時的なコンピュータ可読媒体。
  18. 前記オブジェクト文法は、前記EXIドキュメントによって表される前記JSONドキュメントに含まれる1つ以上のオブジェクトを記述する動的な文法を有する、
    請求項17に記載の非一時的なコンピュータ可読媒体。
  19. 前記アレイ文法は、前記EXIドキュメントによって表される前記JSONドキュメントに含まれる1つ以上のアレイを記述する動的な文法を有する、
    請求項17に記載の非一時的なコンピュータ可読媒体。
  20. 前記ドキュメント文法は、前記EXIドキュメントによって表される前記JSONドキュメントのコンテンツを記述する静的な文法を有する、
    請求項17に記載の非一時的なコンピュータ可読媒体。
JP2015156091A 2014-10-23 2015-08-06 Jsonドキュメントを表すexiドキュメントを符号化する方法及びコンピュータ可読媒体 Withdrawn JP2016085731A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/522,465 2014-10-23
US14/522,465 US20160117410A1 (en) 2014-10-23 2014-10-23 Exi format to represent json documents

Publications (1)

Publication Number Publication Date
JP2016085731A true JP2016085731A (ja) 2016-05-19

Family

ID=55792178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015156091A Withdrawn JP2016085731A (ja) 2014-10-23 2015-08-06 Jsonドキュメントを表すexiドキュメントを符号化する方法及びコンピュータ可読媒体

Country Status (2)

Country Link
US (1) US20160117410A1 (ja)
JP (1) JP2016085731A (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9858299B2 (en) * 2015-06-24 2018-01-02 Oracle International Corporation System and method for generating a JSON schema from a JSON stream
US10122380B2 (en) * 2015-11-16 2018-11-06 International Business Machines Corporation Compression of javascript object notation data using structure information
WO2017168240A1 (en) * 2016-03-29 2017-10-05 Push Technology Limited Calculating structural differences from binary differences in publish subscribe system
US10534855B2 (en) 2016-05-02 2020-01-14 Fujitsu Limited EXI grammars to represent JSON schemas
US10860571B2 (en) * 2016-11-04 2020-12-08 Sap Se Storage and pruning for faster access of a document store
US10496665B2 (en) * 2016-11-17 2019-12-03 Sap Se Database system incorporating document store
US10606891B2 (en) * 2017-02-28 2020-03-31 Fujitsu Limited JSON data validation
CN107528888B (zh) * 2017-07-27 2020-09-18 国网江西省电力公司检修分公司 一种变电站智能电子设备及其数据发送、接收方法及系统
US10977221B2 (en) 2017-10-20 2021-04-13 Hewlett Packard Enterprise Development Lp Encoding of data formatted in human-readable text according to schema into binary

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7798417B2 (en) * 2000-01-03 2010-09-21 Snyder David M Method for data interchange
FR2927712B1 (fr) * 2008-02-15 2013-09-20 Canon Kk Procede et dispositif d'acces a une production d'une grammaire pour le traitement d'un document de donnees hierarchisees.
FR2936623B1 (fr) * 2008-09-30 2011-03-04 Canon Kk Procede de codage d'un document structure et de decodage, dispositifs correspondants
US8149148B1 (en) * 2010-10-08 2012-04-03 Microsoft Corporation Local binary XML string compression
CN102650992B (zh) * 2011-02-25 2014-07-30 国际商业机器公司 用于二进制xml数据的生成及其节点定位的方法和装置
GB2492096B (en) * 2011-06-21 2014-02-19 Canon Kk Method for processing a structured document to render, and corresponding processor
FI125252B (en) * 2011-12-07 2015-08-14 Arm Finland Oy Procedure, device and system for managing web services

Also Published As

Publication number Publication date
US20160117410A1 (en) 2016-04-28

Similar Documents

Publication Publication Date Title
JP2016085731A (ja) Jsonドキュメントを表すexiドキュメントを符号化する方法及びコンピュータ可読媒体
CN110580147B (zh) 一种应用程序的开发方法和装置
US11106437B2 (en) Lookup table optimization for programming languages that target synchronous digital circuits
US20140047319A1 (en) Context injection and extraction in xml documents based on common sparse templates
US9892144B2 (en) Methods for in-place access of serialized data
US9477651B2 (en) Finding partition boundaries for parallel processing of markup language documents
US20190243643A1 (en) Mapping api parameters
JP6699200B2 (ja) シンプルデータタイプに対するグラマー生成
JP2011146036A (ja) 情報処理装置及びその制御方法並びにプログラム
US10606891B2 (en) JSON data validation
US10534855B2 (en) EXI grammars to represent JSON schemas
US20230418566A1 (en) Programmatically generating evaluation data sets for code generation models
US20230419036A1 (en) Random token segmentation for training next token prediction models
US9519627B2 (en) Grammar generation for XML schema definitions
Haller et al. RaUL: RDFa User Interface Language–A data processing model for web applications
US10019418B2 (en) Efficient XML interchange profile stream decoding
Günther Development of internal domain-specific languages: design principles and design patterns
Lohstroh et al. Principles of Modeling
JP5932707B2 (ja) 計算機、プログラム及びデータ生成方法
Mailund Domain-Specific Languages in R: Advanced Statistical Programming
JP2017151951A (ja) 文法生成
US20230418567A1 (en) Constrained prefix matching for generating next token predictions
US20230418565A1 (en) Validating and providing proactively generated code suggestions
CN113448923B (zh) 文件生成方法、装置及终端
Kosek Improving validation of structured text

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180413

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20181017