JPWO2017022041A1 - 木構造データ編集装置、木構造データ編集方法、及びプログラム - Google Patents

木構造データ編集装置、木構造データ編集方法、及びプログラム Download PDF

Info

Publication number
JPWO2017022041A1
JPWO2017022041A1 JP2016570367A JP2016570367A JPWO2017022041A1 JP WO2017022041 A1 JPWO2017022041 A1 JP WO2017022041A1 JP 2016570367 A JP2016570367 A JP 2016570367A JP 2016570367 A JP2016570367 A JP 2016570367A JP WO2017022041 A1 JPWO2017022041 A1 JP WO2017022041A1
Authority
JP
Japan
Prior art keywords
node
tree structure
structure data
editing
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016570367A
Other languages
English (en)
Other versions
JP6162909B2 (ja
Inventor
亮祐 青木
亮祐 青木
麻美 安藤
麻美 安藤
英友 鈴木
英友 鈴木
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.)
Rakuten Group Inc
Original Assignee
Rakuten Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rakuten Inc filed Critical Rakuten Inc
Application granted granted Critical
Publication of JP6162909B2 publication Critical patent/JP6162909B2/ja
Publication of JPWO2017022041A1 publication Critical patent/JPWO2017022041A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

木構造データをテキストで編集する際のユーザの手間を軽減する。木構造データ編集装置(1)のノード選択手段(14)は、編集画面で選択範囲が指定された場合、当該選択範囲の位置に基づいて、木構造データの中から1以上のノードIDを選択する。接続先決定手段(16)は、編集画面で選択範囲の貼り付け先が指定された場合、当該貼り付け先の位置に基づいて、木構造データの中から接続先のノードIDを決定する。木構造データ編集手段(17)は、1以上のノードIDが示すノードが接続先のノードIDが示すノードに接続するように、木構造データを編集する。変換手段(11)は、木構造データ編集手段(17)により編集された木構造データをテキストデータに変換する。表示制御手段(12)は、変換手段(11)により変換されたテキストデータに基づいて、編集画面の表示を更新する。

Description

本発明は、木構造データ編集装置、木構造データ編集方法、及びプログラムに関する。
従来、テキストデータの編集画面上でユーザが任意の範囲を選択する技術が知られている。例えば、特許文献1には、テキストエディタにおいて矩形選択を行うためのコマンドが記載されている。
http://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html
上記のようなテキストエディタは、例えば、プログラミング言語で木構造データをコーディングするために用いることができる。この場合、ユーザは、テキストエディタを用いて、ノードやブランチを示すテキストを入力して木構造データのコードを入力する。ユーザは、似た内容の部分木を繰り返し使用したいような場合、キーボードから直接入力すると手間がかかるため、部分木に対応するコード部分をコピーアンドペーストすることが考えられる。
しかしながら、特許文献1の技術を利用して矩形選択を行い、部分木に対応するコード部分をコピーアンドペーストしても、あくまでテキストエディタ上でテキストが挿入されるだけなので、貼り付け先に部分木がきちんと接続しなかったり、貼り付け後に他のコードがずれてテキストで表現した木構造が崩れてしまったりすることがある。この場合、ユーザは、所望の木構造を示すように、ノードやブランチのテキストの位置をいちいち調整する必要があり、非常に手間がかかっていた。
本発明は上記課題に鑑みてなされたものであって、その目的は、木構造データをテキストで編集する際のユーザの手間を軽減することである。
上記課題を解決するために、本発明に係る木構造データ編集装置は、木構造データと、前記木構造データに対応するテキストデータと、を相互に変換する変換手段と、前記テキストデータの編集画面を表示手段に表示させる表示制御手段と、前記編集画面で選択範囲が指定された場合、当該選択範囲の位置に基づいて、前記木構造データの中から1以上のノードIDを選択するノード選択手段と、前記編集画面で前記選択範囲の貼り付け先が指定された場合、当該貼り付け先の位置に基づいて、前記木構造データの中から接続先のノードIDを決定する接続先決定手段と、前記1以上のノードIDが示すノードが前記接続先のノードIDが示すノードに接続するように、前記木構造データを編集する木構造データ編集手段と、を含み、前記変換手段は、前記木構造データ編集手段により編集された前記木構造データを前記テキストデータに変換し、前記表示制御手段は、前記変換手段により変換された前記テキストデータに基づいて、前記編集画面の表示を更新する、ことを特徴とする。
また、本発明に係る木構造データ編集方法は、木構造データと、前記木構造データに対応するテキストデータと、を相互に変換する変換ステップと、前記テキストデータの編集画面を表示手段に表示させる表示制御ステップと、前記編集画面で選択範囲が指定された場合、当該選択範囲の位置に基づいて、前記木構造データの中から1以上のノードIDを選択するノード選択ステップと、前記編集画面で前記選択範囲の貼り付け先が指定された場合、当該貼り付け先の位置に基づいて、前記木構造データの中から接続先のノードIDを決定する接続先決定ステップと、前記1以上のノードIDが示すノードが前記接続先のノードIDが示すノードに接続するように、前記木構造データを編集する木構造データ編集ステップと、を含み、前記変換ステップでは、前記木構造データ編集ステップにより編集された前記木構造データを前記テキストデータに変換し、前記表示制御ステップでは、前記変換手段により変換された前記テキストデータに基づいて、前記編集画面の表示を更新する、ことを特徴とする。
また、本発明に係るプログラムは、木構造データと、前記木構造データに対応するテキストデータと、を相互に変換する変換手段、前記テキストデータの編集画面を表示手段に表示させる表示制御手段、前記編集画面で選択範囲が指定された場合、当該選択範囲の位置に基づいて、前記木構造データの中から1以上のノードIDを選択するノード選択手段、前記編集画面で前記選択範囲の貼り付け先が指定された場合、当該貼り付け先の位置に基づいて、前記木構造データの中から接続先のノードIDを決定する接続先決定手段、前記1以上のノードIDが示すノードが前記接続先のノードIDが示すノードに接続するように、前記木構造データを編集する木構造データ編集手段、としてコンピュータを機能させ、前記変換手段は、前記木構造データ編集手段により編集された前記木構造データを前記テキストデータに変換し、前記表示制御手段は、前記変換手段により変換された前記テキストデータに基づいて、前記編集画面の表示を更新する、ことを特徴とする。
また、本発明に係る情報記憶媒体は、上記のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体である。
また、本発明の一態様では、前記選択範囲は、前記編集画面におけるテキストの切り取り範囲であり、前記木構造データ編集装置は、前記1以上のノードIDの親ノードIDと子ノードIDを特定する手段を更に含み、前記木構造データ編集手段は、前記1以上のノードIDが示すノードが前記接続先のノードIDが示すノードに接続し、かつ、前記子ノードIDが示すノードが前記親ノードIDが示すノードに接続するように、前記木構造データを更新する、ことを特徴とする。
また、本発明の一態様では、前記接続先決定手段は、前記貼り付け先の位置の最も近くにテキストが表示されているノードのノードIDを、前記接続先のノードIDとして決定する、ことを特徴とする。
また、本発明の一態様では、前記編集画面は、所与のプログラミング言語のコードを入力するためのテキストエディタの画面であり、前記変換手段は、前記テキストデータをコンパイルして前記木構造データに変換し、前記木構造データを逆コンパイルして前記テキストデータに変換する、ことを特徴とする。
本発明によれば、木構造データをテキストで編集する際のユーザの手間を軽減することが可能になる。
木構造データ編集装置のハードウェア構成を示す図である。 木構造データ編集装置で実現される機能の一例を示す機能ブロック図である。 テキストデータの一例を示す図である。 木構造データの一例を示す図である。 図4の木構造データの各ノードの接続関係を示す図である。 位置データの一例を示す図である。 テキストエディタ上で矩形選択をする様子を示す図である。 図7のように矩形選択が行われた場合に選択されるノードIDを示す図である。 貼付操作が行われる様子を示す図である。 木構造データ編集部による編集後の木構造データを示す図である。 木構造データ編集部による編集後の木構造データを示す図である。 編集後のテキストデータを示す図である。 編集後の木構造データに基づいて生成される位置データを示す図である。 木構造データ編集装置において実行される処理の一例を示すフロー図である。 変形例の機能ブロックを示す図である。 変形例において指定された選択範囲を示す図である。 変形例において指定された選択範囲を示す図である。 変形例において指定された貼り付け先を示す図である。 変形例において木構造データが更新される様子を示す図である。 変形例において木構造データが更新される様子を示す図である。 木構造データが更新された後の編集画面である。
[1.木構造データ編集装置のハードウェア構成]
以下、本発明に関わる木構造データ編集装置の実施形態の例を説明する。図1は、木構造データ編集装置のハードウェア構成を示す図である。木構造データ編集装置1は、ユーザが利用可能なコンピュータであり、例えば、パーソナルコンピュータ、サーバコンピュータ、携帯情報端末(タブレット型コンピュータを含む)、又は携帯電話機(スマートフォンを含む)等である。木構造データ編集装置1は、制御部2、記憶部3、通信部4、操作部5、表示部6、及び入出力部7を含む。
制御部2は、例えば、一又は複数のマイクロプロセッサを含む。制御部2は、記憶部3に記憶されたプログラムやデータに従って処理を実行する。記憶部3は、主記憶部及び補助記憶部を含む。例えば、主記憶部はRAMであり、補助記憶部は、ハードディスク又はソリッドステートドライブ等である。通信部4は、ネットワークカードを含む。通信部4は、ネットワークを介してデータ通信を行う。
操作部5は、ユーザが操作を行うための入力デバイスであり、例えば、マウスやキーボード、タッチパネル等である。操作部5は、ユーザによる操作内容を制御部2に伝達する。表示部6は、例えば、液晶表示部又は有機EL表示部等である。表示部6は、制御部2の指示に従って画面を表示する。入出力部7は、外部機器とのデータの入出力を行う入出力インタフェースである。例えば、入出力部7は、コンピュータ読み取り可能な情報記憶媒体(例えば、光ディスクやメモリカード等)からデータやプログラムを読み取る。
なお、記憶部3に記憶されるものとして説明するプログラム及びデータは、ネットワークに接続された他のコンピュータから、通信部4を介して記憶部3に供給されるようにしてもよいし、情報記憶媒体から、入出力部7を介して記憶部3に供給されるようにしてもよい。また、木構造データ編集装置1のハードウェア構成は、上記の例に限られず、種々のコンピュータのハードウェアを適用可能である。
[2.木構造データ編集装置において実現される機能]
図2は、木構造データ編集装置1で実現される機能の一例を示す機能ブロック図である。図2に示すように、木構造データ編集装置1では、データ記憶部10、変換部11、表示制御部12、選択操作受付部13、ノード選択部14、貼付操作受付部15、接続先決定部16、及び木構造データ編集部17が実現される。
本実施形態では、所与のプログラミング言語で実装される木構造データのソースコード(以降、単にコードという。)をテキストエディタで編集する際に、ユーザが矩形選択したテキストをコピーアンドペーストする場合を例に挙げて、木構造データ編集装置1の機能を説明する。なお、詳細は後述するが、テキストエディタのプログラムは、コンパイラと逆コンパイラを含んでおり、本実施形態では、木構造として2分木を説明する。
[2−1.データ記憶部]
データ記憶部10は、記憶部3を主として実現される。データ記憶部10は、木構造データを編集するための各種データを記憶する。ここでは、データ記憶部10が記憶するデータの一例として、テキストデータ、木構造データ、及び位置データについて説明する。
[テキストデータ]
図3は、テキストデータの一例を示す図である。図3では、テキストデータが後述の編集画面20で表示される様子を示している。図3に示すように、テキストデータは、木構造データに含まれるノードとブランチの各々を示すテキストを含む。テキストデータの内容は、キーボード等の操作部5からの入力信号に基づいて更新されたり、後述の変換部11によって更新されたりする。
各文字列T(nは、自然数。本実施形態では、nの数値は、後述のノードIDに対応している。)は、ノードの内容を示す。例えば、各文字列Tは、所与のプログラミング言語のコードであり、条件式や関数等である。図3に示す例では、分岐が発生するノードを示す文字列T,T,T,T11,T12,T20,T21は、それぞれ条件式である。例えば、各条件式に示される条件が満たされる場合には、下の文字列Tが示すノード(2分木としては左のノード)に進み、条件が満たされない場合には、右の文字列Tが示すノード(2分木としては右のノード)に進む。例えば、文字列T,T,T11,T20は、引数のパラメータが所定の条件を満たすか否かを判定するif文であり、文字列T,T12,T21は、乱数に基づいて50%の確率で満たされる条件である。
各記号は、2つのノードを接続するブランチを示す。各記号は、あるノードを示す文字列Tと他のノードを示す文字列Tとの間に配置される。記号は、2つの文字列Tを繋いでいることを視覚的に認識可能であればよく、任意の記号を適用可能である。例えば、ブランチを示す記号は、「−」(ハイフン)や「|」(縦線)であってもよいし、「+」(プラス)や「−」(マイナス)のような記号であってもよい。他にも例えば、「─」「│」「┐」「┌」「├」等の罫線であってもよい。本実施形態では、ブランチを示す記号として、「−」(ハイフン)と「|」(縦線)が用いられる場合を説明する。なお、各ブランチは、1つの記号で示されてもよいし、複数の記号で示されてもよい。
各ノードを示す文字列Tは、上下左右の少なくとも1つの方向にブランチを示す記号が配置されており、各文字列Tと各記号との位置関係によって、木構造データが示す各ノードの接続関係が表現されている。
例えば、ある1の文字列Tが、その下に配置された記号によって他の文字列Tと繋がっている場合、当該1の文字列Tが示すノードは、当該他の文字列Tが示すノードの親ノードである。図3に示す例では、文字列Tは、その下に配置された「|」によって、文字列Tと繋がっているため、文字列Tが示すノードは、文字列Tが示すノードの親ノードとなる。
別の言い方をすれば、ある1の文字列Tが、その上に配置された記号によって他の文字列Tと繋がっている場合、当該1の文字列Tが示すノードは、当該他の文字列Tが示すノードの子ノードである。図3に示す例では、文字列Tは、その上に配置された「|」によって文字列Tと繋がっているため、文字列Tが示すノードは、文字列Tが示すノードの子ノードとなる。
また例えば、ある1の文字列Tが、その右に配置された記号によって他の文字列Tと繋がっている場合、当該1の文字列Tが示すノードは、当該他の文字列Tが示すノードの親ノードである。図3に示す例では、文字列Tは、その右に配置された2つの「−」によって文字列T31と繋がっている。このため、文字列Tが示すノードは、文字列T31が示すノードの親ノードとなる。
別の言い方をすれば、ある1の文字列Tが、その左に配置された記号によって他の文字列Tと繋がっている場合、当該1の文字列Tが示すノードは、当該他の文字列Tが示すノードの子ノードである。図3に示す例では、文字列T31は、その左に配置された2つの「−」によって文字列Tと繋がっているため、文字列T31が示すノードは、文字列Tが示すノードの子ノードとなる。
本実施形態では、所定の文字列である「<main>」によって、根ノードを定義することができるようになっている。図3のコード例では、「<main>」と「|」で結ばれた文字列Tが示すノードが、根ノードである。即ち、「<main>」の文字列は、根ノードを定義するためのコードといえる。
また、ある1の文字列Tの右及び下の何れにも記号が配置されていない場合、又は、記号が配置されているがその先に他の文字列Tが存在しない場合、当該1の文字列Tが示すノードは、葉ノードである。図3のコード例では、文字列T,T10,T17,T19,T27,T29,T30,T31は、その右にも下にも記号が存在しないので、これらのノードは、葉ノードである。
なお、テキストデータには、ノードとブランチ以外のテキストを含んでいてもよく、例えば、ヘッダ部分やコメント部分を示す文字列を含んでいてもよい。
[木構造データ]
図4は、木構造データの一例を示す図であり、図5は、図4の木構造データの各ノードの接続関係を示す図である。図4のように、木構造データは、木構造の各ノードの内容(データ部分)とノードの接続関係とを示し、例えば、ノードID、親ノードのノードID、子ノードのノードID、及びノードの内容が関連付けられている。なお、図5において、円で囲われた数値は、図4のノードIDである。
ノードIDは、各ノードを一意に識別する情報であり、例えば、各ノードに割り振られるノード番号(ポインタ)である。本実施形態では、根ノードから前順走査を行って探索した各ノードに、1から順番にノードIDが付与されている。なお、図4に示す例では、各ノードIDに関連付けて、親ノードと子ノードの両方のノードIDが格納されている場合を説明しているが、何れか一方のみが格納されていてもよい。
本実施形態では、テキストデータがプログラミング言語のコードを含む場合を説明するので、図4に示す木構造データは、図3に示すテキストデータをコンパイルすることで生成される。別の言い方をすれば、図4に示す木構造データを逆コンパイルすると、図3に示すテキストデータが生成される。なお、図4では、ノードの内容を文字列で記載しているが、実際にはノードの内容は機械語で表される。
図3のコード例では、文字列Tが示すノードが根ノードであり、図4及び図5に示すように、このノードにノードID「1」が付与されている。ノードIDが「1」のノードは、根ノードであり親ノードを持たないため、図4に示すように、ノードIDが「1」のノードは、親ノードIDを持たず、親ノードID部分には「NULL」等が格納される。
また、根ノードの子ノードは、文字列TとT31の各々が示すノードであり、これらのノードにノードID「2」と「31」が付与されている。このため、図4及び図5に示すように、ノードIDが「1」のノードの子ノードIDは、「2」と「31」になる。一方、ノードIDが「2」と「31」のそれぞれのノードの親ノードIDは、「1」になる。なお、先述したように、文字列T31が示すノード(ノードIDが「31」のノード)は、葉ノードなので、図4に示すように、子ノードIDを持たず、子ノードID部分には「NULL」等が格納される。他のノードも同様に、図3に示すテキストデータで定義されたように、各ノードの親子関係は図4及び図5のようになっている。即ち、文字列T,T,T11,T12,T20,T21のそれぞれは、条件式を示すので、これらの文字列が示すノードであるノードID「2」「3」「11」「12」「20」「21」のそれぞれのノードは、2つの子ノードを持つ。他のノードは、条件式ではなく関数なので、1つの子ノードを持つノード、又は、葉ノードとなる。
[位置データ]
図6は、位置データの一例を示す図である。図6に示すように、位置データには、木構造データの各ノードのノードIDと、当該ノードを示す文字列Tのテキストデータ上での位置情報と、が関連付けられている。位置データは、後述する変換部11が、逆コンパイル時に生成してもよいし、コンパイル時に生成してもよい。位置情報は、テキストデータにおけるノードを示す文字列Tの位置を示せばよく、例えば、テキストデータの何文字目に、そのノードを示す文字列Tがあるかを示している。なお、位置情報は、テキストデータにおけるノードを特定可能であればよく、編集画面20における文字列Tの表示位置であってもよい。この場合、位置情報は、1次元的な情報ではなく、2次元的な情報が格納されることになる。
なお、データ記憶部10が記憶するデータは、テキストデータや木構造データに限られない。データ記憶部10は、木構造データを編集するために必要なデータを記憶するようにすればよい。例えば、データ記憶部10は、テキストエディタのプログラムを記憶してもよい。
[2−2.変換部]
変換部11は、制御部2を主として実現される。変換部11は、木構造データと、木構造データに対応するテキストデータと、を相互に変換する。これらの変換ルールを定義した変換データは、データ記憶部10に予め記憶されているものとする。変換データは、テキストデータから木構造データへの変換アルゴリズムと、木構造データからテキストデータへの変換アルゴリズムと、を含む。
本実施形態では、変換データは、所与のプログラミング言語で使用されるコンパイラと、逆コンパイラと、であり、テキストエディタのプログラムに含まれている。コンパイラは、プログラミング言語で記述されたコードから、機械語で記述されたオブジェクトコードを生成するプログラムである。逆コンパイラは、機械語で記述されたオブジェクトコードを解析し、ユーザが視覚的に理解しやすいコードを作成するプログラムである。変換部11は、テキストデータをコンパイルして木構造データに変換し、木構造データを逆コンパイルしてテキストデータに変換する。
例えば、変換部11は、次のようにしてテキストデータをコンパイルする。まず、変換部11は、テキストデータに含まれる所定の文字列Tに基づいて根ノードを特定する。本実施形態では、変換部11は、所定のコードである「<main>」の下に配置された「|」で接続されたコードを根ノードとして特定する。そして、変換部11は、根ノードを示す文字列Tの周囲(下又は右)にブランチを示す特定の記号「|」又は「−」があるか否かを判定する。変換部11は、「|」又は「−」があると判定した場合、その先にある文字列Tを根ノードの子ノードとして特定する。以降同様に、変換部11は、各ノードの周囲を探索して「|」又は「−」があるか否かを判定し、これらの記号があると判定した場合、その先にある文字列Tを当該ノードの子ノードとして特定する。変換部11は、ノードの周囲に「|」又は「−」が無いと判定した場合、又は、ノードの周囲に「|」又は「−」があるがその先に文字列Tがないと判定した場合、当該ノードを葉ノードとして特定する。変換部11は、上記のように各ノードの親子関係を特定し、所定の順番で各ノードにノードIDを付与することによって、木構造データを生成する。
また例えば、変換部11は次のようにして木構造データを逆コンパイルする。まず、変換部11は木構造データの親ノードIDがないノード(「NULL」が格納されているノード)を、根ノードとして特定する。そして、変換部11は、テキストデータ上の所定位置に所定のコードである「<main>」を配置し、その下にブランチを示す特定の記号である「|」を配置し、その先に根ノードを示す文字列Tを生成して配置する。ノードと文字列Tの変換表は、予めデータ記憶部10に記憶しておくものとする。そして、変換部11は、木構造データの根ノードの子ノードIDによって子ノードを特定する。特定した子ノードが1つである場合、変換部11は、根ノードを示す文字列Tの下に「|」を配置し、その先に子ノードを示す文字列Tを配置する。一方、特定した子ノードが2つである場合、変換部11は、根ノードを示す文字列Tの下に「|」を配置し、その先にノードIDが小さい方の子ノードを示す文字列Tを配置する。次いで、変換部11は、根ノードを示す文字列Tの右に「−」を配置し、その先にノードIDが大きい方の子ノードを示す文字列Tを配置する。以降同様にして、変換部11は、子ノードの特定、ブランチを示す記号の配置、子ノードを示す文字列Tの配置を繰り返すことによって、木構造データからテキストデータを生成する。なお、変換部11は、ノードを示す文字列Tの文字数やその周囲のノードを示す文字列Tの位置や文字数に応じて、各文字列Tが結合しないように、ブランチを示す記号の数を調整してもよい。
[2−3.表示制御部]
表示制御部12は、それぞれ制御部2を主として実現される。表示制御部12は、テキストデータの編集画面20を表示部6に表示させる。編集画面20は、テキストデータを編集するための画面であり、例えば、テキストエディタの画面である。本実施形態では、テキストデータがプログラミング言語のコードを含む場合を説明するので、編集画面20は、所与のプログラミング言語のコードを入力するためのテキストエディタの画面といえる。図3に示すように、編集画面20のメニューバー21には、テキストエディタの各種機能を利用するためのメニューが表示される。
[2−4.選択操作受付部]
選択操作受付部13は、制御部2を主として実現される。選択操作受付部13は、操作部5からの入力信号に基づいて、編集画面20上の範囲を選択するための選択操作を受け付ける。選択範囲は、編集画面20におけるテキストのコピー範囲である。本実施形態では、選択操作は、編集画面20上で矩形選択をするための操作である場合を説明するが、必ずしも選択範囲は、矩形でなくてもよい。ユーザがメニューバー21の編集ボタンを選択したり、操作部5から所定のコマンドを入力すると矩形選択をしたりすることができる。
図7は、テキストエディタ上で矩形選択をする様子を示す図である。図7に示すように、ユーザは、編集画面20に表示されたカーソル22を用いて開始位置と終了位置を指定すると、開始位置と終了位置を対角線とする長方形の選択範囲23が選択される。ここでは、選択範囲23内に、文字列T20〜T29とこれらを繋ぐブランチの記号とが含まれている。なお、ユーザは、カーソル22ではなく、マウスポインタ等を使用して矩形選択を行うようにしてもよい。
[2−5.ノード選択部]
ノード選択部14は、制御部2を主として実現される。ノード選択部14は、編集画面20で選択範囲23が指定された場合、当該選択範囲23の位置に基づいて、木構造データの中から1以上のノードIDを選択する。本実施形態では、ノード選択部14は、位置データに基づいて、選択されたノードIDを特定する。例えば、ノード選択部14は、選択範囲23のテキストデータ上の位置を特定し、当該選択範囲23に位置が含まれるノードIDを特定する。
図8は、図7のように矩形選択が行われた場合に選択されるノードIDを示す図である。ノード選択部14が位置データを参照して、図7で矩形選択された選択範囲23内を検索すると、検索結果として、ノードIDが「20」〜「29」の部分木(図8に破線で示す)のノードIDを得る。このため、ノード選択部14は、ノードIDが「20」〜「29」の10個の各ノードIDを、矩形選択で選択されたノードとして特定する。
[2−6.貼付操作受付部]
貼付操作受付部15は、制御部2を主として実現される。貼付操作受付部15は、操作部5からの入力信号に基づいて、選択範囲23内のテキストを貼り付けるための貼付操作を受け付ける。図9は、貼付操作が行われる様子を示す図である。図9に示すように、ユーザは、編集画面20上の任意の位置をカーソル22で指定することによって、貼付操作を行う。なお、ユーザは、マウスポインタ等を使用して矩形選択を行うようにしてもよい。
[2−7.接続先決定部]
接続先決定部16は、制御部2を主として実現される。接続先決定部16は、編集画面20で選択範囲23の貼り付け先が指定された場合、当該貼り付け先の位置に基づいて、木構造データの中から接続先のノードIDを決定する。本実施形態では、接続先決定部16は、貼り付け先の位置の最も近くにテキストが表示されているノードのノードIDを、接続先のノードIDとして決定する。
例えば、接続先決定部16は、位置データに基づいて接続先のノードIDを決定する。具体的には、接続先決定部16は、貼付操作によって指定されたテキストデータ上の位置を特定する。そして、接続先決定部16は、当該特定した位置に最も近い位置のノードIDを探索し、そのノードIDを接続先として決定する。例えば、図9に示すように、貼付操作で指定された位置が文字列Tの付近である場合、接続先決定部16は、ノードIDが「2」のノードを接続先として決定する。
[2−8.木構造データ編集部]
木構造データ編集部17は、制御部2を主として実現される。木構造データ編集部17は、ノード選択部14が特定した1以上のノードIDが示すノードが接続先のノードIDが示すノードに接続するように、木構造データを編集する。木構造データ編集部17が、接続先のノードIDを親ノードとして、ノード選択部14が特定した1以上のノードIDによる部分木を挿入するようにコンパイルを行い、木構造データを更新する。
図10及び図11は、木構造データ編集部17による編集後の木構造データを示す図である。なお、ここでは、木構造データ編集部17が木構造データを編集するとノードIDを振り直す場合を説明する。図10及び図11に示すように、ノードIDが「1」〜「10」のノードは編集前と同じである。ノードIDが「11」〜「20」のノードは、図8で選択されたノードIDが「20」〜「29」のノードと同じ内容である。即ち、選択範囲23内の部分木が、接続先のノードIDである「2」の子ノードとして挿入されていることになる。図11に示すノードIDが「21」〜「40」のノードは、図8に示すノードIDが「11」〜「30」と同じ内容である。即ち、図8に示すノードIDが「11」のノードは、ノードIDが「2」のノードが親ノードであったが、選択範囲23内の部分木が挿入されたので、当該部分木の根ノードであるノードID「20」(図11では「12」)の子ノードとなっている。
木構造データ編集部17の処理が実行されると、変換部11は、木構造データ編集部17により編集された木構造データをテキストデータに変換することになる。例えば、変換部11は、編集後の木構造データを逆コンパイルすることによってテキストデータに変換する。逆コンパイルの方法は、先述した通りである。また、木構造データ編集部17は、編集後の木構造データに基づいて位置データを更新する。木構造データ編集部17は、各ノードIDのノードを示す文字列Tの生成時に、その文字列Tがテキストデータ上のどの位置になるかを計算することで、位置データを更新すればよい。木構造データ編集部17の処理が実行されると、表示制御部12は、変換部11により変換されたテキストデータに基づいて、編集画面20の表示を更新する。
図12は、編集後のテキストデータを示す図であり、図13は、編集後の木構造データに基づいて生成される位置データを示す図である。図12に示すように、編集後の木構造データを示すようにテキストデータが生成され、図13に示すように、編集後の木構造データを示すように位置データも更新される。即ち、図12に示すように、テキストエディタ上では、文字列T11〜T19の部分が挿入されているが、それより下のノードを示す文字列T20〜T40のレイアウトが崩れることなく、木構造を示すように保持されている。即ち、テキストエディタ上でコピーアンドペーストをした場合は、レイアウトが崩れてしまうが、本実施形態では、コピーアンドペースト後にテキストエディタ内のコンパイラと逆コンパイラとで上記説明した処理が行われて、木構造を保持したテキストデータを生成するので、レイアウトを保つことができる。
[3.木構造データ編集装置において実行される処理]
図14は、木構造データ編集装置1において実行される処理の一例を示すフロー図である。図14に示す処理は、制御部2が、記憶部3に記憶されたプログラムに従って動作することによって実行される。本実施形態では、下記に説明する処理が実行されることにより、図2に示す機能ブロックが実現される。なお、ここでは、ユーザが、記憶部3に記憶されたテキストデータをテキストエディタで開いて、コード編集作業をする場合の処理を例に挙げて説明する。
図14に示すように、まず、制御部2は、記憶部3に記憶されたテキストエディタを起動し、記憶部3に記憶されたテキストデータをRAMに展開し、編集画面20を表示部6に表示させる(S1)。制御部2は、操作部5からの入力を受け付ける(S2)。ここでは、ユーザは、編集画面20へのテキスト入力と、矩形選択をするための選択操作と、選択範囲をコピーするためのコピー操作と、コピー元のテキストを張り付けるための貼付操作と、テキストエディタを終了させる終了操作と、テキストエディタ上で可能な他の操作と、の何れかをすることができるものとする。
ユーザがテキストを入力した場合(S2;テキスト入力)、制御部2は、記憶部3のRAMに記憶されたテキストデータを更新する(S3)。制御部2は、S3で更新されたテキストデータをコンパイルして木構造データを生成する(S4)。なお、S4の処理が実行される場合に、制御部2は、生成した木構造データを逆コンパイルしてテキストデータを更新するようにしてもよい。また、S4では、制御部2は、位置データを生成して記憶部3に記録するものとする。
一方、S2において、ユーザが選択操作をした場合(S2;選択操作)、制御部2は、操作部5からの入力に基づいて、編集画面20上で選択された選択範囲を特定する(S5)。S5においては、制御部2は、編集画面20においてカーソル22の開始位置と終了位置とを取得し、これらを対角線とする長方形の領域を選択範囲23として特定し、選択範囲23の位置を示す情報を記憶部3に一時的に保持する。
一方、S2において、ユーザがコピー操作をした場合(S2;コピー操作)、制御部2は、記憶部3に記憶された位置データを参照し、S5において取得した選択範囲に含まれるノードIDを選択する(S6)。S6においては、制御部2は、テキストデータを参照して選択範囲23に含まれる位置を特定する。そして、制御部2は、位置データを参照して選択範囲23内の位置のノードIDを特定することになる。制御部2は、S6で特定したノードIDを記憶部3に一時的に記録する。なお、通常のテキストエディタと同様、制御部2は、選択範囲23内のテキストを記憶部3の所定領域(クリップボード)に保持するようにしてもよい。
一方、S2において、ユーザが貼付操作をした場合(S2;貼付操作)、制御部2は、貼付操作により指示された貼り付け先の位置を取得する(S7)。S7においては、制御部2は、貼付操作が行われた場合の編集画面20におけるカーソル22の位置に基づいて、テキストデータ上の貼り付け先の位置を取得する。
制御部2は、位置データを参照して、S7で取得した貼り付け先の位置に最も近いノードIDを接続先として決定し(S8)、S6で選択したノードIDとS8で決定した接続先のノードIDとをコンパイラに入力して木構造データを編集する(S9)。S9においては、制御部2がコンパイルを実行すると、S6で選択したノードIDがS8で決定した接続先のノードIDの子ノードに挿入される。
制御部2は、編集後の木構造データを逆コンパイラに渡し、テキストデータに変換し(S10)、S10で変換したテキストデータに基づいて、編集画面20の表示を更新する(S11)。S10においては、制御部2が逆コンパイルを実行すると、S9で編集された木構造データを示すテキストデータが生成される。なお、S10においては、制御部2は、新たな位置データを生成することになる。
なお、S2において、ユーザがその他の操作をした場合(S2;その他の操作)、制御部2は、当該操作に応じた処理を実行する(S12)。例えば、その他の操作は、テキストデータを保存する操作やテキストエディタの設定を変更する操作等である。S2において、ユーザが終了操作をした場合(S2;終了操作)、本処理は終了する。
以上説明した木構造データ編集装置1によれば、木構造データに対応するテキストデータをテキストエディタ上で編集する際に、選択範囲23内のコピーアンドペーストが指示されると、選択範囲23内のテキストを単純に貼り付けるのではなく、選択範囲23内のノードIDと接続先のノードIDをコンパイラに渡してコンパイルした後に木構造データを逆コンパイルするので、部分木の挿入を確実に実行するとともに、テキストデータ上のレイアウトが崩れることを防止することができる。このため、崩れたレイアウトを手作業で修正するようなことがなくなり、木構造データをテキストで編集する際のユーザの手間を軽減することができる。
[4.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
例えば、実施形態では、テキストエディタ上でコピーアンドペーストをする場合を例に挙げて説明したが、カットアンドペーストをする場合も同様の処理が実行されるようにしてもよい。図15は、変形例の機能ブロックを示す図である。図15に示すように、変形例では、実施形態で説明した機能に加えて、親子特定部18が実現される。親子特定部18は、制御部2を主として実現される。親子特定部18は、ノード選択部14により選択された1以上のノードIDの親ノードIDと子ノードIDを特定する。
図16及び図17は、変形例において指定された選択範囲23を示す図である。変形例における選択範囲23は、編集画面20におけるテキストの切り取り範囲といえる。図16のように選択範囲23が指定されると、選択範囲23内に文字列T21,T28,T29が含まれているので、図17に示すように、ノード選択部14は、位置データを参照して、ノードIDが「21」、「28」、「29」のノードを選択することになる(図17に破線で示す)。選択範囲23内のノードID選択方法は、実施形態で説明した方法と同じである。
親子特定部18は、テキストデータ及び位置データを参照し、これら3つのノードからなる部分木の親ノードIDと子ノードIDを特定する。例えば、親子特定部18は、選択範囲23内の部分木の根ノードを示す文字列T21の上にある記号「|」で繋がれた文字列T20のノードID「21」を親ノードIDとして特定する。そして、親子特定部18は、文字列T21の下にある記号「|」で繋がれた文字列T22のノードID「22」を子ノードIDとして特定する。なお、文字列T29の下にはブランチを示す記号が無く、ノードID「29」のノードは葉ノードなので、子ノードIDは、「22」のみとなる。
図18は、変形例において指定された貼り付け先を示す図である。図18に示す場合、接続先決定部16は、ノードID「12」を接続先として決定する。接続先のノードIDの決定方法は、実施形態で説明した方法と同じである。この場合、ユーザは、選択範囲23で選択したノードID「21」「28」「29」の部分木を切り取って、ノードID「12」の下に挿入することを指示している。
木構造データ編集部17は、ノード選択部14により選択された1以上のノードIDが示すノードが接続先のノードIDが示すノードに接続し、かつ、子ノードIDが示すノードが親ノードIDが示すノードに接続するように、木構造データを更新する。接続先のノードIDへの接続方法は、実施形態と同じである。変形例では、木構造データ編集部17、実施形態で説明した処理に加えて、親子特定部18が特定した子ノードIDが親ノードIDに直接的に接続するようにコンパイルを行い、木構造データを更新することになる。
図19及び図20は、変形例において木構造データが更新される様子を示す図である。図19及び図20に示すように、ノードIDが「1」〜「12」のノードは編集前と同じである。ノードIDが「13」、「19」、「20」のノードは、図8で選択されたノードIDが「21」「28」「29」のノードと同じ内容である。即ち、選択範囲23内の部分木が、接続先のノードIDである「12」の子ノードとして挿入されていることになる。図20に示すノードIDが「14」〜「18」のノードは、図8に示すノードIDが「13」〜「17」と同じ内容である。即ち、図8に示すノードIDが「13」のノードは、ノードIDが「12」のノードが親ノードであったが、選択範囲23内の部分木が挿入されたので、当該部分木の根ノードであるノードID「21」(図20では「14」)の子ノードとなっている。また、図20に示すノードIDが「21」〜「23」のノードは、図8に示すノードIDが「18」〜「20」と同じ内容である。ただし、図8に示すノードIDが「21」「28」「29」の部分木は切り取られているので、ノードID「20」(図20では、ノードID「23」)とノードID「22」(図20では、ノードID「24」)が直接結合するようになっている。図20に示すノードID「24」〜「31」は、図8に示すノードID「22」〜「27」、「30」「31」と同じ内容である。
実施形態と同様、木構造データ編集部17の上記処理が実行されると、変換部11は、木構造データ編集部17により編集された木構造データをテキストデータに変換し、木構造データ編集部17は、編集後の木構造データに基づいて位置データを更新することになる。そして、表示制御部12は、変換部11により変換されたテキストデータに基づいて、編集画面20の表示を更新する。
図21は、木構造データが更新された後の編集画面20である。図21に示すように、編集後の木構造データを示すようにテキストデータが生成される。即ち、図21に示すように、テキストエディタ上では、切り取られた文字列T13,T19,T20(図18では、文字列T21,T28,T29)の部分が挿入されているが、実施形態と同様、挿入先の文字列T14〜T18のレイアウトが崩れることなく、木構造を示すように保持されている。更に、文字列T23とT24(図18では、文字列T20,T22)が結合しているので、切り取った部分のレイアウトも崩れずに保つことができる。
上記変形例によれば、カットアンドペーストをするときであっても、テキストデータ上のレイアウトが崩れることを防止することができるので、崩れたレイアウトを手作業で修正するようなことがなくなり、木構造データをテキストで編集する際のユーザの手間を軽減することができる。
なお、変換部11による変換方法は、上記の例に限られない。変換部11は、予め定められた変換ルールに基づいて、木構造データとテキストデータとを相互に変換すればよい。例えば、これらの変換ルールを定めた変換テーブルを用意しておいてもよい。また、ノード選択部14がノードIDを特定する方法は、上記の例に限られない。例えば、ノード選択部14は、選択範囲23内のテキストをコンパイラに渡すことによってノードIDを特定してもよい。また、接続先決定部16による接続先の決定方法は、上記の例に限られない。接続先決定部16は、接続先として指定された付近のテキストをコンパイラに渡すことによって接続先のノードIDを特定してもよい。
また、上記においては、テキストエディタ内にコンパイラと逆コンパイラが含まれる場合を説明したが、テキストエディタ・コンパイラ・逆コンパイラは、それぞれプログラムとして別体であってもよい。また、上記説明した処理は、木構造の分岐が発生しやすいABテストパターンを実装するプログラミング言語に適用してもよいし、他のプログラミング言語に適用してもよい。更に、ソースコードを編集する場合を例に挙げて説明したが、木構造データをテキストエディタ上で編集すればよく、ソースコードの編集に限られない。例えば、データベースの編集時に上記と同様の処理を実行してもよい。また、木構造データを2分木として説明したが、テキストデータ上で木構造を視覚的に分かりやすく編集可能であればよく、3分木以上であってもよい。
また、上記においては、木構造データ編集装置1をユーザが直接操作するパーソナルコンピュータとしたが、木構造データ編集装置1は、サーバコンピュータにより実現されるようにしてもよい。この場合、ユーザは自分が操作するコンピュータと木構造データ編集装置1は、ネットワークを介してデータ送受信可能に接続されており、ユーザは木構造データ編集装置1にアクセスして、上記説明した処理をサーバコンピュータである木構造データ編集装置1に実行させる。この場合、ユーザが操作するコンピュータと木構造データ編集装置1とを合わせて木構造データ編集システムということもできる。上記説明した各機能が、木構造データ編集システム内のコンピュータで分担されてもよい。なお、この場合、データ記憶部10に記憶されるものとして説明したデータは、他のデータベースサーバに存在してもよい。

Claims (6)

  1. 木構造データと、前記木構造データに対応するテキストデータと、を相互に変換する変換手段と、
    前記テキストデータの編集画面を表示手段に表示させる表示制御手段と、
    前記編集画面で選択範囲が指定された場合、当該選択範囲の位置に基づいて、前記木構造データの中から1以上のノードIDを選択するノード選択手段と、
    前記編集画面で前記選択範囲の貼り付け先が指定された場合、当該貼り付け先の位置に基づいて、前記木構造データの中から接続先のノードIDを決定する接続先決定手段と、
    前記1以上のノードIDが示すノードが前記接続先のノードIDが示すノードに接続するように、前記木構造データを編集する木構造データ編集手段と、
    を含み、
    前記変換手段は、前記木構造データ編集手段により編集された前記木構造データを前記テキストデータに変換し、
    前記表示制御手段は、前記変換手段により変換された前記テキストデータに基づいて、前記編集画面の表示を更新する、
    ことを特徴とする木構造データ編集装置。
  2. 前記選択範囲は、前記編集画面におけるテキストの切り取り範囲であり、
    前記木構造データ編集装置は、前記1以上のノードIDの親ノードIDと子ノードIDを特定する手段を更に含み、
    前記木構造データ編集手段は、前記1以上のノードIDが示すノードが前記接続先のノードIDが示すノードに接続し、かつ、前記子ノードIDが示すノードが前記親ノードIDが示すノードに接続するように、前記木構造データを更新する、
    ことを特徴とする請求項1に記載の木構造データ編集装置。
  3. 前記接続先決定手段は、前記貼り付け先の位置の最も近くにテキストが表示されているノードのノードIDを、前記接続先のノードIDとして決定する、
    ことを特徴とする請求項1又は2に記載の木構造データ編集装置。
  4. 前記編集画面は、所与のプログラミング言語のコードを入力するためのテキストエディタの画面であり、
    前記変換手段は、前記テキストデータをコンパイルして前記木構造データに変換し、前記木構造データを逆コンパイルして前記テキストデータに変換する、
    ことを特徴とする請求項1〜3の何れかに記載の木構造データ編集装置。
  5. 木構造データと、前記木構造データに対応するテキストデータと、を相互に変換する変換ステップと、
    前記テキストデータの編集画面を表示手段に表示させる表示制御ステップと、
    前記編集画面で選択範囲が指定された場合、当該選択範囲の位置に基づいて、前記木構造データの中から1以上のノードIDを選択するノード選択ステップと、
    前記編集画面で前記選択範囲の貼り付け先が指定された場合、当該貼り付け先の位置に基づいて、前記木構造データの中から接続先のノードIDを決定する接続先決定ステップと、
    前記1以上のノードIDが示すノードが前記接続先のノードIDが示すノードに接続するように、前記木構造データを編集する木構造データ編集ステップと、
    を含み、
    前記変換ステップでは、前記木構造データ編集ステップにより編集された前記木構造データを前記テキストデータに変換し、
    前記表示制御ステップでは、前記変換手段により変換された前記テキストデータに基づいて、前記編集画面の表示を更新する、
    ことを特徴とする木構造データ編集方法。
  6. 木構造データと、前記木構造データに対応するテキストデータと、を相互に変換する変換手段、
    前記テキストデータの編集画面を表示手段に表示させる表示制御手段、
    前記編集画面で選択範囲が指定された場合、当該選択範囲の位置に基づいて、前記木構造データの中から1以上のノードIDを選択するノード選択手段、
    前記編集画面で前記選択範囲の貼り付け先が指定された場合、当該貼り付け先の位置に基づいて、前記木構造データの中から接続先のノードIDを決定する接続先決定手段、
    前記1以上のノードIDが示すノードが前記接続先のノードIDが示すノードに接続するように、前記木構造データを編集する木構造データ編集手段、
    としてコンピュータを機能させ、
    前記変換手段は、前記木構造データ編集手段により編集された前記木構造データを前記テキストデータに変換し、
    前記表示制御手段は、前記変換手段により変換された前記テキストデータに基づいて、前記編集画面の表示を更新する、
    ことを特徴とするプログラム。
JP2016570367A 2015-07-31 2015-07-31 木構造データ編集装置、木構造データ編集方法、及びプログラム Active JP6162909B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/071883 WO2017022041A1 (ja) 2015-07-31 2015-07-31 木構造データ編集装置、木構造データ編集方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP6162909B2 JP6162909B2 (ja) 2017-07-12
JPWO2017022041A1 true JPWO2017022041A1 (ja) 2017-08-03

Family

ID=57943836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016570367A Active JP6162909B2 (ja) 2015-07-31 2015-07-31 木構造データ編集装置、木構造データ編集方法、及びプログラム

Country Status (3)

Country Link
US (1) US11055069B2 (ja)
JP (1) JP6162909B2 (ja)
WO (1) WO2017022041A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114186534A (zh) * 2020-09-14 2022-03-15 苏州七星天专利运营管理有限责任公司 一种文档辅助编辑的方法和系统
US20230367556A1 (en) * 2022-05-16 2023-11-16 Microsoft Technology Licensing, Llc Code Editing Tracking and Management for Vision Impaired

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60100226A (ja) * 1983-10-17 1985-06-04 Fujitsu Ltd 木構造チヤ−ト・テキスト処理装置
JPH01243113A (ja) * 1988-03-25 1989-09-27 Hitachi Ltd 木構造データの表示選択方法
JPH02121030A (ja) * 1988-09-26 1990-05-08 Internatl Business Mach Corp <Ibm> 接続方法、ノード接続方法、データ処理方法、及び木内にノードを挿入する方法
JPH04205458A (ja) * 1990-11-30 1992-07-27 Pfu Ltd 階層編集処理装置
JPH05307476A (ja) * 1992-04-30 1993-11-19 Nippon Steel Corp 木構造表示編集装置
JPH07182147A (ja) * 1993-10-29 1995-07-21 Microsoft Corp コンピュータプログラムを発生する方法及びシステム
JPH1139145A (ja) * 1997-07-24 1999-02-12 Casio Comput Co Ltd プログラム構築支援装置及び記憶媒体
JP2001291112A (ja) * 2000-01-31 2001-10-19 Fujitsu Ltd 図形編集装置、および図形編集方法、並びにそのためのプログラムを格納した記録媒体
JP5666758B1 (ja) * 2014-06-25 2015-02-12 楽天株式会社 情報処理装置、情報処理方法、プログラム、記憶媒体

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06110886A (ja) * 1992-09-30 1994-04-22 Fuji Xerox Co Ltd 論理構造を有する文書のコピーペースト処理装置
US6714201B1 (en) * 1999-04-14 2004-03-30 3D Open Motion, Llc Apparatuses, methods, computer programming, and propagated signals for modeling motion in computer applications
US7053914B2 (en) 2000-01-31 2006-05-30 Fujitsu Limited Graphic editing device, graphic editing method and storage medium for storing a program
US7237226B2 (en) * 2003-05-09 2007-06-26 Intentional Software Corporation Method and system for storing pending changes to data
US7197502B2 (en) * 2004-02-18 2007-03-27 Friendly Polynomials, Inc. Machine-implemented activity management system using asynchronously shared activity data objects and journal data items
US8407610B2 (en) * 2005-09-30 2013-03-26 Sap Portals Israel Ltd. Executable and declarative specification for graphical user interfaces
US20110271179A1 (en) * 2010-04-28 2011-11-03 Peter Jasko Methods and systems for graphically visualizing text documents
US9098106B2 (en) * 2012-08-10 2015-08-04 Comsol Ab Systems and methods for creating application interfaces for forming and solving problems in a modeling system
WO2014081727A1 (en) * 2012-11-20 2014-05-30 Denninghoff Karl L Search and navigation to specific document content
US10242115B2 (en) * 2013-02-08 2019-03-26 Contentmap Aktiebolag Method and device for handling data containers
US9489599B2 (en) * 2013-11-03 2016-11-08 Kla-Tencor Corp. Decision tree construction for automatic classification of defects on semiconductor wafers

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60100226A (ja) * 1983-10-17 1985-06-04 Fujitsu Ltd 木構造チヤ−ト・テキスト処理装置
JPH01243113A (ja) * 1988-03-25 1989-09-27 Hitachi Ltd 木構造データの表示選択方法
JPH02121030A (ja) * 1988-09-26 1990-05-08 Internatl Business Mach Corp <Ibm> 接続方法、ノード接続方法、データ処理方法、及び木内にノードを挿入する方法
JPH04205458A (ja) * 1990-11-30 1992-07-27 Pfu Ltd 階層編集処理装置
JPH05307476A (ja) * 1992-04-30 1993-11-19 Nippon Steel Corp 木構造表示編集装置
JPH07182147A (ja) * 1993-10-29 1995-07-21 Microsoft Corp コンピュータプログラムを発生する方法及びシステム
JPH1139145A (ja) * 1997-07-24 1999-02-12 Casio Comput Co Ltd プログラム構築支援装置及び記憶媒体
JP2001291112A (ja) * 2000-01-31 2001-10-19 Fujitsu Ltd 図形編集装置、および図形編集方法、並びにそのためのプログラムを格納した記録媒体
JP5666758B1 (ja) * 2014-06-25 2015-02-12 楽天株式会社 情報処理装置、情報処理方法、プログラム、記憶媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
中島 隆: ""木構造チャートツールの開発"", 第36回(昭和63年前期)全国大会 講演論文集(II), JPN6015043162, 16 March 1988 (1988-03-16), JP, pages 901 - 902, ISSN: 0003483247 *
原田賢一 編: ""第III部 図式向きプログラミング用エディタ:4.YAC II エディタ"", 構造エディタ, vol. 初版, JPN6015043160, 1 April 1987 (1987-04-01), JP, pages 135 - 146, ISSN: 0003483246 *

Also Published As

Publication number Publication date
JP6162909B2 (ja) 2017-07-12
WO2017022041A1 (ja) 2017-02-09
US20180225268A1 (en) 2018-08-09
US11055069B2 (en) 2021-07-06

Similar Documents

Publication Publication Date Title
US7146565B2 (en) Structured document edit apparatus, structured document edit method, and program product
CN102741811A (zh) 改善基于模板的JavaScript小部件的性能
JP6370503B1 (ja) プログラム作成装置
JP6162909B2 (ja) 木構造データ編集装置、木構造データ編集方法、及びプログラム
EP1744255A1 (en) Document processing device and document processing method
US9483569B2 (en) Electronic-manual browsing apparatus and system
EP1744256A1 (en) Document processing device and document processing method
KR101649822B1 (ko) 웹페이지 구축 장치 및 방법
JP2015204076A (ja) 文書差分表示プログラム及び情報処理装置
US20210004524A1 (en) Catalog file creation assistance device, catalog file creation assistance method, and catalog file creation assistance program
JP7105683B2 (ja) 電子計算機、方法及びプログラム
JP2010205068A (ja) ソフトウェア資源移行システム及び同移行方法
JP6394516B2 (ja) 開発支援プログラム、記録媒体、開発支援方法、及び開発支援装置
JP2008181311A (ja) リファクタリング支援装置及びプログラム
US10628131B2 (en) Device and method of generating programs for an information code reading device and host computer
JP2009211143A (ja) 情報処理装置および情報処理プログラム
US20070240036A1 (en) Document Processing Device and Document Processing Method
JP7322255B2 (ja) 電子計算機、方法及びプログラム
JP2020115260A (ja) 情報処理装置、及び情報処理プログラム
JP5772639B2 (ja) 設計支援装置
JP2010182031A (ja) ソフトウエア生成支援装置
KR101525510B1 (ko) 저작도구와 통합개발환경의 연동을 위한 장치와 그 제어 방법
JP6705993B2 (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2006309564A (ja) データ生成装置、制御用表示装置、並びに、そのプログラムおよび記録媒体
JP2024003204A (ja) 運転支援装置、運転支援方法及びコンピュータプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170331

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170615

R150 Certificate of patent or registration of utility model

Ref document number: 6162909

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250