JP4965090B2 - 数式の構築を自動化するためのシステムおよび方法 - Google Patents

数式の構築を自動化するためのシステムおよび方法 Download PDF

Info

Publication number
JP4965090B2
JP4965090B2 JP2005187819A JP2005187819A JP4965090B2 JP 4965090 B2 JP4965090 B2 JP 4965090B2 JP 2005187819 A JP2005187819 A JP 2005187819A JP 2005187819 A JP2005187819 A JP 2005187819A JP 4965090 B2 JP4965090 B2 JP 4965090B2
Authority
JP
Japan
Prior art keywords
operator
character
priority value
string
operators
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.)
Expired - Fee Related
Application number
JP2005187819A
Other languages
English (en)
Other versions
JP2006085673A (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006085673A publication Critical patent/JP2006085673A/ja
Application granted granted Critical
Publication of JP4965090B2 publication Critical patent/JP4965090B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/111Mathematical or scientific formatting; Subscripts; Superscripts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Document Processing Apparatus (AREA)
  • Image Generation (AREA)

Description

本発明は、コンピュータシステムに記入される数式の解釈および構築のためのシステムおよび方法に関する。
文書処理アプリケーションおよびhtmlエディタに数式を効率的に入力できる機能は、より多くの技術情報が文書処理およびウェブページ形式で配信されるようになるのに従って、ますます重要になりつつある。TeXおよびLaTeXなどのプログラムにより、ユーザは、様々な計算機環境に渡って移植可能な形式で数式を活字に組み、印刷することができるようになる。しかし、このようなプログラムは複雑であり、ユーザは、式を入力し、活字に組み、印刷することができるようになる前に、プログラムがどのように作用するかに関して、特別な知識をもつことが必要となる。
ワードプロセッサプログラムは通常、ユーザが文書処理環境において数式を作成し編集することを可能にするエディタと一括販売される。このようなエディタの一例が、ワシントン州レドモンドのマイクロソフトコーポレーションによって販売されている、Microsoft(登録商標)Equation Editor3.0である。こうしたタイプの数式エディタは一般に、ユーザが、2次元の式を作るために様々なツールバーアイコンの中から選択を行うことを要求するWYSIWYGエディタである。しかし、ツールバーアイコンの選択は、複雑で長い式を頻繁に記入する経験豊富なユーザにとってわずらわしい場合がある。
M. Sargent III, "Unicode Nearly Plain-Text Encoding of Mathematics," 26th Internationalization & Unicode Conference, San Jose, California (September 2004)
したがって、このような数式を2次元形式で表示しながら、式の記入を容易にし得るシステムおよび方法を提供することが望ましい。
本発明は、コンピュータシステムに記入される数式の解釈および構築のためのシステムおよび方法に関する。
本発明の一態様は、式を自動的に構築するコンピューティングシステムに関する。本システムは、線形文字列形式での式の入力を受諾する入力モジュールと、入力を解釈し、構築点に到達したときを自動的に判定する解釈モジュールとを含み得る。本システムは、構築点に達すると、式の少なくとも一部分を2次元形式に自動的にフォーマットするフォーマット化モジュールも含み得る。
本発明の別の態様は、コンピュータシステムに記入された数式を自動的に構築する方法に関する。本方法は、線形文字列形式での式の入力を受諾すること、構築点に到達しているかどうか自動的に判定すること、および構築点に到達すると、式の少なくとも一部分を線形文字列形式から2次元形式に自動的に変換することを含み得る。
本発明のさらに別の態様は、コンピュータシステムに記入された数式を自動的に構築する方法に関する。本方法は、線形文字列形式での式の第1の文字の入力を受諾すること、第1の文字を検査して、第1の構築点に到達しているかどうか判定することを含み、第1の構築点に到達している場合、式の第1の部分を線形文字列形式から2次元形式に自動的に変換すること、式の第1の部分を2次元形式で表示すること、およびその後、線形文字列形式での式の第2の文字の入力を受諾し続けることを含み、第1の構築点に到達していない場合、線形文字列形式での式の第2の文字の入力を受諾することを含み得る。
添付の図面に対して参照が行われるが、こうした図面は、必ずしも実物大で描かれているわけではない。
本発明は、これ以降、本発明の実施形態が示されている添付の図面を参照してより詳しく記述される。ただし、本発明は、多くの様々な形で実施されることができ、本明細書において説明される実施形態に限定されると解釈されるべきではない。そうではなく、こうした実施形態は、本開示が詳細かつ完全なものとなるように与えられ、当業者に本発明の範囲を十分に伝える。同じ番号は、全体を通して同じ要素を指す。
本発明は、コンピュータシステムに記入される数式の解釈および構築のためのシステムおよび方法に関する。
本明細書で使用する、「線形文字列形式(linear string format)」という言葉は、例えば、TeXやLaTeXなど、線形表記法を用いた、数式の、線形テキストに基づく表現を指す。線形文字列形式の式の例は、「x=1/2」(「xは、2分の1に等しい」)である。
「2次元形式」という言葉は、数式が、例えば、ポーランド式プレフィックス形式など、非線形表記法を用いて表される形式を指す。ポーランド式プレフィックス形式は、関数開始文字を含む形式であり、関数開始文字の後に、例えば、分子、分離文字、分母、および関数終了区切り文字が続く。2次元形式の式の例は、
Figure 0004965090
である(「xは、2分の1に等しい」)。
式は、線形文字列形式から2次元形式に、かつその逆に変換され得る。例えば、本明細書で開示される、式のいくつかの部分を線形文字列形式から2次元形式に自動的に変換するシステムおよび方法を含む実施形態などである。
ここで図1を参照すると、コンピュータシステム例100が示されている。図1に示されるコンピュータシステム100は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、およびハンドヘルドコンピュータなど、様々な形をとり得る。さらに、コンピュータシステム100が示されているが、本明細書で開示されるシステムおよび方法は、様々な代替コンピュータシステムでも実装され得る。
システム100は、プロセッサユニット102、システムメモリ104、およびシステムメモリなど様々なシステムコンポーネントをプロセッサユニット102に結合するシステムバス106を含む。システムバス106は、様々なバスアーキテクチャのいずれかを使用するメモリバス、周辺バス、およびローカルバスなどいくつかのタイプのバス構造のいずれでもよい。システムメモリは、ROM(読出し専用メモリ)108およびRAM(ランダムアクセスメモリ)110を含む。BIOS112(基本入出力システム)は、コンピュータシステム100内部の要素間の情報の転送を助ける基本ルーチンを含み、ROM108に格納される。
コンピュータシステム100は、ハードディスクからの読出しおよびそこへの書込みを行うハードディスクドライブ112、取り外し可能磁気ディスク116からの読出しまたはそこへの書込みを行う磁気ディスクドライブ114、および、例えばCD ROM、DVD、または他の光学媒体などの取り外し可能光ディスク119からの読出しまたはそこへの書込みを行う光ディスクドライブ118をさらに含み得る。ハードディスクドライブ112、磁気ディスクドライブ114、および光ディスクドライブ118は、それぞれハードディスクドライブインターフェース120、磁気ディスクドライブインターフェース122、および光ドライブインターフェース124によって、システムバス106に接続される。こうしたドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータシステム100用に、コンピュータ可読命令、データ構造、プログラム、および他のデータの不揮発性記憶をもたらす。
本明細書で説明される環境例は、ハードディスク112、取り外し可能磁気ディスク116、および取り外し可能光ディスク119を利用し得るが、データを格納することができる、コンピュータ可読な他のタイプの媒体も、システム例100において使われ得る。例示的な動作環境において使われ得るこうしたコンピュータ可読な他のタイプの媒体の例は、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、RAM(ランダムアクセスメモリ)、ROM(読出し専用メモリ)を含む。
オペレーティングシステム126、1つまたは複数のアプリケーションプログラム128、他のプログラムモジュール130、およびプログラムデータ132など、いくつかのプログラムモジュールが、ハードディスク112、磁気ディスク116、光ディスク119、ROM108、またはRAM110に格納され得る。
ユーザは、例えばキーボード134、マウス136、または他のポインティングデバイスなどの入力デバイスを介して、コマンドおよび情報をコンピュータシステム100に入力することができる。他の入力デバイスの例は、ツールバー、メニュー、タッチスクリーン、マイクロホン、ジョイスティック、ゲーム用パッド、ペン、衛星パラボラアンテナ、およびスキャナを含む。こうしたおよび他の入力デバイスはしばしば、システムバス106に結合されるシリアルポートインターフェース140を介して処理ユニット102に接続される。それにもかかわらず、こうした入力デバイスは、パラレルポート、ゲームポート、USB(ユニバーサルシリアルバス)など、他のインターフェースによっても接続され得る。LCDディスプレイ142または他のタイプの表示デバイスも、ビデオアダプタ144などのインターフェースを介してシステムバス106に接続される。ディスプレイ142に加え、コンピュータシステムは通常、スピーカおよびプリンタなど、他の周辺出力デバイス(図示せず)を含み得る。
コンピュータシステム100は、リモートコンピュータ146など、1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続された環境において動作し得る。リモートコンピュータ146は、コンピュータシステム、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードでよく、通常、コンピュータシステム100に関連して上述された要素の多くまたはすべてを含む。ネットワーク接続は、LAN(ローカルエリアネットワーク)148およびWAN(ワイドエリアネットワーク)150を含む。このようなネットワーク環境は、会社、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいてよく見られる。
LANネットワーク環境において使われる場合、コンピュータシステム100は、ネットワークインターフェースまたはアダプタ152を介してローカルネットワーク148に接続される。WANネットワーク環境において使われる場合、コンピュータシステム100は通常、モデム154、または、インターネットなどのワイドエリアネットワーク150を介した通信を確立する他の手段を含む。モデム154は、内部にあっても外部にあってもよく、シリアルポートインターフェース140を介してシステムバス106に接続される。ネットワーク接続された環境では、コンピュータシステム100に関連して図示されるプログラムモジュールまたはその一部は、リモートメモリ記憶装置に格納され得る。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段も使われ得ることが理解されよう。
本明細書で説明される実施形態は、コンピューティングシステムにおける論理演算として実装され得る。論理演算は、(1)コンピュータによって実装される一連のステップまたはコンピュータシステム上で実行されるプログラムモジュールとして、かつ(2)コンピューティングシステム内で実行される、相互に関連する論理またはハードウェアモジュールとして実装され得る。この実装は、特定のコンピューティングシステムの性能要件に依存する、選択の問題である。したがって、本明細書で説明される実施形態をなす論理演算は、動作、ステップ、またはモジュールと呼ばれる。こうした動作、ステップ、およびモジュールは、本明細書に添付された特許請求の範囲に記載される本発明の精神および範囲から逸脱することなく、ソフトウェア、ファームウェア、特殊目的デジタル論理、およびこれらのどの組合せとしても実装され得ることが当業者には理解されよう。このソフトウェア、ファームウェア、または同様のコンピュータ命令シーケンスは、エンコードされ、コンピュータ可読記憶媒体に格納されることができ、コンピューティングデバイスの間での伝送用に、搬送波信号にエンコードされることもできる。
ここで図2を参照すると、式の一部分を自動的に構築するシステム例200が示されている。システム200は、入力モジュール210、解釈モジュール220、自動構築モジュール230、表示モジュール240、および修正モジュール250を含む。システム200は、例えば、上述したコンピュータシステム100上で実行されるアプリケーションでよい。
入力モジュール210は、ユーザが、システム200に式を入力することを可能にする。例えば、ユーザは、上述されたキーボード134および/またはマウス136などの入力デバイスを使って、式を入力することができる。一実施形態では、入力モジュール210は、ユーザが、線形文字列形式表記法を用いて式を入力することを可能にする。線形文字列形式表記法の例は、TeXおよびLaTeXを含む。他の線形文字列形式表記法も用いられ得る。
例えば、一実施形態では、入力モジュール210は、Scroll Systems,Inc.によって提供されるPS Technical Word Processorというアプリケーションに組み込まれており、かつ、例えば、非特許文献1に記載されているのと同様の線形形式表記法を用いた式の入力を受諾する。線形形式表記法は、TeXおよびLaTeXの表記法と似ているが、コンピュータ言語コンパイラによって翻訳されるのと同様の、簡略化された表記法である。
例えば、入力モジュール210は、線形文字列形式での、以下の式Aの入力を受諾することができる。
y=a/(b+c)+d (A)
ユーザが、線形文字列形式で式を記入し始めると、解釈モジュール220は、入力を解釈して、式の一部分が、2次元形式に自動的に構築され得るときを識別する。
概して、ある文字に先行するテキストを、有効な線形形式文法(例えば、TeX、LaTeX、Linear Format)によって定義される構築表現用に、線形にフォーマットされた明白なテキストとさせるような文字をユーザが記入すると、構築が起こる。式の一部分が構築され得るかどうかに関する決定は、文字に先行するオペランドと比較した、直前に記入された文字およびその優先順位の分析に基づく。概して、各文字は、その文字を検討して、どのような構築が起こり得るかを判定するために調べられる。例えば、ユーザが、オペランドをタイプ入力し、次いで、オペランドとは分離した文字をタイプ入力すると、その文字の優先順位が、先行文字の優先順位以下の場合、自動構築が起こり得る。例えば、プラス記号「+」などの演算子は、先行演算子が除算記号「/」である場合、自動構築を引き起こし得る。
以下の例は、どのようにして、解釈モジュール220が、式の一部分の構築が起こり得るときを識別するように構成され得るかを示す。線形形式が例として使われる。ただし、他の線形文字列形式文法(例えば、TeX、LaTeX)も同様にして使われ得る。
構築点を識別するために、解釈モジュール220は、ユーザによってタイプ入力された各文字を検査する。自動構築が起こるべきときを判定するのに、優先順位指向技術が用いられる。例えば、一実施形態では、線形形式文法の演算子は、以下の表1で与えられる優先順位をもつ。
Figure 0004965090
表1で与えられている演算子優先順位は例示であり、優先順位に対する変更も行われ得る。
自動構築をトリガするかどうか判定するために入力を検査するとき、解釈モジュール220は、数式イタリックへの/からの変換を最初に調べる。タイプ入力された文字が、数式イタリック対応物を有するアスキーまたはギリシャ文字である場合、その文字は、数式イタリックバージョンに翻訳される。文字が、下付き「_」、上付き「^」、またはスペースであり、先行文字が数式イタリックであり、式の中でさらに多くの文字がその文字に先行する場合、数式イタリックの範囲は、関数名の辞書と比較される。見つかった場合、名称は、通常のテキストに翻訳し戻される(例えば、「sin」は、「sin」に翻訳し戻される)。
このような翻訳が行われない場合、構築される関数中に挿入点(IP)があれば、解釈モジュール220は、現在の引数の先頭で始まり、あるいは、どちらがIPの最も近くにあろうとも、式全体の始まりまたはIPに先行するキャリッジリターンで始まる。
次に、起こり得る自動構築の選択範囲は、第1の主構築演算子、(すなわち、「)」または「]」または「}」または「>」の1つではない演算子)に進むことによって狭められる。IPに戻る前にこのような演算子が発見された場合、範囲は、分数の分子または下付き「_」もしくは上付き「^」記号の基字(scriptbase)を含むように再度拡大される。次いで、この範囲内で、テキストに対して構築が試みられる。
具体的には、解釈モジュール220は、この範囲を走査し、単なるオペランドをリッチテキスト列スタックにプッシュし、演算子を演算子スタックにプッシュしていく。表現のすぐ後に続く演算子が「)」または「]」または「}」または「>」のとき、あるいは演算子が「(」または「[」または「{」または「<」でなく、かつ以下の条件の1つが真のとき、表現の自動構築がトリガされる。(i)演算子の優先順位が、その前の演算子の優先順位より小さい、あるいは(ii)演算子およびその前の演算子の優先順位が両方とも、4、5、または7と等しい。
いくつかの実施形態では、構築される関数の引数の中で変更が行われる(すなわち、IPが、既に構築されている式の一部分の中にある)場合、自動構築をいつトリガするか判定する、解釈モジュール220による分析は、編集されている引数に制限され得る。この制限は、解釈モジュール220によって実施される分析を容易にし、そうすることによって処理効率を向上させ得る。他の実施形態では、解釈モジュール220は、構築される引数が編集されるかどうかにかかわらず、式全体を分析するように構成され得る。
自動構築を示す一例では、解釈モジュール220は、上の式Aを解釈し、式Aの一部分が構築され得るときを識別する。式Aに対して、解釈モジュール220は、ユーザによって、式Aの入力中に、右括弧「)」の後にスペースが記入されると、自動構築をトリガする。式Aのこの部分が、以下の式A’として示されている。
y=a/(b+c) (A’)
以下の擬似コードは、解釈モジュール220が、自動構築がトリガされ得るときを識別するために、ユーザによる式Aの式A’部分の入力をどのようにして解釈し得るかの一例を示す。
Figure 0004965090
上で与えられた擬似コードに示されるように、自動構築は、自動構築点を表す、所定の文字の1つを識別する解釈モジュール220において、常に成功するわけではない。例えば、式A’に対して、解釈モジュール220は、プラス記号「+」が記入されたとき、自動構築をトリガしない。というのは、式Aの記入におけるその時点では、より大きい優先順位をもつ先行演算子がないので、式のどの部分も2次元形式に構築されることができないからである。さらに、解釈モジュール220は、左括弧「(」が記入されたとき、自動構築をトリガしない。というのは、式Aの一部分の構築が起こり得る前に必要とされる付加情報が記入される可能性があるからである。しかし、左括弧「(」の後にスペースが記入されると、スペースのすぐ後に続く文字が「)」または「]」または「}」または「>」の1つなので、解釈モジュール220は、式Aの式A’部分の自動構築をトリガし得る(上の表1の優先順位値2を参照)。
上の擬似コードに記述されるように、記入された各文字は、外部記憶装置に置かれる。外部記憶装置は、タイプ入力されたデータが格納され取得され得る、永続的な記憶空間である。さらに、上の擬似コードによって示されるように、解釈モジュール220は、例えば、数式イタリック形式への変数の変換など、式のフォーマット化のいくつかの側面も実施することができる。
解釈モジュール220が、自動構築をトリガすると、自動構築モジュール230は、式の少なくとも一部分を2次元形式に変換しようと試みる。例えば、解釈モジュール220が、式Aの式A’部分に対して自動構築をトリガすると、自動構築モジュール230は、以下の式B’によって示されるように、式Aの式A’部分を2次元形式に変換する。
Figure 0004965090
以下の擬似コードは、自動構築モジュール230が、どのようにして式A’から式B’を構築し得るかの一例である実施形態を示す。
Figure 0004965090
一実施形態では、自動構築モジュール230は、コンピュータ言語コンパイラによって使われる分析と同様の、優先順位に依存する表現分析を用いて構築を実施する。その上、自動構築モジュール230は、式を所望通りにさらにフォーマットすることができる。例えば、式B’によって示されるように、自動構築モジュール230は、自動構築が起こると、括弧「(」および「)」ならびに左括弧「)」の後のスペースを削除することによって、式をフォーマットする。
表示モジュール240は、2次元形式で構築されている式の部分を、上述したLCDディスプレイ142などの表示デバイスを使って、ユーザに対して表示する。表示デバイス240は、記入されているが、まだ線形文字列形式で構築されていない、式のどの部分も表示する。
式の一部分の自動的な構築の後、入力モジュール210は、線形文字列形式での式の入力を許可し続け、解釈モジュール220は、入力を解釈し続ける。例えば、式Aに対して、式A’が自動的に構築されると、ユーザは、式Aの残りの部分を記入し続けることができる。式Aの残りの部分(「+d」)に対してはそれ以上の構築が必要ないので、表示モジュール240は、式Aの残りの部分がシステム100に入力された後、以下の式Bのように、式A全体を2次元形式で表示する。
Figure 0004965090
修正モジュール250は、ユーザが式を編集することを可能にする。ユーザは、式が線形文字列形式である間も2次元形式である間も、式を編集することができる。ユーザが式を編集するとき、解釈モジュール220は、式の追加部分が2次元形式に自動的に構築され得るかどうか判定するために、入力を監視し続ける。
自動構築を示す別の例が、以下の2次元形式で示される式Cによって与えられる。
Figure 0004965090
ユーザからの、線形文字列形式での式Cの入力が、入力モジュール210によって受諾されると、解釈モジュール220は、各文字を検査して、いつ自動構築をトリガするか判定する。ユーザが、式Cの分母にプラス符号「+」を記入すると(すなわち、ユーザが「y=a/(b^2+」を記入したとき)、解釈モジュール220は、自動構築モジュール230による、以下の式C’として示される、式Cの一部分の構築をトリガする。
y=a/(b2+ (C’)
具体的には、プラス符号「+」の優先順位値が、上付き「^」符号の優先順位値より小さいので、変数「b」に対する上付きが構築される。上の表1を参照されたい。しかし、分母が明白に定義されていないので、分母全体はまだ構築されていない。
次に、ユーザが、右括弧「)」を記入する(すなわち、ユーザが、「y=a/(b2+c^2」を記入する)と、変数「c」に対する上付きが、以下の式C”に示されるように構築される。
y=a/(b2+c2 (C”)
最後に、ユーザが、右括弧「)」の後にスペースまたはキャリッジリターンを記入すると、式Cの分母が、上の式Cとして示されるように構築される。
ここで図3を参照すると、ユーザがコンピュータシステムに式を入力すると、式を自動的に構築する方法例300が示されている。動作310で、ユーザは、線形文字列形式での式の入力を開始することを可能にされる。式の各文字が記入されると、制御は動作320に渡され、ここで、例えば、上述した優先順位構築論理を用いて記入された式の一部分に対して、自動構築が起こり得るかどうかに関して判定が行われる。自動構築が起こり得る場合、制御は動作330に渡される。自動構築が起こることができない場合、制御は、動作310に戻され、式の入力が続く。
動作330で、式の一部分が、2次元形式で構築される。次に、動作340で、式の構築部分が、2次元形式で表示される。最後に、制御は、動作310に戻され、線形文字列形式での式の入力が続く。
ここで図4を参照すると、式を自動的に構築する別の方法例400が示されている。方法400は、方法300と類似しており、動作310、320、330、および340を含む。ただし、方法400は、記入動作310と構築判定動作320の間に置かれた動作415も含む。動作415は、入力を検査して、構築が起こり得ることを合図する所定の文字を探す。このような文字の例は、右括弧「)」、バイナリ演算子、あらゆる句読点、タブ、エンター、およびスペースを含む。こうした文字のいずれが記入された場合でも、動作415は、自動構築が起こり得るかどうかに関する判定を可能にするために、動作320に制御を渡す。記入された文字が、上で列挙された文字の1つでない場合、動作415は、制御を動作310に戻し、式の一部分が構築され得るかどうかに関して判定せずに、線形文字列形式での式の入力が続く。
例えば、構築は、下付き文字「_」が記入された後には起こることができない。というのは、ユーザは、式の下付き部分の構築が遂行され得る前に、下付き内容を記入する必要があるからである。したがって、下付き文字が動作310で記入された後で制御が動作415に渡されると、動作415は、構築が起こり得るかどうかに関して判定するために、制御を動作320に渡すのではなく、単に、制御を動作310に戻して、式の次の文字の記入を待機する。このようにして、自動構築の判定は、所定の文字が記入されたときのみ起こるので、式の記入および解釈が最適化され得る。
いくつかの実施形態では、本明細書で開示されるシステムおよび方法は、よく使われる式の部分が自動的に記入され構築されることを可能にすることによって、さらに改良される。例えば、ワシントン州レドモンドのマイクロソフトコーポレーションによって販売されている、Microsoft(登録商標)Wordというアプリケーションは、ユーザが、いくつかの識別用文字を記入することによって、頻繁に使われるテキスト列を自動的に展開することを可能にする「オートコレクト」機能を含む。ユーザは、こうした機能を使って、ユーザによる数回のキーストロークに基づいて、よく使われる式部分を展開することができる。本明細書で開示されるシステムおよび方法は、「オートコレクト」機能によって展開される文字列を自動的に分析し、可能な場合は、文字列を自動的に構築するのに用いられ得る。このようにして、よく使われる式部分が、迅速に記入され構築され得る。
上述された様々な実施形態は、例示の目的でのみ与えられ、本発明を限定するものと解釈されるべきではない。本明細書において示され、記述された実施形態およびアプリケーション例に従うことなく、かつ添付の特許請求の範囲において述べられる本発明の真の精神および範囲から逸脱することなく、本発明に対して行われ得る様々な修正および変更が、当業者には容易に理解されよう。
本発明の一実施形態による汎用コンピューティングシステム例を示す図である。 本発明の一実施形態による、式の一部分を自動的に構築するシステム例を示す図である。 本発明の一実施形態による、式の一部分を自動的に構築する方法例を示すフローチャートである。 本発明の一実施形態による、式の一部分を自動的に構築する別の方法例を示すフローチャートである。
符号の説明
100 コンピュータ
104 メモリ
112 ハードディスクドライブ
114 磁気ディスクドライブ
116 取り外し可能記憶装置
118 光ディスクドライブ
119 光ディスク
120 インターフェース
122 インターフェース
124 インターフェース
126 オペレーティングシステム
128 アプリケーションプログラム
130 プログラムモジュール
132 プログラムデータ
134 キーボード
136 マウス
140 シリアルポートインターフェース
142 モニタ
144 ビデオアダプタ
146 リモートコンピュータ
152 ネットワークアダプタ
154 モデム
210 入力モジュール
220 解釈モジュール
230 自動構築モジュール
240 表示モジュール
250 修正モジュール

Claims (13)

  1. 2次元形式の数式を自動的に構築するコンピューティングシステムであって、
    プロセッサユニットと、
    コンピュータ可読命令を格納するシステムメモリであって、
    線形文字列形式の前記数式の入力を受諾する入力モジュールであって、前記数式の入力は、1つまたは複数の英数字の文字と、少なくとも2つの英数字でない演算子とを含む複数の文字で構成される文字列である、入力モジュールと、
    前記数式の前記文字列を解釈し、前記数式の前記文字列に2次元形式の数式の構築を行うべき構築点が含まれるかどうかを、前記少なくとも2つの英数字でない演算子に割り当てられた優先順位の値に少なくとも部分的に基づいて判定する解釈モジュールであって、前記優先順位の値は、
    キャリッジリターン演算子に対する優先順位の値
    左丸括弧、左角括弧、および右山括弧のうち1つの演算子に対する優先順位の値
    右丸括弧、右角括弧、および左山括弧のうち1つの演算子に対する優先順位の値
    垂直タブ演算子に対する優先順位の値
    分数演算子、ルート演算子、ユニコード積分、合計、積、n項演算子、および階乗以外の他のユニコード数学演算子に対する優先順位の値、
    分数演算子に対する優先順位の値、
    ルート演算子に対する優先順位の値
    ユニコード積分、合計、積、またはn項演算子に対する優先順位の値
    下付きおよび上付きのうち1つの演算子に対する優先順位の値
    発音区別符号および階乗のうち1つの演算子に対する優先順位の値
    の順に増加する値であ
    前記文字列の前記複数の文字を順次検査していき、
    (i)前記文字列の第1の文字に続く第2の文字が英数字でない第2の演算子であって、かつ該第2の演算子が、右丸括弧、右角括弧、および右山括弧のいずれかの演算子であるか、左丸括弧、左角括弧、および左山括弧のいずれでもない演算子であることと、
    (ii)前記第2の演算子の優先順位の値が、前記文字列において前記第2の演算子の前に現れる英数字でない第1の演算子の優先順位よりも小さいこと、あるいは前記第1および第2の演算子の双方の優先順位の値が、前記他のユニコード数学演算子に対する優先順位の値であるか、前記分数演算子に対する優先順位の値であるか、前記ユニコード積分、合計、積、またはn項演算子に対する優先順位の値であること
    の双方の条件が満たされたとき、前記第2の演算子を前記構築点であると判定する、解釈モジュールと、
    前記文字列に前記構築点が見つかったとき記数式の一部分であって、前記文字列内の前記検査を開始した文字から前記構築点までの文字を含む部分、前記2次元形式の数式にフォーマットする自動構築モジュールと
    を含む、システムメモリと
    を備えることを特徴とするシステム。
  2. 前記2次元形式にフォーマットされた前記数式の一部分編集ることを可能にする修正モジュールをさらに備えることを特徴とする請求項1に記載のシステム。
  3. 前記線形文字列形式の前記数式編集ることを可能にする修正モジュールをさらに備えることを特徴とする請求項1に記載のシステム。
  4. 前記数式を表示する表示モジュールをさらに備えることを特徴とする請求項1に記載のシステム。
  5. コンピュータシステムに入力された線形文字列形式の数式から2次元形式の数式を自動的に構築する方法であって、
    線形文字列形式の数式の入力を受諾するステップであって、前記数式の入力は、1つまたは複数の英数字の文字と、少なくとも2つの英数字でない演算子とを含む複数の文字で構成される文字列である、ステップと、
    前記数式の前記文字列に、2次元形式の数式の構築を行うべき構築点が含まれるかどうかを、前記少なくとも2つの英数字でない演算子に割り当てられた優先順位の値に少なくとも部分的に基づいて判定するステップ、前記優先順位の値は、
    キャリッジリターン演算子に対する優先順位の値
    左丸括弧、左角括弧、および右山括弧のうち1つの演算子に対する優先順位の値
    右丸括弧、右角括弧、および左山括弧のうち1つの演算子に対する優先順位の値
    垂直タブ演算子に対する優先順位の値
    分数演算子、ルート演算子、ユニコード積分、合計、積、n項演算子、および階乗以外の他のユニコード数学演算子に対する優先順位の値、
    分数演算子に対する優先順位の値、
    ルート演算子に対する優先順位の値
    ユニコード積分、合計、積、またはn項演算子に対する優先順位の値
    下付きおよび上付きのうち1つの演算子に対する優先順位の値
    発音区別符号および階乗のうち1つの演算子に対する優先順位の値
    の順に増加する値であ
    前記文字列の前記複数の文字を順次検査していき、
    (i)前記文字列の第1の文字に続く第2の文字が英数字でない第2の演算子であって、かつ該第2の演算子が、右丸括弧、右角括弧、および右山括弧のいずれかの演算子であるか、左丸括弧、左角括弧、および左山括弧のいずれでもない演算子であることと、
    (ii)前記第2の演算子の優先順位の値が、前記文字列において前記第2の演算子の前に現れる英数字でない第1の演算子の優先順位よりも小さいこと、あるいは前記第1および第2の演算子の双方の優先順位の値が、前記他のユニコード数学演算子に対する優先順位の値であるか、前記分数演算子に対する優先順位の値であるか、前記ユニコード積分、合計、積、またはn項演算子に対する優先順位の値であること
    の双方の条件が満たされたとき、前記第2の演算子を前記構築点であると判定するステップと、
    前記文字列に前記構築点が見つかったとき、前記数式の一部分であって、前記文字列内の前記検査を開始した文字から前記構築点までの文字を含む部分前記2次元形式の数式にフォーマットするステップと
    を含むことを特徴とする方法。
  6. 前記2次元形式としてフォーマットされた前記数式の一部分を編集するステップをさらに含むことを特徴とする請求項に記載の方法。
  7. 前記数式を編集するステップをさらに含むことを特徴とする請求項に記載の方法。
  8. 前記線形文字列形式の前記数式の追加入力を受諾するステップと、
    前記追加入力が、少なくとも2つの英数字でない演算子を含む複数の文字で構成される第2の文字列であるとき、前記第2の文字列に2次元形式の数式の構築を行うべき第2の構築点が含まれるかどうかを、前記第2の文字列内の前記少なくとも2つの英数字でない演算子に割り当てられた優先順位の値に少なくとも部分的に基づいて判定するステップであって、
    前記第2の文字列の前記複数の文字を順次検査していき、
    (iii)前記第2の文字列の第1の文字に続く第2の文字が英数字でない第4の演算子であって、かつ該第4の演算子が、右丸括弧、右角括弧、および右山括弧のいずれかの演算子であるか、左丸括弧、左角括弧、および左山括弧のいずれでもない演算子であることと、
    (iv)前記第4の演算子の優先順位の値が、前記第2の文字列において前記第4の演算子の前に現れる英数字でない第3の演算子の優先順位よりも小さいこと、あるいは前記第3および第4の演算子の双方の優先順位の値が、前記他のユニコード数学演算子に対する優先順位の値であるか、前記分数演算子に対する優先順位の値であるか、前記ユニコード積分、合計、積、またはn項演算子に対する優先順位の値であること
    の双方の条件が満たされたとき、前記第4の演算子を前記第2の構築点であると判定する、ステップと、
    前記第2の文字列に前記第2の構築点が見つかったとき記数式の前記第2の文字列の一部分であって、前記第2の文字列内の前記検査を開始した文字から前記第2の構築点までの文字を含む第2の部分前記線形文字列形式から前記2次元形式に変換するステップと
    をさらに含むことを特徴とする請求項に記載の方法。
  9. 前記数式を表示するステップをさらに含むことを特徴とする請求項に記載の方法。
  10. コンピュータ可読であり、請求項に記載の方法を実行させるための命令をエンコードすることを特徴とするコンピュータプログラム。
  11. コンピュータシステムに入力された線形文字列形式の数式の一部を2次元形式の数式として自動的に構築する方法であって、
    (a)線形文字列形式の数式の入力を受諾するステップであって、前記数式の入力は、1つまたは複数の英数字の文字と、少なくとも2つの英数字でない演算子を含む複数の文字で構成される第1の文字列である、ステップと、
    (b)前記数式の前記第1の文字列の前記複数の文字を順次検査して、前記数式の前記第1の文字列に2次元形式の数式の構築を行うべき第1の構築点が含まれるかどうかを、前記第1の文字列内の前記少なくとも2つの英数字でない演算子に割り当てられた優先順位の値に少なくとも部分的に基づいて判定するステップであって、前記優先順位の値は、
    キャリッジリターン演算子に対する優先順位の値
    左丸括弧、左角括弧、および右山括弧のうち1つの演算子に対する優先順位の値
    右丸括弧、右角括弧、および左山括弧のうち1つの演算子に対する優先順位の値
    垂直タブ演算子に対する優先順位の値
    分数演算子、ルート演算子、ユニコード積分、合計、積、n項演算子、および階乗以外の他のユニコード数学演算子に対する優先順位の値、
    分数演算子に対する優先順位の値、
    ルート演算子に対する優先順位の値
    ユニコード積分、合計、積、またはn項演算子に対する優先順位の値
    下付きおよび上付きのうち1つの演算子に対する優先順位の値
    発音区別符号および階乗のうち1つの演算子に対する優先順位の値
    の順に増加する値であ
    前記第1の文字列の前記複数の文字を順次検査していき、
    (i)前記第1の文字列の第1の文字に続く第2の文字が英数字でない第2の演算子であって、かつ該第2の演算子が、右丸括弧、右角括弧、および右山括弧のいずれかの演算子であるか、左丸括弧、左角括弧、および左山括弧のいずれでもない演算子であることと、
    (ii)前記第2の演算子の優先順位の値が、前記第1の文字列において前記第2の演算子の前に現れる英数字でない第1の演算子の優先順位よりも小さいこと、あるいは前記第1および第2の演算子の双方の優先順位の値が、前記他のユニコード数学演算子に対する優先順位の値であるか、前記分数演算子に対する優先順位の値であるか、前記ユニコード積分、合計、積、またはn項演算子に対する優先順位の値であること
    の双方の条件が満たされたとき、前記第2の演算子を前記第1の構築点であると判定するステップと、
    (c)前記第1の文字列に前記第1の構築点が見つからなかった場合、前記第1の構築点が見つかるまで前記線形文字列形式の前記数式の前記第1の文字列に追加される文字の入力を受諾し、前記追加された文字を含む前記第1の文字列について前記(b)のステップを実行するステップと、
    (d)前記第1の文字列に前記第1の構築点が見つかった場合、
    前記数式の一部分であって、前記第1の文字列の前記検査を開始した文字から前記第1の構築点までの文字を含む第1の部分を前記線形文字列形式から2次元形式に変換するステップと、
    前記数式の前記第1の部分を前記2次元形式で表示するステップと、
    前記数式の前記第1の部分を前記2次元形式で表示した後で、前記線形文字列形式の前記数式の第2の文字の入力を受諾するステップであって、前記第2の文字列は、少なくとも2つの英数字でない演算子を含む複数の文字で構成されるステップと、
    (e)前記第2の文字列の前記複数の文字順次検査して、前記第2の文字列に2次元形式の数式の構築を行うべき第2の構築点が含まれるかどうかを、前記第2の文字列の前記少なくとも2つの英数字でない演算子に割り当てられた前記優先順位の値に少なくとも部分的に基づいて判定するステップであって、
    前記第2の文字列の前記複数の文字を順次検査していき、
    (iii)前記第2の文字列の第1の文字に続く第2の文字が英数字でない第4の演算子であって、かつ該第4の演算子が、右丸括弧、右角括弧、および右山括弧のいずれかの演算子であるか、左丸括弧、左角括弧、および左山括弧のいずれでもない演算子であることと、
    (iv)前記第4の演算子の優先順位の値が、前記第2の文字列において前記第4の演算子の前に現れる英数字でない第3の演算子の優先順位よりも小さいこと、あるいは前記第3および第4の演算子の双方の優先順位の値が、前記他のユニコード数学演算子に対する優先順位の値であるか、前記分数演算子に対する優先順位の値であるか、前記ユニコード積分、合計、積、またはn項演算子に対する優先順位の値であること
    の双方の条件が満たされたとき、前記第4の演算子を前記第2の構築点であると判定する、ステップと、
    (f)前記第2の文字列に前記第2の構築点が見つからなかった場合、前記第2の構築点が見つかるまで前記線形文字列形式の前記数式の前記第2の文字列に追加される文字の入力を受諾して、前記追加された文字を含む前記第2の文字列について前記(e)のステップを実行するステップと、
    (g)前記第2の文字列に前記第2の構築点が見つかった場合、
    前記数式の前記第2の文字列の一部分であって、前記第2の文字列の前記検査を開始した文字から前記第2の構築点までの文字を含む第2の部分を前記線形文字列形式から2次元形式に変換するステップと、
    前記数式の前記第2の部分を前記2次元形式で表示するステップと、
    前記数式の前記第2の部分を前記2次元形式で表示した後で、前記線形文字列形式の前記数式の第3の文字の入力を受諾するステップと
    を含むことを特徴とする方法。
  12. 前記2次元形式で表示された前記数式の前記第1の部分を編集するステップをさらに含むことを特徴とする請求項11に記載の方法。
  13. コンピュータ可読であり、請求項11に記載の方法を実行させるための命令をエンコードすることを特徴とするコンピュータプログラム。
JP2005187819A 2004-09-15 2005-06-28 数式の構築を自動化するためのシステムおよび方法 Expired - Fee Related JP4965090B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/943,095 2004-09-15
US10/943,095 US7698638B2 (en) 2004-09-15 2004-09-15 Systems and methods for automated equation buildup

Publications (2)

Publication Number Publication Date
JP2006085673A JP2006085673A (ja) 2006-03-30
JP4965090B2 true JP4965090B2 (ja) 2012-07-04

Family

ID=35517177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005187819A Expired - Fee Related JP4965090B2 (ja) 2004-09-15 2005-06-28 数式の構築を自動化するためのシステムおよび方法

Country Status (5)

Country Link
US (2) US7698638B2 (ja)
EP (1) EP1638012A3 (ja)
JP (1) JP4965090B2 (ja)
KR (1) KR101150031B1 (ja)
CN (1) CN1749992B (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698638B2 (en) 2004-09-15 2010-04-13 Microsoft Corporation Systems and methods for automated equation buildup
US20060190821A1 (en) * 2005-02-22 2006-08-24 Microsoft Corporation Programmable object model for mathematical expressions
US20060190474A1 (en) * 2005-02-22 2006-08-24 Microsoft Corporation Extensible markup language schema for mathematical expressions
US8020091B2 (en) * 2005-07-15 2011-09-13 Microsoft Corporation Alignment and breaking of mathematical expressions in documents
US20070033524A1 (en) * 2005-08-02 2007-02-08 Microsoft Corporation Mapping codes for characters in mathematical expressions
US7777744B2 (en) * 2006-04-07 2010-08-17 Texas Instruments Incorporated Systems and methods for multiple equation graphing
US20080077854A1 (en) * 2006-09-25 2008-03-27 Kehinde Alabi Generation, documentation and presentation of mathematical equations and symbolic scientific expressions using pure html, css, and javascript
US20080120355A1 (en) * 2006-11-19 2008-05-22 Kehinde Alabi System and method for generating mathematical equations and symbolic scientific expressions in html and css
US8213719B2 (en) * 2008-09-24 2012-07-03 Microsoft Corporation Editing 2D structures using natural input
US20100115403A1 (en) * 2008-11-06 2010-05-06 Microsoft Corporation Transforming math text objects using build down and build up
US8190406B2 (en) * 2008-11-26 2012-05-29 Microsoft Corporation Hybrid solver for data-driven analytics
CN102033856B (zh) * 2009-09-29 2013-12-11 北大方正集团有限公司 一种公式排版方法及其系统
US8761658B2 (en) 2011-01-31 2014-06-24 FastTrack Technologies Inc. System and method for a computerized learning system
US20130305133A1 (en) * 2012-05-11 2013-11-14 Elia Freedman Interactive Notepad For Computing Equations in Context
CN103646316A (zh) * 2013-12-18 2014-03-19 世纪禾光科技发展(北京)有限责任公司 一种分布式金融计算的公式处理方法
CN104408020A (zh) * 2014-10-30 2015-03-11 北京思特奇信息技术股份有限公司 一种公式解析计算系统及方法
US10713428B2 (en) 2015-11-02 2020-07-14 Microsoft Technology Licensing, Llc Images associated with cells in spreadsheets
US10515145B2 (en) 2015-11-02 2019-12-24 Microsoft Technology Licensing, Llc Parameterizing and working with math equations in a spreadsheet application
CN105677438A (zh) * 2016-01-07 2016-06-15 南京邮电大学 一种利用编译器对文件中计算公式进行自动化计算的方法
US20180033175A1 (en) * 2016-07-28 2018-02-01 Sharp Kabushiki Kaisha Image display device and image display system
CN109992121B (zh) * 2017-12-29 2023-02-03 北京搜狗科技发展有限公司 一种输入方法、装置和用于输入的装置

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5189633A (en) * 1990-01-12 1993-02-23 Bonadio Allan R Apparatus and method for interactively manipulating mathematical equations
US5067102A (en) * 1990-01-31 1991-11-19 Hewlett-Packard Company Method and apparatus for displaying and editing mathematical expressions in textbook format
US5251292A (en) * 1990-07-25 1993-10-05 Wordperfect Corporation Method and apparatus for an equation editor
US5544262A (en) * 1992-04-07 1996-08-06 Apple Computer, Inc. Method and apparatus for processing graphically input equations
JP3111120B2 (ja) * 1992-12-28 2000-11-20 シャープ株式会社 数式表示方法
JPH06231081A (ja) * 1993-01-29 1994-08-19 Sharp Corp 数式表示方式
US5469538A (en) * 1994-03-02 1995-11-21 Mathsoft, Inc. Mathematical document editor and method performing live symbolic calculations for use with an electronic book
JP3837759B2 (ja) * 1995-07-31 2006-10-25 カシオ計算機株式会社 電子式計算機
US5682158A (en) * 1995-09-13 1997-10-28 Apple Computer, Inc. Code converter with truncation processing
US5793381A (en) * 1995-09-13 1998-08-11 Apple Computer, Inc. Unicode converter
US5784071A (en) * 1995-09-13 1998-07-21 Apple Computer, Inc. Context-based code convertor
US5844555A (en) * 1996-06-20 1998-12-01 Mathsoft, Inc. Locking mechanism for live mathematical documents
JPH11259456A (ja) * 1998-03-12 1999-09-24 Toshiba Corp 文書作成装置、数式変換方法、及び記録媒体
US6204782B1 (en) * 1998-09-25 2001-03-20 Apple Computer, Inc. Unicode conversion into multiple encodings
JP3975588B2 (ja) * 1998-11-19 2007-09-12 カシオ計算機株式会社 電子機器および記憶媒体
JP3705065B2 (ja) * 1999-02-05 2005-10-12 日本電気株式会社 数式処理システム、数式処理方法及び数式処理用プログラムを記録した記録媒体
US6795838B1 (en) * 1999-02-05 2004-09-21 Nec Corporation Apparatus and method for transforming mathematical expression, and storage medium
US6610106B1 (en) * 1999-08-27 2003-08-26 International Business Machines Corporation Expression editor
EP1109105A1 (en) * 1999-12-14 2001-06-20 Sun Microsystems, Inc. Inserting a data object into a text document
EP1126379A1 (en) * 2000-02-16 2001-08-22 Sun Microsystems, Inc. Conversion of directly assigned document format attributes
JP3917343B2 (ja) * 2000-02-25 2007-05-23 株式会社東芝 マルチプラットフォーム環境における文字コード変換方式および文字コード変換プログラムを記録したコンピュータ読み取り可能な記録媒体
US7055095B1 (en) * 2000-04-14 2006-05-30 Picsel Research Limited Systems and methods for digital document processing
JP4181310B2 (ja) * 2001-03-07 2008-11-12 昌和 鈴木 数式認識装置および数式認識方法
US6829620B2 (en) * 2001-09-20 2004-12-07 International Business Machines Corporation Table-level unicode handling in a database engine
WO2003071393A2 (en) * 2002-02-15 2003-08-28 Mathsoft Engineering And Education, Inc. Linguistic support for a regognizer of mathematical expressions
US7036073B2 (en) * 2002-06-27 2006-04-25 Microsoft Corporation System and method for supporting non-native XML in native XML of a word-processor document
US7523394B2 (en) * 2002-06-28 2009-04-21 Microsoft Corporation Word-processing document stored in a single XML file that may be manipulated by applications that understand XML
US20030056181A1 (en) * 2002-09-17 2003-03-20 Marathe Sharad M. System and method for displaying spreadsheet cell formulas in two dimensional mathematical notation
US20040117731A1 (en) * 2002-09-27 2004-06-17 Sergey Blyashov Automated report building system
US20040114258A1 (en) * 2002-12-17 2004-06-17 Harris Richard Alexander Device and method for combining dynamic mathematical expressions and other multimedia objects within a document
WO2004072808A2 (en) * 2003-02-10 2004-08-26 Educational Testing Service Equation editor
CA2426496A1 (en) * 2003-04-24 2004-10-24 Ibm Canada Limited - Ibm Canada Limitee Processing fixed-format data in a unicode environment
US20050041017A1 (en) * 2003-08-08 2005-02-24 De Brebisson Cyrille Function drawing in polar plan using a calculator
US7324931B1 (en) * 2003-11-17 2008-01-29 The Mathworks, Inc. Conversion of model components into references
US20060005115A1 (en) * 2004-06-30 2006-01-05 Steven Ritter Method for facilitating the entry of mathematical expressions
US20060001667A1 (en) * 2004-07-02 2006-01-05 Brown University Mathematical sketching
TWI263848B (en) * 2004-09-07 2006-10-11 Optimax Tech Corp An optical sheet for a super twisted nematic display
US7698638B2 (en) 2004-09-15 2010-04-13 Microsoft Corporation Systems and methods for automated equation buildup
US20060190474A1 (en) * 2005-02-22 2006-08-24 Microsoft Corporation Extensible markup language schema for mathematical expressions
US20060190821A1 (en) * 2005-02-22 2006-08-24 Microsoft Corporation Programmable object model for mathematical expressions
US20060274070A1 (en) 2005-04-19 2006-12-07 Herman Daniel L Techniques and workflows for computer graphics animation system
US7492366B2 (en) * 2005-05-13 2009-02-17 Microsoft Corporation Method and system of character placement in opentype fonts
US7636913B2 (en) * 2005-06-22 2009-12-22 Microsoft Corporation System and method for evaluating an expression in a debugger
US20070033524A1 (en) * 2005-08-02 2007-02-08 Microsoft Corporation Mapping codes for characters in mathematical expressions
US7865826B2 (en) * 2006-05-15 2011-01-04 Waterloo Maple Inc. System and method for creating and presenting mathematical documents
US20080077854A1 (en) * 2006-09-25 2008-03-27 Kehinde Alabi Generation, documentation and presentation of mathematical equations and symbolic scientific expressions using pure html, css, and javascript

Also Published As

Publication number Publication date
KR20060048667A (ko) 2006-05-18
KR101150031B1 (ko) 2012-07-02
US7698638B2 (en) 2010-04-13
EP1638012A3 (en) 2008-12-17
US20060059214A1 (en) 2006-03-16
JP2006085673A (ja) 2006-03-30
CN1749992B (zh) 2011-01-26
EP1638012A2 (en) 2006-03-22
US20060059217A1 (en) 2006-03-16
CN1749992A (zh) 2006-03-22
US8209604B2 (en) 2012-06-26

Similar Documents

Publication Publication Date Title
JP4965090B2 (ja) 数式の構築を自動化するためのシステムおよび方法
JP4888071B2 (ja) プログラム、コピーアンドペースト処理方法、装置及び記録媒体
US7627816B2 (en) Method for providing a transient dictionary that travels with an original electronic document
US8122353B2 (en) Composing a message in an online textbox using a non-latin script
US7937688B2 (en) System and method for context-sensitive help in a design environment
US8117021B2 (en) Method and apparatus for testing a software program using mock translation input method editor
KR100907671B1 (ko) 기록 매체 및 문자 입력 편집 방법
US8271873B2 (en) Automatically detecting layout of bidirectional (BIDI) text
KR20100004652A (ko) 자동 입출력 인터페이스를 갖춘 번역기 및 그 인터페이싱방법
US20100121888A1 (en) Automatic designation of footnotes to fact data
US8302070B2 (en) Output styling in an IDE console
US20070033524A1 (en) Mapping codes for characters in mathematical expressions
JP4497550B2 (ja) レガシ・オペレーティグ・システムでユニコード入力を可能にする装置および方法
TW200842662A (en) Stroke number input
US20020078106A1 (en) Method and apparatus to spell check displayable text in computer source code
CN111078228A (zh) 网页到小程序的转换方法、装置、服务器及存储介质
US9535692B2 (en) Systems and methods for managing related files in a software development environment
KR101921333B1 (ko) 사용자 특정 구 입력 학습
US20050183033A1 (en) Apparatus and methods for displaying dialog box text messages including languages having different reading orders
US20090103809A1 (en) Input method transform
US20080244511A1 (en) Developing a writing system analyzer using syntax-directed translation
CN113495651B (zh) 一种窗口控制方法和装置
US8108801B2 (en) Host screen transformation for mobile devices having a reduced display size
JP7208222B2 (ja) データレコード内のフォーマットを動的に定義する技術
CN116185420A (zh) 一种源代码语言转换方法与设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101029

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110325

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110627

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110721

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110826

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111226

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20111227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111227

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120123

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: 20120327

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120329

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees