Information providing apparatus, information providing method, and information providing program

The information providing apparatus enables multiple users to collaboratively edit a no-code data analysis tool by synchronizing operations across terminals, addressing the limitation of conventional tools that do not support joint usage.

JP2025100174AActive Publication Date: 2025-07-03NTT DOCOMO BUSINESS INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2023217353
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-12-22
Publication Date
2025-07-03
Estimated Expiration
2043-12-22

AI Technical Summary

Technical Problem

Conventional no-code data analysis tools do not support joint usage by multiple users.

Method used

An information providing apparatus with a reception unit to receive operations from multiple terminals and a display control unit to synchronize the editing of a data analysis tool across terminals, enabling collaborative editing.

Benefits of technology

Allows multiple users to jointly use a no-code data analysis tool, facilitating real-time synchronization and avoiding conflicting edits, thereby enhancing collaborative data analysis.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025100174000001_ABST
    Figure 2025100174000001_ABST
Patent Text Reader

Abstract

To allow a no-code data analysis tool to be used in common by a plurality of users.SOLUTION: An information providing apparatus 10 includes a reception unit 131 and a display control unit 134. The reception unit 131 receives, from a plurality of terminals, an operation to arrange an object corresponding to a function regarding data analysis and an operation to connect objects with a line representing a process between functions and a flow of data. The display control unit 134 causes each of the terminals to display a screen on which the objects and lines are arranged in accordance with the operations received by the reception unit 131.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information providing apparatus, an information providing method, and an information providing program.

Background Art

[0002] In recent years, so-called no-code data analysis tools have sometimes been provided (see, for example, Patent Document 1 or Non-Patent Document 1). No-code data analysis tools are characterized by not requiring programming skills and being intuitively usable even by beginners.

[0003] Also, no-code tools that enable collaborative editing by multiple users are known (see, for example, Non-Patent Document 2).

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Non-Patent Documents

[0005]

Non-Patent Document 1

Non-Patent Document 2

Summary of the Invention

Problems to be Solved by the Invention

[0006] However, in the conventional technology, multiple users cannot jointly use a no-code data analysis tool.

[0007] In order to solve the above-described problems and achieve the object, an information providing apparatus according to the present invention includes a reception unit that receives operations on a data analysis tool from a plurality of terminals, and a display control unit that causes the screens of the data analysis tool edited according to the operations received by the reception unit to be displayed on each of the plurality of terminals.

Advantages of the Invention

[0008] According to the present invention, a plurality of users can jointly use a no-code data analysis tool.

Brief Description of the Drawings

[0009]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Modes for Carrying Out the Invention

[0010] Hereinafter, embodiments of the information providing apparatus, information providing method, and information providing program disclosed in the present application will be described in detail with reference to the drawings. Note that the present invention is not limited to these embodiments.

[0011] FIG. 1 is a diagram showing an example of a system according to the first embodiment. As shown in FIG. 1, the system 1 in FIG. 1 includes an information providing apparatus 10, and terminals 20a, 20b, and 20c. The information providing apparatus 10 and each terminal are interconnected via a network N. The system 1 may have other terminals.

[0012] The terminals 20a, 20b, and 20c are a PC (Personal Computer), a notebook PC, a tablet terminal, a smartphone, etc. Further, the terminals 20a, 20b, and 20c are respectively used by users Ua, Ub, and Uc. In the first embodiment, the users are assumed to include analysts, experts, and decision-makers, but are not limited thereto. Also, the proficiency in data analysis may vary for each user.

[0013] In the following description, when the terminals 20a, 20b, and 20c are not distinguished, they are referred to as "terminal 20". Also, when the users Ua, Ub, and Uc are not distinguished, they are referred to as "user".

[0014] The information providing apparatus 10 has the functions of data analysis tools such as Node-AI described in Non-Patent Document 1. The user Ua operates the terminal 20a to execute the data analysis tool of the information providing apparatus 10 and generate canvas data.

[0015] In Node-AI, Flow-based programming is adopted, which enables the design of a processing pipeline for data in a codingless (no-code) manner. In Node-AI, by connecting the data to be processed and the functions that can execute each process, the processing pipeline for the data can be intuitively described.

[0016] Using FIG. 2, the configuration of the information providing apparatus 10 will be described. FIG. 2 is a functional block diagram showing the configuration of the information providing apparatus. As shown in FIG. 2, the information providing apparatus 10 includes a communication unit 11, a storage unit 12, and a control unit 13.

[0017] The communication unit 11 is implemented by a NIC (Network Interface Card) or the like, and controls communication between the control unit 13 and an external terminal 20 via a telecommunication line (network N) such as a LAN (Local Area Network) and the Internet. The communication unit 11 may communicate with other external devices.

[0018] The storage unit 12 includes a user table 121 and canvas data 122. The storage unit 12 is implemented by a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk.

[0019] The user table 121 is a table that holds various types of data related to users. FIG. 3 is a diagram showing an example of the data structure of the user table. As shown in FIG. 3, the user table 121 stores the user ID, the user's name, the user's class, and the icon in association with each other.

[0020] The user ID is information that uniquely identifies a user. The name is the user's name (e.g., surname or nickname). The class is information indicating the proficiency level of the user in data analysis. The icon is information that specifies an icon image prepared for each user, such as the file path of the image.

[0021] For example, in FIG. 3, it is shown that the name of the user with the user ID "u011" is "James" and the class is "senior". Note that "senior" has a higher proficiency level in data analysis than "junior".

[0022] The canvas data 122 is data generated by a data analysis tool. Using FIG. 4, the canvas data will be described. FIG. 4 is a diagram showing an example of the canvas data.

[0023] The canvas data 122 is data representing a pipeline. The pipeline is information describing the flow of processing for data in data analysis. Here, the data analysis may use, for example, statistical methods. Also, the data analysis includes the learning process of a machine learning model and the inference process by the machine learning model.

[0024] As shown in FIG. 4, the canvas data 122 is represented by cards connected by lines. The canvas data 122 can be said to be a graph with cards as nodes and lines as edges.

[0025] A card is an example of an object corresponding to a function related to data analysis. Also, the lines between the cards represent the flow of processing or data between the functions and connect the cards to each other.

[0026] For each card, a function program and function parameters for executing data processing are set. Also, the card may be attached with comments that can be viewed by each user. For example, the parameters and comments of the card are set according to the user's operations.

[0027] Here, assume that the canvas data 122 in FIG. 4 represents a pipeline describing a series of processes related to a machine learning model. A series of processes related to the machine learning model includes data input, preprocessing, learning processing, evaluation processing, and inference processing, etc.

[0028] Card 501 corresponds to the function of inputting data. Card 501 represents that a file named "sample.csv" is input. "sample.csv" is time series data.

[0029] Card 502 supports the function of calculating the moving average (backward) of time series data. Also, card 503 supports the function of calculating the moving average (central) of time series data.

[0030] Card 504 supports the function of splitting time series data. For example, the splitting process of card 504 passes one of the two split time series data to the process of card 505 and the other to the process of card 507. In this way, the result of the process may be passed to the destination card according to the function corresponding to each card.

[0031] Cards 505 and 507 support the function of normalizing time series data. Cards 506 and 508 support the function of extracting the time window of time series data. Normalization and time window extraction are examples of preprocessing.

[0032] The control unit 13 controls the entire information providing apparatus 10. The control unit 13 is, for example, an electronic circuit such as a CPU (Central Processing Unit), MPU (Micro Processing Unit), GPU (Graphics Processing Unit), or an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array). Also, the control unit 13 has an internal memory for storing programs and control data that define various processing procedures, and executes each process using the internal memory. Further, the control unit 13 functions as various processing units when various programs operate. For example, the control unit 13 includes a reception unit 131, an editing unit 132, a calculation unit 133, and a display control unit 134.

[0033] The reception unit 131 receives, from a plurality of terminals, operations of arranging a card (an example of an object) corresponding to a function related to data analysis, and operations of connecting cards to each other by lines representing the processing or data flow between functions. Further, the reception unit 131 receives operations such as inputting parameters for each process and comments attached to the cards. The reception unit 131 receives operations of newly adding, moving, and deleting cards, lines, and comments. In this way, the reception unit 131 receives operations for designing a model for data analysis and visualizing the model.

[0034] The editing unit 132 edits the canvas data 122 according to the operations received by the reception unit 131. For example, the editing unit 132 edits the positions of the cards and lines according to the operation of arranging the cards and the operation of connecting the cards to each other by lines representing the processing or data flow between functions.

[0035] The calculation unit 133 executes processing by functions corresponding to one or more cards. Functions such as a function for performing pre-processing on data and a function for calculating statistical values based on data are associated with the cards. The calculation unit 133 executes pre-processing on data or processing for calculating statistical values based on data according to the specified card.

[0036] The display control unit 134 causes a screen on which cards and lines are arranged to be displayed on each of a plurality of terminals (for example, terminal 20a, terminal 20b, and terminal 20c) according to the operations received by the reception unit 131.

[0037] Here, the user views the screen displayed on the terminal 20 and performs operations such as drag & drop to arrange the cards and lines. Therefore, the user can edit the canvas data by operating on the UI without inputting code.

[0038] The operations of the user are received by the reception unit 131 and reflected in the canvas data 122 by the editing unit 132. Therefore, the display control unit 134 can reflect the operation results on the screen in real time by referring to the canvas data 122.

[0039] For example, consider a case where the reception unit 131 receives an operation in which the user Ua moves a card via the terminal 20a. The editing unit 132 stores the position of the card after the movement in the canvas data 122.

[0040] The display control unit 134 refers to the canvas data 122 and arranges the moved card on the screen. The display control unit 134 causes the screen after arranging the card to be displayed not only on the terminal 20a but also on the terminals 20b and 20c. As a result, the operations are synchronized on each terminal.

[0041] FIG. 5 is a diagram for explaining the screen displayed on the terminal. The display control unit 134 causes the screen 60a to be displayed on the terminal 20a. In addition, the display control unit 134 causes the screen 60b to be displayed on the terminal 20b. Note that a screen similar to the screens 60a and 60b is displayed on the terminal 20c.

[0042] The user ID of the user Ua who uses the terminal 20a is "u011". From FIG. 2, the name of the user Ua is "James" and the class is "senior". Also, the user ID of the user Ub who uses the terminal 20b is "u012". From FIG. 2, the name of the user Ub is "Mary" and the class is "junior". Also, the user ID of the user Uc who uses the terminal 20c is "u013". From FIG. 2, the name of the user Uc is "David" and the class is "junior".

[0043] Here, the users of the terminals 20a, 20b, and 20c are called co - editors. For example, for the user Ua (James), the users Ub (Mary) and Uc (David) are co - editors.

[0044] As shown in FIG. 5, on screen 60a and screen 60b, a part of the cards and lines included in the canvas data 122 is displayed. Also, on screen 60a and screen 60b, cursors corresponding to each terminal are displayed.

[0045] Cursor 61a corresponds to terminal 20a. That is, cursor 61a moves in response to an operation from terminal 20a. Also, cursor 61b and cursor 61c correspond to terminal 20b and terminal 20c respectively. Thereby, the user can grasp how the co - editor moves the cursor. Note that the cursor is used for operations such as selection and movement of cards and lines.

[0046] Also, each cursor has a different pattern from each other. In this way, the display control unit 134 causes the cursors operated by the users associated with each of the plurality of terminals to be displayed on the screen in different manners. Also, a label indicating the name of the corresponding user may be attached to each cursor.

[0047] Furthermore, the display control unit 134 causes the screen to display information for identifying the users associated with each of the plurality of terminals. On screen 60a and screen 60b, the names and icons of the co - inventors are displayed.

[0048] In area 62a, the name "James" of user Ua and icon 63a are displayed. In area 62b, the name "Mary" of user Ub and icon 63b are displayed. In area 62c, the name "David" of user Uc and icon 63c are displayed. Thereby, the user can easily grasp who the co - editors are.

[0049] In addition, the display control unit 134 causes regions for displaying the names of respective users to be displayed on the screen in different manners according to the classes of the users associated with the respective terminals. As shown in FIG. 2, the class of "James" is "senior", and the classes of "Mary" and "David" are "junior". The display control unit 134 assigns a pattern different from those of regions 62b and 62c, in which the names of users whose class is "junior" are displayed, to region 62a, in which the name of the user whose class is "senior" is displayed. Thereby, the user can intuitively grasp the classes of co - editors.

[0050] In addition, a user with low proficiency can learn operations by observing the operations of a user with high proficiency. Also, a user with high proficiency can give advice by observing the operations of a user with low proficiency.

[0051] In data analysis, domain knowledge (for example, knowledge in the economic field, knowledge in the medical field, etc.) and knowledge about the data to be processed are important. For example, if co - editors include not only analysts but also those who are familiar with the data, based on knowledge that cannot be obtained by analysts alone, the co - editors can perform highly effective analysis while viewing the same data. The display control unit 134 may cause regions for displaying the names of respective users to be displayed on the screen in different manners according to knowledge associated with the users in advance, rather than according to the classes of the users. For example, the display control unit 134 may cause a region for displaying the name of a user associated with knowledge of data analysis methods and a region for displaying the name of a user associated with knowledge of the data itself to be displayed on the screen in different manners.

[0052] In addition, according to the present embodiment, so - called mob programming can be efficiently realized by making use of the knowledge that each co - editor has. In mob programming, roles such as a driver and a navigator are assigned to each of the co - editors. The display control unit 134 may cause regions for displaying the names of respective users to be displayed on the screen in different manners according to the roles assigned to the users in mob programming, rather than according to the classes of the users.

[0053] As shown in FIG. 6, when user Ub moves card 502 using cursor 61b, display control unit 134 reflects the result of this operation not only on screen 60b but also on screen 60a. FIG. 6 is a diagram for explaining the screen displayed on the terminal.

[0054] Reception unit 131 further receives an operation for executing a function corresponding to the card. For example, as shown in FIG. 7, reception unit 131 receives an operation in which user Ua selects card 502 using cursor 61a and executes the function of card 502. In response to this operation, calculation unit 133 starts calculating the "moving average (backward)" of the data described in "sample.csv". FIG. 7 is a diagram for explaining the screen displayed on the terminal.

[0055] At that time, display control unit 134 displays animation 64 on card 502 on screens 60a and 60b. Animation 64 is such that an arc with an arrow at its tip moves along the circumference. In this way, display control unit 134 displays an animation on the screen indicating that the function corresponding to the card is being executed. Thereby, the user can grasp that the calculation of the data is being executed by the co - editor.

[0056] Also, as shown in FIG. 8, display control unit 134 may display different regions of canvas data 122 on screen 60a and screen 60b. In the example of FIG. 8, the region around card 502 is displayed on screen 60a, while the region around card 504 is displayed on screen 60b.

[0057] The processing flow of information providing apparatus 10 will be described with reference to FIG. 9. FIG. 9 is a flowchart showing the processing procedure of the information providing apparatus according to the first embodiment. As shown in FIG. 9, information providing apparatus 10 receives a user operation via the terminal (step S101).

[0058] Next, the information providing apparatus 10 edits the canvas data according to the user's operation (step S102). The canvas data is data that describes a pipeline by connecting objects corresponding to functions related to data analysis with lines.

[0059] Here, the information providing apparatus 10 reflects the edited canvas data on the screens of the terminals of a plurality of users who are performing collaborative editing (step S103).

[0060] When editing continues (step S104, Yes), the information providing apparatus 10 returns to step S101 and repeats the process. When editing does not continue (step S104, No), the information providing apparatus 10 ends the process.

[0061] As described so far, the reception unit 131 receives operations on the data analysis tool from a plurality of terminals. The display control unit 134 causes the screens of the data analysis tools edited according to the operations received by the reception unit 131 to be displayed on each of the plurality of terminals.

[0062] Specifically, the reception unit 131 receives from a plurality of terminals an operation of arranging objects corresponding to functions related to data analysis and an operation of connecting objects to each other by a line representing the flow of processing or data between functions. The display control unit 134 causes the screens on which the objects and lines are arranged according to the operations received by the reception unit 131 to be displayed on each of the plurality of terminals.

[0063] In this way, the information providing apparatus 10 can reflect the results of operations on a no-code data analysis tool such as Node-AI on the screens of the terminals of a plurality of users who are co-editors. As a result, according to the first embodiment, it becomes possible for a plurality of users to use a no-code data analysis tool jointly.

[0064] Each user can check the latest state of the canvas data 122 in real time. Also, each user can avoid conflicting edits by checking the edits made to the canvas data 122 by other users.

[0065] Note that the data analysis tool provided by the information providing apparatus 10 may be equivalent to the data analysis tool described in Patent Document 1. That is, the information providing apparatus 10 can synchronize the screens of the data analysis tool described in Patent Document 1 among the terminals of a plurality of users.

[0066] [System configuration, etc.] In addition, each component of each illustrated device is a functional concept, and it is not necessarily physically configured as illustrated. That is, the specific forms of distribution and integration of each device are not limited to those illustrated, and all or part of them can be functionally or physically distributed or integrated in any unit according to various loads, usage situations, etc. Furthermore, each processing function performed by each device can be realized in whole or in any part by a CPU (Central Processing Unit) and a program analyzed and executed by the CPU, or can be realized as hardware by wired logic. Note that the program may be executed not only by the CPU but also by other processors such as a GPU.

[0067] Also, among the processes described in this embodiment, all or part of the processes described as being automatically performed can be manually performed, or all or part of the processes described as being manually performed can be automatically performed by a known method. In addition, regarding the processing procedures, control procedures, specific names, information including various data and parameters shown in the above documents and drawings, they can be arbitrarily changed unless otherwise specified.

[0068] [Program] As an embodiment, the information providing apparatus 10 can be implemented by installing an information providing program that executes the above processing as package software or online software on a desired computer. For example, by causing the information processing apparatus to execute the above information providing program, the information processing apparatus can function as the information providing apparatus 10. The information processing apparatus mentioned here includes desktop or notebook personal computers. In addition, other information processing apparatuses include mobile communication terminals such as smartphones, mobile phones, and PHS (Personal Handyphone System), and further slate terminals such as PDAs (Personal Digital Assistants) are included in this category.

[0069] Further, the information providing apparatus 10 can also be implemented as a server apparatus that uses the terminal device used by the user as a client and provides a service related to the above information providing process to the client. For example, the server apparatus is implemented as a server apparatus that provides a service that takes an operation on the canvas data as an input and outputs a screen of the canvas data. In this case, the server apparatus may be implemented as a Web server, or may be implemented as a cloud that provides a service related to the above information providing process by outsourcing.

[0070] FIG. 10 is a diagram showing an example of a computer that executes an information providing program. The computer 1000 has, for example, a memory 1010 and a CPU 1020. Further, the computer 1000 has a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These components are connected by a bus 1080.

[0071] Memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM (Random Access Memory) 1012. The ROM 1011 stores a boot program such as a BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to the hard disk drive 1090. The disk drive interface 1040 is connected to the disk drive 1100. A removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1100. The serial port interface 1050 is connected to, for example, a mouse 1110 and a keyboard 1120. The video adapter 1060 is connected to, for example, a display 1130.

[0072] The hard disk drive 1090 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. That is, the program that defines each process of the information providing apparatus 10 is implemented as a program module 1093 in which computer-executable code is described. The program module 1093 is stored, for example, in the hard disk drive 1090. For example, a program module 1093 for executing the same process as the functional configuration in the information providing apparatus 10 is stored in the hard disk drive 1090. Note that the hard disk drive 1090 may be replaced by an SSD (Solid State Drive).

[0073] Also, the setting data used in the processing of the above-described embodiment is stored as program data 1094 in, for example, the memory 1010 or the hard disk drive 1090. Then, the CPU 1020 reads out the program module 1093 and the program data 1094 stored in the memory 1010 or the hard disk drive 1090 into the RAM 1012 as needed, and executes the processing of the above-described embodiment.

[0074] Note that the program module 1093 and the program data 1094 are not limited to being stored in the hard disk drive 1090. For example, they may be stored in a removable storage medium and read by the CPU 1020 via a disk drive 1100 or the like. Alternatively, the program module 1093 and the program data 1094 may be stored in another computer connected via a network (such as a LAN (Local Area Network) or a WAN (Wide Area Network)). Then, the program module 1093 and the program data 1094 may be read by the CPU 1020 from another computer via the network interface 1070.

Explanation of Reference Numerals

[0075] 10 Information providing apparatus 11 Communication unit 12 Storage unit 13 Control unit 60a, 60b Screens 61a, 61b, 61c Cursors 62a, 62b, 62c Regions 63a, 63b, 63c Icons 64 Animation 131 Reception unit 132 Editing unit 133 Calculation unit 134 Display control unit 501, 502, 503, 504, 505, 506, 507, 508 Cards

Claims

1. A reception unit that receives operations on a data analysis tool from a plurality of terminals, A display control unit that causes a screen of the data analysis tool edited according to the operations received by the reception unit to be displayed on each of the plurality of terminals, An information providing apparatus characterized by comprising:

2. The reception unit receives, from the plurality of terminals, an operation of arranging an object corresponding to a function related to data analysis, and an operation of connecting the objects with a line representing a process or data flow between the functions, The display control unit causes a screen on which the object and the line are arranged according to the operations received by the reception unit to be displayed on each of the plurality of terminals The information providing apparatus according to claim 1, characterized in that:

3. The information providing apparatus according to claim 1 or 2, characterized in that the display control unit causes information for identifying a user associated with each of the plurality of terminals to be displayed on the screen.

4. The information providing apparatus according to claim 1 or 2, characterized in that the display control unit causes a cursor operated by a user associated with each of the plurality of terminals to be displayed on the screen in different manners.

5. The information providing apparatus according to claim 1, characterized in that the reception unit receives an operation for designing a model for data analysis and an operation for visualizing the model.

6. The information providing apparatus according to claim 2, characterized in that the reception unit further receives an operation of arranging the objects corresponding to a function of performing preprocessing on data and a function of calculating statistical values based on the data.

7. The reception unit further receives an operation of executing a function corresponding to the object, The information providing apparatus according to claim 2, characterized in that the display control unit causes an animation indicating that a function corresponding to the object is being executed to be displayed on the screen.

8. An information providing method executed by a computer, comprising: A reception step of receiving operations on a data analysis tool from a plurality of terminals, A display control step of causing a screen of the data analysis tool edited according to the operations received in the reception step to be displayed on each of the plurality of terminals, An information providing method characterized by comprising:

9. A reception step of receiving operations on a data analysis tool from a plurality of terminals, A display control step of displaying, on each of the plurality of terminals, a screen of the data analysis tool edited according to the operation received in the reception step; An information providing program characterized by causing a computer to execute the program.

Citation Information

Patent Citations

  • Device, method and computer program for displaying shared information

    JP2010170354A

  • Information processing device, information processing method, and information processing program

    JP2023027964A