system
The system addresses the reliance on specific engineers by automatically analyzing code, extracting design concepts, and generating simplified educational materials, facilitating efficient project management and rapid adaptation.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- SOFTBANK GROUP CORP
- Filing Date
- 2024-10-21
- Publication Date
- 2026-05-07
AI Technical Summary
Existing systems rely heavily on specific engineers or vendors for system development and maintenance, leading to inefficiencies and difficulties for new participants to understand the overall project design and adapt quickly.
A system that automatically scans software code to identify roles and relationships, extracts the overall design concept, and generates simplified educational code to support learning, while providing interactive tutorials and user-specific answers based on the project design.
Reduces reliance on specific individuals, enables efficient project management and training, and allows new participants to quickly grasp the project structure and functions.
Smart Images

Figure 2026074879000001_ABST
Abstract
Description
Technical Field
[0003] ,
[0001] The technology of the present disclosure relates to a system.
Background Art
[0002] Patent Document 1 discloses a persona chatbot control method performed by at least one processor, the method including steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to an explanation of a chatbot character, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] An object of the present invention is to eliminate dependence on specific engineers or external vendors and enable reduction of costs associated with system development and maintenance. Another problem is to provide a method for quickly and efficiently understanding the overall design concept so that new participants in a project can smoothly adapt.
Means for Solving the Problems
[0005] To address this challenge, the present invention provides a means for automatically scanning all software code and identifying the role and relationships of each code file. Furthermore, it includes a means for extracting the overall system design concept based on the metadata of the analyzed code. It also realizes a method for efficiently supporting the learning of new participants by generating educational, reduced-size code that is easy to understand while retaining the core functions of the project. In addition, it includes a function for generating answers to user questions that are based on the overall project design concept. This reduces reliance on specific individuals and provides a means for the sustainable development and operation of the system.
[0006] "Software code" is a part of a program that contains instructions and logic to be executed by a computer.
[0007] "Scanning" is the process of systematically investigating or analyzing a specific subject.
[0008] A "role" is the function or task that an element or person is supposed to perform within a specific situation or system.
[0009] "Relationship" refers to a state in which multiple things or concepts are related to one another.
[0010] "Metadata" refers to data that provides information about data, including descriptions of the data's attributes and structure.
[0011] A "design concept" refers to the fundamental principles and guidelines for designing a system or product.
[0012] "Educational reduced-size code" refers to a set of programs that are simplified compared to the original code, while retaining their main functions, for the purpose of learning and understanding.
[0013] "Methods to support learning" refer to methods and techniques for helping to acquire new information and skills.
[0014] The "function of generating an answer to a question" is a function that receives an inquiry from a user and creates an answer suitable for that inquiry.
[0015] "Reducing dependencies" refers to actions and methods aimed at minimizing the degree of dependence on specific individuals or elements.
Brief Explanation of Drawings
[0016] [Figure 1] It is a conceptual diagram showing an example of the configuration of a data processing system according to the first embodiment. [Figure 2] It is a conceptual diagram showing an example of the main functions of a data processing device and a smart device according to the first embodiment. [Figure 3] It is a conceptual diagram showing an example of the configuration of a data processing system according to the second embodiment. [Figure 4] It is a conceptual diagram showing an example of the main functions of a data processing device and smart glasses according to the second embodiment. [Figure 5] It is a conceptual diagram showing an example of the configuration of a data processing system according to the third embodiment. [Figure 6] It is a conceptual diagram showing an example of the main functions of a data processing device and a headset-type terminal according to the third embodiment. [Figure 7] It is a conceptual diagram showing an example of the configuration of a data processing system according to the fourth embodiment. [Figure 8] It is a conceptual diagram showing an example of the main functions of a data processing device and a robot according to the fourth embodiment. [Figure 9] It shows an emotion map to which multiple emotions are mapped. [Figure 10] It shows an emotion map to which multiple emotions are mapped. [Figure 11] It is a sequence diagram showing the processing flow of the data processing system in Example 1. [Figure 12] It is a sequence diagram showing the processing flow of the data processing system in Application Example 1. [Figure 13]It is a sequence diagram showing the processing flow of the data processing system in Embodiment 2 when the emotion engine is combined. [Figure 14] It is a sequence diagram showing the processing flow of the data processing system in Application Example 2 when the emotion engine is combined.
Mode for Carrying Out the Invention
[0017] Hereinafter, an example of an embodiment of the system according to the technology of the present disclosure will be described with reference to the accompanying drawings.
[0018] First, the terms used in the following description will be explained.
[0019] In the following embodiments, the numbered processor (hereinafter simply referred to as "processor") may be one arithmetic unit or a combination of multiple arithmetic units. Also, the processor may be one type of arithmetic unit or a combination of multiple types of arithmetic units. Examples of arithmetic units include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), an APU (Accelerated Processing Unit), and the like.
[0020] In the following embodiments, the numbered RAM (Random Access Memory) is a memory in which information is temporarily stored and is used as a work memory by the processor.
[0021] In the following embodiments, the numbered storage is one or more non-volatile storage devices that store various programs and various parameters, etc. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), or magnetic tapes, etc.
[0022] In the following embodiments, the signed communication interface (I / F) is an interface that includes a communication processor and an antenna, etc. The communication interface manages communication between multiple computers. Examples of communication standards applicable to the communication interface include wireless communication standards such as 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), or Bluetooth (registered trademark).
[0023] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." That is, "A and / or B" means that it may be A alone, or B alone, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" applies when expressing three or more things linked by "and / or."
[0024] [First Embodiment]
[0025] Figure 1 shows an example of the configuration of the data processing system 10 according to the first embodiment.
[0026] As shown in Figure 1, the data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.
[0027] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0028] The smart device 14 comprises a computer 36, a reception device 38, an output device 40, a camera 42, and a communication interface 44. The computer 36 comprises a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The reception device 38, output device 40, and camera 42 are also connected to the bus 52.
[0029] The reception device 38 is equipped with a touch panel 38A and a microphone 38B, etc., and receives user input. The touch panel 38A receives user input by detecting contact with an object (e.g., a pen or finger). The microphone 38B receives user input by detecting the user's voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the data indicating the user input.
[0030] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user 20 by outputting the data in a form perceptible to the user 20 (e.g., audio and / or text). The display 40A displays visible information such as text and images according to instructions from the processor 46. The speaker 40B outputs audio according to instructions from the processor 46. The camera 42 is a small digital camera equipped with an optical system such as a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0031] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various types of information between processor 46 and processor 28 via network 54.
[0032] Figure 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0033] As shown in Figure 2, in the data processing device 12, a specific processing is performed by the processor 28. A specific processing program 56 is stored in the storage 32. The specific processing program 56 is an example of a "program" related to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0034] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0035] In the smart device 14, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The reception output program 60 is used in conjunction with a specific processing program 56 by the data processing system 10. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0036] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0037] This invention is a system designed to reduce reliance on specific engineers or vendors in system development and to improve efficiency in project design and operation. Specific embodiments of the system are described below.
[0038] The server automatically scans all of the project's software code, identifying the role and relationships of each code file. This allows it to understand the overall structure of the code and save it as metadata. Next, the server uses this metadata to extract the overall design concept of the project. This includes identifying the relationships between modules and design patterns.
[0039] Furthermore, based on the analysis results, the server automatically generates a reduced version of the project code for educational purposes, while maintaining its core functionality. This reduced code is designed to allow new project participants to quickly grasp the basic concepts. Terminals use this reduced code to publish interactive tutorials and support the learning of new participants.
[0040] When a user enters a formal question about the project, the server generates an appropriate answer. This answer is based on the overall design concept of the project and includes explanations of specific code blocks and architectural patterns used.
[0041] As a concrete example, consider a case where an organization assigns a new employee to a project. The user asks, "How is the database connection implemented?" The server, based on data analyzed from the entire system, presents the appropriate code segment and background information regarding its design. Next, through a tutorial provided on the terminal, the new participant can easily understand how the database connection works and try it out hands-on. In this way, the present invention enables smooth project execution without relying on specific engineers.
[0042] The following describes the processing flow.
[0043] Step 1:
[0044] The server detects all source code within the project folder and sequentially scans each file to analyze the code structure, functions, and dependencies. The analysis results are saved as metadata in the internal data storage.
[0045] Step 2:
[0046] The server uses metadata to extract the overall design concepts of the project. Specifically, it identifies dependencies between modules and the design patterns used, and generates an architecture map of the project.
[0047] Step 3:
[0048] The server analyzes the project's extensive source codebase and generates a reduced version of the code for educational purposes. This code is simplified for easier understanding while retaining the project's core functionality.
[0049] Step 4:
[0050] When a user enters a question about a project, the server generates an answer based on the design concept and code metadata. This includes descriptions of relevant code segments and the design context.
[0051] Step 5:
[0052] The terminal runs an interactive tutorial using the generated, reduced-size code. The tutorial guides users step-by-step on how to run and verify the code, supporting new participants in their learning process.
[0053] Step 6:
[0054] When a user completes a tutorial and submits feedback, the server analyzes this information and uses it to improve future code analysis and tutorials.
[0055] (Example 1)
[0056] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0057] Traditional system development often involved a high degree of reliance on specific engineers or vendors, leading to inefficient project management and training of new participants. As a result, understanding the overall project structure required significant time and effort, making it difficult for new participants to quickly adapt. Furthermore, responses to project-related questions and changes were sometimes delayed.
[0058] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0059] In this invention, the server includes means for automatically inspecting software code and identifying the functions and relationships of each program file, means for extracting the overall design philosophy of the information processing device based on the analyzed program information, and means for generating a reduced-size learning program that retains the core functions of the project while aiding understanding. This enables rapid adaptation of new participants and efficient progress of the entire project.
[0060] "Software code" is a set of instructions written in a programming language to cause a computer to perform specific actions.
[0061] A "program file" is a file-type data file in which software code is written and stored.
[0062] "Function and relationship" refers to the specific role a program file plays and its relationship to other program files and the system as a whole.
[0063] "Analyzed program information" refers to data about the roles and structure obtained by analyzing software code.
[0064] "The design philosophy of an information processing device" refers to the design concepts and policies based on the overall system architecture and design patterns.
[0065] A "reduced learning program" is a simplified version of a project that retains its essential functions and is intended for learning and education.
[0066] This invention is a system that reduces reliance on specific engineers or vendors and supports the smooth progress of projects. The system is configured as follows:
[0067] The server plays a crucial role in information processing. First, the server automatically scans all the software code in the project, identifying the function and relationships of each program file. This process utilizes advanced analysis algorithms and storage databases. Next, based on the analyzed program information, the server extracts the overall design philosophy of the information processing system. This clarifies the overall picture of the project, making it easier for new participants to understand.
[0068] Furthermore, the server leverages the extracted design philosophy to generate a reduced-size learning program that reflects the core functions of the project. This program is designed to optimize learning efficiency. This reduced-size program can be deployed using programming education environments and simulation software.
[0069] The terminal provides interactive instructional materials using a generated, scaled-down version of the learning program. The terminal features an interactive user interface, allowing new participants to learn the project's fundamental concepts through hands-on experience. This interactive learning environment enables new participants to adapt to the project quickly.
[0070] The system includes a feature that allows users to input questions about the project. When a user enters a question, the server automatically generates an appropriate answer based on analyzed code information and design principles. This answer includes specific code examples and the background of the design, helping to deepen the user's understanding.
[0071] As a concrete example, suppose a user asks, "How is the database connection implemented?" In this case, the server provides the appropriate code segment and its design context. Additionally, interactive learning materials are provided via the terminal, guiding the user through the specific operation methods.
[0072] An example of a prompt is, "How is the database connection implemented?". In response to this prompt, the generative AI model will provide appropriate design information and code examples.
[0073] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0074] Step 1:
[0075] The server automatically scans all software code within the project. It receives source code files as input and identifies the role of each file and its relationships to other files. Specifically, it analyzes classes and functions within the code, identifying their usage and dependencies. This process generates metadata for the code structure as output.
[0076] Step 2:
[0077] The server extracts the overall design philosophy of the information processing unit based on the generated metadata. The metadata generated in step 1 is used as input. In this step, design patterns are detected and the relationships between modules are analyzed. Specifically, it determines whether the Model-View-Controller (MVC) pattern is adopted and outputs related information based on that.
[0078] Step 3:
[0079] The server uses the extracted design philosophy and metadata to automatically generate a reduced-size program for learning that retains the core functionality of the project. The input for this step includes the design information extracted in step 2. Specifically, it selects and simplifies the minimum necessary code representing the core functionality, and then assembles the learning program based on this selection. The output is a reduced-size program adapted for educational purposes.
[0080] Step 4:
[0081] The terminal provides interactive instructional materials using a reduced-size learning program received from the server. The generated reduced-size program is used as input. These materials include step-by-step guides and executable exercises to facilitate new participants. Specific actions include the ability for users to run the reduced-size program and try out the database connection procedure. Output provides feedback tailored to the user's level of understanding.
[0082] Step 5:
[0083] Users use prompts to enter questions about the project. Once a prompt is entered, it becomes input data, helping the server generate appropriate answers. For example, if a user asks, "How is the database connection implemented?", the server will output a code example reflecting the design philosophy, along with its context. This answer serves as documentation to support an overall understanding of the project.
[0084] (Application Example 1)
[0085] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0086] Managing software and training engineers for conventional factory robots required a significant amount of time and effort, making it difficult for engineers to quickly understand new systems and robots. Therefore, there is a need to provide efficient and systematic training support, creating an environment where engineers can rapidly acquire knowledge.
[0087] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0088] This invention includes a server that automatically scans all code and identifies the function and relationships of each program file, a server that extracts the overall design concept based on the metadata of the analyzed code, and a server that generates simplified educational code that is easy to understand while maintaining core functionality. This enables efficient management of factory robot software and rapid and effective educational support for engineers.
[0089] "Code" refers to a string of characters or statements that describe instructions for executing a computer program.
[0090] A "program file" is a digital file containing code that gives instructions to a computer.
[0091] "Function" refers to the ability of a system or program to perform a specific action or task.
[0092] "Relevance" is a concept that describes the relationship between multiple elements or pieces of information that influence each other.
[0093] "Metadata" refers to data that contains information about data, describing the characteristics and attributes of specific data.
[0094] "Design concept" refers to the fundamental ideas and principles that determine the overall structure of a system or product.
[0095] "Core functions" refer to the primary functions of a system or device that play the most important role in its operation.
[0096] "Simplified educational code" is a simplified version of code that extracts only the essential elements to help learners understand the basic operation and principles of a program.
[0097] A "technician" refers to a person who possesses technical knowledge and experience and performs specialized or practical tasks.
[0098] "Interactive" refers to a feature that involves interaction with the user and has the ability to respond dynamically.
[0099] "Learning support" refers to assistance and support provided to enhance the effectiveness of acquiring specific skills or knowledge.
[0100] To implement this system, terminals primarily function as the interface between the server and the user. The server uses Apache® Server and Python to automatically analyze all the code related to the control of the factory robots, identifying the function and relationships of individual program files. The analysis results are compiled as metadata and used to extract the overall system design concept.
[0101] Based on this metadata, the server automatically generates a simplified educational version of the code that maintains core functionality, making it easier for new participants to learn. This simplified code is then used as an interactive tutorial on a device, allowing technicians to implement it on the spot. This tutorial provides direct feedback to technicians through wearable devices such as smart glasses, supporting rapid and effective learning.
[0102] As a concrete example, when an engineer asks, "How is stopping achieved in a parts transport robot?", the server extracts relevant design concepts and code blocks from metadata and generates an answer along with the design background and implementation method. This creates an environment where engineers can immediately learn by testing on an actual system.
[0103] Examples of prompt statements for a generative AI model are as follows:
[0104] "We want to analyze the software code of factory robots and extract specific operation design patterns. Then, we need to figure out how to automatically generate interactive tutorial code to support the learning of new engineers."
[0105] This configuration allows the system to effectively and efficiently manage and provide training support for factory robot software.
[0106] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0107] Step 1:
[0108] The server takes the entire codebase of the factory robots as input and performs an automated scan using Apache Server and Python. Here, it analyzes each program file in the codebase and processes the data to identify their functions and relationships. The output is metadata for each program file.
[0109] Step 2:
[0110] The server performs calculations to extract the overall design concepts based on the metadata generated in Step 1. Specifically, it identifies the relationships between modules and common design patterns. This process uses Python libraries such as NetworkX to visualize the relationships. As output, detailed metadata containing the design concepts is generated.
[0111] Step 3:
[0112] The server automatically generates a simplified educational version of the code, while maintaining core functionality, using detailed metadata. The input is metadata including design concepts, and the output is simplified code for new participants. This simplified code includes key code snippets selected to aid understanding.
[0113] Step 4:
[0114] The terminal receives simplified educational code generated by the server and provides an interactive tutorial that supports learning through interaction with the user. The input is the simplified code, and the output allows the engineer to learn by experiencing specific operating procedures and control logic. Wearable devices such as smart glasses are used for this operation.
[0115] Step 5:
[0116] The user enters a specific question or query (e.g., "How is stopping achieved in a parts transport robot?") into the terminal. Based on the entered query, the server extracts relevant design concepts and code blocks from the parsed metadata and generates a specific answer. This answer includes the design background and implementation method. The output is returned to the user, who can use this information to deepen their understanding and perform actual operations.
[0117] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0118] This invention is a system that recognizes user emotions and utilizes them to improve system interactions, thereby reducing reliance on specific engineers or vendors and streamlining project management and learning. Specific embodiments of the system are described below.
[0119] In addition to traditional project scanning and code metadata generation functions, the server implements an emotion engine to acquire emotional data from user interactions. This engine analyzes input questions and action data to identify basic emotional states such as joy, excitement, and confusion.
[0120] The server uses identified sentiment data to generate responses that align with the overall project design concept. For example, if a user is confused, it is designed to provide detailed and easy-to-understand explanations or step-by-step guides to automated processes.
[0121] The device has the ability to dynamically adjust the interactive tutorials provided by the server according to the user's emotional state. For example, if a user is feeling stressed about understanding the code, the learning process can be slowed down or additional materials can be provided.
[0122] For example, if a user shows signs of being overwhelmed by the interface, the server quickly detects this emotion using its emotion engine and switches to a simpler interface mode if necessary. The terminal can also provide explanations in a subdued tone to help the user learn in a relaxed state.
[0123] This enables comprehensive project management and learning experiences that go beyond mere technical support by providing user-centric interactions, resulting in sustainable system operation.
[0124] The following describes the processing flow.
[0125] Step 1:
[0126] The server automatically scans all of the project's software code, identifying the role and relationships of each file and generating metadata. This metadata is stored in internal data storage and used for subsequent processing.
[0127] Step 2:
[0128] The server passes user questions and interaction data to the emotion engine, which analyzes the user's emotional state in real time. The emotion engine performs text and voice analysis to classify the user's emotions into categories such as joy, sadness, and confusion.
[0129] Step 3:
[0130] The server generates a response adapted to the user's emotions based on the identified emotional state. This response includes explanations that take into account the overall project design concept and provides additional information.
[0131] Step 4:
[0132] The device runs an interactive tutorial based on responses received from the server. The tutorial's pace and amount of information are dynamically adjusted according to the user's emotional state. For example, if the user appears confused, more detailed and thorough explanations are added.
[0133] Step 5:
[0134] When a user completes a tutorial and provides feedback, the server analyzes that feedback and the user's sentiment history to collect data for improving the system's interface and response methods.
[0135] Step 6:
[0136] The server continuously updates its system functions to meet the needs of new and existing users. It utilizes collected sentiment and feedback data to further improve the user experience in the future.
[0137] (Example 2)
[0138] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0139] In information processing systems, it is essential to quickly and accurately understand the roles and relationships of each program. Furthermore, effective training methods are needed to enable new participants to understand the system and contribute to the project promptly. Additionally, considering the emotions and feedback of individual users and improving the overall responsiveness and flexibility of the system are key challenges.
[0140] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0141] In this invention, the server includes means for automatically analyzing all programs and identifying the role and relationships of each program file; means for extracting the overall design philosophy of the information processing system based on the metadata of the analyzed programs; means for generating responses to user inquiries that are based on the overall design philosophy of the information processing system; means for identifying the user's emotions and dynamically adjusting the response based on those emotions; and means for providing interactive guidance that is in line with the user's emotional state. This enables rapid understanding of the role and relationships of each program, effective learning support for new participants, and flexible system operation that responds to the emotions of individual users.
[0142] A "program" is a set of code designed to perform a specific function or command.
[0143] "Analysis" is the process of thoroughly examining data and information to reveal its structure and elements.
[0144] "Metadata" refers to information related to the data itself, other than its structure and content, and usually describes the characteristics and attributes of that data.
[0145] An "information processing system" is a comprehensive system that includes a series of devices and software for collecting, storing, analyzing, generating, and transmitting data.
[0146] "Role" refers to one's position or responsibilities in order to fulfill a specific function or obligation.
[0147] "Relevance" refers to how certain things or concepts relate to others, indicating their interconnectedness.
[0148] "Design philosophy" refers to the fundamental ideas and guidelines that guide the construction of a system or product.
[0149] "Inquiry" refers to an action or question taken to seek certain information or answers.
[0150] "Response" refers to the information or reaction returned in response to an inquiry or request.
[0151] "Emotions" refer to various psychological states experienced within an individual, including joy, excitement, and confusion.
[0152] "Interactive instruction" refers to an educational process in which the user and the system interact with each other as it progresses.
[0153] This invention is implemented by an information processing system. Specific embodiments of the system based on prior information are described below.
[0154] The server uses software to automatically analyze programs, identifying the role and relationships of each program file. Based on the analysis results, the server generates metadata and performs data processing necessary to extract the overall design philosophy of the information processing system. This process involves an emotion engine and a database system, enabling the generation of appropriate responses based on user inquiries.
[0155] The terminal utilizes information provided by the server to enable interaction with the user. Dynamic adjustments are made to take into account the user's emotional state in order to provide interactive instruction. The terminal displays visual materials and text guides to enable the user to use the system smoothly.
[0156] For example, if a user shows confusion with a particular function of the system, the server uses an emotion engine to detect that emotion and quickly provides relevant information. This helps the user understand the system. An example of a prompt would be, "Suggest a method to provide visual aids along with step-by-step explanations when a user is confused about a particular function."
[0157] User feedback is continuously collected by the server and used to improve the system's functionality. In this way, the system can evolve flexibly and provide more adaptive and useful support to users.
[0158] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0159] Step 1:
[0160] The user inputs questions or actions into the system. This input includes text data and interactions such as clicks. This input data is used as base data for sentiment recognition processing on the server.
[0161] Step 2:
[0162] The server receives input data from the user and performs sentiment analysis using an emotion engine. This input includes user interaction data and text data. The server analyzes this data to identify emotional states such as joy, excitement, and confusion, and generates sentiment data as output.
[0163] Step 3:
[0164] The server generates responses based on identified sentiment data. As input, it processes the data, taking into account the sentiment data and the overall design philosophy of the information processing system. As output, it generates appropriate answers and guidance tailored to the user's emotions. Specifically, it provides detailed explanations to users who show confusion.
[0165] Step 4:
[0166] The terminal receives response data from the server and provides interactive instruction. Inputs include responses and guides generated by the server. The terminal dynamically adjusts the tutorial according to the user's emotions and provides user-appropriate displays and audio guidance as output. For example, it adjusts the pace of content presentation for a stressed user.
[0167] Step 5:
[0168] The device collects user reactions and feedback and sends it to the server. Input includes the user's ongoing usage and feedback data. Based on this, the server continuously improves the system's functionality and provides update information and improved features as output. Specifically, this feedback loop allows the system's functionality to evolve in a way that further enhances the user experience.
[0169] (Application Example 2)
[0170] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as a "server" and the smart device 14 as a "terminal".
[0171] A challenge in modern education and project management is the lack of interactive experiences that take user emotions into consideration. This can make learning and project progress difficult for new participants. Furthermore, the failure to dynamically adjust content in response to user emotional states can lead to decreased user comprehension and satisfaction.
[0172] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0173] In this invention, the server includes means for automatically scanning all program code and identifying the attributes and relationships of each code file, means for generating a system-wide design concept based on the metadata of the analyzed code, and means including an emotion recognition engine that recognizes the user's emotional state and adjusts the interaction accordingly. This enables interactive learning experiences and project management that take user emotions into consideration.
[0174] "Program code" is a set of documents that describe the instructions a computer can execute.
[0175] "Attributes" are pieces of information that describe the characteristics or properties of each element within program code.
[0176] "Relevance" is a concept that describes the interrelationships between different elements within program code.
[0177] "Metadata" refers to additional data that provides information about the code itself, including details about its design and structure.
[0178] A "design concept" refers to the fundamental design philosophy based on the overall structure and purpose of the system.
[0179] An "emotion recognition engine" is a combination of hardware or software used to detect and identify a user's emotions.
[0180] "Interaction" refers to the process or method by which a system and a user interact with each other.
[0181] This system is designed to provide user-responsive interactions in educational and project management settings. The server scans and analyzes program code, generates metadata, and detects user emotions using an emotion recognition engine. Emotion recognition utilizes cameras and microphones built into smartphones and smart glasses, while OpenCV and Google's (registered trademark) speech recognition API are used for data analysis.
[0182] Once a user's emotions are identified, the server adjusts the interaction based on those emotions. This process uses software such as Python and Tensorflow® to dynamically change the difficulty and pace of the content. For example, if a user is feeling stressed, the learning process can be slowed down and additional supplementary information can be provided.
[0183] For example, if a user is struggling with an intermediate-level question while progressing through the learning program, the system can detect this using its emotion recognition engine and provide a detailed visual guide to the problem, as well as play relaxing music. An example of a prompt for the generative AI model might be: "The user is struggling with an intermediate-level question. Provide supplementary information with a visual guide and play relaxing music in the background."
[0184] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0185] Step 1:
[0186] The server receives audio and video data from a smartphone or device as input. This data includes the user's facial expressions and voice tone, and after being analyzed using an emotion recognition engine, it generates the user's emotional state as output. In this process, OpenCV is used to extract facial features from the video data, and Google's speech recognition API is used to identify emotions from the audio data.
[0187] Step 2:
[0188] The server takes the user's emotional state, output by the emotion recognition engine, as input and processes the data based on that information to optimize the next interaction. Specifically, it uses Python to select and adjust appropriate educational content according to the type of emotion (e.g., anxiety, happiness, confusion, etc.) to determine the content of the interaction. As output, it generates the adjusted content information.
[0189] Step 3:
[0190] The terminal receives the adjusted content information sent from the server as input and displays appropriate content to the user. In doing so, it performs specific actions such as changing the screen display speed or adding supplementary explanations based on the user's emotions. As output, it provides visual and auditory feedback to the user.
[0191] Step 4:
[0192] The user reacts to the content provided on the device, and this reaction is sent back to the server as audio and video data. This allows the server to re-recognize the user's latest emotional state and generate prompts to continuously update the interaction content. This cycle dynamically optimizes the user's learning experience.
[0193] The specific processing unit 290 transmits the result of the specific processing to the smart device 14. In the smart device 14, the control unit 46A causes the output device 40 to output the result of the specific processing. The microphone 38B acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0194] Data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of data generation model 58 is ChatGPT (registered trademark) (Internet search).<URL: https: / / openai.com / blog / chatgpt> ), Gemini (registered trademark) (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0195] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart device 14.
[0196] [Second Embodiment]
[0197] Figure 3 shows an example of the configuration of the data processing system 210 according to the second embodiment.
[0198] As shown in Figure 3, the data processing system 210 includes a data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.
[0199] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0200] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication interface 44. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, and camera 42 are also connected to the bus 52.
[0201] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0202] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0203] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0204] Figure 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Figure 4, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0205] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0206] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0207] In the smart glasses 214, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0208] Next, the identification processing performed by the identification processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0209] This invention is a system designed to reduce reliance on specific engineers or vendors in system development and to improve efficiency in project design and operation. Specific embodiments of the system are described below.
[0210] The server automatically scans all of the project's software code, identifying the role and relationships of each code file. This allows it to understand the overall structure of the code and save it as metadata. Next, the server uses this metadata to extract the overall design concept of the project. This includes identifying the relationships between modules and design patterns.
[0211] Furthermore, based on the analysis results, the server automatically generates a reduced version of the project code for educational purposes, while maintaining its core functionality. This reduced code is designed to allow new project participants to quickly grasp the basic concepts. Terminals use this reduced code to publish interactive tutorials and support the learning of new participants.
[0212] When a user enters a formal question about the project, the server generates an appropriate answer. This answer is based on the overall design concept of the project and includes explanations of specific code blocks and architectural patterns used.
[0213] As a concrete example, consider a case where an organization assigns a new employee to a project. The user asks, "How is the database connection implemented?" The server, based on data analyzed from the entire system, presents the appropriate code segment and background information regarding its design. Next, through a tutorial provided on the terminal, the new participant can easily understand how the database connection works and try it out hands-on. In this way, the present invention enables smooth project execution without relying on specific engineers.
[0214] The following describes the processing flow.
[0215] Step 1:
[0216] The server detects all source code within the project folder and sequentially scans each file to analyze the code structure, functions, and dependencies. The analysis results are saved as metadata in the internal data storage.
[0217] Step 2:
[0218] The server uses metadata to extract the overall design concepts of the project. Specifically, it identifies dependencies between modules and the design patterns used, and generates an architecture map of the project.
[0219] Step 3:
[0220] The server analyzes the project's extensive source codebase and generates a reduced version of the code for educational purposes. This code is simplified for easier understanding while retaining the project's core functionality.
[0221] Step 4:
[0222] When a user enters a question about a project, the server generates an answer based on the design concept and code metadata. This includes descriptions of relevant code segments and the design context.
[0223] Step 5:
[0224] The terminal runs an interactive tutorial using the generated, reduced-size code. The tutorial guides users step-by-step on how to run and verify the code, supporting new participants in their learning process.
[0225] Step 6:
[0226] When a user completes a tutorial and submits feedback, the server analyzes this information and uses it to improve future code analysis and tutorials.
[0227] (Example 1)
[0228] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0229] Traditional system development often involved a high degree of reliance on specific engineers or vendors, leading to inefficient project management and training of new participants. As a result, understanding the overall project structure required significant time and effort, making it difficult for new participants to quickly adapt. Furthermore, responses to project-related questions and changes were sometimes delayed.
[0230] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0231] In this invention, the server includes means for automatically inspecting software code and identifying the functions and relationships of each program file, means for extracting the overall design philosophy of the information processing device based on the analyzed program information, and means for generating a reduced-size learning program that retains the core functions of the project while aiding understanding. This enables rapid adaptation of new participants and efficient progress of the entire project.
[0232] "Software code" is a set of instructions written in a programming language to cause a computer to perform specific actions.
[0233] A "program file" is a file-type data file in which software code is written and stored.
[0234] "Function and relationship" refers to the specific role a program file plays and its relationship to other program files and the system as a whole.
[0235] "Analyzed program information" refers to data about the roles and structure obtained by analyzing software code.
[0236] "The design philosophy of an information processing device" refers to the design concepts and policies based on the overall system architecture and design patterns.
[0237] A "reduced learning program" is a simplified version of a project that retains its essential functions and is intended for learning and education.
[0238] This invention is a system that reduces reliance on specific engineers or vendors and supports the smooth progress of projects. The system is configured as follows:
[0239] The server plays a crucial role in information processing. First, the server automatically scans all the software code in the project, identifying the function and relationships of each program file. This process utilizes advanced analysis algorithms and storage databases. Next, based on the analyzed program information, the server extracts the overall design philosophy of the information processing system. This clarifies the overall picture of the project, making it easier for new participants to understand.
[0240] Furthermore, the server leverages the extracted design philosophy to generate a reduced-size learning program that reflects the core functions of the project. This program is designed to optimize learning efficiency. This reduced-size program can be deployed using programming education environments and simulation software.
[0241] The terminal provides interactive instructional materials using a generated, scaled-down version of the learning program. The terminal features an interactive user interface, allowing new participants to learn the project's fundamental concepts through hands-on experience. This interactive learning environment enables new participants to adapt to the project quickly.
[0242] The system includes a feature that allows users to input questions about the project. When a user enters a question, the server automatically generates an appropriate answer based on analyzed code information and design principles. This answer includes specific code examples and the background of the design, helping to deepen the user's understanding.
[0243] As a concrete example, suppose a user asks, "How is the database connection implemented?" In this case, the server provides the appropriate code segment and its design context. Additionally, interactive learning materials are provided via the terminal, guiding the user through the specific operation methods.
[0244] An example of a prompt is, "How is the database connection implemented?". In response to this prompt, the generative AI model will provide appropriate design information and code examples.
[0245] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0246] Step 1:
[0247] The server automatically scans all software code within the project. It receives source code files as input and identifies the role of each file and its relationships to other files. Specifically, it analyzes classes and functions within the code, identifying their usage and dependencies. This process generates metadata for the code structure as output.
[0248] Step 2:
[0249] The server extracts the overall design philosophy of the information processing unit based on the generated metadata. The metadata generated in step 1 is used as input. In this step, design patterns are detected and the relationships between modules are analyzed. Specifically, it determines whether the Model-View-Controller (MVC) pattern is adopted and outputs related information based on that.
[0250] Step 3:
[0251] The server uses the extracted design philosophy and metadata to automatically generate a reduced-size program for learning that retains the core functionality of the project. The input for this step includes the design information extracted in step 2. Specifically, it selects and simplifies the minimum necessary code representing the core functionality, and then assembles the learning program based on this selection. The output is a reduced-size program adapted for educational purposes.
[0252] Step 4:
[0253] The terminal provides interactive instructional materials using a reduced-size learning program received from the server. The generated reduced-size program is used as input. These materials include step-by-step guides and executable exercises to facilitate new participants. Specific actions include the ability for users to run the reduced-size program and try out the database connection procedure. Output provides feedback tailored to the user's level of understanding.
[0254] Step 5:
[0255] Users use prompts to enter questions about the project. Once a prompt is entered, it becomes input data, helping the server generate appropriate answers. For example, if a user asks, "How is the database connection implemented?", the server will output a code example reflecting the design philosophy, along with its context. This answer serves as documentation to support an overall understanding of the project.
[0256] (Application Example 1)
[0257] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0258] Managing software and training engineers for conventional factory robots required a significant amount of time and effort, making it difficult for engineers to quickly understand new systems and robots. Therefore, there is a need to provide efficient and systematic training support, creating an environment where engineers can rapidly acquire knowledge.
[0259] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0260] This invention includes a server that automatically scans all code and identifies the function and relationships of each program file, a server that extracts the overall design concept based on the metadata of the analyzed code, and a server that generates simplified educational code that is easy to understand while maintaining core functionality. This enables efficient management of factory robot software and rapid and effective educational support for engineers.
[0261] "Code" refers to a string of characters or statements that describe instructions for executing a computer program.
[0262] A "program file" is a digital file containing code that gives instructions to a computer.
[0263] "Function" refers to the ability of a system or program to perform a specific action or task.
[0264] "Relevance" is a concept that describes the relationship between multiple elements or pieces of information that influence each other.
[0265] "Metadata" refers to data that contains information about data, describing the characteristics and attributes of specific data.
[0266] "Design concept" refers to the fundamental ideas and principles that determine the overall structure of a system or product.
[0267] "Core functions" refer to the primary functions of a system or device that play the most important role in its operation.
[0268] "Simplified educational code" is a simplified version of code that extracts only the essential elements to help learners understand the basic operation and principles of a program.
[0269] A "technician" refers to a person who possesses technical knowledge and experience and performs specialized or practical tasks.
[0270] "Interactive" refers to a feature that involves interaction with the user and has the ability to respond dynamically.
[0271] "Learning support" refers to assistance and support provided to enhance the effectiveness of acquiring specific skills or knowledge.
[0272] To implement this system, terminals primarily function as the interface between the server and the user. The server, using Apache Server and Python, automatically analyzes all the code related to the control of the factory robots, identifying the function and relationships of individual program files. The analysis results are compiled as metadata and used to extract the overall system design concept.
[0273] Based on this metadata, the server automatically generates a simplified educational version of the code that maintains core functionality, making it easier for new participants to learn. This simplified code is then used as an interactive tutorial on a device, allowing technicians to implement it on the spot. This tutorial provides direct feedback to technicians through wearable devices such as smart glasses, supporting rapid and effective learning.
[0274] As a concrete example, when an engineer asks, "How is stopping achieved in a parts transport robot?", the server extracts relevant design concepts and code blocks from metadata and generates an answer along with the design background and implementation method. This creates an environment where engineers can immediately learn by testing on an actual system.
[0275] Examples of prompt statements for a generative AI model are as follows:
[0276] "We want to analyze the software code of factory robots and extract specific operation design patterns. Then, we need to figure out how to automatically generate interactive tutorial code to support the learning of new engineers."
[0277] This configuration allows the system to effectively and efficiently manage and provide training support for factory robot software.
[0278] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0279] Step 1:
[0280] The server takes the entire codebase of the factory robots as input and performs an automated scan using Apache Server and Python. Here, it analyzes each program file in the codebase and processes the data to identify their functions and relationships. The output is metadata for each program file.
[0281] Step 2:
[0282] The server performs calculations to extract the overall design concepts based on the metadata generated in Step 1. Specifically, it identifies the relationships between modules and common design patterns. This process uses Python libraries such as NetworkX to visualize the relationships. As output, detailed metadata containing the design concepts is generated.
[0283] Step 3:
[0284] The server automatically generates a simplified version of the educational code that maintains the core functions using detailed metadata. Metadata including design concepts is used as input, and the output is code simplified for new participants. This simplified code contains important code fragments selected to aid understanding.
[0285] Step 4:
[0286] The terminal receives the simplified educational code generated by the server and provides an interactive tutorial that supports learning through interaction with the user. The input is the simplified code, and as output, engineers can learn while experiencing specific operation procedures and control logic. Wearable devices such as smart glasses are used for this operation.
[0287] Step 5:
[0288] The user inputs specific questions or queries (e.g., "How is the stop operation realized with the part transfer robot?") into the terminal. The server extracts relevant design concepts and code blocks from the analyzed metadata based on the input query and generates a specific answer. This answer also includes the design background and implementation method. The output is returned to the user, and the user can deepen their actual operation and understanding based on this information.
[0289] Furthermore, an emotion engine for estimating the user's emotion may be combined. That is, the specific processing unit 290 may estimate the user's emotion using the emotion recognition model 59 and perform specific processing using the user's emotion.
[0290] The present invention is a system that reduces dependence on specific engineers or vendors and improves project management and learning by recognizing the user's emotion and using it to improve system interaction. Hereinafter, specific embodiments of the system will be described.
[0291] In addition to traditional project scanning and code metadata generation functions, the server implements an emotion engine to acquire emotional data from user interactions. This engine analyzes input questions and action data to identify basic emotional states such as joy, excitement, and confusion.
[0292] The server uses identified sentiment data to generate responses that align with the overall project design concept. For example, if a user is confused, it is designed to provide detailed and easy-to-understand explanations or step-by-step guides to automated processes.
[0293] The device has the ability to dynamically adjust the interactive tutorials provided by the server according to the user's emotional state. For example, if a user is feeling stressed about understanding the code, the learning process can be slowed down or additional materials can be provided.
[0294] For example, if a user shows signs of being overwhelmed by the interface, the server quickly detects this emotion using its emotion engine and switches to a simpler interface mode if necessary. The terminal can also provide explanations in a subdued tone to help the user learn in a relaxed state.
[0295] This enables comprehensive project management and learning experiences that go beyond mere technical support by providing user-centric interactions, resulting in sustainable system operation.
[0296] The following describes the processing flow.
[0297] Step 1:
[0298] The server automatically scans all the software code of the project, identifies the roles and relationships of each file, and generates metadata. This metadata is stored in the internal data storage and used for subsequent processing.
[0299] Step 2:
[0300] The server passes the questions and interaction data from the user to the emotion engine and analyzes the user's emotional state in real time. The emotion engine performs text analysis and voice analysis, and classifies the user's emotions into categories such as joy, sadness, confusion, etc.
[0301] Step 3:
[0302] Based on the identified emotional state, the server generates a response adapted to the emotions shown by the user. This response includes explanations considering the overall design concept of the project and the provision of additional materials.
[0303] Step 4:
[0304] The terminal executes an interactive tutorial based on the response received from the server. Depending on the user's emotional state, the progress speed and amount of information of the tutorial are dynamically adjusted. For example, when the user is confused, detailed and careful explanations are added.
[0305] Step 5:
[0306] When the user provides feedback upon finishing the tutorial, the server analyzes the feedback and the user's emotional history and accumulates data for improving the system interface and response method.
[0307] Step 6:
[0308] The server continuously updates its system functions to meet the needs of new and existing users. It utilizes collected sentiment and feedback data to further improve the user experience in the future.
[0309] (Example 2)
[0310] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0311] In information processing systems, it is essential to quickly and accurately understand the roles and relationships of each program. Furthermore, effective training methods are needed to enable new participants to understand the system and contribute to the project promptly. Additionally, considering the emotions and feedback of individual users and improving the overall responsiveness and flexibility of the system are key challenges.
[0312] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0313] In this invention, the server includes means for automatically analyzing all programs and identifying the role and relationships of each program file; means for extracting the overall design philosophy of the information processing system based on the metadata of the analyzed programs; means for generating responses to user inquiries that are based on the overall design philosophy of the information processing system; means for identifying the user's emotions and dynamically adjusting the response based on those emotions; and means for providing interactive guidance that is in line with the user's emotional state. This enables rapid understanding of the role and relationships of each program, effective learning support for new participants, and flexible system operation that responds to the emotions of individual users.
[0314] A "program" is a set of code designed to perform a specific function or command.
[0315] "Analysis" is the process of thoroughly examining data and information to reveal its structure and elements.
[0316] "Metadata" refers to information related to the data itself, other than its structure and content, and usually describes the characteristics and attributes of that data.
[0317] An "information processing system" is a comprehensive system that includes a series of devices and software for collecting, storing, analyzing, generating, and transmitting data.
[0318] "Role" refers to one's position or responsibilities in order to fulfill a specific function or obligation.
[0319] "Relevance" refers to how certain things or concepts relate to others, indicating their interconnectedness.
[0320] "Design philosophy" refers to the fundamental ideas and guidelines that guide the construction of a system or product.
[0321] "Inquiry" refers to an action or question taken to seek certain information or answers.
[0322] "Response" refers to the information or reaction returned in response to an inquiry or request.
[0323] "Emotions" refer to various psychological states experienced within an individual, including joy, excitement, and confusion.
[0324] "Interactive instruction" refers to an educational process in which the user and the system interact with each other as it progresses.
[0325] This invention is implemented by an information processing system. Specific embodiments of the system based on prior information are described below.
[0326] The server uses software to automatically analyze programs, identifying the role and relationships of each program file. Based on the analysis results, the server generates metadata and performs data processing necessary to extract the overall design philosophy of the information processing system. This process involves an emotion engine and a database system, enabling the generation of appropriate responses based on user inquiries.
[0327] The terminal utilizes information provided by the server to enable interaction with the user. Dynamic adjustments are made to take into account the user's emotional state in order to provide interactive instruction. The terminal displays visual materials and text guides to enable the user to use the system smoothly.
[0328] For example, if a user shows confusion with a particular function of the system, the server uses an emotion engine to detect that emotion and quickly provides relevant information. This helps the user understand the system. An example of a prompt would be, "Suggest a method to provide visual aids along with step-by-step explanations when a user is confused about a particular function."
[0329] User feedback is continuously collected by the server and used to improve the system's functionality. In this way, the system can evolve flexibly and provide more adaptive and useful support to users.
[0330] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0331] Step 1:
[0332] The user inputs questions or actions into the system. This input includes text data and interactions such as clicks. This input data is used as base data for sentiment recognition processing on the server.
[0333] Step 2:
[0334] The server receives input data from the user and performs sentiment analysis using an emotion engine. This input includes user interaction data and text data. The server analyzes this data to identify emotional states such as joy, excitement, and confusion, and generates sentiment data as output.
[0335] Step 3:
[0336] The server generates responses based on identified sentiment data. As input, it processes the data, taking into account the sentiment data and the overall design philosophy of the information processing system. As output, it generates appropriate answers and guidance tailored to the user's emotions. Specifically, it provides detailed explanations to users who show confusion.
[0337] Step 4:
[0338] The terminal receives response data from the server and provides interactive instruction. Inputs include responses and guides generated by the server. The terminal dynamically adjusts the tutorial according to the user's emotions and provides user-appropriate displays and audio guidance as output. For example, it adjusts the pace of content presentation for a stressed user.
[0339] Step 5:
[0340] The device collects user reactions and feedback and sends it to the server. Input includes the user's ongoing usage and feedback data. Based on this, the server continuously improves the system's functionality and provides update information and improved features as output. Specifically, this feedback loop allows the system's functionality to evolve in a way that further enhances the user experience.
[0341] (Application Example 2)
[0342] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0343] A challenge in modern education and project management is the lack of interactive experiences that take user emotions into consideration. This can make learning and project progress difficult for new participants. Furthermore, the failure to dynamically adjust content in response to user emotional states can lead to decreased user comprehension and satisfaction.
[0344] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0345] In this invention, the server includes means for automatically scanning all program code and identifying the attributes and relationships of each code file, means for generating a system-wide design concept based on the metadata of the analyzed code, and means including an emotion recognition engine that recognizes the user's emotional state and adjusts the interaction accordingly. This enables interactive learning experiences and project management that take user emotions into consideration.
[0346] "Program code" is a set of documents that describe the instructions a computer can execute.
[0347] "Attributes" are pieces of information that describe the characteristics or properties of each element within program code.
[0348] "Relevance" is a concept that describes the interrelationships between different elements within program code.
[0349] "Metadata" refers to additional data that provides information about the code itself, including details about its design and structure.
[0350] A "design concept" refers to the fundamental design philosophy based on the overall structure and purpose of the system.
[0351] An "emotion recognition engine" is a combination of hardware or software used to detect and identify a user's emotions.
[0352] "Interaction" refers to the process or method by which a system and a user interact with each other.
[0353] This system is designed to provide user-responsive interactions in educational and project management settings. The server scans and analyzes program code, generates metadata, and detects user emotions using an emotion recognition engine. Emotion recognition utilizes cameras and microphones built into smartphones and smart glasses, while OpenCV and Google's speech recognition API are used for data analysis.
[0354] Once a user's emotions are identified, the server adjusts the content of the interaction based on those emotions. This process uses software such as Python and TensorFlow to dynamically change the difficulty and pace of the content. For example, if a user is feeling stressed, the learning progress can be slowed down and additional supplementary information can be provided.
[0355] For example, if a user is struggling with an intermediate-level question while progressing through the learning program, the system can detect this using its emotion recognition engine and provide a detailed visual guide to the problem, as well as play relaxing music. An example of a prompt for the generative AI model might be: "The user is struggling with an intermediate-level question. Provide supplementary information with a visual guide and play relaxing music in the background."
[0356] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0357] Step 1:
[0358] The server receives audio and video data from a smartphone or device as input. This data includes the user's facial expressions and voice tone, and after being analyzed using an emotion recognition engine, it generates the user's emotional state as output. In this process, OpenCV is used to extract facial features from the video data, and Google's speech recognition API is used to identify emotions from the audio data.
[0359] Step 2:
[0360] The server takes the user's emotional state, output by the emotion recognition engine, as input and processes the data based on that information to optimize the next interaction. Specifically, it uses Python to select and adjust appropriate educational content according to the type of emotion (e.g., anxiety, happiness, confusion, etc.) to determine the content of the interaction. As output, it generates the adjusted content information.
[0361] Step 3:
[0362] The terminal receives the adjusted content information sent from the server as input and displays appropriate content to the user. In doing so, it performs specific actions such as changing the screen display speed or adding supplementary explanations based on the user's emotions. As output, it provides visual and auditory feedback to the user.
[0363] Step 4:
[0364] The user reacts to the content provided on the device, and this reaction is sent back to the server as audio and video data. This allows the server to re-recognize the user's latest emotional state and generate prompts to continuously update the interaction content. This cycle dynamically optimizes the user's learning experience.
[0365] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0366] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0367] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart glasses 214.
[0368] [Third Embodiment]
[0369] Figure 5 shows an example of the configuration of the data processing system 310 according to the third embodiment.
[0370] As shown in Figure 5, the data processing system 310 includes a data processing device 12 and a headset terminal 314. An example of the data processing device 12 is a server.
[0371] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0372] The headset terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a display 343. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and display 343 are also connected to the bus 52.
[0373] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0374] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0375] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0376] Figure 6 shows an example of the main functions of the data processing device 12 and the headset terminal 314. As shown in Figure 6, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0377] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0378] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0379] In the headset terminal 314, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0380] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the headset terminal 314 will be referred to as the "terminal".
[0381] This invention is a system designed to reduce reliance on specific engineers or vendors in system development and to improve efficiency in project design and operation. Specific embodiments of the system are described below.
[0382] The server automatically scans all of the project's software code, identifying the role and relationships of each code file. This allows it to understand the overall structure of the code and save it as metadata. Next, the server uses this metadata to extract the overall design concept of the project. This includes identifying the relationships between modules and design patterns.
[0383] Furthermore, based on the analysis results, the server automatically generates a reduced version of the project code for educational purposes, while maintaining its core functionality. This reduced code is designed to allow new project participants to quickly grasp the basic concepts. Terminals use this reduced code to publish interactive tutorials and support the learning of new participants.
[0384] When a user enters a formal question about the project, the server generates an appropriate answer. This answer is based on the overall design concept of the project and includes explanations of specific code blocks and architectural patterns used.
[0385] As a concrete example, consider a case where an organization assigns a new employee to a project. The user asks, "How is the database connection implemented?" The server, based on data analyzed from the entire system, presents the appropriate code segment and background information regarding its design. Next, through a tutorial provided on the terminal, the new participant can easily understand how the database connection works and try it out hands-on. In this way, the present invention enables smooth project execution without relying on specific engineers.
[0386] The following describes the processing flow.
[0387] Step 1:
[0388] The server detects all source code within the project folder and sequentially scans each file to analyze the code structure, functions, and dependencies. The analysis results are saved as metadata in the internal data storage.
[0389] Step 2:
[0390] The server uses metadata to extract the overall design concepts of the project. Specifically, it identifies dependencies between modules and the design patterns used, and generates an architecture map of the project.
[0391] Step 3:
[0392] The server analyzes the project's extensive source codebase and generates a reduced version of the code for educational purposes. This code is simplified for easier understanding while retaining the project's core functionality.
[0393] Step 4:
[0394] When a user enters a question about a project, the server generates an answer based on the design concept and code metadata. This includes descriptions of relevant code segments and the design context.
[0395] Step 5:
[0396] The terminal runs an interactive tutorial using the generated, reduced-size code. The tutorial guides users step-by-step on how to run and verify the code, supporting new participants in their learning process.
[0397] Step 6:
[0398] When a user completes a tutorial and submits feedback, the server analyzes this information and uses it to improve future code analysis and tutorials.
[0399] (Example 1)
[0400] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0401] Traditional system development often involved a high degree of reliance on specific engineers or vendors, leading to inefficient project management and training of new participants. As a result, understanding the overall project structure required significant time and effort, making it difficult for new participants to quickly adapt. Furthermore, responses to project-related questions and changes were sometimes delayed.
[0402] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0403] In this invention, the server includes means for automatically inspecting software code and identifying the functions and relationships of each program file, means for extracting the overall design philosophy of the information processing device based on the analyzed program information, and means for generating a reduced-size learning program that retains the core functions of the project while aiding understanding. This enables rapid adaptation of new participants and efficient progress of the entire project.
[0404] "Software code" is a set of instructions written in a programming language to cause a computer to perform specific actions.
[0405] A "program file" is a file-type data file in which software code is written and stored.
[0406] "Function and relationship" refers to the specific role a program file plays and its relationship to other program files and the system as a whole.
[0407] "Analyzed program information" refers to data about the roles and structure obtained by analyzing software code.
[0408] "The design philosophy of an information processing device" refers to the design concepts and policies based on the overall system architecture and design patterns.
[0409] A "reduced learning program" is a simplified version of a project that retains its essential functions and is intended for learning and education.
[0410] This invention is a system that reduces reliance on specific engineers or vendors and supports the smooth progress of projects. The system is configured as follows:
[0411] The server plays a crucial role in information processing. First, the server automatically scans all the software code in the project, identifying the function and relationships of each program file. This process utilizes advanced analysis algorithms and storage databases. Next, based on the analyzed program information, the server extracts the overall design philosophy of the information processing system. This clarifies the overall picture of the project, making it easier for new participants to understand.
[0412] Furthermore, the server leverages the extracted design philosophy to generate a reduced-size learning program that reflects the core functions of the project. This program is designed to optimize learning efficiency. This reduced-size program can be deployed using programming education environments and simulation software.
[0413] The terminal provides interactive instructional materials using a generated, scaled-down version of the learning program. The terminal features an interactive user interface, allowing new participants to learn the project's fundamental concepts through hands-on experience. This interactive learning environment enables new participants to adapt to the project quickly.
[0414] The system includes a feature that allows users to input questions about the project. When a user enters a question, the server automatically generates an appropriate answer based on analyzed code information and design principles. This answer includes specific code examples and the background of the design, helping to deepen the user's understanding.
[0415] As a concrete example, suppose a user asks, "How is the database connection implemented?" In this case, the server provides the appropriate code segment and its design context. Additionally, interactive learning materials are provided via the terminal, guiding the user through the specific operation methods.
[0416] An example of a prompt is, "How is the database connection implemented?". In response to this prompt, the generative AI model will provide appropriate design information and code examples.
[0417] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0418] Step 1:
[0419] The server automatically scans all software code within the project. It receives source code files as input and identifies the role of each file and its relationships to other files. Specifically, it analyzes classes and functions within the code, identifying their usage and dependencies. This process generates metadata for the code structure as output.
[0420] Step 2:
[0421] The server extracts the overall design philosophy of the information processing unit based on the generated metadata. The metadata generated in step 1 is used as input. In this step, design patterns are detected and the relationships between modules are analyzed. Specifically, it determines whether the Model-View-Controller (MVC) pattern is adopted and outputs related information based on that.
[0422] Step 3:
[0423] The server uses the extracted design philosophy and metadata to automatically generate a reduced-size program for learning that retains the core functionality of the project. The input for this step includes the design information extracted in step 2. Specifically, it selects and simplifies the minimum necessary code representing the core functionality, and then assembles the learning program based on this selection. The output is a reduced-size program adapted for educational purposes.
[0424] Step 4:
[0425] The terminal provides interactive instructional materials using a reduced-size learning program received from the server. The generated reduced-size program is used as input. These materials include step-by-step guides and executable exercises to facilitate new participants. Specific actions include the ability for users to run the reduced-size program and try out the database connection procedure. Output provides feedback tailored to the user's level of understanding.
[0426] Step 5:
[0427] Users use prompts to enter questions about the project. Once a prompt is entered, it becomes input data, helping the server generate appropriate answers. For example, if a user asks, "How is the database connection implemented?", the server will output a code example reflecting the design philosophy, along with its context. This answer serves as documentation to support an overall understanding of the project.
[0428] (Application Example 1)
[0429] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0430] Managing software and training engineers for conventional factory robots required a significant amount of time and effort, making it difficult for engineers to quickly understand new systems and robots. Therefore, there is a need to provide efficient and systematic training support, creating an environment where engineers can rapidly acquire knowledge.
[0431] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0432] This invention includes a server that automatically scans all code and identifies the function and relationships of each program file, a server that extracts the overall design concept based on the metadata of the analyzed code, and a server that generates simplified educational code that is easy to understand while maintaining core functionality. This enables efficient management of factory robot software and rapid and effective educational support for engineers.
[0433] "Code" refers to a string of characters or statements that describe instructions for executing a computer program.
[0434] A "program file" is a digital file containing code that gives instructions to a computer.
[0435] "Function" refers to the ability of a system or program to perform a specific action or task.
[0436] "Relevance" is a concept that describes the relationship between multiple elements or pieces of information that influence each other.
[0437] "Metadata" refers to data that contains information about data, describing the characteristics and attributes of specific data.
[0438] "Design concept" refers to the fundamental ideas and principles that determine the overall structure of a system or product.
[0439] "Core functions" refer to the primary functions of a system or device that play the most important role in its operation.
[0440] "Simplified educational code" is a simplified version of code that extracts only the essential elements to help learners understand the basic operation and principles of a program.
[0441] A "technician" refers to a person who possesses technical knowledge and experience and performs specialized or practical tasks.
[0442] "Interactive" refers to a feature that involves interaction with the user and has the ability to respond dynamically.
[0443] "Learning support" refers to assistance and support provided to enhance the effectiveness of acquiring specific skills or knowledge.
[0444] To implement this system, terminals primarily function as the interface between the server and the user. The server, using Apache Server and Python, automatically analyzes all the code related to the control of the factory robots, identifying the function and relationships of individual program files. The analysis results are compiled as metadata and used to extract the overall system design concept.
[0445] Based on this metadata, the server automatically generates a simplified educational version of the code that maintains core functionality, making it easier for new participants to learn. This simplified code is then used as an interactive tutorial on a device, allowing technicians to implement it on the spot. This tutorial provides direct feedback to technicians through wearable devices such as smart glasses, supporting rapid and effective learning.
[0446] As a concrete example, when an engineer asks, "How is stopping achieved in a parts transport robot?", the server extracts relevant design concepts and code blocks from metadata and generates an answer along with the design background and implementation method. This creates an environment where engineers can immediately learn by testing on an actual system.
[0447] Examples of prompt statements for a generative AI model are as follows:
[0448] "We want to analyze the software code of factory robots and extract specific operation design patterns. Then, we need to figure out how to automatically generate interactive tutorial code to support the learning of new engineers."
[0449] This configuration allows the system to effectively and efficiently manage and provide training support for factory robot software.
[0450] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0451] Step 1:
[0452] The server takes the entire codebase of the factory robots as input and performs an automated scan using Apache Server and Python. Here, it analyzes each program file in the codebase and processes the data to identify their functions and relationships. The output is metadata for each program file.
[0453] Step 2:
[0454] The server performs calculations to extract the overall design concepts based on the metadata generated in Step 1. Specifically, it identifies the relationships between modules and common design patterns. This process uses Python libraries such as NetworkX to visualize the relationships. As output, detailed metadata containing the design concepts is generated.
[0455] Step 3:
[0456] The server automatically generates a simplified educational version of the code, while maintaining core functionality, using detailed metadata. The input is metadata including design concepts, and the output is simplified code for new participants. This simplified code includes key code snippets selected to aid understanding.
[0457] Step 4:
[0458] The terminal receives simplified educational code generated by the server and provides an interactive tutorial that supports learning through interaction with the user. The input is the simplified code, and the output allows the engineer to learn by experiencing specific operating procedures and control logic. Wearable devices such as smart glasses are used for this operation.
[0459] Step 5:
[0460] The user enters a specific question or query (e.g., "How is stopping achieved in a parts transport robot?") into the terminal. Based on the entered query, the server extracts relevant design concepts and code blocks from the parsed metadata and generates a specific answer. This answer includes the design background and implementation method. The output is returned to the user, who can use this information to deepen their understanding and perform actual operations.
[0461] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0462] This invention is a system that recognizes user emotions and utilizes them to improve system interactions, thereby reducing reliance on specific engineers or vendors and streamlining project management and learning. Specific embodiments of the system are described below.
[0463] In addition to traditional project scanning and code metadata generation functions, the server implements an emotion engine to acquire emotional data from user interactions. This engine analyzes input questions and action data to identify basic emotional states such as joy, excitement, and confusion.
[0464] The server uses identified sentiment data to generate responses that align with the overall project design concept. For example, if a user is confused, it is designed to provide detailed and easy-to-understand explanations or step-by-step guides to automated processes.
[0465] The device has the ability to dynamically adjust the interactive tutorials provided by the server according to the user's emotional state. For example, if a user is feeling stressed about understanding the code, the learning process can be slowed down or additional materials can be provided.
[0466] For example, if a user shows signs of being overwhelmed by the interface, the server quickly detects this emotion using its emotion engine and switches to a simpler interface mode if necessary. The terminal can also provide explanations in a subdued tone to help the user learn in a relaxed state.
[0467] This enables comprehensive project management and learning experiences that go beyond mere technical support by providing user-centric interactions, resulting in sustainable system operation.
[0468] The following describes the processing flow.
[0469] Step 1:
[0470] The server automatically scans all of the project's software code, identifying the role and relationships of each file and generating metadata. This metadata is stored in internal data storage and used for subsequent processing.
[0471] Step 2:
[0472] The server passes user questions and interaction data to the emotion engine, which analyzes the user's emotional state in real time. The emotion engine performs text and voice analysis to classify the user's emotions into categories such as joy, sadness, and confusion.
[0473] Step 3:
[0474] The server generates a response adapted to the user's emotions based on the identified emotional state. This response includes explanations that take into account the overall project design concept and provides additional information.
[0475] Step 4:
[0476] The device runs an interactive tutorial based on responses received from the server. The tutorial's pace and amount of information are dynamically adjusted according to the user's emotional state. For example, if the user appears confused, more detailed and thorough explanations are added.
[0477] Step 5:
[0478] When a user completes a tutorial and provides feedback, the server analyzes that feedback and the user's sentiment history to collect data for improving the system's interface and response methods.
[0479] Step 6:
[0480] The server continuously updates its system functions to meet the needs of new and existing users. It utilizes collected sentiment and feedback data to further improve the user experience in the future.
[0481] (Example 2)
[0482] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0483] In information processing systems, it is essential to quickly and accurately understand the roles and relationships of each program. Furthermore, effective training methods are needed to enable new participants to understand the system and contribute to the project promptly. Additionally, considering the emotions and feedback of individual users and improving the overall responsiveness and flexibility of the system are key challenges.
[0484] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0485] In this invention, the server includes means for automatically analyzing all programs and identifying the role and relationships of each program file; means for extracting the overall design philosophy of the information processing system based on the metadata of the analyzed programs; means for generating responses to user inquiries that are based on the overall design philosophy of the information processing system; means for identifying the user's emotions and dynamically adjusting the response based on those emotions; and means for providing interactive guidance that is in line with the user's emotional state. This enables rapid understanding of the role and relationships of each program, effective learning support for new participants, and flexible system operation that responds to the emotions of individual users.
[0486] A "program" is a set of code designed to perform a specific function or command.
[0487] "Analysis" is the process of thoroughly examining data and information to reveal its structure and elements.
[0488] "Metadata" refers to information related to the data itself, other than its structure and content, and usually describes the characteristics and attributes of that data.
[0489] An "information processing system" is a comprehensive system that includes a series of devices and software for collecting, storing, analyzing, generating, and transmitting data.
[0490] "Role" refers to one's position or responsibilities in order to fulfill a specific function or obligation.
[0491] "Relevance" refers to how certain things or concepts relate to others, indicating their interconnectedness.
[0492] "Design philosophy" refers to the fundamental ideas and guidelines that guide the construction of a system or product.
[0493] "Inquiry" refers to an action or question taken to seek certain information or answers.
[0494] "Response" refers to the information or reaction returned in response to an inquiry or request.
[0495] "Emotions" refer to various psychological states experienced within an individual, including joy, excitement, and confusion.
[0496] "Interactive instruction" refers to an educational process in which the user and the system interact with each other as it progresses.
[0497] This invention is implemented by an information processing system. Specific embodiments of the system based on prior information are described below.
[0498] The server uses software to automatically analyze programs, identifying the role and relationships of each program file. Based on the analysis results, the server generates metadata and performs data processing necessary to extract the overall design philosophy of the information processing system. This process involves an emotion engine and a database system, enabling the generation of appropriate responses based on user inquiries.
[0499] The terminal utilizes information provided by the server to enable interaction with the user. Dynamic adjustments are made to take into account the user's emotional state in order to provide interactive instruction. The terminal displays visual materials and text guides to enable the user to use the system smoothly.
[0500] For example, if a user shows confusion with a particular function of the system, the server uses an emotion engine to detect that emotion and quickly provides relevant information. This helps the user understand the system. An example of a prompt would be, "Suggest a method to provide visual aids along with step-by-step explanations when a user is confused about a particular function."
[0501] User feedback is continuously collected by the server and used to improve the system's functionality. In this way, the system can evolve flexibly and provide more adaptive and useful support to users.
[0502] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0503] Step 1:
[0504] The user inputs questions or actions into the system. This input includes text data and interactions such as clicks. This input data is used as base data for sentiment recognition processing on the server.
[0505] Step 2:
[0506] The server receives input data from the user and performs sentiment analysis using an emotion engine. This input includes user interaction data and text data. The server analyzes this data to identify emotional states such as joy, excitement, and confusion, and generates sentiment data as output.
[0507] Step 3:
[0508] The server generates responses based on identified sentiment data. As input, it processes the data, taking into account the sentiment data and the overall design philosophy of the information processing system. As output, it generates appropriate answers and guidance tailored to the user's emotions. Specifically, it provides detailed explanations to users who show confusion.
[0509] Step 4:
[0510] The terminal receives response data from the server and provides interactive instruction. Inputs include responses and guides generated by the server. The terminal dynamically adjusts the tutorial according to the user's emotions and provides user-appropriate displays and audio guidance as output. For example, it adjusts the pace of content presentation for a stressed user.
[0511] Step 5:
[0512] The device collects user reactions and feedback and sends it to the server. Input includes the user's ongoing usage and feedback data. Based on this, the server continuously improves the system's functionality and provides update information and improved features as output. Specifically, this feedback loop allows the system's functionality to evolve in a way that further enhances the user experience.
[0513] (Application Example 2)
[0514] Next, we will explain Application Example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0515] A challenge in modern education and project management is the lack of interactive experiences that take user emotions into consideration. This can make learning and project progress difficult for new participants. Furthermore, the failure to dynamically adjust content in response to user emotional states can lead to decreased user comprehension and satisfaction.
[0516] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0517] In this invention, the server includes means for automatically scanning all program code and identifying the attributes and relationships of each code file, means for generating a system-wide design concept based on the metadata of the analyzed code, and means including an emotion recognition engine that recognizes the user's emotional state and adjusts the interaction accordingly. This enables interactive learning experiences and project management that take user emotions into consideration.
[0518] "Program code" is a set of documents that describe the instructions a computer can execute.
[0519] "Attributes" are pieces of information that describe the characteristics or properties of each element within program code.
[0520] "Relevance" is a concept that describes the interrelationships between different elements within program code.
[0521] "Metadata" refers to additional data that provides information about the code itself, including details about its design and structure.
[0522] A "design concept" refers to the fundamental design philosophy based on the overall structure and purpose of the system.
[0523] An "emotion recognition engine" is a combination of hardware or software used to detect and identify a user's emotions.
[0524] "Interaction" refers to the process or method by which a system and a user interact with each other.
[0525] This system is designed to provide user-responsive interactions in educational and project management settings. The server scans and analyzes program code, generates metadata, and detects user emotions using an emotion recognition engine. Emotion recognition utilizes cameras and microphones built into smartphones and smart glasses, while OpenCV and Google's speech recognition API are used for data analysis.
[0526] Once a user's emotions are identified, the server adjusts the content of the interaction based on those emotions. This process uses software such as Python and TensorFlow to dynamically change the difficulty and pace of the content. For example, if a user is feeling stressed, the learning progress can be slowed down and additional supplementary information can be provided.
[0527] For example, if a user is struggling with an intermediate-level question while progressing through the learning program, the system can detect this using its emotion recognition engine and provide a detailed visual guide to the problem, as well as play relaxing music. An example of a prompt for the generative AI model might be: "The user is struggling with an intermediate-level question. Provide supplementary information with a visual guide and play relaxing music in the background."
[0528] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0529] Step 1:
[0530] The server receives audio and video data from a smartphone or device as input. This data includes the user's facial expressions and voice tone, and after being analyzed using an emotion recognition engine, it generates the user's emotional state as output. In this process, OpenCV is used to extract facial features from the video data, and Google's speech recognition API is used to identify emotions from the audio data.
[0531] Step 2:
[0532] The server takes the user's emotional state, output by the emotion recognition engine, as input and processes the data based on that information to optimize the next interaction. Specifically, it uses Python to select and adjust appropriate educational content according to the type of emotion (e.g., anxiety, happiness, confusion, etc.) to determine the content of the interaction. As output, it generates the adjusted content information.
[0533] Step 3:
[0534] The terminal receives the adjusted content information sent from the server as input and displays appropriate content to the user. In doing so, it performs specific actions such as changing the screen display speed or adding supplementary explanations based on the user's emotions. As output, it provides visual and auditory feedback to the user.
[0535] Step 4:
[0536] The user reacts to the content provided on the device, and this reaction is sent back to the server as audio and video data. This allows the server to re-recognize the user's latest emotional state and generate prompts to continuously update the interaction content. This cycle dynamically optimizes the user's learning experience.
[0537] The specific processing unit 290 transmits the result of the specific processing to the headset terminal 314. In the headset terminal 314, the control unit 46A causes the speaker 240 and display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0538] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0539] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and specific processing may also be performed by the headset terminal 314.
[0540] [Fourth Embodiment]
[0541] Figure 7 shows an example of the configuration of the data processing system 410 according to the fourth embodiment.
[0542] As shown in Figure 7, the data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[0543] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0544] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a controlled object 443. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and controlled object 443 are also connected to the bus 52.
[0545] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0546] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0547] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0548] The controlled object 443 includes a display device, LEDs in the eyes, and motors that drive the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the robot 414's emotions can be expressed by controlling these motors. Furthermore, the robot 414's facial expressions can also be expressed by controlling the illumination state of the LEDs in its eyes.
[0549] Figure 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Figure 8, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0550] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0551] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0552] In robot 414, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0553] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0554] This invention is a system designed to reduce reliance on specific engineers or vendors in system development and to improve efficiency in project design and operation. Specific embodiments of the system are described below.
[0555] The server automatically scans all of the project's software code, identifying the role and relationships of each code file. This allows it to understand the overall structure of the code and save it as metadata. Next, the server uses this metadata to extract the overall design concept of the project. This includes identifying the relationships between modules and design patterns.
[0556] Furthermore, based on the analysis results, the server automatically generates a reduced version of the project code for educational purposes, while maintaining its core functionality. This reduced code is designed to allow new project participants to quickly grasp the basic concepts. Terminals use this reduced code to publish interactive tutorials and support the learning of new participants.
[0557] When a user enters a formal question about the project, the server generates an appropriate answer. This answer is based on the overall design concept of the project and includes explanations of specific code blocks and architectural patterns used.
[0558] As a concrete example, consider a case where an organization assigns a new employee to a project. The user asks, "How is the database connection implemented?" The server, based on data analyzed from the entire system, presents the appropriate code segment and background information regarding its design. Next, through a tutorial provided on the terminal, the new participant can easily understand how the database connection works and try it out hands-on. In this way, the present invention enables smooth project execution without relying on specific engineers.
[0559] The following describes the processing flow.
[0560] Step 1:
[0561] The server detects all source code within the project folder and sequentially scans each file to analyze the code structure, functions, and dependencies. The analysis results are saved as metadata in the internal data storage.
[0562] Step 2:
[0563] The server uses metadata to extract the overall design concepts of the project. Specifically, it identifies dependencies between modules and the design patterns used, and generates an architecture map of the project.
[0564] Step 3:
[0565] The server analyzes the project's extensive source codebase and generates a reduced version of the code for educational purposes. This code is simplified for easier understanding while retaining the project's core functionality.
[0566] Step 4:
[0567] When a user enters a question about a project, the server generates an answer based on the design concept and code metadata. This includes descriptions of relevant code segments and the design context.
[0568] Step 5:
[0569] The terminal runs an interactive tutorial using the generated, reduced-size code. The tutorial guides users step-by-step on how to run and verify the code, supporting new participants in their learning process.
[0570] Step 6:
[0571] When a user completes a tutorial and submits feedback, the server analyzes this information and uses it to improve future code analysis and tutorials.
[0572] (Example 1)
[0573] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0574] Traditional system development often involved a high degree of reliance on specific engineers or vendors, leading to inefficient project management and training of new participants. As a result, understanding the overall project structure required significant time and effort, making it difficult for new participants to quickly adapt. Furthermore, responses to project-related questions and changes were sometimes delayed.
[0575] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0576] In this invention, the server includes means for automatically inspecting software code and identifying the functions and relationships of each program file, means for extracting the overall design philosophy of the information processing device based on the analyzed program information, and means for generating a reduced-size learning program that retains the core functions of the project while aiding understanding. This enables rapid adaptation of new participants and efficient progress of the entire project.
[0577] "Software code" is a set of instructions written in a programming language to cause a computer to perform specific actions.
[0578] A "program file" is a file-type data file in which software code is written and stored.
[0579] "Function and relationship" refers to the specific role a program file plays and its relationship to other program files and the system as a whole.
[0580] "Analyzed program information" refers to data about the roles and structure obtained by analyzing software code.
[0581] "The design philosophy of an information processing device" refers to the design concepts and policies based on the overall system architecture and design patterns.
[0582] A "reduced learning program" is a simplified version of a project that retains its essential functions and is intended for learning and education.
[0583] This invention is a system that reduces reliance on specific engineers or vendors and supports the smooth progress of projects. The system is configured as follows:
[0584] The server plays a crucial role in information processing. First, the server automatically scans all the software code in the project, identifying the function and relationships of each program file. This process utilizes advanced analysis algorithms and storage databases. Next, based on the analyzed program information, the server extracts the overall design philosophy of the information processing system. This clarifies the overall picture of the project, making it easier for new participants to understand.
[0585] Furthermore, the server leverages the extracted design philosophy to generate a reduced-size learning program that reflects the core functions of the project. This program is designed to optimize learning efficiency. This reduced-size program can be deployed using programming education environments and simulation software.
[0586] The terminal provides interactive instructional materials using a generated, scaled-down version of the learning program. The terminal features an interactive user interface, allowing new participants to learn the project's fundamental concepts through hands-on experience. This interactive learning environment enables new participants to adapt to the project quickly.
[0587] The system includes a feature that allows users to input questions about the project. When a user enters a question, the server automatically generates an appropriate answer based on analyzed code information and design principles. This answer includes specific code examples and the background of the design, helping to deepen the user's understanding.
[0588] As a concrete example, suppose a user asks, "How is the database connection implemented?" In this case, the server provides the appropriate code segment and its design context. Additionally, interactive learning materials are provided via the terminal, guiding the user through the specific operation methods.
[0589] An example of a prompt is, "How is the database connection implemented?". In response to this prompt, the generative AI model will provide appropriate design information and code examples.
[0590] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0591] Step 1:
[0592] The server automatically scans all software code within the project. It receives source code files as input and identifies the role of each file and its relationships to other files. Specifically, it analyzes classes and functions within the code, identifying their usage and dependencies. This process generates metadata for the code structure as output.
[0593] Step 2:
[0594] The server extracts the overall design philosophy of the information processing unit based on the generated metadata. The metadata generated in step 1 is used as input. In this step, design patterns are detected and the relationships between modules are analyzed. Specifically, it determines whether the Model-View-Controller (MVC) pattern is adopted and outputs related information based on that.
[0595] Step 3:
[0596] The server uses the extracted design philosophy and metadata to automatically generate a reduced-size program for learning that retains the core functionality of the project. The input for this step includes the design information extracted in step 2. Specifically, it selects and simplifies the minimum necessary code representing the core functionality, and then assembles the learning program based on this selection. The output is a reduced-size program adapted for educational purposes.
[0597] Step 4:
[0598] The terminal provides interactive instructional materials using a reduced-size learning program received from the server. The generated reduced-size program is used as input. These materials include step-by-step guides and executable exercises to facilitate new participants. Specific actions include the ability for users to run the reduced-size program and try out the database connection procedure. Output provides feedback tailored to the user's level of understanding.
[0599] Step 5:
[0600] Users use prompts to enter questions about the project. Once a prompt is entered, it becomes input data, helping the server generate appropriate answers. For example, if a user asks, "How is the database connection implemented?", the server will output a code example reflecting the design philosophy, along with its context. This answer serves as documentation to support an overall understanding of the project.
[0601] (Application Example 1)
[0602] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0603] Managing software and training engineers for conventional factory robots required a significant amount of time and effort, making it difficult for engineers to quickly understand new systems and robots. Therefore, there is a need to provide efficient and systematic training support, creating an environment where engineers can rapidly acquire knowledge.
[0604] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0605] This invention includes a server that automatically scans all code and identifies the function and relationships of each program file, a server that extracts the overall design concept based on the metadata of the analyzed code, and a server that generates simplified educational code that is easy to understand while maintaining core functionality. This enables efficient management of factory robot software and rapid and effective educational support for engineers.
[0606] "Code" refers to a string of characters or statements that describe instructions for executing a computer program.
[0607] A "program file" is a digital file containing code that gives instructions to a computer.
[0608] "Function" refers to the ability of a system or program to perform a specific action or task.
[0609] "Relevance" is a concept that describes the relationship between multiple elements or pieces of information that influence each other.
[0610] "Metadata" refers to data that contains information about data, describing the characteristics and attributes of specific data.
[0611] "Design concept" refers to the fundamental ideas and principles that determine the overall structure of a system or product.
[0612] "Core functions" refer to the primary functions of a system or device that play the most important role in its operation.
[0613] "Simplified educational code" is a simplified version of code that extracts only the essential elements to help learners understand the basic operation and principles of a program.
[0614] A "technician" refers to a person who possesses technical knowledge and experience and performs specialized or practical tasks.
[0615] "Interactive" refers to a feature that involves interaction with the user and has the ability to respond dynamically.
[0616] "Learning support" refers to assistance and support provided to enhance the effectiveness of acquiring specific skills or knowledge.
[0617] To implement this system, terminals primarily function as the interface between the server and the user. The server, using Apache Server and Python, automatically analyzes all the code related to the control of the factory robots, identifying the function and relationships of individual program files. The analysis results are compiled as metadata and used to extract the overall system design concept.
[0618] Based on this metadata, the server automatically generates a simplified educational version of the code that maintains core functionality, making it easier for new participants to learn. This simplified code is then used as an interactive tutorial on a device, allowing technicians to implement it on the spot. This tutorial provides direct feedback to technicians through wearable devices such as smart glasses, supporting rapid and effective learning.
[0619] As a concrete example, when an engineer asks, "How is stopping achieved in a parts transport robot?", the server extracts relevant design concepts and code blocks from metadata and generates an answer along with the design background and implementation method. This creates an environment where engineers can immediately learn by testing on an actual system.
[0620] Examples of prompt statements for a generative AI model are as follows:
[0621] "We want to analyze the software code of factory robots and extract specific operation design patterns. Then, we need to figure out how to automatically generate interactive tutorial code to support the learning of new engineers."
[0622] This configuration allows the system to effectively and efficiently manage and provide training support for factory robot software.
[0623] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0624] Step 1:
[0625] The server takes the entire codebase of the factory robots as input and performs an automated scan using Apache Server and Python. Here, it analyzes each program file in the codebase and processes the data to identify their functions and relationships. The output is metadata for each program file.
[0626] Step 2:
[0627] The server performs calculations to extract the overall design concepts based on the metadata generated in Step 1. Specifically, it identifies the relationships between modules and common design patterns. This process uses Python libraries such as NetworkX to visualize the relationships. As output, detailed metadata containing the design concepts is generated.
[0628] Step 3:
[0629] The server automatically generates a simplified educational version of the code, while maintaining core functionality, using detailed metadata. The input is metadata including design concepts, and the output is simplified code for new participants. This simplified code includes key code snippets selected to aid understanding.
[0630] Step 4:
[0631] The terminal receives simplified educational code generated by the server and provides an interactive tutorial that supports learning through interaction with the user. The input is the simplified code, and the output allows the engineer to learn by experiencing specific operating procedures and control logic. Wearable devices such as smart glasses are used for this operation.
[0632] Step 5:
[0633] The user enters a specific question or query (e.g., "How is stopping achieved in a parts transport robot?") into the terminal. Based on the entered query, the server extracts relevant design concepts and code blocks from the parsed metadata and generates a specific answer. This answer includes the design background and implementation method. The output is returned to the user, who can use this information to deepen their understanding and perform actual operations.
[0634] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0635] This invention is a system that recognizes user emotions and utilizes them to improve system interactions, thereby reducing reliance on specific engineers or vendors and streamlining project management and learning. Specific embodiments of the system are described below.
[0636] In addition to traditional project scanning and code metadata generation functions, the server implements an emotion engine to acquire emotional data from user interactions. This engine analyzes input questions and action data to identify basic emotional states such as joy, excitement, and confusion.
[0637] The server uses identified sentiment data to generate responses that align with the overall project design concept. For example, if a user is confused, it is designed to provide detailed and easy-to-understand explanations or step-by-step guides to automated processes.
[0638] The device has the ability to dynamically adjust the interactive tutorials provided by the server according to the user's emotional state. For example, if a user is feeling stressed about understanding the code, the learning process can be slowed down or additional materials can be provided.
[0639] For example, if a user shows signs of being overwhelmed by the interface, the server quickly detects this emotion using its emotion engine and switches to a simpler interface mode if necessary. The terminal can also provide explanations in a subdued tone to help the user learn in a relaxed state.
[0640] This enables comprehensive project management and learning experiences that go beyond mere technical support by providing user-centric interactions, resulting in sustainable system operation.
[0641] The following describes the processing flow.
[0642] Step 1:
[0643] The server automatically scans all of the project's software code, identifying the role and relationships of each file and generating metadata. This metadata is stored in internal data storage and used for subsequent processing.
[0644] Step 2:
[0645] The server passes user questions and interaction data to the emotion engine, which analyzes the user's emotional state in real time. The emotion engine performs text and voice analysis to classify the user's emotions into categories such as joy, sadness, and confusion.
[0646] Step 3:
[0647] The server generates a response adapted to the user's emotions based on the identified emotional state. This response includes explanations that take into account the overall project design concept and provides additional information.
[0648] Step 4:
[0649] The device runs an interactive tutorial based on responses received from the server. The tutorial's pace and amount of information are dynamically adjusted according to the user's emotional state. For example, if the user appears confused, more detailed and thorough explanations are added.
[0650] Step 5:
[0651] When a user completes a tutorial and provides feedback, the server analyzes that feedback and the user's sentiment history to collect data for improving the system's interface and response methods.
[0652] Step 6:
[0653] The server continuously updates its system functions to meet the needs of new and existing users. It utilizes collected sentiment and feedback data to further improve the user experience in the future.
[0654] (Example 2)
[0655] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0656] In information processing systems, it is essential to quickly and accurately understand the roles and relationships of each program. Furthermore, effective training methods are needed to enable new participants to understand the system and contribute to the project promptly. Additionally, considering the emotions and feedback of individual users and improving the overall responsiveness and flexibility of the system are key challenges.
[0657] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0658] In this invention, the server includes means for automatically analyzing all programs and identifying the role and relationships of each program file; means for extracting the overall design philosophy of the information processing system based on the metadata of the analyzed programs; means for generating responses to user inquiries that are based on the overall design philosophy of the information processing system; means for identifying the user's emotions and dynamically adjusting the response based on those emotions; and means for providing interactive guidance that is in line with the user's emotional state. This enables rapid understanding of the role and relationships of each program, effective learning support for new participants, and flexible system operation that responds to the emotions of individual users.
[0659] A "program" is a set of code designed to perform a specific function or command.
[0660] "Analysis" is the process of thoroughly examining data and information to reveal its structure and elements.
[0661] "Metadata" refers to information related to the data itself, other than its structure and content, and usually describes the characteristics and attributes of that data.
[0662] An "information processing system" is a comprehensive system that includes a series of devices and software for collecting, storing, analyzing, generating, and transmitting data.
[0663] "Role" refers to one's position or responsibilities in order to fulfill a specific function or obligation.
[0664] "Relevance" refers to how certain things or concepts relate to others, indicating their interconnectedness.
[0665] "Design philosophy" refers to the fundamental ideas and guidelines that guide the construction of a system or product.
[0666] "Inquiry" refers to an action or question taken to seek certain information or answers.
[0667] "Response" refers to the information or reaction returned in response to an inquiry or request.
[0668] "Emotions" refer to various psychological states experienced within an individual, including joy, excitement, and confusion.
[0669] "Interactive instruction" refers to an educational process in which the user and the system interact with each other as it progresses.
[0670] This invention is implemented by an information processing system. Specific embodiments of the system based on prior information are described below.
[0671] The server uses software to automatically analyze programs, identifying the role and relationships of each program file. Based on the analysis results, the server generates metadata and performs data processing necessary to extract the overall design philosophy of the information processing system. This process involves an emotion engine and a database system, enabling the generation of appropriate responses based on user inquiries.
[0672] The terminal utilizes information provided by the server to enable interaction with the user. Dynamic adjustments are made to take into account the user's emotional state in order to provide interactive instruction. The terminal displays visual materials and text guides to enable the user to use the system smoothly.
[0673] For example, if a user shows confusion with a particular function of the system, the server uses an emotion engine to detect that emotion and quickly provides relevant information. This helps the user understand the system. An example of a prompt would be, "Suggest a method to provide visual aids along with step-by-step explanations when a user is confused about a particular function."
[0674] User feedback is continuously collected by the server and used to improve the system's functionality. In this way, the system can evolve flexibly and provide more adaptive and useful support to users.
[0675] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0676] Step 1:
[0677] The user inputs questions or actions into the system. This input includes text data and interactions such as clicks. This input data is used as base data for sentiment recognition processing on the server.
[0678] Step 2:
[0679] The server receives input data from the user and performs sentiment analysis using an emotion engine. This input includes user interaction data and text data. The server analyzes this data to identify emotional states such as joy, excitement, and confusion, and generates sentiment data as output.
[0680] Step 3:
[0681] The server generates responses based on identified sentiment data. As input, it processes the data, taking into account the sentiment data and the overall design philosophy of the information processing system. As output, it generates appropriate answers and guidance tailored to the user's emotions. Specifically, it provides detailed explanations to users who show confusion.
[0682] Step 4:
[0683] The terminal receives response data from the server and provides interactive instruction. Inputs include responses and guides generated by the server. The terminal dynamically adjusts the tutorial according to the user's emotions and provides user-appropriate displays and audio guidance as output. For example, it adjusts the pace of content presentation for a stressed user.
[0684] Step 5:
[0685] The device collects user reactions and feedback and sends it to the server. Input includes the user's ongoing usage and feedback data. Based on this, the server continuously improves the system's functionality and provides update information and improved features as output. Specifically, this feedback loop allows the system's functionality to evolve in a way that further enhances the user experience.
[0686] (Application Example 2)
[0687] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0688] A challenge in modern education and project management is the lack of interactive experiences that take user emotions into consideration. This can make learning and project progress difficult for new participants. Furthermore, the failure to dynamically adjust content in response to user emotional states can lead to decreased user comprehension and satisfaction.
[0689] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0690] In this invention, the server includes means for automatically scanning all program code and identifying the attributes and relationships of each code file, means for generating a system-wide design concept based on the metadata of the analyzed code, and means including an emotion recognition engine that recognizes the user's emotional state and adjusts the interaction accordingly. This enables interactive learning experiences and project management that take user emotions into consideration.
[0691] "Program code" is a set of documents that describe the instructions a computer can execute.
[0692] "Attributes" are pieces of information that describe the characteristics or properties of each element within program code.
[0693] "Relevance" is a concept that describes the interrelationships between different elements within program code.
[0694] "Metadata" refers to additional data that provides information about the code itself, including details about its design and structure.
[0695] A "design concept" refers to the fundamental design philosophy based on the overall structure and purpose of the system.
[0696] An "emotion recognition engine" is a combination of hardware or software used to detect and identify a user's emotions.
[0697] "Interaction" refers to the process or method by which a system and a user interact with each other.
[0698] This system is designed to provide user-responsive interactions in educational and project management settings. The server scans and analyzes program code, generates metadata, and detects user emotions using an emotion recognition engine. Emotion recognition utilizes cameras and microphones built into smartphones and smart glasses, while OpenCV and Google's speech recognition API are used for data analysis.
[0699] Once a user's emotions are identified, the server adjusts the content of the interaction based on those emotions. This process uses software such as Python and TensorFlow to dynamically change the difficulty and pace of the content. For example, if a user is feeling stressed, the learning progress can be slowed down and additional supplementary information can be provided.
[0700] For example, if a user is struggling with an intermediate-level question while progressing through the learning program, the system can detect this using its emotion recognition engine and provide a detailed visual guide to the problem, as well as play relaxing music. An example of a prompt for the generative AI model might be: "The user is struggling with an intermediate-level question. Provide supplementary information with a visual guide and play relaxing music in the background."
[0701] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0702] Step 1:
[0703] The server receives audio and video data from a smartphone or device as input. This data includes the user's facial expressions and voice tone, and after being analyzed using an emotion recognition engine, it generates the user's emotional state as output. In this process, OpenCV is used to extract facial features from the video data, and Google's speech recognition API is used to identify emotions from the audio data.
[0704] Step 2:
[0705] The server takes the user's emotional state, output by the emotion recognition engine, as input and processes the data based on that information to optimize the next interaction. Specifically, it uses Python to select and adjust appropriate educational content according to the type of emotion (e.g., anxiety, happiness, confusion, etc.) to determine the content of the interaction. As output, it generates the adjusted content information.
[0706] Step 3:
[0707] The terminal receives the adjusted content information sent from the server as input and displays appropriate content to the user. In doing so, it performs specific actions such as changing the screen display speed or adding supplementary explanations based on the user's emotions. As output, it provides visual and auditory feedback to the user.
[0708] Step 4:
[0709] The user reacts to the content provided on the device, and this reaction is sent back to the server as audio and video data. This allows the server to re-recognize the user's latest emotional state and generate prompts to continuously update the interaction content. This cycle dynamically optimizes the user's learning experience.
[0710] The specific processing unit 290 transmits the result of the specific processing to the robot 414. In the robot 414, the control unit 46A causes the speaker 240 and the controlled object 443 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0711] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0712] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the robot 414.
[0713] Furthermore, the emotion identification model 59, acting as an emotion engine, may determine the user's emotion according to a specific mapping. Specifically, the emotion identification model 59 may determine the user's emotion according to a specific mapping, which is an emotion map (see Figure 9). Similarly, the emotion identification model 59 may also determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.
[0714] Figure 9 shows an emotion map 400 in which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. The closer to the center of the concentric circles, the more primitive the emotions are located. Further out of the concentric circles, emotions representing states and actions arising from mental states are located. Emotion is a concept that includes feelings and mental states. On the left side of the concentric circles, emotions that are generally generated from reactions occurring in the brain are located. On the right side of the concentric circles, emotions that are generally induced by situational judgment are located. Above and below the concentric circles, emotions that are generally generated from reactions occurring in the brain and induced by situational judgment are located. In addition, the emotion of "pleasure" is located on the upper side of the concentric circles, and the emotion of "displeasure" is located on the lower side. Thus, in the emotion map 400, multiple emotions are mapped based on the structure in which emotions arise, and emotions that are likely to occur simultaneously are mapped close together.
[0715] These emotions are distributed at the 3 o'clock position on the Emotion Map 400, and usually fluctuate between feelings of security and anxiety. In the right half of the Emotion Map 400, situational awareness takes precedence over internal feelings, resulting in a calm impression.
[0716] The inside of the Emotion Map 400 represents inner thoughts, while the outside represents actions. Therefore, the further you go from the outside of the Emotion Map 400, the more visible (expressed in actions) your emotions become.
[0717] Here, human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. Similarly, in robots, cars, motorcycles, etc., emotions can be created based on various balances, such as posture and battery level. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. The emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on a system for analyzing brain physiological signals of speech emotion recognition and emotion, Tokushima University, doctoral dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map contains emotions belonging to a region called "response," where sensation is dominant. The right half of the emotion map contains emotions belonging to a region called "situation," where situational awareness is dominant.
[0718] The emotion map defines two emotions that promote learning. One is the emotion around the middle of the negative "repentance" and "reflection" on the situation side. In other words, it is when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is the emotion around the positive "desire" on the reaction side. In other words, it is when the robot has positive feelings such as "I want more" or "I want to know more."
[0719] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values representing each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple training data sets, which are combinations of user input and emotion values representing each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions located close together have similar values, as shown in the emotion map 900 in Figure 10. Figure 10 shows an example where multiple emotions such as "reassured," "calm," and "confident" have similar emotion values.
[0720] The above description primarily focuses on the functions of the data processing device 12 in relation to this disclosure. However, the system related to this disclosure is not necessarily implemented on a server. The system related to this disclosure may be implemented as a general information processing system. This disclosure may be implemented, for example, as a software program that runs on a personal computer or as an application that runs on a smartphone. The method related to this disclosure may be provided to users in SaaS (Software as a Service) format.
[0721] In the above embodiment, an example was given in which a specific process is performed by a single computer 22. However, the technology of this disclosure is not limited thereto, and a distributed processing of the specific process may be performed by multiple computers, including computer 22. For example, a data generation model 58 may be provided in an external device of the data processing device 12, and the external device may generate data according to the input data.
[0722] In the above embodiment, an example was given in which the specific processing program 56 is stored in the storage 32, but the technology of this disclosure is not limited thereto. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-temporary storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-temporary storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes specific processing according to the specific processing program 56.
[0723] Alternatively, the specific processing program 56 may be stored in a storage device such as a server connected to the data processing device 12 via the network 54, and the specific processing program 56 may be downloaded and installed on the computer 22 in response to a request from the data processing device 12.
[0724] Furthermore, it is not necessary to store the entirety of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store the entirety of the specific processing program 56 in the storage 32; it is acceptable to store only a portion of the specific processing program 56.
[0725] The following types of processors can be used as hardware resources to perform specific processing. Examples of processors include a CPU, a general-purpose processor that functions as a hardware resource to perform specific processing by executing software, i.e., a program. Other examples of processors include dedicated electrical circuits, such as FPGAs (Field-Programmable Gate Arrays), PLDs (Programmable Logic Devices), or ASICs (Application Specific Integrated Circuits), which have circuit configurations specifically designed to perform specific processing. All of these processors have built-in or connected memory, and all of them perform specific processing by using memory.
[0726] The hardware resource that performs a specific process may consist of one of these various processors, or it may consist of a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Alternatively, the hardware resource that performs a specific process may consist of a single processor.
[0727] Examples of configurations using a single processor include, firstly, a configuration in which one or more CPUs and software are combined to form a single processor, and this processor functions as a hardware resource that performs a specific process. Secondly, there is a configuration using a processor that realizes the functions of the entire system, including multiple hardware resources that perform a specific process, on a single IC chip, as exemplified by SoCs (System-on-a-chip). In this way, a specific process is realized using one or more of the above types of processors as hardware resources.
[0728] Furthermore, the hardware structure of these various processors can more specifically utilize electrical circuits that combine circuit elements such as semiconductor devices. Also, the specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps can be deleted, new steps added, or the processing order rearranged, as long as it does not deviate from the main purpose.
[0729] The descriptions and illustrations presented above are detailed explanations of the technical aspects of this disclosure and are merely examples of the technical aspects. For example, the above descriptions of the structure, function, operation, and effect are examples of the structure, function, operation, and effect of the technical aspects of this disclosure. Therefore, it goes without saying that you may delete unnecessary parts, add new elements, or replace elements in the descriptions and illustrations presented above, as long as you do not deviate from the essence of the technical aspects of this disclosure. Furthermore, in order to avoid confusion and facilitate understanding of the technical aspects of this disclosure, explanations of common technical knowledge and the like that do not require special explanation to enable the implementation of the technical aspects of this disclosure have been omitted from the descriptions and illustrations presented above.
[0730] All documents, patent applications, and technical standards described herein are incorporated by reference to the same extent as if each individual document, patent application, and technical standard were specifically and individually noted to be incorporated by reference.
[0731] The following is further disclosed regarding the embodiments described above.
[0732] (Claim 1)
[0733] A means to automatically scan all software code and identify the role and relationship of each code file,
[0734] A means of extracting the overall system design concept based on the metadata of the analyzed code,
[0735] A means of generating educational, reduced-size code that is easy to understand while retaining the core functionality of the project,
[0736] A system that includes a means of generating answers to user questions that take into account the overall design concept of the project.
[0737] (Claim 2)
[0738] The system according to claim 1, which provides an interactive tutorial for new participants based on the analyzed and extracted information.
[0739] (Claim 3)
[0740] The system according to claim 1, comprising means for continuously collecting user feedback and improving the system's functionality.
[0741] "Example 1"
[0742] (Claim 1)
[0743] A means for automatically inspecting software code and identifying the function and relationships of each program file,
[0744] A means of extracting the overall design philosophy of the information processing device based on the analyzed program information,
[0745] A means of generating a reduced-size learning program that helps understand the project while retaining its core functions,
[0746] A means of generating answers to user inquiries that take into account the overall design philosophy of the information processing device,
[0747] A means of providing interactive instructional materials that allow new participants to learn the basic concepts of the project while actually operating them,
[0748] A means of using a generative AI model to input prompt text and present information related to project design,
[0749] A system that includes this.
[0750] (Claim 2)
[0751] The system according to claim 1, which provides an interactive learning program for new participants based on the results of information analysis and extraction of design concepts.
[0752] (Claim 3)
[0753] The system according to claim 1, comprising means for continuously collecting user feedback and improving the functionality of the information processing device.
[0754] "Application Example 1"
[0755] (Claim 1)
[0756] A means to automatically scan all code and identify the function and relationships of each program file,
[0757] A means of extracting the overall design concept based on the metadata of the analyzed code,
[0758] A means of generating simplified educational code that is easy to understand while maintaining core functions,
[0759] A means of generating answers to user questions based on the overall design concept,
[0760] A means for extracting the motion control structure and adjustable control methods from the analyzed data,
[0761] A means of providing interactive learning support that allows users to learn specific operating procedures based on reduced-size code,
[0762] ...
[0763] A system that includes this.
[0764] (Claim 2)
[0765] The system according to claim 1, which provides practical educational support for new employees based on the analyzed and extracted information.
[0766] (Claim 3)
[0767] The system according to claim 1, comprising means for continuously collecting evaluation information from users and improving the functionality of the system.
[0768] "Example 2 of combining an emotion engine"
[0769] (Claim 1)
[0770] A means to automatically analyze all programs and identify the role and relationships of each program file,
[0771] A means of extracting the overall design philosophy of the information processing system based on the metadata of the analyzed program,
[0772] A means of generating a reduced-size educational program that is easy to understand while maintaining the core functions of management operations,
[0773] A means of generating responses to user inquiries that are based on the overall design philosophy of the information processing system,
[0774] A means for identifying the user's emotions and dynamically adjusting the response based on those emotions,
[0775] A system that includes means of providing interactive guidance tailored to the user's emotional state.
[0776] (Claim 2)
[0777] The system according to claim 1, which provides dynamic guidance for new participants based on analyzed and extracted information.
[0778] (Claim 3)
[0779] The system according to claim 1, comprising means for continuously collecting user feedback and improving the functionality of the information processing system.
[0780] "Application example 2 when combining with an emotional engine"
[0781] (Claim 1)
[0782] A means for automatically scanning all program code and identifying the attributes and relationships of each code file,
[0783] A means of generating a system-wide design concept based on the metadata of the analyzed code,
[0784] A means of generating educational, reduced-size code that is easy to understand while retaining the core functionality of the project,
[0785] A means including an emotion recognition engine that recognizes the user's emotional state and adjusts the interaction based on this,
[0786] A system that includes a means of generating answers to user questions that take into account the overall design concept of the project.
[0787] (Claim 2)
[0788] The system according to claim 1, which provides an interactive learning experience for new participants based on the analyzed and extracted information.
[0789] (Claim 3)
[0790] The system according to claim 1, which includes means for adjusting the difficulty level and pace of content based on user sentiment data. [Explanation of Symbols]
[0791] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Devices 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robots< / url:> < / url:> < / url:> < / url:>
Claims
1. A means to automatically scan all software code and identify the role and relationship of each code file, A means of extracting the overall system design concept based on the metadata of the analyzed code, A means of generating educational, reduced-size code that is easy to understand while retaining the core functionality of the project, A system that includes a means of generating answers to user questions that take into account the overall design concept of the project.
2. The system according to claim 1, which provides an interactive tutorial for new participants based on the analyzed and extracted information.
3. The system according to claim 1, comprising means for continuously collecting user feedback and improving the system's functionality.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A