(57)【要約】      （修正有）【課題】どのセルが実行されているかを判定できるようにする計算ノートブックインターフェースのためのシステム、方法及びプログラムを提供する。【解決手段】ノード及びリンクを含むグラフ形式で計算ノートブックのセルを表す計算ノートブック用の改善されたインターフェースであって、複数のセルに対して計算ノートブックを処理し、インターフェース上に複数のセルに基づいてノード及びリンクのグラフを生成し、計算ノートブックの実行について、セルの実行順序に基づいてグラフ内の経路を強調表示し、インターフェースで行われた修正に従って計算ノートブックの機能を調整する。改善したインターフェースを介して、セルの実行順序、並びに実行可能コードの異なるセルとそこに含まれる変数との間の依存性も直ちに理解することができる。【選択図】図１３
2020068020.tif 000002
【特許請求の範囲】
【請求項１】
各々が１または複数の実行可能コード及びマークダウンを備える複数のセルを備える計算ノートブックの第１のインターフェースに、各々前記複数のセルの表現を備える複数のノード、及び前記ノードをリンクする複数のリンクを備えるグラフの形式で前記計算ノートブックを表す第２のインターフェースを提供することと、
前記計算ノートブック内の前記複数のセルのサブセットを実行するために、前記複数のセルの前記実行の順序を示す前記第２のインターフェース上の前記ノード及びリンクを通る経路を示すことと
を含む、方法。
【請求項２】
前記実行可能コードを備える前記複数のノードのうちの１つの強調表示時に、前記複数のノードのうちの前記１つに対応する前記複数のセルのうちの１つからコードを抽出することと、
前記複数のノードのうちの前記１つに対応する前記抽出されたコードを表示用に提示することと、
前記表示用に提供された前記抽出されたコードに対して行われた修正のために、前記修正に従って前記第１のインターフェース内の前記複数のセルのうちの前記１つを修正することと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記第２のインターフェースの１または複数の対応するノード上で、前記インターフェースの背景内に、前記複数のセルの各セルで利用された変数の表示を提供すること
をさらに含む、請求項１又は請求項２に記載の方法。
【請求項４】
前記複数のノードのうちの１つの強調表示時に、前記複数のノードのうちの前記１つに対応する前記複数のセルのうちの１つに関連付けられたチャートの表現を決定することと、
表示用に前記複数のノードのうちの前記１つに対応する前記決定されたチャートを提示することと
をさらに含む、請求項１〜請求項３の何れか１項に記載の方法。
【請求項５】
前記グラフが力指向グラフであり、前記複数のノードが対応するセル内で使用される変数の類似性に従って、前記複数のリンクの各々の長さが前記類似性を表すように、配置され、前記複数のセルの前記表現が、実行可能コードを備える前記複数のセルのうちの１つに対する第１の表現と、マークダウンを備える前記複数のセルのうちの１つに対する前記第１の表現とは異なる第２の表現とを備える、請求項１〜請求項４の何れか１項に記載の方法。
【請求項６】
前記第２のインターフェース上に、前記計算ノートブックの１または複数の履歴実行スナップショットを提供するように構成されたタイムスライダを提供することと、
特定の時間期間に対する前記タイムスライダ上の相互作用について、前記１または複数の履歴実行スナップショットのうちの対応する１つに従って、前記グラフの形式の前記計算ノートブックを表示することと
をさらに含む、請求項１〜請求項５の何れか１項に記載の方法。
【請求項７】
コンピュータに、
各々が１または複数の実行可能コード及びマークダウンを備える複数のセルを備える計算ノートブックの第１のインターフェースに、各々前記複数のセルの表現を備える複数のノード、及び前記ノードをリンクする複数のリンクを備えるグラフの形式で前記計算ノートブックを表す第２のインターフェースを提供することと、
前記計算ノートブック内の前記複数のセルのサブセットを実行するために、前記複数のセルの前記実行の順序を示す前記第２のインターフェース上の前記ノード及びリンクを通る経路を示すことと
を含む、プロセスを実行するための処理を実行させるプログラム。
【請求項８】
前記処理が、
前記実行可能コードを備える前記複数のノードのうちの１つの強調表示時に、前記複数のノードのうちの前記１つに対応する前記複数のセルのうちの１つからコードを抽出することと、
前記複数のノードのうちの前記１つに対応する前記抽出されたコードを表示用に提示することと、
前記表示用に提供された前記抽出されたコードに対して行われた修正のために、前記修正に従って前記第１のインターフェース内の前記複数のセルのうちの前記１つを修正することと
をさらに含む、請求項７に記載のプログラム。
【請求項９】
前記処理が、
前記第２のインターフェースの１または複数の対応するノード上で、前記インターフェースの背景内に、前記複数のセルの各セルで利用された変数の表示を提供すること
をさらに含む、請求項７又は請求項８に記載のプログラム。
【請求項１０】
前記処理が、
前記複数のノードのうちの１つの強調表示時に、前記複数のノードのうちの前記１つに対応する前記複数のセルのうちの１つに関連付けられたチャートの表現を決定することと、
表示用に前記複数のノードのうちの前記１つに対応する前記決定されたチャートを提示することと
をさらに含む、請求項７〜請求項９の何れか１項に記載のプログラム。
【請求項１１】
前記グラフが力指向グラフであり、前記複数のノードが対応するセル内で使用される変数の類似性に従って、前記複数のリンクの各々の長さが前記類似性を表すように、配置され、前記複数のセルの前記表現が、実行可能コードを備える前記複数のセルのうちの１つに対する第１の表現と、マークダウンを備える前記複数のセルのうちの１つに対する前記第１の表現とは異なる第２の表現とを備える、請求項７〜請求項１０の何れか１項に記載のプログラム。
【請求項１２】
前記処理が、
前記第２のインターフェース上に、前記計算ノートブックの１または複数の履歴実行スナップショットを提供するように構成されたタイムスライダを提供することと、
特定の時間期間に対する前記タイムスライダ上の相互作用について、前記１または複数の履歴実行スナップショットのうちの対応する１つに従って、前記グラフの形式の前記計算ノートブックを表示することと
をさらに含む、請求項７〜請求項１１の何れか１項に記載のプログラム。
【請求項１３】
各々が１または複数の実行可能コード及びマークダウンを備える複数のセルを備える計算ノートブックの第１のインターフェースに、各々前記複数のセルの表現を備える複数のノード、及び前記ノードをリンクする複数のリンクを備えるグラフの形式で前記計算ノートブックを表す第２のインターフェースを提供することと、
前記計算ノートブック内の前記複数のセルのサブセットを実行するために、前記複数のセルの前記実行の順序を示す前記第２のインターフェース上の前記ノード及びリンクを通る経路を示すことと
を行うように構成されたプロセッサ
を備える、装置。
【請求項１４】
前記プロセッサが、
前記実行可能コードを備える前記複数のノードのうちの１つの強調表示時に、前記複数のノードのうちの前記１つに対応する前記複数のセルのうちの１つからコードを抽出することと、
前記複数のノードのうちの前記１つに対応する前記抽出されたコードを表示用に提示することと、
前記表示用に提供された前記抽出されたコードに対して行われた修正のために、前記修正に従って前記第１のインターフェース内の前記複数のセルのうちの前記１つを修正することと
を行うようにさらに構成される、請求項１３に記載の装置。
【請求項１５】
前記プロセッサが、
前記第２のインターフェースの１または複数の対応するノード上で、前記インターフェースの背景内に、前記複数のセルの各セルで利用された変数の表示を提供すること
を行うようにさらに構成される、請求項１３又は請求項１４に記載の装置。
【請求項１６】
前記プロセッサが、
前記複数のノードのうちの１つの強調表示時に、前記複数のノードのうちの前記１つに対応する前記複数のセルのうちの１つに関連付けられたチャートの表現を決定することと、
表示用に前記複数のノードのうちの前記１つに対応する前記決定されたチャートを提示することと
を行うようにさらに構成される、請求項１３〜請求項１５の何れか１項に記載の装置。
【請求項１７】
前記グラフが力指向グラフであり、前記複数のノードが対応するセル内で使用される変数の類似性に従って、前記複数のリンクの各々の長さが前記類似性を表すように、配置され、前記複数のセルの前記表現が、実行可能コードを備える前記複数のセルのうちの１つに対する第１の表現と、マークダウンを備える前記複数のセルのうちの１つに対する前記第１の表現とは異なる第２の表現とを備える、請求項１３〜請求項１６の何れか１項に記載の装置。
【請求項１８】
前記プロセッサが、
前記第２のインターフェース上に、前記計算ノートブックの１または複数の履歴実行スナップショットを提供するように構成されたタイムスライダを提供することと、
特定の時間期間に対する前記タイムスライダ上の相互作用について、前記１または複数の履歴実行スナップショットのうちの対応する１つに従って、前記グラフの形式の前記計算ノートブックを表示することと
を行うようにさらに構成される、請求項１３〜請求項１７の何れか１項に記載の装置。
【請求項１９】
各々が１または複数の実行可能コード及びマークダウンを備える複数のセルを備える計算ノートブックの第１のインターフェースに、各々前記複数のセルの表現を備える複数のノード、及び前記ノードをリンクする複数のリンクを備えるグラフ形式で前記計算ノートブックを表す第２のインターフェースを提供するための手段と、
前記計算ノートブック内の前記複数のセルのサブセットを実行するために、前記複数のセルの前記実行の順序を示す前記第２のインターフェース上の前記ノード及びリンクを通る経路を示すための手段と
を含む、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、計算ノートブックに関し、より詳細には、計算ノートブックインターフェースのためのシステム、方法、プログラム、及び装置に関する。
【背景技術】
【０００２】
従来技術では、計算ノートブックは、データサイエンスにおけるデータ探索及びデータ洞察の伝達のための主要な媒体になっている。これらのノートブックは、コード、文書化、及び出力を、様々な形式（たとえば、チャート及び表）で１つの文書内に結合する。表現力があり、動的で、柔軟であるが、そのような計算ノートブックは、実際には、物語を語ることがほとんどないか、又は分析プロセスを明確に表すスクリプト、チャート、及び表の緩やかな集合を提供するインターフェースである。
【０００３】
計算ノートブックは、ソフトウェアの対話型で反復型の開発をサポートするプログラミング環境である。計算ノートブックの従来技術の実装形態は、データ中心開発機能の共通セットを共有する。提示される視覚化に対して特に注目すべきなのは、「セル」と呼ばれるブロックへの構造的分解である。
【０００４】
従来技術の実装形態では、セルは２つの形態で現れる場合がある。マークダウンセルは、付随するコードにコンテキストを提供するためによく使用されるフォーマット化されたテキストを含み、従来のコードコメントに機能、構造、及び／又は近くのコードの結果の説明が補足される。対照的に、コードセルは実行可能なコンポーネントであり、セル自体の境界によって制限されるが、任意の他の実行可能ファイルのように計算を実行する。実行に成功した後、これらのコードセルは、任意のいくつかのフォーマット：テキスト、表、グラフ、画像、ビデオなどでフォーマット化された出力も含む。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ＡＮＤＲＥＷＳ，  Ｃ．，  ｅｔ  ａｌ．，  Ｓｐａｃｅ  ｔｏ  Ｔｈｉｎｋ；  Ｌａｒｇｅ，  Ｈｉｇｈ−Ｒｅｓｏｌｕｔｉｏｎ  Ｄｉｓｐｌａｙｓ  ｆｏｒ  Ｓｅｎｓｅｍａｋｉｎｇ，  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＳＩＧＣＨＩ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｈｕｍａｎ  Ｆａｃｔｏｒｓ  ｉｎ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍｓ  ＣＨＩ’１０，  Ａｐｒｉｌ  １０−１５，２０１０，  Ａｔｌａｎｔａ，  ＧＡ，  ｐｐ．  ５５−６４．
【非特許文献２】ＺＥＰＰＥＬＩＮ，  Ａｐａｃｈｅ  Ｚｅｐｐｅｌｉｎ，  １０  ｐｇｓ．  ［ｏｎｌｉｎｅ］  ［ｒｅｔｒｉｅｖｅｄ  ８／６／２０１８］  ＵＲＬ：  ｈｔｔｐ：／／ｚｅｐｐｅｌｉｎ．ａｐａｃｈｅ．ｏｒｇ／
【非特許文献３】ＢＯＯＣＨ，  Ｇ．，  ｅｔ  ａｌ．，  Ｔｈｅ  Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ  Ｕｓｅｒ  Ｇｕｉｄｅ，  Ｐｕｂｌｉｓｈｅｒ：  Ａｄｄｉｓｏｎ  Ｗｅｓｌｅｙ，  １９９８，  ３９１  ｐｇｓ．
【非特許文献４】ＢＲＡＤＥＬ，  Ｌ．，  ｅｔ  ａｌ，  Ｍｕｌｔｉ−Ｍｏｄｅｌ  Ｓｅｍａｎｔｉｃ  Ｉｎｔｅｒａｃｔｉｏｎ  ｆｏｒ  Ｔｅｘｔ  Ａｎａｌｙｔｉｃｓ，  Ｉｎ  ２０１４  ＩＥＥＥ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｖｉｓｕａｌ  Ａｎａｌｙｔｉｃｓ  Ｓｃｉｅｎｃｅ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ  （ＶＡＳＴ），  Ｏｃｔｏｂｅｒ  ２０１４，  ｐｐ．  １６３−１７２．
【非特許文献５】ＢＲＯＷＮ，  Ｅ．Ｔ．，  ｅｔ  ａｌ．，  Ｄｉｓ−Ｆｕｎｃｔｉｏｎ：  Ｌｅａｒｎｉｎｇ  Ｄｉｓｔａｎｃｅ  Ｆｕｎｃｔｉｏｎｓ  Ｉｎｔｅｒａｃｔｉｖｅｌｙ，  Ｉｎ  ２０１２  ＩＥＥＥ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｖｉｓｕａｌ  Ａｎａｌｙｔｉｃｓ  Ｓｃｉｅｎｃｅ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ  （ＶＡＳＴ），  Ｏｃｔｏｂｅｒ  ２０１２，  ｐｐ．  ８３−９２．
【非特許文献６】ＣＡＲＲＯＬＬ，  Ｊ．Ｄ．，  ｅｔ  ａｌ．，  Ａｎａｌｙｓｉｓ  ｏｆ  Ｉｎｄｉｖｉｄｕａｌ  Ｄｉｆｆｅｒｅｎｃｅｓ  ｉｎ  Ｍｕｌｔｉｄｉｍｅｎｓｉｏｎａｌ  Ｓｃａｌｉｎｇ  ｖｉａ  ａｎ  Ｎ−Ｗａｙ  Ｇｅｎｅｒａｌｉｚａｔｉｏｎ  ｏｆ  ”Ｅｃｋａｒｔ−Ｙｏｕｎｇ”  Ｄｅｃｏｍｐｏｓｉｔｉｏｎ，  Ｐｓｙｃｈｏｍｅｔｒｉｋａ，  ３５（３），  Ｓｅｐｔｅｍｂｅｒ  １９７０，  ｐｐ．  ３８３−３１９．
【非特許文献７】ＣＡＳＥＲＴＡ，  Ｐ．  ｅｔ  ａｌ．，  Ｖｉｓｕａｌｉｚａｔｉｏｎ  ｏｆ  ｔｈｅ  Ｓｔａｔｉｃ  Ａｓｐｅｃｔｓ  ｏｆ  Ｓｏｆｔｗａｒｅ：  Ａ  ｓｕｒｖｅｙ，  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｖｉｓｕａｌｉｚａｔｉｏｎ  ａｎｄ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ，  １７（７），  Ｊｕｌｙ  ２０１１，  ｐｐ．  ９１３−９３３．
【非特許文献８】ＤＡＳＨ，  Ｓ．，  ｅｔ  ａｌ．，  Ｐｏｒｔａｂｌｅ  Ｐａｒａｌｌｅｌ  Ｄｅｓｉｇｎ  ｏｆ  Ｗｅｉｇｈｔｅｄ  Ｍｕｌｔｉ−Ｄｉｍｅｎｓｉｏｎａｌ  Ｓｃａｌｉｎｇ  ｆｏｒ  Ｒｅａｌ−Ｔｉｍｅ  Ｄａｔａ  Ａｎａｌｙｓｉｓ，  Ｉｎ  ２０１７  ＩＥＥＥ  １９ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｉｎｇ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ，  Ｄｅｃｅｍｂｅｒ  ２０１７，  Ｂａｎｇｋｏｋ，  Ｔｈａｉｌａｎｄ，  ８  ｐｇｓ．
【非特許文献９】ＤＡＴＡＢＲＩＣＫＳ，  Ｄａｔａｂｒｉｃｋｓ  −  Ｍａｋｉｎｇ  Ｂｉｇ  Ｄａｔａ  Ｓｉｍｐｌｅ，  ３  ｐｇｓ．  ［ｏｎｌｉｎｅ］  ［ｒｅｔｒｉｅｖｅｄ  ８／６／２０１８］  ＵＲＬ：  ｈｔｔｐｓ：／／ｄａｔａｂｒｉｃｋｓ．ｃｏｍ／
【非特許文献１０】ＤＯＷＬＩＮＧ，  Ｍ．，  ｅｔ  ａｌ．，  ＳＩＲＩＵＳ；  Ｄｕａｌ，  Ｓｙｍｍｅｔｒｉｃ，  Ｉｎｔｅｒａｃｔｉｖｅ  Ｄｉｍｅｎｓｉｏｎ  Ｒｅｄｕｃｔｉｏｎｓ，  Ｔｏ  Ａｐｐｅａｒ  ｉｎ  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｖｉｓｕａｌｉｚａｔｉｏｎ  ａｎｄ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ，  ２０１８，１１  ｐｇｓ．
【非特許文献１１】ＥＮＤＥＲＴ，  Ａ．，  ｅｔ  ａｌ．，  Ｓｅｍａｎｔｉｃ  Ｉｎｔｅｒａｃｔｉｏｎ  ｆｏｒ  Ｓｅｎｓｅｍａｋｉｎｇ；  Ｉｎｆｅｒｒｉｎｇ  Ａｎａｌｙｔｉｃａｌ  Ｒｅａｓｏｎｉｎｇ  ｆｏｒ  Ｍｏｄｅｌ  Ｓｔｅｅｒｉｎｇ，  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｖｉｓｕａｌｉｚａｔｉｏｎ  ａｎｄ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ，  １８（１２），  Ｄｅｃｅｍｂｅｒ  ２０１２，  ｐｐ．  ２８７９−２８８８．
【非特許文献１２】ＥＮＤＥＲＴ，  Ａ．，  ｅｔ  ａｌ．，  Ｓｅｍａｎｔｉｃ  Ｉｎｔｅｒａｃｔｉｏｎ  ｆｏｒ  Ｖｉｓｕａｌ  Ｔｅｘｔ  Ａｎａｌｙｔｉｃｓ，  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＳＩＧＣＨＩ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｈｕｍａｎ  Ｆａｃｔｏｒｓ  ｉｎ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍｓ，  ２０１２，  ｐｐ．  ２７３−４８２．
【非特許文献１３】ＢＡＬＭＡＳ，  Ｆ．，  Ｄｉｓｐｌａｙｉｎｇ  Ｄｅｐｅｎｄｅｎｃｅ  Ｇｒａｐｈｓ：  Ａ  Ｈｉｅｒａｒｃｈｉｃａｌ  Ａｐｐｒｏａｃｈ，  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｆｔｗａｒｅ  Ｍａｉｎｔｅｎａｎｃｅ  ａｎｄ  Ｅｖｏｌｕｔｉｏｎ：  Ｒｅｓｅａｒｃｈ  ａｎｄ  Ｐｒａｃｔｉｃｅ，  １６（３），  ２００４，  ｐｐ．  １５１−１８５．
【非特許文献１４】ＧＵＯ，  Ｐ．Ｊ．，  Ｓｏｆｔｗａｒｅ  Ｔｏｏｌｓ  ｔｏ  Ｆａｃｉｌｉｔａｔｅ  Ｒｅｓｅａｒｃｈ  Ｐｒｏｇｒａｍｍｉｎｇ，  Ｐｈ．Ｄ．  Ｔｈｅｓｉｓ，  Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ，  ２０１２，２３０  ｐｇｓ．
【非特許文献１５】ＧＵＯ，  Ｐ．Ｊ．，  ｅｔ  ａｌ．，  ＢＵＲＲＩＴＯ：  Ｗｒａｐｐｉｎｇ  ｙｏｕｒ  Ｌａｂ  Ｎｏｔｅｂｏｏｋ  ｉｎ  Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ，  ＵＳＥＮＩＸ  Ｗｏｒｋｓｈｏｐ  ｏｎ  ｔｈｅ  Ｔｈｅｏｒｙ  ａｎｄ  Ｐｒａｃｔｉｃｅ  ｏｆ  Ｐｒｏｖｅｎａｎｃｅ，  （ＴａＰＰ  ’１２），  ２０１２，４  ｐｇｓ．
【非特許文献１６】ＨＥＥＲ，  Ｊ．，  ｅｔ  ａｌ．  Ｖｉｚｓｔｅｒ：  Ｖｉｓｕａｌｉｚｉｎｇ  Ｏｎｌｉｎｅ  Ｓｏｃｉａｌ  Ｎｅｔｗｏｒｋｓ，  Ｉｎ  ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｖｉｓｕａｌｉｚａｔｉｏｎ  ＩＮＦＯＶＩＳ，  Ｏｃｔｏｂｅｒ  ２００５，  ｐｐ．  ３２−３９．
【非特許文献１７】ＫＡＮＤＥＬ，  Ｓ．，  ｅｔ  ａｌ．，  Ｅｎｔｅｒｐｒｉｓｅ  Ｄａｔａ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｖｉｓｕａｌｉｚａｔｉｏｎ；  Ａｎ  Ｉｎｔｅｒｖｉｅｗ  Ｓｔｕｄｙ，  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ａｎｄ  Ｖｉｓｕａｌｉｚａｔｉｏｎ  ａｎｄ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ，  １８，２０１２，  ｐｐ．  ２９１７−２９２６．
【非特許文献１８】ＨＥＮＬＥＹ，  Ａ．Ｚ．，  ｅｔ  ａｌ．，  ＣＦａｒ：  Ａ  Ｔｏｏｌ  ｔｏ  Ｉｎｃｒｅａｓｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ，  Ｐｒｏｄｕｃｔｉｖｉｔｙ，  ａｎｄ  Ｒｅｖｉｅｗ  Ｑｕａｌｉｔｙ  ｉｎ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｃｏｄｅ  Ｒｅｖｉｅｗ，  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２０１８  ＣＨＩ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｈｕｍａｎ  Ｆａｃｔｏｒｓ  ｉｎ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍｓ，  ＣＨＩ’１８，  Ｎｅｗ  Ｙｏｒｋ，  ＮＹ，  １３  ｐｇｓ．
【非特許文献１９】ＨＯＦＦＳＷＥＬＬ，  Ｊ，，  ｅｔ  ａｌ．，  Ａｕｇｍｅｎｔｉｎｇ  Ｃｏｄｅ  ｗｉｔｈ  Ｉｎ  Ｓｉｔｕ  Ｖｉｓｕａｌｉｚａｔｉｏｎｓ  ｔｏ  Ａｉｄ  Ｐｒｏｇｒａｍ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ，  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２０１８  ＣＨＩ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｈｕｍａｎ  Ｆａｃｔｏｒｓ  ｉｎ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍｓ，  ＣＨＩ  ’１８，  Ｎｅｗ  Ｙｏｒｋ，  ＮＹ，  １２  ｐｇｓ．
【非特許文献２０】ＫＥＲＹ，  Ｍ．Ｂ．，  ｅｔ  ａｌ．，  Ｖａｒｉｏｌｉｔｅ：  Ｓｕｐｐｏｒｔｉｎｇ  Ｅｘｐｌｏｒａｔｏｒｙ  Ｐｒｏｇｒａｍｍｉｎｇ  ｂｙ  Ｄａｔａ  Ｓｃｉｅｎｔｉｓｔｓ，  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２０１７  ＣＨＩ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｈｕｍａｎ  Ｆａｃｔｏｒｓ  ｉｎ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍｓ，  ＣＨＩ  ’１７，２０１７，  Ｎｅｗ  Ｙｏｒｋ，  ＮＹ，  ｐｐ．  １２６５−１２７６．
【非特許文献２１】ＫＥＲＹ，  Ｍ．Ｂ，．，  ｅｔ  ａｌ．，  Ｔｈｅ  Ｓｔｏｒｙ  ｉｎ  ｔｈｅ  Ｎｏｔｅｂｏｏｋ：  Ｅｘｐｌｏｒａｔｏｒｙ  Ｄａｔａ  Ｓｃｉｅｎｃｅ  Ｕｓｉｎｇ  ａ  Ｌｉｔｅｒａｔｅ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｔｏｏｌ，  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２０１８  ＣＨＩ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｈｕｍａｎ  Ｆａｃｔｏｒｓ  ｉｎ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍｓ，  ＣＨＩ  ’１８，  ２０１８，  Ｎｅｗ  Ｙｏｒｋ，  ＮＹ，  １１  ｐｇｓ．
【非特許文献２２】ＰＥＲＥＺ，  Ｆ．，  ｅｔ  ａｌ．，  Ｐｒｏｊｅｃｔ  Ｊｕｐｙｔｅｒ：  Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｎａｒｒａｔｉｖｅ  ａｓ  ｔｈｅ  Ｅｎｇｉｎｅ  ｏｆ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｄａｔａ  Ｓｃｉｅｎｃｅ，  ２４  ｐｇｓ．，  ［ｏｎｌｉｎｅ］  ［ｒｅｔｒｉｅｖｅｄ  ７／１７／１８］  ＵＲＬ：  ｈｔｔｐｓ：／／ｂｌｏｇ．ｊｕｐｙｔｅｒ．ｏｒｇ／ｐｒｏｊｅｃｔ−ｊｕｐｙｔｅｒ−ｃｏｍｐｕｔａｔｉｏｎａｌ−ｎａｒｒａｔｉｖｅｓ−ａｓ−ｔｈｅ−ｅｎｇｉｎｅ−ｏｆ−ｃｏｌｌａｂｏｒａｔｉｖｅ−ｄａｔａ−ｓｃｉｅｎｃｅ−２ｂ５ｆｂ９４ｃ３ｃ５８
【非特許文献２３】ＰＩＲＯＬＬＩ，  Ｐ．，  ｅｌ  ａｌ，  Ｔｈｅ  Ｓｅｎｓｅｍａｋｉｎｇ  Ｐｒｏｃｅｓｓ  ａｎｄ  Ｌｅｖｅｒａｇｅ  Ｐｏｉｎｔｓ  ｆｏｒ  Ａｎａｌｙｓｔ  Ｔｅｃｈｎｏｌｏｇｙ  ａｓ  Ｉｄｅｎｔｉｆｉｅｄ  Ｔｈｒｏｕｇｈ  Ｃｏｇｎｉｔｉｖｅ  Ｔａｓｋ  Ａｎａｌｙｓｉｓ，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｉｎｔｅｌｌｉｇｅｎｃｅ  Ａｎａｌｙｓｉｓ，  ２００５，  ６  ｐｇｓ．
【非特許文献２４】ＰＲＯＪＥＣＴ  ＪＵＰＹＴＥＲ，  ２０１８，７  ｐｇｓ．  ［ｏｎｌｉｎｅ］  ［ｒｅｔｒｉｅｖｅｄ  ８／６／２０１８］  ＵＲＬ：  ｈｔｔｐ：／／ｊｕｐｙｔｅｒ．ｏｒｇ／
【非特許文献２５】ＲＯＢＩＮＳＯＮ，  Ａ．Ｃ．，  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｓｙｎｔｈｅｓｉｓ  ｏｆ  Ｖｉｓｕａｌ  Ａｎａｌｙｔｉｃ  Ｒｅｓｕｌｔｓ，  Ｉｎ  ２００８  ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｖｉｓｕａｌ  Ａｎａｌｙｔｉｃｓ  Ｓｃｉｅｎｃｅ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ，  Ｏｃｔｏｂｅｒ  ２００８，  ｐｐ．  ６７−７４．
【非特許文献２６】ＲＵＬＥ，  Ａ．，  ｅｔ  ａｌ．，  Ｅｘｐｌｏｒａｔｉｏｎ  ａｎｄ  Ｅｘｐｌａｎａｔｉｏｎ  ｉｎ  Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｎｏｔｅｂｏｏｋｓ，  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２０１８  ＣＨＩ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｈｕｍａｎ  Ｆａｃｔｏｒｓ  ｉｎ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍｓ，  ＣＨＩ  ’１８，  Ｎｅｗ  Ｙｏｒｋ，  ＮＹ，  ２０１８，１３  ｐｇｓ．
【非特許文献２７】ＳＡＧＥＭＡＴＨ，  １  ｐｇ．  ［ｏｎｌｉｎｅ］  ［ｒｅｔｒｉｅｖｅｄ  ８／６／１８］  ＵＲＬ：  ｈｔｔｐ：／／ｗｗｗ．ｓａｇｅｍａｔｈ．ｏｒｇ／
【非特許文献２８】ＳＥＩＤＥＲ，  Ｄ．，  ｅｔ  ａｌ．，  Ｖｉｓｕａｌｉｚｉｎｇ  Ｍｏｄｕｌｅｓ  ａｎｄ  Ｄｅｐｅｎｄｅｎｃｉｅｓ  ｏｆ  ＯＳＧｉ−ｂａｓｅｄ  Ａｐｐｌｉｃａｔｉｏｎｓ，  Ｉｎ  ２０１６  ＩＥＥＥ  Ｗｏｒｋｉｎｇ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｏｆｔｗａｒｅ  Ｖｉｓｕａｌｉｚａｔｉｏｎ  （ＶＩＳＳＯＦＴ），  Ｏｃｔｏｂｅｒ  ２０１６，  ｐｐ．  ９６−１００．
【非特許文献２９】ＳＲＩＮＩＶＡＳＡ，  Ｓ．，  ｅｔ  ａｌ，  Ｆｏｒａｇｉｎｇ  Ａｍｏｎｇ  ａｎ  Ｏｖｅｒａｂｕｎｄａｎｃｅ  ｏｆ  Ｓｉｍｉｌａｒ  Ｖａｒｉａｎｔｓ，  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２０１６  ＣＨＩ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｈｕｍａｎ  Ｆａｃｔｏｒｓ  ｉｎ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍｓ，  ＣＨＩ  ’１６，２０１６，  Ｎｅｗ  Ｙｏｒｋ，  ＮＹ，  ｐｐ．  ３５０９−３５２１．
【非特許文献３０】ＴＡＢＡＲＤ，  Ａ．，  ｅｔ  ａｌ．，  Ｆｒｏｍ  Ｉｎｄｉｖｉｄｕａｌ  ｔｏ  Ｃｏｌｌａｂｏｒａｔｉｖｅ；  Ｔｈｅ  Ｅｖｏｌｕｔｉｏｎ  ｏｆ  Ｐｒｉｓｍ，  ａ  Ｈｙｂｒｉｄ  Ｌａｂｏｒａｔｏｒｙ  Ｎｏｔｅｂｏｏｋ，  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００８  ＡＣＭ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｓｕｐｐｏｒｔｅｄ  Ｗｏｒｋ，  ＣＳＣＷ  ’０８，２００８，  Ｎｅｗ  Ｙｏｒｋ，  ＮＹ，  ｐｐ．  ５６９−５７８．
【非特許文献３１】ＶＡＮ  ＤＥＲ  ＭＡＡＴＥＮ，  Ｌ．，  ｅｔ  ａｌ．，  Ｖｉｓｕａｌｉｚｉｎｇ  Ｄａｔａ  Ｕｓｉｎｇ  ｔ−ＳＮＥ，  Ｊｏｕｒｎａｌ  ｏｆ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  Ｒｅｓｅａｒｃｈ，  ９，  ２００８，  ｐｐ．  ２５７９−２６０５．
【非特許文献３２】ＷＥＮＳＫＯＶＩＴＣＨ，  Ｊ．，  ｅｔ  ａｌ．，  Ｏｂｓｅｒｖａｔｉｏｎ−Ｌｅｖｅｌ  Ｉｎｔｅｒａｃｔｉｏｎ  ｗｉｔｈ  Ｃｌｕｓｔｅｒｉｎｇ  ａｎｄ  Ｄｉｍｅｎｓｉｏｎ  Ｒｅｄｕｃｔｉｏｎ  Ａｌｇｏｒｉｔｈｍｓ，  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２ｎｄ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｈｕｍａｎ−ｌｎ−ｔｈｅ−Ｌｏｏｐ  Ｄａｔａ  Ａｎａｌｙｔｉｃｓ，  ＨＩＬＤＡ  ’１７，  ２０１７，  Ｎｅｗ  Ｙｏｒｋ，  ＮＹ，  ６  ｐｇｓ．
【非特許文献３３】ＷＯＬＦＲＡＭ  ＭＡＴＨＥＭＡＴＩＣＡ，  Ｗｏｌｆｒａｍ  Ｍａｔｈｅｍａｔｉｃａ：  Ｍｏｄｅｒｎ  Ｔｅｃｈｎｉｃａｌ  Ｃｏｍｐｕｔｉｎｇ  ４  ｐｇｓ．  ［ｏｎｌｉｎｅ］  ［ｒｅｔｒｉｅｖｅｄ  ８／６／１８］  ＵＲＬ：  ｈｔｔｐ：／／ｗｗｗ．  ｗｏｌｆｒａｍ  ．ｃｏｍ／ｍａｔｈｅｍａｔｉｃａ／
【非特許文献３４】ＸＩＥ，  Ｙ．，  ｋｎｉｔｒ：  Ａ  Ｃｏｍｐｒｅｈｅｎｓｉｖｅ  Ｔｏｏｌ  ｆｏｒ  Ｒｅｐｒｏｄｕｃｉｂｌｅ  Ｒｅｓｅａｒｃｈ  ｉｎ  Ｒ，  Ｉｍｐｌｅｍｅｎｔ  Ｒｅｐｒｏｄ  Ｒｅｓ，  ２０１４，２４  ｐｇｓ．
【非特許文献３５】ＹＵ，  Ｚ．，  ｅｔ  ａｌ．，  Ｃｈａｒａｃｔｅｒｉｚｉｎｇ  ｔｈｅ  Ｕｓａｇｅ  ａｎｄ  Ｉｍｐａｃｔ  ｏｆ  Ｊａｖａ  Ａｎｎｏｔａｔｉｏｎｓ  Ｏｖｅｒ  １０００＋  Ｐｒｏｊｅｃｔｓ，  ２０１８，２５  ｐｇｓ．  ａｒＸｉｖ：  １８０５．０１９６５  ［ｃｓ．ＳＥ］
【発明の概要】
【発明が解決しようとする課題】
【０００６】
共有ノートブックはセルを直線的に通るものであるように見えるが、この構造は強制されない。開発者は、任意の順序で実行される完全にコードセル（又はマークダウンセル）であるノートブックを作成することができ、潜在的に、一部のセルは複数回実行され、実行間で編集され、潜在的に、ノートブック内の複数の非線形実行経路を有する。実際、開発者はこれらのノートブックを、代替の技法を試みること、結果を共有すること、一時的又は「使い捨て」コード、及び探索的データ分析を含む様々な目的で使用する。計算ノートブックの使用に向けたそのような様々な手法は、ノートブックを他の研究者と共有すること、又は実行時及びデバッグ時のエラーを追跡することにおける課題に必然的につながり、並びに所与の時間に何のコードが実行されているかを判定することを困難にする。
【０００７】
さらに、計算ノートブックは、上述された全体的なセル構造及び変数実行順序などの、既存の従来技術のツールによってサポートされない追加の課題及び挙動を含む。計算ノートブックの問題に具体的に対処するインターフェースは存在しない。
【０００８】
本開示の技術は、どのセルが実行されているかを判定できるようにする方法、プログラム、および装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本明細書に記載される例示的な実装形態は、アイデアのより効果的な探索及び伝達をサポートするためにノートブックの構造を要約するとともに、計算ノートブックの実行用の機能を提供するインターフェースに関する。具体的には、インターフェースは、動的グラフを使用してノートブックの様々な単位（たとえば、テキスト、コードなど）の間の依存性及び関係を示す。そのようなインターフェースは、探索プログラミング中のアナリストの内省に、且つアナリスト間のストーリーテリング、協業、及び伝達のための効果的な物語としても使用できる。
【００１０】
本開示の態様は、各々が実行可能コードを備える複数のセルを備える計算ノートブックの第１のインターフェースに、各々複数のセルの表現を備える複数のノード、及びノードをリンクする複数のリンクを備えるグラフ形式で計算ノートブックを表す第２のインターフェースを提供することと、計算ノートブック内の複数のセルのサブセットを実行するために、複数のセルの実行の順序を示す第２のインターフェース上のノード及びリンクを通る経路を示すこととを含む方法である。
本開示の態様の方法は、実行可能コードを備える複数のノードのうちの１つの強調表示時に、複数のノードのうちの１つに対応する複数のセルのうちの１つからコードを抽出することと、複数のノードのうちの１つに対応する抽出されたコードを表示用に提示することと、表示用に提示された抽出されたコードに対して行われた修正のために、修正に従って第１のインターフェース内の複数のセルのうちの１つを修正することとをさらに含む。
本開示の態様の方法は、第２のインターフェースの１または複数の対応するノード上で、インターフェースの背景内に、複数のセルの各セルで利用された変数の表示を提供することをさらに含む。
本開示の態様の方法は、複数のノードのうちの１つの強調表示時に、複数のノードのうちの１つに対応する複数のセルのうちの１つに関連付けられたチャートの表現を決定することと、表示用に複数のノードのうちの１つに対応する決定されたチャートを提示することとをさらに含む。
本開示の態様の方法は、グラフが力指向グラフであり、複数のノードが対応するセル内で使用される変数の類似性に従って、複数のリンクの各々の長さが類似性を表すように、配置され、複数のセルの表現が、実行可能コードを備える複数のセルのうちの１つに対する第１の表現と、マークダウンを備える複数のセルのうちの１つに対する第１の表現とは異なる第２の表現とを備える。
本開示の態様の方法は、第２のインターフェース上に、計算ノートブックの１または複数の履歴実行スナップショットを提供するように構成されたタイムスライダを提供することと、特定の時間期間に対するタイムスライダ上の相互作用について、１または複数の履歴実行スナップショットのうちの対応する１つに従って、グラフ形式の計算ノートブックを表示することとをさらに含む。
【００１１】
本開示の態様は、コンピュータに、各々が実行可能コードを備える複数のセルを備える計算ノートブックの第１のインターフェースに、各々複数のセルの表現を備える複数のノード、及びノードをリンクする複数のリンクを備えるグラフ形式で計算ノートブックを表す第２のインターフェースを提供することと、計算ノートブック内の複数のセルのサブセットを実行するために、複数のセルの実行の順序を示す第２のインターフェース上のノード及びリンクを通る経路を示すこととを含むプロセスを実行するための処理を実行させるプログラムである。
本開示の態様は、処理が、実行可能コードを備える複数のノードのうちの１つの強調表示時に、複数のノードのうちの１つに対応する複数のセルのうちの１つからコードを抽出することと、複数のノードのうちの１つに対応する抽出されたコードを表示用に提示することと、表示用に提示された抽出されたコードに対して行われた修正のために、修正に従って第１のインターフェース内の複数のセルのうちの１つを修正することとをさらに含む。
本開示の態様は、処理が、第２のインターフェースの１または複数の対応するノード上で、インターフェースの背景内に、複数のセルの各セルで利用された変数の表示を提供することをさらに含む。
本開示の態様は、処理が、複数のノードのうちの１つの強調表示時に、複数のノードのうちの１つに対応する複数のセルのうちの１つに関連付けられたチャートの表現を決定することと、表示用に複数のノードのうちの１つに対応する決定されたチャートを提示することとをさらに含む。
本開示の態様は、グラフが力指向グラフであり、複数のノードが対応するセル内で使用される変数の類似性に従って、複数のリンクの各々の長さが類似性を表すように、配置され、複数のセルの表現が、実行可能コードを備える複数のセルのうちの１つに対する第１の表現と、マークダウンを備える複数のセルのうちの１つに対する第１の表現とは異なる第２の表現とを備える。
本開示の態様は、処理が、第２のインターフェース上に、計算ノートブックの１または複数の履歴実行スナップショットを提供するように構成されたタイムスライダを提供することと、特定の時間期間に対するタイムスライダ上の相互作用について、１または複数の履歴実行スナップショットのうちの対応する１つに従って、グラフ形式の計算ノートブックを表示することとをさらに含む。
【００１２】
本開示の態様は、各々が実行可能コードを備える複数のセルを備える計算ノートブックの第１のインターフェースに、各々複数のセルの表現を備える複数のノード、及びノードをリンクする複数のリンクを備えるグラフ形式で計算ノートブックを表す第２のインターフェースを提供することと、計算ノートブック内の複数のセルのサブセットを実行するために、複数のセルの実行の順序を示す第２のインターフェース上のノード及びリンクを通る経路を示すこととを行うように構成されたプロセッサを含むことができる装置である。
本開示の態様は、プロセッサが、実行可能コードを備える複数のノードのうちの１つの強調表示時に、複数のノードのうちの１つに対応する複数のセルのうちの１つからコードを抽出することと、複数のノードのうちの１つに対応する抽出されたコードを表示用に提示することと、用に提示された抽出されたコードに対して行われた修正のために、修正に従って第１のインターフェース内の複数のセルのうちの１つを修正することとを行うようにさらに構成される。
本開示の態様は、プロセッサが、第２のインターフェースの１または複数の対応するノード上で、インターフェースの背景内に、複数のセルの各セルで利用された変数の表示を提供することを行うようにさらに構成される。
本開示の態様は、プロセッサが、複数のノードのうちの１つの強調表示時に、複数のノードのうちの１つに対応する複数のセルのうちの１つに関連付けられたチャートの表現を決定することと、表示用に複数のノードのうちの１つに対応する決定されたチャートを提示することとを行うようにさらに構成される。
本開示の態様は、グラフが力指向グラフであり、複数のノードが対応するセル内で使用される変数の類似性に従って、複数のリンクの各々の長さが類似性を表すように、配置され、複数のセルの表現が、実行可能コードを備える複数のセルのうちの１つに対する第１の表現と、マークダウンを備える複数のセルのうちの１つに対する第１の表現とは異なる第２の表現とを備える。
本開示の態様は、プロセッサが、第２のインターフェース上に、計算ノートブックの１または複数の履歴実行スナップショットを提供するように構成されたタイムスライダを提供することと、特定の時間期間に対するタイムスライダ上の相互作用について、１または複数の履歴実行スナップショットのうちの対応する１つに従って、グラフ形式の計算ノートブックを表示することとを行うようにさらに構成される。
【００１３】
本開示の態様は、各々が実行可能コードを備える複数のセルを備える計算ノートブックの第１のインターフェースに、各々複数のセルの表現を備える複数のノード、及びノードをリンクする複数のリンクを備えるグラフ形式で計算ノートブックを表す第２のインターフェースを提供するための手段と、計算ノートブック内の複数のセルのサブセットを実行するために、複数のセルの実行の順序を示す第２のインターフェース上のノード及びリンクを通る経路を示すための手段と、を含む装置である。
【図面の簡単な説明】
【００１４】
【図１】計算ノートブックの例示的なインターフェースを示す図である。
【図２】例示的な実装形態による、システムの全体フローを示す図である。
【図３】例示的な実装形態による、計算ノートブックインターフェースの一例を示す図である。
【図４】例示的な実装形態による、例示的なシステムインターフェースの態様を示す図である。
【図５】例示的な実装形態による、例示的なシステムインターフェースの態様を示す図である。
【図６】例示的な実装形態による、例示的なシステムインターフェースの態様を示す図である。
【図７】例示的な実装形態による、例示的なシステムインターフェースの態様を示す図である。
【図８（ａ）】例示的な実装形態による、インターフェース内のノードを強調表示するための一例を示す図である。
【図８（ｂ）】例示的な実装形態による、インターフェース内のノードを強調表示するための一例を示す図である。
【図８（ｃ）】例示的な実装形態による、インターフェース内のノードを強調表示するための一例を示す図である。
【図８（ｄ）】例示的な実装形態による、インターフェース内のノードを強調表示するための一例を示す図である。
【図９】例示的な実装形態による、コードセルグリフ（ｃｏｄｅ  ｃｅｌｌ  ｇｌｙｐｈｓ)の一例を示す図である。
【図１０】例示的な実装形態による、実行されたノードを通る経路を示す図である。
【図１１】例示的な実装形態による、選択された変数又は関数を使用するすべてのセルを接続する経路を示す図である。
【図１２】タイムスライダを含む例示的な実装形態を示す図である。
【図１３】例示的な実装形態による、例示的な流れ図を示す図である。
【図１４】例示的な実装形態における使用に適した例示的なコンピュータ装置を有する例示的なコンピューティング環境を示す図である。
【発明を実施するための形態】
【００１５】
以下の発明を実施するための形態は、本出願の図及び例示的な実装形態のさらなる詳細を提供する。図の間で重複する要素の参照番号及び説明は、明確にするために省略されている。説明全体にわたって使用される用語は例として提供され、限定するものではない。たとえば、「自動」という用語の使用は、本出願の実装形態を実践する当業者の所望の実装形態に応じて、実装形態のいくつかの態様に対するユーザ又は管理者の制御を含む、全自動又は半自動の実装形態を含んでもよい。選択は、ユーザインターフェース若しくは他の入力手段を介してユーザによって行うことができるか、又は所望のアルゴリズムを介して実施することができる。本明細書に記載される例示的な実装形態は、単独で又は組み合わせて利用することができ、例示的な実装形態の機能は、所望の実装形態に応じて任意の手段を介して実装することができる。
【００１６】
図１は、計算ノートブックの例示的なインターフェースを示す。計算ノートブックは、データサイエンスにおけるデータ探索及びデータ洞察の伝達のための主要な媒体になっている。これらのノートブックは、コード、文書化、及び出力を、様々な形式（たとえば、チャート及び表）で１つの文書内に結合する。この新しい形式の文書は、表現力があり、動的で、柔軟であり、アイデアを探索し伝達するための豊富なサポートを提供する。たとえば、ノートブックの内容は、（テキスト用のマークアップ言語セル及びスクリプト用のコードセルを含む）セルに分割することができ、従来技術の統合開発環境（ＩＤＥ）とは異なり、そのようなセルは任意の順序で評価／実行することができる。これらの計算ノートブックは、当初はデジタルの物語になるように構成されたが、実際には、物語を語ることがほとんどないか、又は分析プロセスを明確に表すスクリプト、チャート、及び表の緩やかな集合である。
【００１７】
従来技術の計算ノートブックの場合、インターフェースの使用に関連するいくつかの問題がある。従来技術では、アナリストは、結果の共有、迅速なコードの実験及び使い捨て、後のパイプラインに含めるためのコードのプロトタイピング、並びにデータ分析を含む様々な方法で計算ノートブックを使用する。多くのデータサイエンスの問題は複雑であるため、そのようなユースケースは、複数のアナリストが協力してどの問題を解決するべきかの協業において問題をもたらす。たとえば、あるアナリストは別のアナリストの慣例に慣れていない場合があり、彼／彼女らと共有しているノートブックの目的及び構造を理解するためにさらなる支援が必要になる。この知識の伝達及び共有のプロセスを支援するために、改善されたインターフェースなどのツールが必要とされている。
【００１８】
計算ノートブックの人気、並びにそれらがデータサイエンティストによって使用される様々な方法の両方は、様々な問題を提起する。たとえば、アナリストは、類似しているが同一ではないコードの複数のバージョンを作成して、どのようにデータが収集、整理、及び処理されるかの小さな変更をテストする場合がある。現在のインターフェースでは、アナリストはどのバージョンのコードがどの結果をもたらしたかを追跡するのに苦労する可能性があり、ナビゲーション上の課題が提起される。一時的な実験は、注釈又は文書化が不十分である「使い捨て」コードとして扱われるが、さらに、特にコードのセルが非線形の順序で実行される場合、そのようなコードはまだ最終的なノートブックになる可能性がある。単一のノートブックで協業しているアナリストは、現在のインターフェースがそのようなコードを線形形式で提示するが、それは非線形に実行されてもよいので、既存のノートブックの高レベルの構造を理解するのに苦労する可能性があり、既に実装された分析の開発及び／又は再作成が潜在的に遅くなる。ノートブックのユースケースは無向の探索データ分析を含むので、非線形方式でのコードの実行は、現在のノートブックインターフェースの線形構造と矛盾する。
【００１９】
本明細書に記載された例示的な実装形態は、セルと変数との間の関係及び依存性を含む、計算ノートブックの構造の視覚的概観を容易にすることができる、ノートブックの構造を視覚的に要約できるインターフェースを含む。例示的な実装形態はまた、インターフェースを提供して、協業者及び内省の両方に対してその構造の視覚的説明を容易にし、セル間の関係のユーザ主導探索、個々のノートブックセルを実行するときに生じる実行時の問題の視覚的デバッグを提供し、アナリスト間のストーリーテリング、協業、及び伝達のためのより効果的な物語を反映したインターフェースを容易にすることができる。
【００２０】
図２は、例示的な実装形態による、システムの全体フローを示す。２００において入力として計算ノートブックを受け取ると、２０１において個々のマークアップ言語セル及びコードセルなどのプロパティが抽出され、ネットワークは、２０２において力指向グラフ内のノードとして抽出されたプロパティを別々に使用することによって構築される。グラフ内では、ノード間の距離は、各セルで使用される変数に基づく類似性の尺度を表す（たとえば、類似ノードは互いに近くに引き寄せられ、非類似ノードは広く分離される）。マークアップ言語セルはまた、しばしばより高いレベルの機能グループ（たとえば、データローディング、機能構成など）を備えるセルのセットを示す制御点として機能する。グラフは、次いで、視覚化２０３のためにスクリーン上に投影され、コントロールの集合はアナリストが２０４においてノートブック内の関係及び構造を探索することを可能にする。インターフェースに対する実質的な変更を引き起こすいくつかの相互作用は、視覚化を更新することに加えてネットワークを再構築することを必要とする。さらに、ノートブックに対するユーザの変更は、それらの変更を表すために更新された視覚化の構築を必要とする。
【００２１】
以下のユースケースを考える：アナリストが一人でデータ分析用の計算ノートブックを開発し、かなりの量のコードを開発したが、現在、自分のデータサイエンスの専門知識の限界に達しており、特定のアルゴリズム又はライブラリの使用経験が豊富な第２のアナリストを取り込む必要がある。この第２のアナリストは、貢献するためにノートブックの現在の状態に迅速に追いつく必要がある。しかしながら、これには、使用される主要な変数、現在のデータ処理方法、及び／又はデータパイプラインの主要な機能コンポーネント間の関係などの構造を理解するために、数百又は数千行のソースコードを調べる必要がある。
【００２２】
コード自体を追跡するのではなく、第２のアナリストは、インターフェースを使用してノートブックの高レベルの構造を迅速に理解し、インターフェースを操作して個々のセルと大きなコード構造との間の関係を確認し、ノートブックを開発し続ける際の自分の貢献に関連するコードセルを特定し、ノートブック内の一般的な変数及び関数の使用を追跡し、ノートブックの開発履歴を理解することができる。
【００２３】
図３は、例示的な実装形態による、計算ノートブックインターフェースの一例を示す。この例では、アナリストは、提案されたシステムインターフェース３０１上で実行時の実行を視覚的に探索しながら、同時に計算ノートブック３００を実行している。
【００２４】
図４は、例示的な実装形態による、例示的なシステムインターフェースを示す。このインターフェースは２つの領域：左側の大きなグラフ探索空間及び右側のコントロールパネルを含むことができる。グラフ探索空間は、（たとえば、色付き、グレースケールなどの）ノード及び半透明のリンクでレンダリングされた計算ノートブックを表すネットワークグラフを含む。たとえば、あるノードカラーはマークアップ言語セルを表すことができ、別のノードカラーはコードセルを表すことができる。
【００２５】
リンクの幅及び不透明度は、マークアップセルをコードセルに接続するリンクの場合を除いて、それらが接続するノードペアの測定された類似性にマッピングすることができ、それは所望の実装形態による構造的コネクタであり得る。リンクの長さもこの測定された類似性にマッピングされるが、力指向シミュレーションの物理的性質により、レンダリングされた長さが不正確になり、二重符号化が正当化される可能性がある。類似性の尺度は、接続されたノードによって共有される変数及び関数の数に基づいて計算することができ、最も多くの変数及び関数を共有するセルのペアがグラフ内の最も強いリンク強度にマッピングされる。しかしながら、これらの類似点を計算及びレンダリングすることに対する他の代替手段には、ユーザ指定の強度、（用語頻度−逆文書頻度などを介する）特定のセルのペアに固有の変数及び関数の識別、線形ノートブック構造内のセル間の距離の考慮、並びに根底にあるセルの共通点を識別する深層学習手法の使用が含まれるが、それらに限定されない。
【００２６】
探索空間の背景は、ノートブックで使用される一般的な変数及び関数でタグ付けすることができる。そのような変数及び関数はまた、所望の実装形態に応じてタグをグラフの残りに接続する目に見えるリンクなしに、力指向手段によって配置することができる。そのような実装形態はアナリストにコンテキスト情報を提供し、グラフのどの部分がコードのどの機能に対応するかをアナリストが迅速に確認することを可能にする。
【００２７】
この視覚化により、第２のアナリストはノートブック内の構造のうちのいくつかを迅速に理解することができる。たとえば、タグ付きの背景は、グラフ内のどこに共通変数があるかを示す。このアナリストがデータクラスタリングに関する専門知識に貢献しようとする場合、彼／彼女らはｃｌｕｓｔｅｒＧｒｏｕｐなどの変数用のタグを見つけるか、又はおそらく図４の中央のｉｒｉｓなどのよく知られたデータセットを記述する変数を探すことができる。
【００２８】
視覚化の関連領域を識別した後、このアナリストは、次いで、その領域に関連するコードセル及びマークアップセルの探索を開始することができる。リンクの各クラス（コード−コード、コード−マークアップ、マークアップ−マークアップ）は関連する重みを有し、アナリストがグラフのレイアウトを更新して特定の構造を拡張することを可能にする。
【００２９】
図５は、例示的な実装形態による、別の例示的インターフェースを示す。図５では、アナリストは、コード−マークアップリンクに適用される重みを増やし、コード−コードリンクに適用される重みを減らしている。結果として、ノートブック内のセルのより高いレベルの機能グループは、グラフの構造内でより見えやすくなるが、ノートブック内の個々のセル間の関係は失われる。このビューを使用すると、アナリストはノートブック内のこれらの高レベルの機能構造を迅速に識別することができる。マークアップ−マークアップリンクの強度を上げると、類似の構造が互いに近づくようになり、これらの構造グループ間の機能的な関係が示される。
【００３０】
図６は、例示的な実装形態による、別の例示的インターフェースを示す。具体的には、図６は図５の反対の効果を示し、機能グループは、ここでコードセル間のグローバルな関係よりも重要性が低いものとして扱われる。次に、これらのセルは対応するマークダウンノードから別のグループのコードセルに向かって引っ張られるので、アナリストは、ノートブック内でセルが間違ったグループに線形に配置されているかどうかを判定することができる。
【００３１】
図７は、例示的な実装形態による、別の例示的インターフェースを示す。グラフをさらに探索するために、アナリストはノードを強調表示して（たとえば、マウスカーソルをノード上に乗せて）、付随するセル内のソースコードを明らかにすることができ、次いで、アナリストはそれを修正し、計算ノートブックを再実行させることができる。
【００３２】
図８（ａ）〜図８（ｄ）は、例示的な実装形態による、インターフェース内のノードを強調表示するための一例を示す。例示的な実装形態では、マークアップノード上にマウスを乗せると、そのセルに含まれていたマークアップ言語が表示される（図８（ａ））。別の例示的な実装形態では、コードノード上にマウスを乗せると、ソースコードとバッジの両方が表示される（図８（ｂ））。バッジは、グラフ、表、ファイル、テキスト、出力なしなどの、セルによって生成される出力のタイプに対応する。そのようなバッジはそれらのコードセルのグラフィック出力と置き換えることができ、その結果、単に所望の実装形態に従って出力がチャートであることを示す（図８（ｃ））のではなく、チャートをレンダリングする（図８（ｄ））ことになる。
【００３３】
図９は、例示的な実装形態による、コードセルグリフの一例を示す。例示的な実装形態では、サークルパッキング技法を使用して、変数などのこれらのセルのプロパティを表示することにより、コードセルグリフを拡張することができる。さらにまた、変数ノードのサイズがノートブック内のそれらの頻度を符号化し、５つの最も頻繁に使用される変数が固有の色を受け取る図９に見られるように、これらの変数のプロパティのうちのいくつかを視覚化することができる。
【００３４】
探索空間は、（ノートブックの線形順序に対応する）ノードを通る経路、（たとえば、アナリストが最近システムを用いて何をしたかを示す）図１０に示されたような実行されたノードを通る経路、又は（たとえば、セル間のさらなる関係を示す）図１１に示されたような選択された変数若しくは関数を使用するすべてのセルを接続する経路を描くことなどの、追加の機能でさらに注釈を付けることができる。例示的な実装形態では、アナリストは、アイリス（Ｉｒｉｓ）データセットを操作したいと思うかもしれず、したがって最初のアナリストがどこでそのデータセットを既に使用したかを見ることに関心がある。ノートブックを介してその変数用の経路を強調表示することにより、その変数の現在の使用状況を迅速に識別することができる。
【００３５】
そのような経路を表示すると、アナリストが自分のコードを用いていくつかの問題を視覚的にデバッグすることも可能になる。たとえば、ｘ及びｉなどの変数はカウンタとして頻繁に使用される。アナリストがそのカウンタをリセットするのを忘れた場合、予期しない挙動が発生する可能性がある。アナリストはセルをばらばらの順序で実行することを選択できるので、計算ノートブック内でこの予期しない挙動はより悪化する。変数経路を使用すると、アナリストは、カウンタをリセットしなかったかどうかを検査する必要があるコードセルの簡単な概要を提供される。その経路を実行順序経路と一緒にすると、まだ実行されていないコードセルを排除することにより、探索空間がさらに狭まる。
【００３６】
図１２は、タイムスライダを含む例示的な実装形態を示す。プログラマは、システムを使用して、タイムスライダを含めてノートブックの開発履歴を調べることもできる。そのような機能があれば、プログラマは、元の開発者がノートブックを構築し、マークダウンセル及びコードセルを追加及び削除し、変数を修正し、重要な出力をテストしたような元の開発者の考えをよりよく理解することができる。
【００３７】
図１３は、例示的な実装形態による、例示的な流れ図を示す。具体的には、図１３は、計算ノートブックのインターフェースとともに使用されるインターフェースを生成するための例示的な流れ図を示す。１３０１において、計算ノートブックがその中に含まれるセルに対して処理される。１３０２において、複数のセルに基づいてノード及びリンクのグラフがインターフェース上に生成される。１３０３において、計算ノートブックが実行されると、セルの実行順序に基づいてノード及びリンクに沿った経路が強調表示される。１３０４において、インターフェース上で修正が行われると、そこで行われた修正に基づいて計算ノートブックの機能及びその実行を調整することができる。
【００３８】
図１４は、例示的な実装形態における使用に適した例示的なコンピュータ装置を有する例示的なコンピューティング環境を示す。コンピューティング環境１４００内のコンピュータ装置１４０５は、１または複数の処理ユニット、コア、若しくはプロセッサ１４１０、メモリ１４１５（たとえば、ＲＡＭ、ＲＯＭなど）、内部記憶装置１４２０（たとえば、磁気記憶装置、光記憶装置、半導体記憶装置、及び／若しくは有機記憶装置）、並びに／又はＩ／Ｏインターフェース１４２５を含むことができ、それらのうちのいずれも、情報を通信するための、又はコンピュータ装置１４０５内に組み込まれた、通信機構又はバス１４３０上で結合することができる。
【００３９】
コンピュータ装置１４０５は、入力／ユーザインターフェース１４３５及び出力装置／インターフェース１４４０に通信結合することができる。入力／ユーザインターフェース１４３５及び出力装置／インターフェース１４４０のうちのいずれか１つ又は両方は、有線又はワイヤレスのインターフェースであり得るし、取外し可能であり得る。入力／ユーザインターフェース１４３５は、入力（たとえば、ボタン、タッチスクリーンインターフェース、キーボード、ポインティング／カーソールコントロール、マイクロフォン、カメラ、点字、モーションセンサ、光学レーダーなど）を提供するように使用され得る、物理的又は仮想の、任意の装置、構成要素、センサ、又はインターフェースを含んでもよい。出力装置／インターフェース１４４０は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、点字などを含んでもよい。いくつかの例示的な実装形態では、入力／ユーザインターフェース１４３５及び出力装置／インターフェース１４４０は、コンピュータ装置１４０５に組み込むことができるか、又は物理的に結合することができる。他の例示的な実装形態では、他のコンピュータ装置は、コンピュータ装置１４０５用の入力／ユーザインターフェース１４３５及び出力装置／インターフェース１４４０として機能するか、又はその機能を提供してもよい。タッチスクリーンディスプレイ、テレビジョンディスプレイ、又は任意の他の形態のディスプレイを含む例示的な実装形態では、ディスプレイは、たとえば図１〜図１２に示されたようなユーザインターフェースを提供するように構成される。
【００４０】
コンピュータ装置１４０５の例には、限定はしないが、高移動性装置（たとえば、スマートフォン、車両及び他の機械内の装置、人間及び動物が持ち運ぶ装置など）、移動装置（たとえば、タブレット、ノートブック、ラップトップ、パーソナルコンピュータ、ポータブルテレビ、ラジオなど）、並びに移動用に設計されていない装置（たとえば、デスクトップコンピュータ、他のコンピュータ、情報キオスク、１または複数のプロセッサが組み込まれ、且つ／又は結合されたテレビ、ラジオなど）が含まれてもよい。
【００４１】
コンピュータ装置１４０５は、外部記憶装置１４４５、並びに、同じ又は異なる構成の１または複数のコンピュータ装置を含む、任意の数のネットワーク化された構成要素、装置、及びシステムと通信するためのネットワーク１４５０に、（たとえば、Ｉ／Ｏインターフェース１４２５を介して）通信結合することができる。コンピュータ装置１４０５又は任意の接続されたコンピュータ装置は、サーバ、クライアント、シンサーバ、汎用機械、専用機械、又は別のラベルとして機能しているか、そのサービスを提供しているか、又はそう呼ばれ得る。
【００４２】
Ｉ／Ｏインターフェース１４２５は、限定はしないが、コンピューティング環境１４００内の少なくともすべての接続された構成要素、装置、及びネットワークとの間で情報を通信するための、任意の通信又はＩ／Ｏプロトコル又は規格（たとえば、イーサネット（登録商標）、８０２．１１ｘ、ユニバーサルシステムバス、ＷｉＭａｘ、モデム、セルラーネットワークプロトコルなど）を使用する、有線及び／又はワイヤレスのインターフェースを含むことができる。ネットワーク１４５０は、任意のネットワーク又はネットワークの組合せ（たとえば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、電話ネットワーク、セルラーネットワーク、衛星ネットワークなど）であり得る。
【００４３】
コンピュータ装置１４０５は、一時的媒体及び非一時的媒体を含む、コンピュータ使用可能媒体又はコンピュータ可読媒体を使用すること、及び／又は使用して通信することができる。一時的媒体には、伝送媒体（たとえば、金属ケーブル、光ファイバ）、信号、搬送波などが含まれる。非一時的媒体には、磁気媒体（たとえば、ディスク及びテープ）、光媒体（たとえば、ＣＤ  ＲＯＭ、デジタルビデオディスク、ブルーレイディスク）、半導体媒体（たとえば、ＲＡＭ、ＲＯＭ、フラッシュメモリ、半導体記憶装置）、並びに他の非一時的記憶装置又はメモリが含まれる。
【００４４】
コンピュータ装置１４０５は、いくつかの例示的なコンピューティング環境内で技法、方法、アプリケーション、処理、又はコンピュータ実行可能命令を実装するために使用することができる。コンピュータ実行可能命令は、一時的媒体から取り出され、非一時的媒体に記憶され、非一時的媒体から取り出され得る。実行可能命令は、任意のプログラミング言語、スクリプト言語、及び機械語（たとえば、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）、Ｖｉｓｕａｌ  Ｂａｓｉｃ、Ｐｙｔｈｏｎ、Ｐｅｒｌ、ＪａｖａＳｃｒｉｐｔ（登録商標）など）のうちの１または複数が起源であり得る。
【００４５】
メモリ１４１５は、たとえば図２及び図１３のフローに記載されたように、プロセッサ１４１０によって実行されるアルゴリズムを記憶又は管理するように構成されてもよい。本明細書に記載された例示的な実装形態は、所望の実装形態に従って、単独で、又は互いの任意の組合せで行われてもよく、特定の例示的な実装形態に限定されない。
【００４６】
プロセッサ１４１０は、ネイティブ環境又はバーチャル環境において、任意のオペレーティングシステム（ＯＳ）（図示せず）の下で実行することができる。異なるユニットが互いに、ＯＳと、且つ他のアプリケーション（図示せず）と通信するための、論理ユニット１４６０、アプリケーションプログラミングインターフェース（ＡＰＩ）ユニット１４６５、入力ユニット１４７０、出力ユニット１４７５、及びユニット間通信機構１４９５を含む１または複数のアプリケーションを配置することができる。記載されたユニット及び要素は、設計、機能、構成、又は実装において異なり得るし、提供された説明に限定されない。プロセッサ１４１０は、メモリ１４１５からロードされた命令を実行するように構成された物理プロセッサ又は中央処理装置（ＣＰＵ）の形態であり得る。
【００４７】
いくつかの例示的な実装形態では、情報又は実行命令がＡＰＩユニット１４６５によって受信されると、それは１または複数の他のユニット（たとえば、論理ユニット１４６０、入力ユニット１４７０、出力ユニット１４７５）に通信されてもよい。場合によっては、論理ユニット１４６０は、ユニット間の情報の流れを制御し、上述されたいくつかの例示的な実装形態において、ＡＰＩユニット１４６５、入力ユニット１４７０、出力ユニット１４７５によって提供されるサービスを指示するように構成されてもよい。たとえば、１または複数の処理又は実装の流れは、論理ユニット１４６０単独により、又はＡＰＩユニット１４６５と連携して制御されてもよい。入力ユニット１４７０は、例示的な実装形態に記載された計算用の入力を取得するように構成されてもよく、出力ユニット１４７５は、例示的な実装形態に記載された計算に基づいて出力を提供するように構成されてもよい。
【００４８】
例示的な実装形態では、プロセッサ１４１０は、各々が図１に示された実行可能コード及び図３に示されたインターフェース３００を備える複数のセルを含む計算ノートブックの第１のインターフェースに、各々図３のインターフェース３０１に示された複数のセルの表現を含む複数のノード、及びノードをリンクする複数のリンクを含むグラフ形式で計算ノートブックを表す第２のインターフェースを提供することと、計算ノートブック内の複数のセルのサブセットを実行するために、たとえば、図１０及び図１１に示された複数のセルの実行の順序を示す第２のインターフェース上のノード及びリンクを通る経路を示すこととを行うように構成さすることができる。第１及び第２のインターフェースを介して、ユーザは、セルの線形の第１のインターフェースを追跡する必要なしに、第２のインターフェースを介して、どのセルが実行されているかを迅速に判定し、セルを追加するか、又はセルの実行順序を修正することができ、計算ノートブック内でセルを物理的に配置する必要なしに、選択的にセルの実行を有効にするか、無効にするか、若しくは順序を並べ替えることができる。さらに、ユーザは、無意味な結果又はエラーを引き起こす可能性があるセルを実行することを忘れる可能性があり、それは第２のインターフェースを介して直ちに理解することができる。ノードの第２のインターフェースを介して、ユーザは、線形順序で配列されているが、必ずしも第１のインターフェース内の実行順序で配列されていないコードの多くのセルを取捨選択する必要なしに、直ちに正しいセルをリンクするか、又は実行順序を変更するか、又はセルを追加することができる。ユーザは、第２のインターフェースのコンポーネントをクリックして、第１のインターフェースの自分の対応する部分にナビゲートすることもでき、その逆も可能である。そのようなユーザによって作成されたバージョン間の変更は、計算ノートブックのインターフェースを介して容易に識別することができないので、そのような実装形態は、多くのユーザによって編集される計算ノートブックにとって非常に重要であり得る。
【００４９】
プロセッサ１４１０は、複数のノードのうちの１つの強調表示時に、複数のノードのうちの１つに対応する複数のセルのうちの１つからコードを抽出し、複数のノードのうちの１つに対応する抽出されたコードを表示用に提示し、表示された抽出コードに対して行われる修正のために、図６〜図８（ｄ）に示された修正に従って第１のインターフェース内の複数のセルのうちの１つを修正するようにさらに構成される。第２のインターフェースを介して、セルの対応する実行コードは、修正のためにユーザに直ちに提示することができ、それは、通常、計算ノートブックのインターフェースを介しては可能でない。ユーザは、次いで、セルによって提供されるようにコード又は出力を修正し、次いで、計算ノートブックを再実行させることができる。
【００５０】
プロセッサ１４１０は、図９に示されたように、第２のインターフェースの対応するノード上で、複数のセルのうちの各セルで利用される変数の指示を提供するように構成することができる。そのような例示的な実装形態を通じて、ユーザは、計算ノートブックのインターフェースを介して追跡する必要なしに、どの変数がどのセルで利用されるかを直ちに判定することができる。さらに、ユーザは、各コンピュータセル内のそのような変数の値、並びに計算ノートブックから容易に識別できないセル間の変数の依存性を識別することができる。そのような例示的な実装形態は、変数内のエラー又は特定のセル内の誤用された変数の迅速な識別を可能にする。
【００５１】
プロセッサ１４１０は、複数のノードのうちの１つの強調表示時に、複数のノードのうちの１つに対応する複数のセルのうちの１つに関連付けられたチャートの表現を決定し、図８（ｃ）及び図８（ｄ）に示されたように、表示用に複数のノードのうちの１つに対応する決定されたチャートを提示するように構成することができる。そのような例示的な実装形態を通じて、ユーザは、特定のセルのデータ出力を直ちに見つけ、その出力をチャート形式又はそうでない場合所望の実装形態に従うように構成することができ、それは計算ノートブックのインターフェースに対する改善であり、その中でユーザは、そのような出力を得るために、計算ノートブック内にセルを物理的に配置しなければならないはずである。
【００５２】
所望の実装形態に応じて、グラフは力指向グラフであり得るし、複数のノードは、対応するセルで使用される変数の類似性に従って、たとえば、図４〜図６に示されたように、複数のリンクの各々の長さが類似性を表すように配置される。
【００５３】
プロセッサ１４１０はまた、第２のインターフェース上に、計算ノートブックの１または複数の履歴実行スナップショットを提供するように構成されたタイムスライダを提供し、特定の時間期間に対するタイムスライダ上の相互作用について、図１２に示されたように、１または複数の履歴実行スナップショットのうちの対応する１つに従って、グラフ形式の計算ノートブックを表示するように構成することができる。そのようなユーザによって作成されたバージョン間の変更は、計算ノートブックのインターフェースを介して容易に識別することができないので、そのような実装形態は、多くのユーザによって編集される計算ノートブックにとって非常に重要であり得るし、ユーザは、計算ノートブックを前のバージョンに戻すことを望む場合がある。そのような実装形態を通じて、計算ノートブックのスナップショットは定期的に取得され、図１２に示されたようなグラフ形式で表され、ユーザは所望のバージョンに容易に戻すことができ、それは計算ノートブックのインターフェースを介しては利用できない機能である。
【００５４】
発明を実施するための形態のいくつかの部分は、コンピュータ内の動作のアルゴリズム及び象徴的表現の観点から提示される。これらのアルゴリズム的記述及び象徴的表現は、自分のイノベーションの本質を他の当業者に伝達するために、データ処理技術分野の当業者によって使用される手段である。アルゴリズムは、所望の最終状態又は最終結果に導く、一連の定義された工程である。例示的な実装形態では、実行される工程は、目に見える結果を達成するための具体的な数の物理操作を必要とする。
【００５５】
特に断りのない限り、説明から明らかなように、説明全体を通して、「処理」、「計算」、「算出」、「決定」、「表示」、などの用語を利用する説明は、コンピュータシステムのレジスタ及びメモリ内の物理（電気）量として表されるデータを操作し、コンピュータシステムのメモリ又はレジスタ又は他の情報を記憶、伝送、若しくは表示する装置内の物理量として同様に表される他のデータに変換する、コンピュータシステム又は他の情報処理装置の動作及び処理を含んでもよいことを諒解されたい。
【００５６】
例示的な実装形態は、本明細書の動作を実行するための装置に関する場合もある。この装置は、必要な目的のために特別に構築されてもよく、１または複数のコンピュータプログラムによって選択的にアクティブ化若しくは再構成された、１または複数の汎用コンピュータを含んでもよい。そのようなコンピュータプログラムは、コンピュータ可読記憶媒体又はコンピュータ可読信号媒体などのコンピュータ可読媒体に記憶されてもよい。コンピュータ可読記憶媒体には、限定はしないが、光ディスク、磁気ディスク、読取り専用メモリ、ランダムアクセスメモリ、半導体装置及び半導体ドライブ、又は、電子情報を記憶することに適した任意の他のタイプの有形若しくは非一時的媒体などの、有形媒体が含まれてもよい。コンピュータ可読信号媒体には、搬送波などの媒体が含まれてもよい。本明細書に提示されたアルゴリズム及びディスプレイは、本質的に、いかなる特定のコンピュータ又は他の装置にも関係しない。コンピュータプログラムは、所望の実装形態の動作を実行する命令を含む、純粋なソフトウェア実装形態を含んでもよい。
【００５７】
様々な汎用システムは、本明細書の例によるプログラム及びモジュールとともに使用されてもよく、又は所望の方法工程を実行するためにより専門化された装置を構築することが便利であると証明することができる。加えて、例示的な実装形態は、いかなる特定のプログラミング言語も参照して記載されない。様々なプログラミング言語は、本明細書に記載された例示的な実装形態の教示を実装するために使用されてもよいことを諒解されたい。プログラミング言語の命令は、１または複数の処理装置、たとえば、中央処理装置（ＣＰＵ）、プロセッサ、又はコントローラによって実行されてもよい。
【００５８】
当技術分野で知られているように、上述された動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの何らかの組合せによって実行されてもよい。例示的な実装形態の様々な態様は、回路及び論理装置（ハードウェア）を使用して実装されてもよいが、他の態様は、機械可読媒体に記憶された命令（ソフトウェア）を使用して実装されてもよく、命令は、プロセッサによって実行されると、方法を実行して本出願の実装形態を遂行することをプロセッサに行わせるはずである。さらに、本出願のいくつかの例示的な実装形態は、ハードウェア内でのみ実行されてもよいが、他の例示的な実装形態は、ソフトウェア内でのみ実行されてもよい。その上、記載された様々な機能は、単一のユニット内で実行することができ、任意の数の方法でいくつかの構成要素にわたって展開することができる。ソフトウェアによって実行されるとき、方法は、コンピュータ可読媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行されてもよい。必要な場合、命令は、圧縮及び／又は暗号化されたフォーマットで媒体に記憶することができる。
【００５９】
さらに、本出願の明細書の考察及び教示の実践から、本出願の他の実装形態が当業者には明らかであろう。記載された例示的な実装形態の様々な態様及び／又は構成要素は、単独で、又は任意の組合せで使用されてもよい。明細書及び例示的な実装形態は例としてのみ見なされるものであり、本出願の正確な範囲及び趣旨は、以下の特許請求の範囲によって示される。
【図１】
2020068020.tif 000003
【図２】
2020068020.tif 000004
【図３】
2020068020.tif 000005
【図４】
2020068020.tif 000006
【図５】
2020068020.tif 000007
【図６】
2020068020.tif 000008
【図７】
2020068020.tif 000009
【図８（ａ）】
2020068020.tif 000010
【図８（ｂ）】
2020068020.tif 000011
【図８（ｃ）】
2020068020.tif 000012
【図８（ｄ）】
2020068020.tif 000013
【図９】
2020068020.tif 000014
【図１０】
2020068020.tif 000015
【図１１】
2020068020.tif 000016
【図１２】
2020068020.tif 000017
【図１３】
2020068020.tif 000018
【図１４】
2020068020.tif 000019