JP2018190400A - ブロック基盤データ分析方法、システムおよびプログラム - Google Patents

ブロック基盤データ分析方法、システムおよびプログラム Download PDF

Info

Publication number
JP2018190400A
JP2018190400A JP2018078448A JP2018078448A JP2018190400A JP 2018190400 A JP2018190400 A JP 2018190400A JP 2018078448 A JP2018078448 A JP 2018078448A JP 2018078448 A JP2018078448 A JP 2018078448A JP 2018190400 A JP2018190400 A JP 2018190400A
Authority
JP
Japan
Prior art keywords
data analysis
block
user
blocks
code
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.)
Pending
Application number
JP2018078448A
Other languages
English (en)
Inventor
ドンミン カン
Dong Min Kang
ドンミン カン
ヨンイル チョ
Young Il Cho
ヨンイル チョ
チャンウ ヤン
Chanwoo Yang
チャンウ ヤン
ギョンウォン ソ
Kyeong Won Seo
ギョンウォン ソ
ソル キム
Sol Kim
ソル キム
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.)
NHN Corp
Original Assignee
NHN Entertainment 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 NHN Entertainment Corp filed Critical NHN Entertainment Corp
Publication of JP2018190400A publication Critical patent/JP2018190400A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】ブロック基盤データ分析方法およびシステムを提供する。
【解決手段】コンピュータによって実行されるデータ分析方法であって、プログラミング言語基盤の関数および命令語が属性に応じて分類された複数のグループを対象として、グループ別に互いに異なる形状にマッピングされたブロックを提供し、提供された前記ブロックに対するユーザ選択が入力されるためのユーザインタフェースを提供し、前記ユーザインタフェースで選択されたブロックたちを組み合わせたユーザ作成ブロックを基盤としてデータ分析フローを生成し、前記ユーザ作成ブロックを基盤としたデータ分析フローを言語変換エンジンによって前記プログラミング言語基盤のデータ分析コードに変換し、変換された前記データ分析コードに基づいてデータ分析を実行することを含む。
【選択図】図3

Description

以下の説明は、スカラ(scala)、パイソン(python)などのプログラミング言語を基盤としてデータを分析する技術に関する。
最近は、パソコンの他に、タブレット(tablet)やスマートフォン(smart phone)のような高性能の携帯用機器が登場することに伴い、デスクトップパソコンを利用したインターネット接続だけではなく、モバイルからインターネットに接続してモバイルショッピング、検索、メール確認などを楽しむ人口が急増している。このような携帯用機器の普及化とモバイルインターネット技術の発達により、インターネット上に存在する多くのデータがウェブロボット、ウェブクローラ、スパイダーなどによって収集されており、収集されたビッグデータを目的に応じて分析して利用している。
既存のデータ分析システムでは、スカラ(scala)、パイソン(python)などのプログラミング言語を利用して作成されたデータ分析コードを基盤にビッグデータを分析していた。言い換えれば、スカラ、パイソンなどのプログラミング言語を学習したユーザはデータ分析コードの作成が可能であるが、そのようなプログラミング言語を学習していないユーザは、データ分析コードの作成が難しく、他のユーザによって作成されたデータ分析フローを直観的に理解するのも難しいため、維持補修に困難をきたす。
これにより、パイソン、スカラなどのプログラミング言語を学習していないユーザでも、特定のデータファイルを自身が制御または修正するためにデータ分析フローを容易に作成できるようにサポートしてくれるデータ分析技術が求められている。
特許文献1は、ハドゥープ(Hadoop)(登録商標)基盤の大容量不均衡データ分類分析システムおよび方法に関し、交通ビックデータを統合して学習データモデルを生成し、生成された学習データモデルに基づいてデータ分析を実行する技術を開示している。
韓国公開特許第10−2013−0155808号
本発明の目的の一つは、パイソン、スカラなどのプログラミング言語を学習していないユーザでも、特定のデータファイルを自身が制御または修正するためにデータ分析フローを容易に作成できるようにサポートすることにある。
また、本発明の目的の他の一つは、他のユーザによって作成されたデータ分析フローを、使用されるプログラミング言語が分からなくても直観的に理解できるようにサポートすることにある。
本発明の一実施形態によれば、コンピュータによって実行されるデータ分析方法であって、プログラミング言語基盤の関数および命令語が属性に応じて分類された複数のグループを対象として、グループ別に互いに異なる形状にマッピングされたブロックを提供し、提供された前記ブロックに対するユーザ選択が入力されるためのユーザインタフェースを提供し、前記ユーザインタフェースで選択されたブロックを組み合わせたユーザ作成ブロックを基盤としてデータ分析フローを生成し、前記ユーザ作成ブロックを基盤としたデータ分析フローを言語変換エンジンによって前記プログラミング言語基盤のデータ分析コードに変換し、変換された前記データ分析コードに基づいてデータ分析を実行することを含むデータ分析方法が提供される。
また、本発明の一実施形態によれば、コンピュータによって実行されるデータ分析システムであって、プログラミング言語基盤の関数および命令語が属性に応じて分類された複数のグループを対象として、グループ別に互いに異なる形状にマッピングされたブロックを提供し、提供された前記ブロックに対するユーザ選択が入力されるためのユーザインタフェースを提供するブロック提供部と、前記ユーザインタフェースで選択されたブロックを組み合わせたユーザ作成ブロックを基盤としてデータ分析フローを生成するフロー生成部と、前記ユーザ作成ブロックを基盤としたデータ分析フローを言語変換エンジンによって前記プログラミング言語基盤のデータ分析コードに変換するコード変換部と、変換された前記データ分析コードに基づいてデータ分析を実行するデータ分析部と、を備えるデータ分析システムが提供される。
また、本発明の一実施形態によれば、プログラミング言語基盤の関数および命令語が属性に応じて分類された複数のグループを対象として、グループ別に互いに異なる形状にマッピングされたブロックを提供し、提供された前記ブロックに対するユーザ選択が入力されるためのユーザインタフェースを提供し、前記ユーザインタフェースで選択されたブロックを組み合わせたユーザ作成ブロックを基盤としてデータ分析フローを生成し、前記ユーザ作成ブロックを基盤としたデータ分析フローを言語変換エンジンによって前記プログラミング言語基盤のデータ分析コードに変換し、変換された前記データ分析コードに基づいてデータ分析を実行することを含むデータ分析方法を、コンピュータに実行させるためのプログラムが提供される。
データ分析フローを予め定義された多様な形状のブロックで表現することにより、スカラ(scala)、パイソン(python)、SQL(structured query language)などの言語を学習していないユーザでも、特定のデータファイルを自身が制御または修正するためにデータ分析フローを容易に作成できるようにサポートすることができる。
また、他のユーザによって作成されたデータ分析フローを、予め定義された様々な形状のブロックを組み立てた形態で提供することにより、使用されるプログラミング言語が分からなくても、データ分析フローが意味するものを直観的に理解できるようにサポートすることができる。例えば、社内セキュリティ分析などのように、ローカル(local)ネットワークで互いに異なるチーム間での協業のために共有されるデータファイルに対するデータ分析フローが、ブロックが組み立てられた形態で表現されることにより、そのデータファイルを容易に編集および制御することが可能となる。
本発明の一実施形態における、ネットワーク環境の例を示した図である。 本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。 本発明の一実施形態における、電子機器のプロセッサに含まれる構成要素の例を示したブロック図である。 本発明の一実施形態における、データ分析方法の例を示したフローチャートである。 本発明の一実施形態における、グループ別に予め指定されたブロックを示した図である。 本発明の一実施形態における、グループ別に予め指定されたブロックを示した図である。 本発明の一実施形態における、ブロックを組み合わせてデータ分析フローを生成する動作を説明するために提供された図である。 本発明の一実施形態における、ブロックを組み合わせてデータ分析フローを生成する動作を説明するために提供された図である。 本発明の一実施形態における、視覚化された様々な形状のブロックおよび各ブロックに指定された項目を示した例示図である。 本発明の一実施形態における、視覚化された様々な形状のブロックおよび各ブロックに指定された項目を示した例示図である。 本発明の一実施形態における、ブロック基盤のデータ分析フローをデータ分析コードに変換する動作を示した図である。 本発明の一実施形態における、ブロック基盤のデータ分析フローをデータ分析コードに変換する動作を示した図である。 本発明の一実施形態における、他のユーザとデータ分析フローを共有する動作を説明するためのフローチャートである。
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
本実施形態は、データ分析フローを予め定義されたブロックの組み合わせ(すなわち、組み立て)で表現するデータ分析方法およびシステムに関する。より詳細には、パイソン、スカラ、SQLなどの言語においてコーディング(coding)時に使用される関数および命令語を属性(すなわち、機能)に応じて複数のグループに分類し、グループ別にマッピングされたブロックを利用してデータ分析フローを表現し、ブロックの組み立てによって表現されたデータ分析フローをシステム自体で自動的にコーディング変換してデータ分析を実行する技術に関する。例えば、Linux(登録商標)、Unix(登録商標)基盤のプラットフォームで作成されたシェルスクリプト(shell script)などを、使用されるプログラミング言語を学習していないユーザでも編集が可能なようにGUIタイプに視覚化されたブロックを提供し、提供されたブロックのうちから選択されたブロックが組み立てられた形態でデータ分析フローを提供する技術に関する。
本実施形態において、「ブロック」とは、上下左右方向に組み立て可能な形態のパズルブロック(形状によって組み合わせ可能な位置が限定されるブロック)を示すものであって、画面上でユーザによって選択されたブロックが上下左右方向に順に組み立てられることで、データ分析フローの示す情報が直観的に表現される。
本実施形態において、プログラミング言語には、オブジェクト指向プログラミング言語と関数型プログラミングの要素が結合したマルチパラダイムプログラミング言語(例えば、スカラ、パイソン)はもちろん、DB化されたデータを管理するために利用されるSQLなどの対話式プログラミング言語が含まれる。
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末である。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(Personal Computer)、ノート型パソコン、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、電子機器1(110)は、無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信する。
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を活用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含む。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的(hierarchical)ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供するコンピュータ装置または複数のコンピュータ装置によって実現される。
図2は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。図2では、1つの電子機器に対する例として電子機器1(110)の内部構成を、1つのサーバに対する例としてサーバ150)の内部構成を説明する。他の電子機器120、130、140やサーバ160も、同一または類似の内部構成を有する。
電子機器1(110)とサーバ150は、メモリ211、221、プロセッサ212、222、通信モジュール213、223、および入力/出力インタフェース214、224を含む。メモリ211、221は、コンピュータで読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永久大容量記憶装置(permanent mass storage device)を含む。また、メモリ211、221には、オペレーティングシステムと、少なくとも1つのプログラムコード(一例として、電気機器1(110)にインストールされ駆動するブラウザやブロック基盤データ分析のためのアプリケーションなどのためのコード)が格納される。このようなソフトウェア構成要素は、ドライブメカニズム(drive mechanism)を利用してメモリ211、221とは別のコンピュータで読み取り可能な記録媒体からロードされる。このような別のコンピュータで読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD−ROMドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含む。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール213、223を通じてメモリ211、221にロードされてもよい。例えば、少なくとも1つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム(一例として、上述したサーバ160)がネットワーク170を介して提供するファイルによってインストールされるプログラム(一例として、上述したアプリケーション)に基づいてメモリ211、221にロードされる。
プロセッサ212、222は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成される。命令は、メモリ211、221または通信モジュール213、223によって、プロセッサ212、222に提供される。例えば、プロセッサ212、222は、メモリ211、221のような記録装置に格納されたプログラムコードにしたがって受信される命令を実行するように構成される。
通信モジュール213、223は、ネットワーク170を介して電子機器1(110)とサーバ150とが互いに通信するための機能を提供してもよいし、他の電子機器(一例として、電子機器2(120))または他のサーバ(一例として、サーバ160)と通信するための機能を提供してもよい。一例として、電子機器1(110)のプロセッサ212がメモリ211のような記録装置に格納されたプログラムコードにしたがって生成した要求(一例として、データ分析サービスのための要求)が、通信モジュール213の制御にしたがってネットワーク170を介してサーバ150に伝達される。これとは逆に、サーバ150のプロセッサ222の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール223とネットワーク170を経て電子機器1(110)の通信モジュール213を通じて電子機器1(110)に受信されてもよい。例えば、通信モジュール213を通じて受信したサーバ150の制御信号や命令などは、プロセッサ212やメモリ211に伝達されてよく、コンテンツやファイルなどは、電子機器1(110)がさらに含むことのできる格納媒体に格納される。
入力/出力インタフェース214、224は、入力/出力装置215とのインタフェースのための手段である。例えば、入力装置は、キーボードまたはマウスなどの装置を、出力装置は、アプリケーションの通信セッションを表示するためのディスプレイのような装置を含む。他の例として、入力/出力インタフェース214は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段である。より具体的な例として、電子機器1(110)のプロセッサ212は、メモリ211にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ150や電子機器2(120)が提供するデータを利用して構成されるサービス画面やコンテンツが、入力/出力インタフェース214を通じてディスプレイに表示される。
また、他の実施形態において、電子機器1(110)およびサーバ150は、図2の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器1(110)は、上述した入力/出力装置215のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器1(110)がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラ、物理的な各種ボタン、タッチパネルを利用したボタン、入力/出力ポート、振動のための振動器などのような多様な構成要素が電子機器1(110)にさらに含まれるように実現されてもよい。
本発明の実施形態に係るデータ分析システムは、アプリケーションが実行される装置に実現されてよい。言い換えれば、本発明の実施形態に係るブロック基盤のデータ分析方法は、アプリケーションのインストールおよび駆動が可能なすべての装置で実行することができ、この他にも、社内コンピュータサーバ、ビックデータやセキュリティデータ分析サービスを提供するサーバで実行されてもよい。
例えば、電子機器110の画面に表示されたブロックのうち、ユーザによって選択されたブロックを組み合わせたデータ分析フロー関連情報が、アプリケーションを通じて電子機器110からサーバ150に提供される。提供されたデータ分析フロー関連情報に基づいて言語変換エンジンによってデータ分析フローをデータ分析コードに変換してデータ分析を実行する。これにより、サーバ150は、アプリケーションを通じて電子機器110にデータ分析結果を提供するように応答することにより、データ分析結果が電子機器110の画面に表示されるように制御される。
以下では、説明の便宜のために、サーバ150から提供されたデータ分析サービスのプログラムコードまたはアプリケーションが格納された電子機器110で、対象となるプログラムコードやアプリケーションを実行することにより、ブロックを組み合わせてデータ分析フローを生成してデータ分析を実行する実施形態について説明する。
図3は、本発明の一実施形態における、電子機器のプロセッサに含まれる構成要素の例を示したブロック図であり、図4は、本発明の一実施形態における、データ分析方法の例を示したフローチャートである。
電子機器110は、データ分析システムを実現してよく、図3に示すように、電子機器110に含まれたプロセッサ212は、構成要素として、ブロック提供部310、フロー生成部320、コード変換部330、およびデータ分析部340を備える。このようなプロセッサ212およびプロセッサ212の構成要素は、図4のデータ分析方法が含む段階410〜450を実行するように電子機器110を制御する。このとき、プロセッサ212およびプロセッサ212の構成要素は、メモリ211が含むオペレーティングシステムのコードと少なくとも1つのプログラムのコードによる命令(instruction)を実行するように実現される。ここで、プロセッサ212の構成要素は、電子機器110に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ212によって実行される互いに異なる機能(different functions)として表現されてもよい。例えば、プロセッサ212が上述した制御命令にしたがってデータを分析する方法において、ユーザ作成ブロックを基盤としたデータ分析フローをプログラミング言語基盤のデータ分析コードに変換する動作の機能的表現としてコード変換部330が使用されてよい。
先ず、電子機器110は、サーバ150から提供された(例えば、ダウンロード)データ分析方法のためのプログラムのファイルが格納されたプログラムコードをメモリ212にロードする。例えば、電子機器110でデータ分析サービスのためのプログラム(またはアプリケーション)が実行されると、オペレーティングシステムの制御にしたがってプログラムのファイルからプログラムコードがメモリ211にロードされてる。これにより、データ分析システムである電子機器110の画面上に、データ分析フローの生成のために予め指定された様々なパズル片形状のブロックが提供される。
段階410で、データ分析サービスのためのプログラム(またはアプリケーション)が実行されると、ブロック提供部310は、プログラミング言語基盤の関数および命令語が属性(すなわち、関数および命令語の固有機能)に応じて事前に予め分類された複数のグループを対象として、グループ別に互いに異なる形状にマッピング(mapping)されたブロックを提供する。
一例として、プログラミング言語基盤の関数および命令語(演算子を含む)は、ローディング(loading)、変換(transform)、フィルタリング(filtering)、集約、および保存(save)のうちのいずれか1つのグループに分類される。ここで、ローディング(loading)とは、既に生成されたデータファイルのうち、対象のファイルが含んでいる情報(すなわち、内容)を編集または修正するために、そのファイルを電子機器110のメモリ211に読み込む機能が定義された関数および命令語が属するグループを示す。例えば、スカラ(scala)言語の場合、loadがソース(source)グループに分類されてよい。さらに、変換、フィルタリング、および集約とは、生成しようとするファイルまたはローディングされたファイルの情報を生成および修正するための機能が定義された関数、命令語が属するグループを示す。保存(save)とは、生成または修正された(すなわち、編集された)ファイルを保存するための機能が定義された関数や命令語が属する保存グループを示す。例えば、スカラ(scala)言語の場合、saveがシンク(sink)グループに分類される。それぞれのグループには、様々な形状で予め定義されたブロックがマッピング(mapping)される。例えば、グループの識別子情報およびグループ別に属する関数や命令語を示す指示子(indicator)がマッチングされてデータベースに格納および記録される。このとき、グループの識別子情報とそのグループにマッピングされたブロックを示す指示子もマッチングされて格納および記録される。
段階420で、ブロック提供部310は、提供されたブロックに対するユーザ選択が入力されるためのユーザインタフェースを提供する。
一例として、ブロック提供部310は、画面に予め指定された第1領域に、グループ別に事前に予め指定されたブロックが表示されるように制御する。この後、ブロック提供部310は、第1領域に表示されるブロックを対象に、ユーザインタフェースを通じてユーザによって選択されたブロックが、画面に予め指定された第2領域に表示されるように制御する。例えば、複数のグループのうち、ユーザによって選択された特定のグループを示す表示情報が選択されると、選択された特定のグループに対応するブロックが第1領域に表示される。この後、第1領域に表示されたブロックのうち、ユーザによって選択された少なくとも1つのブロックが、第2領域に移動(例えば、ドラッグ&ドロップ)されて表示される。
段階430で、フロー生成部320は、ユーザインタフェースで選択されたブロックを組み合わせたユーザ作成ブロックを基盤としてデータ分析フローを生成する。
例えば、画面上の第1領域から第2領域にドラッグ&ドロップ(drag&drop)されたブロックが上下左右方向に組み立てられてよい。組み立てられたブロックのうちの少なくとも1つのブロックを対象として、コピーや削除などのようにブロック編集のための機能が提供され、保存に対応する表示情報が選択されると、フロー生成部320は、ユーザ作成ブロックが完成したものとして決定し、完成したユーザ作成ブロックをデータ分析フローとして生成する。
段階440で、コード変換部330は、生成されたデータ分析フローを言語変換エンジンによってプログラミング言語基盤のデータ分析コードに変換する。
このとき、コード変換部330は、ユーザによって選択されたプログラミング言語の種類に基づいて、データ分析フローをデータ分析コードに変換する。例えば、スカラ言語が選択された場合、ブロックが組み立てられた形態で表現されたデータ分析フローを、各ブロックに対応する関数、命令語、および演算子を呼び出してスカラ言語基盤のコードに変換する。他の例として、パイソン言語が選択された場合、ブロックが組み立てられた形態で表現されたデータ分析フローを、各ブロックに対応する関数、命令語、および演算子を呼び出してパイソン言語基盤のコードに変換する。この他にも、様々なプログラミング言語基盤のコードへの変換が可能である。選択された言語へのコード変換のためのアプリケーションまたはプログラムコード実行時に適用しようとするプログラミング言語は、例えば、初期画面のうちファイルを生成または読み込む画面上で、ユーザによって選択される。
段階450で、データ分析部340は、変換されたデータ分析コードに基づいてデータ分析を実行する。これにより、データ分析部340は、画面を通じて分析結果をユーザに提供し、分析結果を対象のファイルと関連付けて格納および記録する。例えば、データ分析は、例えば、データ分析コードにしたがってデータをロード、処理することに対応する。分析結果はこの処理によって得られた結果に対応する。
図5(図5a、図5b)は、本発明の一実施形態における、グループ別に予め指定されたブロックを示した図である。
図5を参照すると、図5aに示す画面510のようにグループ別に予め指定されたブロックは、ブロック別に区分されて表示されてもよいし、図5bに示す画面520のように1つの画面上にすべてのブロックが表示されてもよい。510および520を参照すると、ブロックが表示される領域の上側には、生成しようとするファイル名を入力したりロードされたファイル名を示したりする情報入力ウィンドウ515が表示される。
510を参照すると、変換グループに対応する表示情報511が選択されると、変換グループに属する関数、命令語、および演算子に対応するブロックが表示される。このとき、選択されたグループは、選択されなかった残りのグループと区分されるように他の色で表示される。集約グループに対応する表示情報513が選択されると、集約グループに属する関数、命令語、および演算などに対応するブロックが表示される。フィルタリンググループに対応する表示情報512が選択されると、フィルタリンググループに族する関数、命令語、および演算子などに対応するブロックが表示される。
例えば、「if then」に対応する「もし そうであれば」の文字列(string)を含むブロック、「if then else」に対応する「もし そうであれば そうでなければ」の文字列(string)を含むブロック、「grep」に対応する「一致する」の文字列(string)を含むブロック514などが画面510に表示される。すなわち、各ブロックに対応する関数および命令語と関連する属性(すなわち、機能)を示す文字列(string)(例えば、「もし そうであれば」など)が、対応するブロック内に挿入されて表示される。ここで、各ブロックは、ブロックに対応する関数および命令語の属性に応じてテキスト、数字などの情報を入力して予め指定された項目を選択するための少なくとも1つの情報入力ウィンドウを含む。例えば、ローディングされたファイルに含まれる情報を対象に、特定の文字列や特定のラインに対応する情報だけをフィルタリングしようとする場合、その文字列やラインが入力されるための情報入力ウィンドウがgrepに対応するブロック514内に挿入される形態で表示される。
グループを示す表示情報が表示される領域516には、変換、フィルタリング、集約の他に、ローディングおよび保存を示す表示情報がさらに含まれてもよい。ローディングに対応する表示情報が選択されると、ファイル、命令実行結果、権限などがローディングされてよい。保存が選択されると、ブロックが組み合わされたユーザ作成ブロックが示すデータ分析フローが保存される。
図6(図6a、図6b)は、本発明の一実施形態における、ブロックを組み合わせてデータ分析フローを生成する動作を説明するために提供された図である。
図6aを参照すると、画面の第1領域610に表示されるブロックのうち、ユーザが制御しようとする機能を示している文字列を含むブロックが選択され、選択されたブロックが第2領域620にドラック&ドロップされる。
例えば、特定のファイルで結果値が特定の条件を満たすという結果を得たい場合(ログインアカウントなどのセキュリティ分析時に、入力されたデータ権限の適合の有無を確認しようとする場合)、ブロックが表示される第1領域610で「権限・・・を取り込むことができれば」の文字列を含むブロック612が第2領域にドラッグ&ドロップされたとする。この後、「もし そうであれば そうでなければ」の文字列を含むブロック611が第2領域にドラッグ&ドロップされる。このとき、第2領域に既に表示されたブロック621(第1領域におけるブロック612に対応)の周辺領域にブロック622(第1領域におけるブロック611に対応)がドロップされることにより、フロー生成部320は、ブロック621とブロック622が組み立てられるように制御する。第1領域には、ファイルローディングと関連するブロック612の情報入力ウィンドウにデフォルト(default)で設定された「権限」が表示されているが、ファイル内容を呼び出そうとする場合には情報入力ウィンドウの項目が「ファイル内容」に変更選択される。例えば、「権限」が表示された情報入力ウィンドウが選択されると、設定可能な項目がリスト形態613で表示される。予め指定された設定可能項目のうち、選択されたいずれか1つの項目(例えば、「ファイル内容」)が、そのブロックの情報入力ウィンドウに表示される。このとき、項目の変更は、第1領域で実行されてもよいし、対応するブロックが第2領域に移動した後に第2領域で実行されてもよい。この後、特定の条件を満たしているか、フィルタリングなどのために特定の文字列や数字などを入力しようとする場合、入力しようとする文字列入力のためのブロック614が、属性が異なるブロック内に情報入力ウィンドウとして挿入される。例えば、grep機能(すなわち、属性)に対応するブロック内にブロック614が挿入される。
第1領域に配置されたブロックのうち、ユーザによって選択されて第2領域に移動したブロックを対象にブロックの組み合わせが完了すると、図6bに示す630のように、ユーザ作成ブロックを基盤として組み合わされたブロック間の連結関係が直観的に示されたデータ分析フローが生成される。これにより、ローディングされたファイルが作成されたデータ分析コードに対応するプログラミング言語をユーザが分からなくても、そのファイルで確認しようとする情報に対する結果を要請するデータ分析フローを生成することができるようになる。
図7(図7a、図7b)は、本発明の一実施形態における、視覚化された様々な形状のブロックおよび各ブロックに指定された項目を示した例示図である。
図7では、プログラミング言語の関数および命令語などがマッピングされたブロックのGUIを示しており、単位関数が属するグループ別にマッピングされたブロックを示している。
例えば、単位関数が実行する固有の機能(すなわち、属性)に応じて単位関数それぞれが、ソースグループ、変換グループ、フィルタリンググループ、集約グループ、シンクグループなどに分類され、各グループ別にブロックがマッピングされる。このとき、ブロックは、ブロックに対応する関数および命令語の属性に応じて予め指定された項目のうち、特定の項目を選択したり、条件を入力したりするための情報入力ウィンドウを含み、対応するブロックが実行する機能を示す文字列を含む。
例えば、単位関数は、load(710)、grep(720)、if(730)、cut(740)、wc(750)、bc(760)、save(770)などを含み、下記の表1では、単位関数およびそれぞれの関数が属するグループを示している。
Figure 2018190400
図7を参照すると、ソースグループに属する関数loadには、読み込みという属性と関連する複数の項目が予め指定される。例えば、権限、ファイル内容、命令語実行結果、ファイルのユーザ、ファイルのグループなどが単位関数load(710)に対応するブロック712の識別子情報とマッチングされて予め指定される。ここで、「権限」がloadに対応するブロック712のデフォルト(default)として予め指定され、第1領域に配置されたブロックの情報入力ウィンドウ711に表示される。また、この項目を変更するために情報入力ウィンドウが選択されると、権限を含んだ残りの項目(ファイル内容、命令語実行結果、ファイルのユーザ、ファイルのグループなど)がリスト形態で提供される。これにより、このリストから選択された項目がブロック712内に挿入された情報入力ウィンドウ711に表示される。このとき、ファイル名、ファイルのユーザなどを入力するためのブロックが情報入力ウィンドウとしてブロック712内に挿入され、loadの固有機能(すなわち、属性)に対応する文字列である「データを取り込むことができれば」が、このブロック712内に表示される。
フィルタリンググループには、grep、if、cutなどの単位関数が属する。grepには、ファイルから特定の文字列を見つけ出す属性と関連する複数の項目が予め指定される。例えば、一致する、一致しないなどの項目がgrep(720)に対応するブロック722の識別子情報とマッチングされて予め指定される。このとき、項目の選択のための情報入力ウィンドウ721および一致する、一致しないなどの判定の対象となる特定の文字列が入力されるための情報入力ウィンドウがブロック722内に挿入された形態で表示される。
集約グループには、wc、bcなどの単位関数が属する。bc(760)の場合、関数bcが実行する固有機能と関連する演算子(例えば、SUM、MIN、MAX、AVG)が項目に予め指定される。
保存グループには単位関数saveが属し、save(770)に対応するブロックは、ソースグループに基づいて読み取られたデータファイルを対象に、変換、フィルタリング、集約グループによって実行された演算の結果を保存および表示するために利用される。
このように、ユーザ作成ブロックは、変換、フィルタリング、集約のうちのいずれか1つのグループとソースグループ、シンクグループとが組み合わされた1つのセットが完成することにより、完成したユーザ作成ブロックがデータ分析フローとして生成されるようになる。
図8(図8a、図8b)は、本発明の一実施形態における、ブロック基盤のデータ分析フローをデータ分析コードに変換する動作を示した図である。
図8を参照すると、ブロックが組み合わされてユーザ作成ブロック810が完成すると、ユーザ作成ブロック基盤のデータ分析フローは、言語変換エンジン820により、データ分析を実行しようとするプログラミング言語として解釈が可能なデータ分析コード830に変換される。例えば、各ブロックは、対応するブロックが示す関数、命令語の属性に応じて互いに異なる形状および色が指定される。これにより、コード変換部330は、言語変換エンジン820により、様々なブロックが組み合わされたユーザ作成ブロックのうち、ソースグループおよびシンクグループに該当するブロックを基準として水平方向および垂直方向に連結するブロックが示す関数および命令語を決定し、ブロック別に指定された項目および条件を抽出し、データ分析コード830を生成する。この後、データ分析コード830を基盤として実行された分析結果が再び画面に表示され、対応するファイルおよびデータ分析フローと共にマッチングされて格納される。これにより、データ分析フローは、他のユーザと共有されるようになる。
図9は、本発明の一実施形態における、他のユーザとデータ分析フローを共有する動作を説明するためのフローチャートである。
図9を参照すると、段階910で、データ分析部340は、ユーザ作成ブロックを基盤としたデータ分析フローを、対応するデータファイルと関連付けて格納および記録する。例えば、ロードされたデータファイル名および作成されたブロックファイル名がマッチングされて格納される。
段階920で、生成されたデータ分析フローは、ネットワークを介して他のユーザと共有される。
段階921で、ブロックファイル名を検索し、データ分析フローを画面にローディングする。例えば、他のユーザの電子機器の画面にロードされたデータ分析フローは、ブロックが組み合わされたユーザ作成ブロック810の形態で表示される。
これにより、段階922で、対象となるデータ分析フローのデータ分析のために利用されるプログラミング言語を他のユーザが分からなくても、ロードされたデータ分析フローにブロックを追加したり、削除したり、条件などを変更したりしてデータ分析フローを修正することができる。
一例として、ユーザ作成ブロック810に対応するデータ分析フローに条件が追加された場合(例えば、ファイル内容で一致する文字列が追加された場合)、第1領域からgrep関連ブロックを第2領域における対応する部分に追加したり、第2領域のgrep関連ブロックをコピーして対応する部分に追加したりし、追加されたブロック内に文字列を入力することにより、追加された条件を反映してデータ分析を実行するためのユーザ作成ブロックを生成する。
他の例として、結果値関連条件を修正しようとする場合、ロードされたユーザ作成ブロック810に対応するデータ分析フローで結果値関連情報入力ウィンドウに修正したい条件値を入力することにより、対応するデータ分析フローが修正される。これにより、対応するファイルと関連付けられて格納されたデータ分析フローは、修正されたデータ分析フローにアップデートされる。
段階923で、修正されたデータ分析フローは、言語変換エンジンによってデータ分析コードに変換され、変換されたデータ分析コードを基盤としてデータ分析された結果が画面に表示される。
このように、ブロックを組み合わせて作成されたデータ分析フローが、対応するファイルと関連付けられて格納および共有されることにより、そのファイルが実行する作業を協業するチームの構成員がプログラミング言語を学習していないユーザであったとしても、データ分析フローを容易に修正することができるようになる。
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現される。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現される。処理装置は、オペレーティングシステム(OS)および前記OS上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよい。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでもよい。また、並列プロセッサのような、他の処理構成も可能である。
ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータで読み取り可能な記録媒体に格納されてもよい。
実施形態に係る方法は、様々なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な媒体に記録される。コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含む。この媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD−ROM、DVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
212:プロセッサ
310:ブロック提供部
320:フロー生成部
330:コード変換部
340:データ分析部

Claims (16)

  1. コンピュータによって実行されるデータ分析方法であって、
    プログラミング言語基盤の関数および命令語が属性に応じて分類された複数のグループを対象として、グループ別に互いに異なる形状にマッピングされたブロックを提供し、
    提供された前記ブロックに対するユーザ選択が入力されるためのユーザインタフェースを提供し、
    前記ユーザインタフェースで選択されたブロックを組み合わせたユーザ作成ブロックを基盤としてデータ分析フローを生成し、
    前記ユーザ作成ブロックを基盤としたデータ分析フローを言語変換エンジンによって前記プログラミング言語基盤のデータ分析コードに変換し、
    変換された前記データ分析コードに基づいてデータ分析を実行すること
    を含む、データ分析方法。
  2. 前記ブロックは、ソース(source)、変換(transform)、フィルタリング(filtering)、集約、およびシンク(sink)うちのいずれか1つのグループにマッピングされること
    を特徴とする、請求項1に記載のデータ分析方法。
  3. 前記グループ別に互いに異なる形状にマッピングされたブロックを提供することは、
    前記ブロックが示す属性情報を、当該ブロックに対応させて表示して提供すること
    を特徴とする、請求項1に記載のデータ分析方法。
  4. 前記ブロックに対するユーザ選択が入力されるためのユーザインタフェースを提供することは、
    前記ブロックに対応する関数および命令語の属性に応じて予め指定された項目のうち、特定の項目を選択するための情報入力ウィンドウを前記ブロック内に挿入して提供し、
    前記情報入力ウィンドウで選択された項目を示す指示子(indicator)を当該項目が選択されたブロックと関連付けて格納すること
    を含む、請求項1に記載のデータ分析方法。
  5. 前記プログラミング言語基盤のデータ分析コードに変換することは、
    前記ユーザ作成ブロックを基盤としたデータ分析フローを、マルチパラダイムプログラミング言語のうち、ユーザによって選択された言語に対応するデータ分析コードに変換すること
    を特徴とする、請求項1に記載のデータ分析方法。
  6. 前記ユーザ作成ブロックは、画面の第1領域に表示される前記ブロックのうち、前記ユーザインタフェースに対応する第2領域にドラッグ(drag)&ドロップされたブロックを組み合わせたブロックを含むこと
    を特徴とする、請求項1に記載のデータ分析方法。
  7. ユーザ作成ブロックを基盤とする前記データ分析フローは、対応するデータファイルと関連付けて格納されることにより、前記データファイルをローディングする他のユーザと共有されること
    を特徴とする、請求項1に記載のデータ分析方法。
  8. コンピュータによって実行されるデータ分析システムであって、
    プログラミング言語基盤の関数および命令語が属性に応じて分類された複数のグループを対象として、グループ別に互いに異なる形状にマッピングされたブロックを提供し、提供された前記ブロックに対するユーザ選択が入力されるためのユーザインタフェースを提供するブロック提供部と、
    前記ユーザインタフェースで選択されたブロックを組み合わせたユーザ作成ブロックを基盤としてデータ分析フローを生成するフロー生成部と、
    前記ユーザ作成ブロックを基盤としたデータ分析フローを言語変換エンジンによって前記プログラミング言語基盤のデータ分析コードに変換するコード変換部と、
    変換された前記データ分析コードに基づいてデータ分析を実行するデータ分析部と、
    を備える、データ分析システム。
  9. 前記ブロックは、ソース(source)、変換(transform)、フィルタリング(filtering)、集約、およびシンク(sink)うちのいずれか1つのグループにマッピングされること
    を特徴とする、請求項8に記載のデータ分析システム。
  10. 前記ブロック提供部は、
    前記ブロックが示す属性情報を、当該ブロックに対応させて表示して提供すること
    を特徴とする、請求項8に記載のデータ分析システム。
  11. 前記ブロック提供部は、
    前記ブロックに対応する関数および命令語の属性に応じて予め指定された項目のうち、特定の項目を選択するための情報入力ウィンドウを前記ブロック内に挿入して提供し、前記情報入力ウィンドウに選択された項目を示す指示子(indicator)を当該項目が選択されたブロックと関連付けて格納すること
    を特徴とする、請求項8に記載のデータ分析システム。
  12. 前記コード変換部は、
    前記ユーザ作成ブロックを基盤としたデータ分析フローを、マルチパラダイムプログラミング言語のうち、ユーザによって選択された言語に対応するデータ分析コードに変換すること
    を特徴とする、請求項8に記載のデータ分析システム。
  13. 前記ユーザ作成ブロックは、画面の第1領域に表示される前記ブロックのうちで前記ユーザインタフェースに対応する第2領域にドラッグ(drag)&ドロップされたブロックを組み合わせたブロックを含むこと
    を特徴とする、請求項8に記載のデータ分析システム。
  14. ユーザ作成ブロックを基盤とする前記データ分析フローは、対応するデータファイルと関連付けて格納されることにより、前記データファイルをローディングする他のユーザと共有されること
    を特徴とする、請求項8に記載のデータ分析システム。
  15. プログラミング言語基盤の関数および命令語が属性に応じて分類された複数のグループを対象として、グループ別に互いに異なる形状にマッピングされたブロックを提供し、
    提供された前記ブロックに対するユーザ選択が入力されるためのユーザインタフェースを提供し、
    前記ユーザインタフェースで選択されたブロックを組み合わせたユーザ作成ブロックを基盤としてデータ分析フローを生成し、
    前記ユーザ作成ブロックを基盤としたデータ分析フローを言語変換エンジンによって前記プログラミング言語基盤のデータ分析コードに変換し、
    変換された前記データ分析コードに基づいてデータ分析を実行すること
    を含むデータ分析方法を、コンピュータに実行させるためのプログラム。
  16. 前記ブロックは、ソース(source)、変換(transform)、フィルタリング(filtering)、集約、およびシンク(sink)のうちのいずれか1つのグループにマッピングされること
    を特徴とする、請求項15に記載のプログラム。
JP2018078448A 2017-04-28 2018-04-16 ブロック基盤データ分析方法、システムおよびプログラム Pending JP2018190400A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170055403A KR102327913B1 (ko) 2017-04-28 2017-04-28 블록 기반 데이터 분석 방법 및 시스템
KR10-2017-0055403 2017-04-28

Publications (1)

Publication Number Publication Date
JP2018190400A true JP2018190400A (ja) 2018-11-29

Family

ID=63916324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018078448A Pending JP2018190400A (ja) 2017-04-28 2018-04-16 ブロック基盤データ分析方法、システムおよびプログラム

Country Status (3)

Country Link
US (1) US10296304B2 (ja)
JP (1) JP2018190400A (ja)
KR (1) KR102327913B1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020161094A (ja) * 2019-03-26 2020-10-01 萌希 関野 ブロック型プログラミングシステムにおける新たな言語変換方法
JP2021009185A (ja) * 2019-06-28 2021-01-28 三菱電機エンジニアリング株式会社 プログラミング学習装置および学習プログラム
WO2021153620A1 (ja) * 2020-01-29 2021-08-05 株式会社Preferred Networks プログラミング学習支援方法、プログラミング学習支援装置及びプログラム
WO2022124018A1 (ja) * 2020-12-11 2022-06-16 株式会社Preferred Networks プログラミング学習ソフトウェア、プログラミング学習装置及びプログラミング学習方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200136679A (ko) 2019-05-28 2020-12-08 삼성에스디에스 주식회사 이종 언어 함수를 포함하는 워크플로우 실행 방법 및 그 장치
CN110737409B (zh) * 2019-10-21 2023-09-26 网易(杭州)网络有限公司 数据加载方法、装置和终端设备
CN112241416A (zh) * 2020-10-16 2021-01-19 四川长虹电器股份有限公司 一种利用python语法语义构建复杂sql语句的系统及方法
WO2023191136A1 (ko) * 2022-03-30 2023-10-05 주식회사 씨에스리 빅데이터 분석 시각화 장치 및 방법
US20230418566A1 (en) * 2022-06-22 2023-12-28 Amazon Technologies, Inc. Programmatically generating evaluation data sets for code generation models

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0683601A (ja) * 1992-09-02 1994-03-25 Fuji Facom Corp プログラム開発支援装置
JPH11353164A (ja) * 1998-06-09 1999-12-24 Toshiba Corp ソースプログラム生成システムおよびソースプログラム生成方法ならびにチャート生成システムおよびチャート生成方法
JP2004355066A (ja) * 2003-05-27 2004-12-16 Just Syst Corp 情報分析支援システム、情報分析支援方法およびその方法をコンピュータに実行させるプログラム
JP2010244110A (ja) * 2009-04-01 2010-10-28 Alpine Electronics Inc ソフトウエア設計支援装置及びコンピュータプログラム
JP2014186508A (ja) * 2013-03-22 2014-10-02 Canon Inc プログラミング装置、プログラミング支援方法及びプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2755154B2 (ja) * 1994-02-23 1998-05-20 日本電気株式会社 プログラム変換処理装置およびプログラム変換処理方法
KR100692172B1 (ko) * 2005-03-30 2007-03-12 아이티플러스 주식회사 종합 문자열 분석기 및 그 분석 방법
US20080159633A1 (en) * 2007-01-03 2008-07-03 Blue Reference, Inc. Method and Apparatus for Managing Data-Analysis Parts in a Word Processor Application
EP2329389A4 (en) * 2008-08-13 2013-02-27 ENHANCING THE PERFORMANCE OF A SOFTWARE APPLICATION
US8671397B2 (en) * 2011-09-27 2014-03-11 International Business Machines Corporation Selective data flow analysis of bounded regions of computer software applications
US20130227529A1 (en) * 2013-03-15 2013-08-29 Concurix Corporation Runtime Memory Settings Derived from Trace Data
US9710264B2 (en) * 2013-10-28 2017-07-18 International Business Machines Corporation Screen oriented data flow analysis
KR101563406B1 (ko) 2013-12-13 2015-10-26 건국대학교 산학협력단 하둡 기반의 대용량 불균형 데이터 분류분석 시스템 및 방법
WO2015139048A1 (en) * 2014-03-14 2015-09-17 Concurrent, Inc. Cluster (sub) graph isomorphism logical data flow mapping rules
US10025571B1 (en) * 2014-07-17 2018-07-17 Google Llc Optimized execution of dynamic languages
US9335911B1 (en) * 2014-12-29 2016-05-10 Palantir Technologies Inc. Interactive user interface for dynamic data analysis exploration and query processing
JP2016218924A (ja) * 2015-05-25 2016-12-22 富士通株式会社 情報処理装置、電子機器、情報処理プログラム及び処理プログラム
US10310826B2 (en) * 2015-11-19 2019-06-04 Intel Corporation Technologies for automatic reordering of sparse matrices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0683601A (ja) * 1992-09-02 1994-03-25 Fuji Facom Corp プログラム開発支援装置
JPH11353164A (ja) * 1998-06-09 1999-12-24 Toshiba Corp ソースプログラム生成システムおよびソースプログラム生成方法ならびにチャート生成システムおよびチャート生成方法
JP2004355066A (ja) * 2003-05-27 2004-12-16 Just Syst Corp 情報分析支援システム、情報分析支援方法およびその方法をコンピュータに実行させるプログラム
JP2010244110A (ja) * 2009-04-01 2010-10-28 Alpine Electronics Inc ソフトウエア設計支援装置及びコンピュータプログラム
JP2014186508A (ja) * 2013-03-22 2014-10-02 Canon Inc プログラミング装置、プログラミング支援方法及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BRIGGS, KEVIN: "Scratch Tutrial 3: Quiz Game", YOUTUBE[ONLINE][VIDEO], JPN6019023305, 26 December 2013 (2013-12-26), pages 5 - 29, ISSN: 0004061351 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020161094A (ja) * 2019-03-26 2020-10-01 萌希 関野 ブロック型プログラミングシステムにおける新たな言語変換方法
JP2021009185A (ja) * 2019-06-28 2021-01-28 三菱電機エンジニアリング株式会社 プログラミング学習装置および学習プログラム
JP7296798B2 (ja) 2019-06-28 2023-06-23 三菱電機エンジニアリング株式会社 プログラミング学習装置および学習プログラム
WO2021153620A1 (ja) * 2020-01-29 2021-08-05 株式会社Preferred Networks プログラミング学習支援方法、プログラミング学習支援装置及びプログラム
WO2022124018A1 (ja) * 2020-12-11 2022-06-16 株式会社Preferred Networks プログラミング学習ソフトウェア、プログラミング学習装置及びプログラミング学習方法

Also Published As

Publication number Publication date
KR20180121732A (ko) 2018-11-08
US10296304B2 (en) 2019-05-21
US20180314499A1 (en) 2018-11-01
KR102327913B1 (ko) 2021-11-19

Similar Documents

Publication Publication Date Title
JP2018190400A (ja) ブロック基盤データ分析方法、システムおよびプログラム
US10091628B2 (en) Message based application state and card sharing methods for user devices
US10503482B2 (en) Object mapping using intrinsic persistence metadata and pattern-based rules for mapping transformation
CN107820701B (zh) 开发者交换系统
US10063996B2 (en) Methods and systems for providing geospatially-aware user-customizable virtual environments
US20130283141A1 (en) Client Agnostic Spatial Workflow Form Definition and Rendering
US20170115968A1 (en) Application builder with automated data objects creation
US9098314B2 (en) Systems and methods for web based application modeling and generation
JP2021501382A (ja) 自動コード生成
US20160092173A1 (en) Seamless restful api generation and consumption through a single channel
US11797273B2 (en) System and method for enhancing component based development models with auto-wiring
US9934007B2 (en) Method for operating tool in working environment and machine using such method
US20170017374A1 (en) Pre-defined navigation locations in a navigation system
US11442704B2 (en) Computerized system and method for a distributed low-code / no-code computing environment
US10261808B2 (en) Access operation with dynamic linking and access of data within plural data sources
US20160092059A1 (en) Web-based user interface dataflow editor
CN105074652B (zh) 用于向打印机远程提供应用功能的方法和计算机系统
US10853352B1 (en) Structured data collection, presentation, validation and workflow management
US11132374B2 (en) Property painter
US10506025B2 (en) Modifying document metadata with integrated cloud services
CN106796512B (zh) 投影工作空间的方法以及应用该投影工作空间的方法的系统
Dinca et al. Modern web application for image annotation using web technologies
CA2774894A1 (en) Client agnostic spatial workflow form definition and rendering
US20230267163A1 (en) Runtime completion of web component metadata
US20220180452A1 (en) Automated Web Content Publishing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180416

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190625

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190920

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200218