WO2022119133A1 - 오토메이션 서비스를 지원하는 전자 장치 - Google Patents

오토메이션 서비스를 지원하는 전자 장치 Download PDF

Info

Publication number
WO2022119133A1
WO2022119133A1 PCT/KR2021/015378 KR2021015378W WO2022119133A1 WO 2022119133 A1 WO2022119133 A1 WO 2022119133A1 KR 2021015378 W KR2021015378 W KR 2021015378W WO 2022119133 A1 WO2022119133 A1 WO 2022119133A1
Authority
WO
WIPO (PCT)
Prior art keywords
action
electronic device
processor
automation
display
Prior art date
Application number
PCT/KR2021/015378
Other languages
English (en)
French (fr)
Inventor
서동희
조정근
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to US17/536,357 priority Critical patent/US11635885B2/en
Publication of WO2022119133A1 publication Critical patent/WO2022119133A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Definitions

  • Specific embodiments of the present invention relate to an electronic device configured to recognize a state or surrounding situation of the electronic device and automatically perform a function or service according to the recognized state or situation.
  • the electronic device may provide the user with an application for registering a condition for automatically executing a function or service supported by the electronic device in the electronic device.
  • the condition may be defined as a trigger.
  • An action eg, a function or a service
  • a combination of a trigger and at least one action may be defined as automation and registered in the electronic device.
  • the power saving mode function (action) (turning off Bluetooth, turning on the dark mode) may be automatically executed.
  • the location (surroundings) of the electronic device is a designated place (eg, home) (trigger)
  • at least one action defined in the corresponding automation may be automatically executed. For example, “turn on wifi, turn on the air conditioner, set the air conditioner temperature to 25 degrees (77 F)" may be included in the action.
  • Actions may be classified based on whether the user can check the execution result. For example, 'Operation of importing schedule from calendar' refers to the specified data. It is difficult for the user to check the execution result of the action that refers to the specified data (hereinafter, the data reference action).
  • the data processing action is configured to process the referenced data. For example, 'show the imported event as a pop-up' or 'delete the imported event from the calendar' may be classified as a data processing action. The user can check the execution result of the data processing action.
  • the data processing action may not be defined in the corresponding automation. Accordingly, it can be difficult to ascertain what the execution result of the automation is.
  • a chainable relationship may be established between actions. For example, a precedence relationship may be established in which the first action is preceded and the second action is then executed.
  • connection relationship between the first action and the second action may not be established. Accordingly, the two actions may be executed independently of each other and separately, although a connection relationship may be established in reality.
  • the second action may not be executed because the output value type of the first action is different from the input value type of the second action even though they are tied to the same automation.
  • Various embodiments of the present disclosure may provide an electronic device configured to notify a user that registration of a data processing action is required while creating an automation.
  • Various embodiments of the present disclosure may provide an electronic device configured to recommend a registerable candidate list to a user as a subsequent action to be executed following the registered action.
  • the electronic device may recommend a candidate list of data processing actions that can use the output value of the data reference action as an input value to the user.
  • Various embodiments of the present disclosure may provide an electronic device configured to perform type conversion when an input value type of a candidate selected as a subsequent action is different from an output value type of the preceding action. Accordingly, the actions registered in the automation may be normally performed.
  • the electronic device may include a touch-sensitive display; a processor operatively coupled to the display; and a memory operatively coupled to the processor, wherein the memory, when executed, causes the processor to: register with the electronic device automation defined as at least one action that is automatically executed when a specified trigger occurs.
  • a data reference action set such that a registration screen is provided through the display, an action selected by a user through the registration screen is registered in the electronic device as an element of the automation, and the action registered as an element of the automation refers to data
  • instructions for displaying guide information for a data processing action through the display may be stored.
  • the data processing action may be set to output a result value by using an output value output as a result of executing the data reference action as a first input value.
  • a method of operating an electronic device may include: providing, through a display, a registration screen for registering automation, which is defined as at least one action automatically executed when a specified trigger is generated, to the electronic device; registering an action selected by a user through the registration screen as an element of the automation in the electronic device; and when the action registered as an element of the automation is a data reference action set to reference data, displaying guide information for a data processing action through the display.
  • the data processing action may be set to output a result value by using an output value output as a result of executing the data reference action as a first input value.
  • the electronic device may provide a user with a result of performing the registered automation.
  • various effects directly or indirectly identified through this document may be provided.
  • FIG. 1 is a block diagram of an electronic device in a network environment, according to various embodiments of the present disclosure
  • FIG. 2 is a block diagram of an electronic device configured to register and automatically execute automation, according to various embodiments of the present disclosure
  • 3 is an example illustrating detailed information (specification) of a feature to be configured in automation.
  • FIG. 4 is a diagram for explaining an operation of guiding a user that registration of a subsequent action is required, according to an embodiment.
  • FIG. 5 is a diagram for explaining an operation of providing a candidate list of a subsequent action to a user, according to an embodiment.
  • FIG. 6 is a diagram for explaining an operation of providing an execution result of automation, according to an embodiment.
  • FIG. 7 is a flowchart illustrating operations for registering automation, according to an embodiment.
  • FIG. 8 is a flowchart illustrating operations for converting an output value type of a data reference action, according to an embodiment.
  • FIG. 9 is a flowchart illustrating operations for registering automation, according to an embodiment.
  • FIG. 1 is a block diagram of an electronic device 101 in a network environment 100 according to various embodiments of the present disclosure.
  • an electronic device 101 communicates with an electronic device 102 through a first network 198 (eg, a short-range wireless communication network) or a second network 199 . It may communicate with the electronic device 104 or the server 108 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108 .
  • a first network 198 eg, a short-range wireless communication network
  • a second network 199 e.g., a second network 199
  • the electronic device 101 may communicate with the electronic device 104 through the server 108 .
  • the electronic device 101 includes a processor 120 , a memory 130 , an input module 150 , a sound output module 155 , a display module 160 , an audio module 170 , and a sensor module ( 176), interface 177, connection terminal 178, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196 , or an antenna module 197 may be included.
  • at least one of these components eg, the connection terminal 178
  • may be omitted or one or more other components may be added to the electronic device 101 .
  • some of these components are integrated into one component (eg, display module 160 ). can be
  • the processor 120 for example, executes software (eg, a program 140) to execute at least one other component (eg, a hardware or software component) of the electronic device 101 connected to the processor 120 . It can control and perform various data processing or operations. As used herein, the term "processor" refers to both singular and plural contexts. According to one embodiment, as at least part of data processing or operation, the processor 120 converts commands or data received from other components (eg, the sensor module 176 or the communication module 190 ) to the volatile memory 132 . may be stored in the volatile memory 132 , and may process commands or data stored in the volatile memory 132 , and store the result data in the non-volatile memory 134 .
  • software eg, a program 140
  • the processor 120 converts commands or data received from other components (eg, the sensor module 176 or the communication module 190 ) to the volatile memory 132 .
  • the volatile memory 132 may be stored in the volatile memory 132 , and may process commands or data stored in the volatile memory
  • the processor 120 is the main processor 121 (eg, a central processing unit or an application processor) or a secondary processor 123 (eg, a graphic processing unit, a neural network processing unit) a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor).
  • the main processor 121 e.g, a central processing unit or an application processor
  • a secondary processor 123 eg, a graphic processing unit, a neural network processing unit
  • NPU neural processing unit
  • an image signal processor e.g., a sensor hub processor, or a communication processor.
  • the main processor 121 e.g, a central processing unit or an application processor
  • a secondary processor 123 eg, a graphic processing unit, a neural network processing unit
  • NPU neural processing unit
  • an image signal processor e.g., a sensor hub processor, or a communication processor.
  • the main processor 121 e.g, a central processing unit or an application processor
  • a secondary processor 123
  • the auxiliary processor 123 is, for example, on behalf of the main processor 121 while the main processor 121 is in an inactive (eg, sleep) state, or the main processor 121 is active (eg, executing an application). ), together with the main processor 121, at least one of the components of the electronic device 101 (eg, the display module 160, the sensor module 176, or the communication module 190) It is possible to control at least some of the related functions or states.
  • the coprocessor 123 eg, an image signal processor or a communication processor
  • may be implemented as part of another functionally related component eg, the camera module 180 or the communication module 190. have.
  • the auxiliary processor 123 may include a hardware structure specialized for processing an artificial intelligence model.
  • Artificial intelligence models can be created through machine learning. Such learning may be performed, for example, in the electronic device 101 itself on which artificial intelligence is performed, or may be performed through a separate server (eg, the server 108).
  • the learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but in the above example not limited
  • the artificial intelligence model may include a plurality of artificial neural network layers.
  • Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the above, but is not limited to the above example.
  • the artificial intelligence model may include, in addition to, or alternatively, a software structure in addition to the hardware structure.
  • the memory 130 may store various data used by at least one component of the electronic device 101 (eg, the processor 120 or the sensor module 176 ).
  • the data may include, for example, input data or output data for software (eg, the program 140 ) and instructions related thereto.
  • the memory 130 may include a volatile memory 132 or a non-volatile memory 134 .
  • the program 140 may be stored as software in the memory 130 , and may include, for example, an operating system 142 , middleware 144 , or an application 146 .
  • the input module 150 may receive a command or data to be used in a component (eg, the processor 120 ) of the electronic device 101 from the outside (eg, a user) of the electronic device 101 .
  • the input module 150 may include, for example, a microphone, a mouse, a keyboard, a key (eg, a button), or a digital pen (eg, a stylus pen).
  • the sound output module 155 may output a sound signal to the outside of the electronic device 101 .
  • the sound output module 155 may include, for example, a speaker or a receiver.
  • the speaker can be used for general purposes such as multimedia playback or recording playback.
  • the receiver may be used to receive an incoming call. According to one embodiment, the receiver may be implemented separately from or as part of the speaker.
  • the display module 160 may visually provide information to the outside (eg, a user) of the electronic device 101 .
  • the display module 160 may include, for example, a control circuit for controlling a display, a hologram device, or a projector and a corresponding device.
  • the display module 160 may include a touch sensor configured to sense a touch or a pressure sensor configured to measure the intensity of a force generated by the touch.
  • the audio module 170 may convert a sound into an electric signal or, conversely, convert an electric signal into a sound. According to an embodiment, the audio module 170 acquires a sound through the input module 150 or an external electronic device (eg, a sound output module 155 ) directly or wirelessly connected to the electronic device 101 . A sound may be output through the electronic device 102 (eg, a speaker or headphones).
  • an external electronic device eg, a sound output module 155
  • a sound may be output through the electronic device 102 (eg, a speaker or headphones).
  • the sensor module 176 detects an operating state (eg, power or temperature) of the electronic device 101 or an external environmental state (eg, user state), and generates an electrical signal or data value corresponding to the sensed state. can do.
  • the sensor module 176 may include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, a humidity sensor, or an illuminance sensor.
  • the interface 177 may support one or more designated protocols that may be used by the electronic device 101 to directly or wirelessly connect with an external electronic device (eg, the electronic device 102 ).
  • the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD card interface Secure Digital Card
  • the connection terminal 178 may include a connector through which the electronic device 101 can be physically connected to an external electronic device (eg, the electronic device 102 ).
  • the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
  • the haptic module 179 may convert an electrical signal into a mechanical stimulus (eg, vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic sense.
  • the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 180 may capture still images and moving images. According to an embodiment, the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 188 may manage power supplied to the electronic device 101 .
  • the power management module 188 may be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • the battery 189 may supply power to at least one component of the electronic device 101 .
  • battery 189 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
  • the communication module 190 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 101 and an external electronic device (eg, the electronic device 102, the electronic device 104, or the server 108). It can support establishment and communication performance through the established communication channel.
  • the communication module 190 may include one or more communication processors that operate independently of the processor 120 (eg, an application processor) and support direct (eg, wired) communication or wireless communication.
  • the communication module 190 is a wireless communication module 192 (eg, a cellular communication module, a short-range communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (eg, : It may include a LAN (local area network) communication module, or a power line communication module).
  • GNSS global navigation satellite system
  • a corresponding communication module among these communication modules is a first network 198 (eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 199 (eg, legacy It may communicate with the external electronic device 104 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (eg, a telecommunication network such as a LAN or a WAN).
  • a first network 198 eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)
  • a second network 199 eg, legacy It may communicate with the external electronic device 104 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (eg, a telecommunication network such as a LAN or a WAN).
  • a telecommunication network
  • the wireless communication module 192 uses the subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 within a communication network such as the first network 198 or the second network 199 .
  • the electronic device 101 may be identified or authenticated.
  • the wireless communication module 192 may support a 5G network after a 4G network and a next-generation communication technology, for example, a new radio access technology (NR).
  • NR access technology includes high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and access to multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency) -latency communications)).
  • eMBB enhanced mobile broadband
  • mMTC massive machine type communications
  • URLLC ultra-reliable and low-latency
  • the wireless communication module 192 may support a high frequency band (eg, mmWave band) to achieve a high data rate, for example.
  • a high frequency band eg, mmWave band
  • the wireless communication module 192 includes various technologies for securing performance in a high-frequency band, for example, beamforming, massive multiple-input and multiple-output (MIMO), all-dimensional multiplexing. It may support technologies such as full dimensional MIMO (FD-MIMO), an array antenna, analog beam-forming, or a large scale antenna.
  • the wireless communication module 192 may support various requirements specified in the electronic device 101 , an external electronic device (eg, the electronic device 104 ), or a network system (eg, the second network 199 ).
  • the wireless communication module 192 may include a peak data rate (eg, 20 Gbps or more) for realizing eMBB, loss coverage (eg, 164 dB or less) for realizing mMTC, or U-plane latency for realizing URLLC ( Example: downlink (DL) and uplink (UL) each 0.5 ms or less, or round trip 1 ms or less).
  • a peak data rate eg, 20 Gbps or more
  • loss coverage eg, 164 dB or less
  • U-plane latency for realizing URLLC
  • the antenna module 197 may transmit or receive a signal or power to the outside (eg, an external electronic device).
  • the antenna module 197 may include an antenna including a conductor formed on a substrate (eg, a PCB) or a radiator formed of a conductive pattern.
  • the antenna module 197 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 198 or the second network 199 is connected from the plurality of antennas by, for example, the communication module 190 . can be selected. A signal or power may be transmitted or received between the communication module 190 and an external electronic device through the selected at least one antenna.
  • other components eg, a radio frequency integrated circuit (RFIC)
  • RFIC radio frequency integrated circuit
  • the antenna module 197 may form a mmWave antenna module.
  • the mmWave antenna module comprises a printed circuit board, an RFIC disposed on or adjacent to a first side (eg, underside) of the printed circuit board and capable of supporting a designated high frequency band (eg, mmWave band); and a plurality of antennas (eg, an array antenna) disposed on or adjacent to a second side (eg, top or side) of the printed circuit board and capable of transmitting or receiving signals of the designated high frequency band. can do.
  • peripheral devices eg, a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
  • GPIO general purpose input and output
  • SPI serial peripheral interface
  • MIPI mobile industry processor interface
  • the command or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199 .
  • Each of the external electronic devices 102 or 104 may be the same as or different from the electronic device 101 .
  • all or a part of operations executed in the electronic device 101 may be executed in one or more external electronic devices 102 , 104 , or 108 .
  • the electronic device 101 may perform the function or service itself instead of executing the function or service itself.
  • one or more external electronic devices may be requested to perform at least a part of the function or the service.
  • One or more external electronic devices that have received the request may execute at least a part of the requested function or service, or an additional function or service related to the request, and transmit a result of the execution to the electronic device 101 .
  • the electronic device 101 may process the result as it is or additionally and provide it as at least a part of a response to the request.
  • cloud computing distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.
  • the electronic device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
  • the external electronic device 104 may include an Internet of things (IoT) device.
  • Server 108 may be an intelligent server using machine learning and/or neural networks.
  • the external electronic device 104 or the server 108 may be included in the second network 199 .
  • the electronic device 101 may be applied to an intelligent service (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
  • the electronic device may have various types of devices.
  • the electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance device.
  • a portable communication device eg, a smart phone
  • a computer device e.g., a smart phone
  • a portable multimedia device e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a wearable device e.g., a smart bracelet
  • a home appliance device e.g., a home appliance
  • first, second, or first or second may be used simply to distinguish the element from other elements in question, and may refer to elements in other aspects (e.g., importance or order) is not limited. It is said that one (eg, first) component is “coupled” or “connected” to another (eg, second) component, with or without the terms “functionally” or “communicatively”. When referenced, it means that one component can be connected to the other component directly (eg by wire), wirelessly, or through a third component.
  • module used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and is interchangeable with terms such as, for example, logic, logic block, component, or circuit.
  • a module may be an integrally formed part or a minimum unit or a part of the part that performs one or more functions.
  • the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • one or more instructions stored in a storage medium may be implemented as software (eg, the program 140) including
  • a processor eg, processor 120
  • a device eg, electronic device 101
  • the one or more instructions may include code generated by a compiler or code executable by an interpreter.
  • the device-readable storage medium may be provided in the form of a non-transitory storage medium.
  • 'non-transitory' only means that the storage medium is a tangible device and does not include a signal (eg, electromagnetic wave), and this term is used in cases where data is semi-permanently stored in the storage medium and It does not distinguish between temporary storage cases.
  • a signal eg, electromagnetic wave
  • the method according to various embodiments disclosed in this document may be included and provided in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • the computer program product is distributed in the form of a machine-readable storage medium (eg compact disc read only memory (CD-ROM)), or via an application store (eg Play Store TM ) or on two user devices ( It can be distributed online (eg download or upload), directly between smartphones (eg smartphones).
  • a part of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium such as a memory of a server of a manufacturer, a server of an application store, or a relay server.
  • each component (eg, module or program) of the above-described components may include a singular or a plurality of entities, and some of the plurality of entities may be separately disposed in other components. have.
  • one or more components or operations among the above-described corresponding components may be omitted, or one or more other components or operations may be added.
  • a plurality of components eg, a module or a program
  • the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. .
  • operations performed by a module, program, or other component are executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations are executed in a different order, or omitted. or one or more other operations may be added.
  • FIG. 2 is a block diagram of an electronic device 200 configured to register and automatically execute automation, according to various embodiments of the present disclosure.
  • 3 is an example illustrating detailed information (specification) of a feature to be configured in automation.
  • the electronic device 200 eg, the electronic device 101 of FIG. 1
  • the electronic device 200 includes a touch-sensitive display 210 (eg, the display module 160 of FIG. 1 ) and an automation service module 220 .
  • an application module 230 eg, a trigger DB 240 , an action DB 250 , an automation DB 260 , a memory 288 , or a processor 299 .
  • the components of the electronic device 200 may be operatively or electrically connected to each other.
  • the automation service module 220 includes a registration module (or generation module) 221 configured to register automation with the electronic device 200 , a type conversion module 222 configured to convert types of elements configured in automation, and and an execution manager module 223 configured to manage execution.
  • the registration module 221 may provide the user with a registration screen for allowing the user to register automation in the electronic device 200 through the display 210 .
  • the registration module 221 may interact with the user through the registration screen to configure automation including a trigger and at least one action and register it in the automation DB 260 .
  • the registration module 221 may check the trigger in the trigger DB 240 .
  • the registration module 221 may check the trigger(s) corresponding to the keyword input through the trigger registration screen in the trigger DB 240 .
  • the trigger DB 240 may store detailed information (specification) of triggers configurable as an automation feature.
  • the registration module 221 may configure the trigger list with detailed information of the trigger(s) checked in the trigger DB 240 and provide the trigger list to the user through the trigger registration screen.
  • the registration module 221 may determine an automation element (eg, an operation to turn on Wi-Fi) selected by the user from the trigger list as an automation trigger to be registered in the automation DB 260 .
  • the operation of registering the trigger in the automation DB 260 may include an operation of storing the selected element as a trigger of the corresponding automation in the automation DB 260 .
  • the registration module 221 may check the action in the action DB 250 .
  • the registration module 221 may check the action(s) corresponding to the keyword input through the action registration screen in the action DB 250 .
  • the action DB 250 may store detailed information (specification) of actions configurable as an automation feature.
  • the registration module 221 may configure the action list with detailed information of the action(s) checked in the action DB 250 , and provide the action list to the user through the action registration screen.
  • the registration module 221 may determine an automation element (eg, an operation to turn on Bluetooth) selected by the user from the action list as an action of automation to be registered in the automation DB 260 .
  • the operation of registering the action in the automation DB 260 may include an operation of storing the selected element as an action of the corresponding automation in the automation DB 260 .
  • the DB for managing detailed information of automation elements is divided into a trigger DB 240 and an action DB 250, but is not limited thereto, and automation elements may be managed as one DB without the distinction.
  • Automation elements that can be included in the trigger list and the action list may be as shown in Table 1 below.
  • the registration module 221 defines detailed information of triggers and actions to be configured in automation, stores detailed information of the defined triggers in the trigger DB 240 , and stores detailed information of the defined actions in the action DB 250 .
  • the registration module 221 may register automation in the automation DB 260 with reference to detailed information. For example, detailed information of an automation element called “get OO schedule” may be defined as shown in FIG. 3 .
  • detailed information includes an identifier 310 indicating a corresponding automation element, a category 320 of the corresponding element, information 330 indicating a method of showing the corresponding element to a user, and a method of processing the corresponding element.
  • Information eg, when the corresponding element is 'message sending operation', a command for controlling the message application is included
  • An output value 360 may be included as a result of being executed.
  • the type may mean the type of data handled by the corresponding element.
  • the input value in the action “Get OO Schedule” can include the keyword “OO”
  • the type of keyword (input value) can be defined as a string. have.
  • the output value may include the searched schedule (eg, schedule ID, date, schedule title, time, place, and attendees) using the keyword “OO”.
  • the output value of the action may include properties of each detailed content in a data class, and its type may be defined as CalendarEvent.
  • Actions to be registered in the automation DB 260 are based on whether a method for checking an output value is provided to the user, based on a data reference action (eg, an action to check the schedule for 00/00/00 in the calendar) and data It can be classified as a processing action (eg, an action to delete an imported schedule, an action to provide the imported schedule to the user through a pop-up window).
  • a data reference action e.g, an action to check the schedule for 00/00/00 in the calendar
  • a processing action eg, an action to delete an imported schedule, an action to provide the imported schedule to the user through a pop-up window.
  • the data reference action may be an action that references specified data.
  • the data reference action may be an action that references recorded user data (including other persons at other terminals) stored and made available in substantially the same form as entered. For example, but not limited to, an appointment in a calendar, a contact, the content of an email or text message, or a photo viewing function such as a gallery TM may be a data reference action.
  • the data reference action is an action that refers to user-entered text data input by a user (including other users of other terminals) in text format and provided as text for the user to view through the touch-sensitive display 210 .
  • the text made viewable through the touch-sensitive display 210 may be substantially the same user input text data as input.
  • a data processing action that processes an output value of the data reference action may be registered as a subsequent action of the data reference action.
  • an output value (eg, schedule) of a preceding action may be used as an input value of a subsequent action (data processing action).
  • the user can check whether the preceding action was properly performed through the processing result of the subsequent action. For example, if the subsequent action (data processing action) is an 'action to delete the schedule', the user can determine whether the result value (imported schedule) of the preceding action is the desired result value through the execution result (schedule deletion) of the data processing action can be checked
  • the output value type may include a value indicating unspecified (eg none) or a value indicating whether execution was successfully completed (eg boolean). have. Accordingly, data processing actions can be performed independently without being dependent on each other.
  • the output value type may be defined as shown in Table 3 below for each action.
  • action output value type Get schedule CalendarEvent-id - eventName -startDate -endDate -location -attendee Delete an event Share your schedule Edit your schedule move schedule (Example: Go to detail screen) None or Boolean Import Contacts Contact-id -contact Name -phoneNumber -emailAddress call send message Set up reject calls None or Boolean Get messages message-id -sender -text read the message Reply None or Boolean import file File-id -fileName -filePath -fileType delete share Heat None or Boolean
  • the registration module 221 checks whether the action registered in the automation DB 260 is a data reference action, and a subsequent action associated with the data reference action is not registered in the automation DB 260 . In this case, the user may be informed through the registration screen that a data processing action is required as a subsequent action.
  • the registration module 221 may provide a possible candidate list as a follow-up action through the registration screen in response to a user input for guidance.
  • the subsequent action may not be performed because the connection relationship between the two actions is not established, even though the subsequent action is registered by the user through the candidate list as described above. have.
  • the type conversion module 222 is configured to convert the output value type of the first action into the input of the second action when the output value type of the first action registered as the preceding action is different from the input value type of the second action registered as the subsequent action. It can be converted according to the value type. For example, if the first action is “Get schedule OO”, the output value type is a type in which data is classified into schedule ID, schedule name, start time, end time, place, and attendees, as illustrated in Table 3 can be When the input value type of the second action is string, the type conversion module 222 may convert the output value type of the first action into a string.
  • the execution manager module 223 may execute the automation registered in the automation DB 260 in conjunction with the application module 230 based on detailed information of the elements shown in Table 2 above.
  • the execution manager module 223 may recognize that a trigger has occurred.
  • the execution manager module 223 may recognize that an operation designated as a trigger by the application module 230 is executed.
  • the trigger is a message (eg, a chat (or, instant) message, a social networking service (SNS) message, a call (eg, a voice call, a video call) of a specified contact from an external electronic device through a wireless communication circuit in the message application) request message), and the notification application provides a notification through a display and/or speaker in response to a specified event (eg, receiving a message from a message application) that occurs in another application.
  • a message eg, a chat (or, instant) message, a social networking service (SNS) message, a call (eg, a voice call, a video call) of a specified contact from an external electronic device through a wireless communication circuit in the message application) request message
  • the notification application provides a notification through a display and/or speaker in response to a specified event (
  • a location recognition module eg, a global navigation satellite system (GNSS) communication module
  • GNSS global navigation satellite system
  • an operation of taking a picture using a camera in a camera application It may include an operation of recognizing that the battery has decreased to less than or equal to a specified value in the device management application.
  • various actions may be designated as triggers.
  • the execution manager module 223 checks an action designated as an action to be performed when a trigger occurs in the automation DB 260, and the application module 230 to execute the checked action (eg, a function or service). can be controlled.
  • the application module 230 (eg, the application 146 of FIG. 1 ) is distributed on an embedded application and/or online (eg, an application store) or in the form of a storage medium when the electronic device 200 is manufactured. It can be implemented as an applied application.
  • the application module 230 transmits, as a trigger, information indicating an executed specified operation to the automation service module 220, and functions based on the action information received from the automation service module 220 in response to the information transmission. Or you can run the service.
  • the registration module 221 , the type conversion module 222 , the execution manager module 223 , or the application module 230 is configured as instructions in the memory 288 (eg, the memory 130 of FIG. 1 ). It may be stored and executed by the processor 299 (eg, the processor 120 of FIG. 1 ). At least one of the modules 221 , 222 , 223 , and 230 may be executed by a processor (eg, the auxiliary processor 123 ) specialized in processing an artificial intelligence model.
  • the trigger DB 240 , the action DB 250 , or the automation DB 260 may be stored in the memory 288 or stored in a separate chip physically separated from the memory 288 .
  • additional components may be included in addition to the components illustrated in FIG. 2 , or at least one of the components illustrated in FIG. 2 may be omitted.
  • the electronic device 200 may further include a microphone (eg, the input module 150 of FIG. 1 ) for receiving a specified user input for calling the automation service module 220 .
  • FIG. 4 is a diagram for explaining an operation of guiding a user that registration of a subsequent action is required, according to an embodiment.
  • a first screen including a non-exclusive action list 410 and a box for searching for an action with a keyword is displayed.
  • the screen of FIG. 4B includes a first section 431 and a second section 432 .
  • the first section 431 may indicate or receive a condition or trigger for an action such as “Wi-Fi network disconnected from MDX_2G”.
  • the second section 432 displays and receives input for the first action item 433 .
  • the action of the second section 433 is performed in response to a condition or trigger of the first section 431 . If the first action item is a data reference action, a pop-up window 440 is displayed to help the user request an additional action.
  • the processor eg, the processor 299 of FIG. 2
  • displays an action list 410 eg, the display module 160 of FIG. 1 or the touch-sensitive display 210 of FIG. 2
  • the processor 299 may select actions from the action DB 250 according to a set condition. For example, the processor 299 may randomly select actions from the action DB 250 . Alternatively, the processor 299 may select actions having a name matching the keyword input by the user through the search window 420 from the action DB 250 . Alternatively, the processor 299 may select actions corresponding to recently (eg, within a week) favorite applications from the action DB 250 .
  • the processor 299 may select actions whose frequency of use is greater than or equal to a specified number of times per unit time from the action DB 250 .
  • actions may be selected according to various conditions.
  • the processor 299 includes action items representing the selected actions (eg, each item includes an icon representing an application performing the corresponding action and the name of the corresponding action) in the action list 410 to be displayed on the display. can Depending on the size of the display or the size of the item, the action items may not be displayed through the action list 410 at a time.
  • the processor 299 displays other action items in the action list 410 in response to a user's touch gesture (eg, a drag gesture up or down) while displaying some of the action items through the action list 410 . can be displayed through a user's touch gesture (eg, a drag gesture up or down) while displaying some of the action items through the action list 410 . can be displayed through a user's touch gesture (eg, a drag gesture up or down) while displaying some of the
  • the processor 299 may provide a screen 430 for automation registration to the user through the display.
  • the processor 299 responds to a selected action item selected by the user (eg, the corresponding item is touched 401 ) from the action list (eg, the action list 410 of FIG. 4A ).
  • the screen may be switched from the action list 410 to the registration screen 430 .
  • the processor 299 may include a first section 431 for trigger registration and a second section 432 for action registration on the registration screen 430 to be displayed on the display.
  • the processor 299 may register the action of the item selected from the action list 410 as the first action of the automation, and provide the first action item 433 representing the first action through the second section 432 . have.
  • the processor 299 may receive an input value necessary for performing the first action from the user through the second section 432 .
  • the processor 299 may be configured to execute a first action (eg, find an OO event) of an application execution screen (eg, a calendar screen). ) can be displayed on the display.
  • the processor 299 may receive an input value (eg, 2020.08.03 - 2020.08.05 exercise) from the user through the execution screen, and set the received input value as the input value of the first action. Additionally, the processor 299 may display the input value 433a at a position adjacent to the first action item 433 .
  • the processor 299 may determine whether the first action is a data reference action by checking detailed information of the first action. For example, referring to FIG. 3 , the processor 299 checks the value of “dataReferenceAction” among the subfields of the output value 360, and when the value is 'true', the first action is a data reference action. recognized, and when the value is 'false', the first action may be recognized as a data processing action.
  • the processor 299 may inform the user through the pop-up window 440 that registration of the subsequent action is required.
  • the processor 299 may end the display of the pop-up window 440 after a specified time has expired from the time the display is started or in response to a user's touch input (eg, a touch gesture that appears to be out of the screen).
  • the processor 299 does not react and maintains the display of the registration screen 430 even if a user input (eg, a touch input for the completion button 450) for completing the automation registration is received without registration of a subsequent action. .
  • the processor 299 may additionally or instead of displaying the pop-up window 440 set the completion button 450 to another UI (user interface) element (eg, a cancel button 460 , a first action item 433 , an input value). (433a)) can be displayed distinctly (eg, dimly) to inform the user that the automation registration has not yet been completed.
  • another UI (user interface) element eg, a cancel button 460 , a first action item 433 , an input value. (433a)
  • (433a) can be displayed distinctly (eg, dimly) to inform the user that the automation registration has not yet been completed.
  • FIG. 5 is a diagram for explaining an operation of providing a candidate list of a subsequent action to a user, according to an embodiment.
  • the user may select a button 510 to set an additional operation in the second section.
  • the screen of FIG. 5B displays a list of candidates for the second action 520 .
  • the processor eg, the processor 299 of FIG. 2
  • a registration screen 430 including a button 510 for adding a second action to be performed after the first action.
  • the processor 299 may provide a candidate list 520 through a display in response to a user input for the add button 510 .
  • the processor 299 may identify an output value type of the first action in response to a user input. For example, referring to FIG. 3 , the processor 299 may check the value of “type field” among the subfields of the output value 360 . The processor 299 may check actions having an input value type that matches the checked output value type from the action DB 250 , and determine the checked actions as candidates for a subsequent action.
  • an output value type of a data reference action registered as a preceding action may be a value representing a schedule (or event).
  • the processor 299 performs actions (eg, viewing the input value (event) as a pop-up, sending the input value (schedule) as a message, erasing the input value (event)) using the schedule-related value as an input value. Candidates for follow-up actions can be selected.
  • the processor 299 may provide action items corresponding to each of the candidates through the candidate list 520 .
  • the processor 299 may register the action selected from the candidate list 520 as a second action of automation to be performed after the first action.
  • FIG. 6 is a diagram for explaining an operation of providing an execution result of automation, according to an embodiment. In the description of FIG. 6 , portions overlapping with those of FIGS. 4 to 5 will be omitted or briefly described.
  • actions 433 , 601 that occur in response to a condition or trigger are presented in a first section 431 .
  • the output value of the first action 433 is different from the input value of the second action item 601 .
  • the processor 299 may form a connectable relationship by converting the output value type of the first section according to the input value type of the second action.
  • the processor receives a first action item 433 indicating a first action and an output value (eg, a schedule) of the first action as a first input.
  • a second action item 601 indicating a second action used as a value may be provided through the second section 432 .
  • the processor 299 may receive a second input value necessary for performing the second action from the user through the second section 432 .
  • the processor 299 sends a message OO (first input value) to a second action (eg, OO (second input value)).
  • An execution screen (eg, a contact screen) of an application configured to run) may be displayed on the display.
  • the processor 299 may set designated information (eg, contact information) as the second input value of the second action by interacting with the user through the execution screen. Additionally, the processor 299 may display the second input value (eg, the name of the message recipient) 601a at a position adjacent to the second action item 601 .
  • the processor 299 may convert the output value type of the first action to match the input value type of the second action. For example, the processor 299 may establish a chainable relationship between a first action of “get OO schedule” and a second action of “send OO schedule as a message to OO” during automation creation.
  • the output value type (eg, constant) of the first action is different from the input value type (eg, text) of the second action, and a connection relationship may not be established. Accordingly, the processor 299 may convert the output value type of the first action from the schedule to text.
  • the processor 299 may provide the execution result 610 of the second action to the user through the execution screen of the corresponding application. For example, when the processor 299 recognizes that a trigger registered in the first section 431 has occurred in the registration screen of FIG. 6A , the first action and the second action registered in the second section 432 are automatically performed , and the execution result 610 may be provided to the user through a display.
  • FIG. 7 is a flowchart illustrating operations for registering automation, according to an embodiment.
  • the processor may interact with the user through the display to set an automation trigger.
  • the processor 299 may execute the automation service module 220 according to a user input.
  • the processor 299 may provide an icon representing the automation service module 220 through the home screen.
  • the processor 299 may execute the automation service module 220 in response to a user's touch input on the icon.
  • the user input may be a voice input designated to invoke the automation service module 220 .
  • the processor 299 may include a speech recognition module.
  • the processor 299 may receive a user's voice input through a microphone (eg, the input module 150 of FIG. 1 ) and convert the voice input into text data.
  • the processor 299 may execute the automation service module 220 in response to text data including a text designated to call the automation service module 220 (eg, run automation).
  • the processor 299 may provide an execution screen (eg, a trigger registration screen (or a trigger setting screen)) of the automation service module 220 through the display.
  • the processor 299 may check detailed information of the trigger(s) corresponding to the keyword input through the trigger registration screen in the trigger DB 240 .
  • the processor 299 may configure the trigger list with detailed information of the confirmed trigger(s) and provide the trigger list through the trigger registration screen.
  • the processor 299 may set the automation element selected by the user from the trigger list as an automation trigger to be registered in the automation DB 260 .
  • the processor 299 may set a first action to be performed in response to a trigger being generated.
  • the processor 299 may provide an action list through a display.
  • the processor 299 may provide an execution screen (eg, an action registration screen (or an action setting screen)) of the automation service module 220 through the display.
  • the processor 299 may check detailed information of the action(s) corresponding to the keyword input through the action registration screen in the action DB 250 .
  • the processor 299 may configure the action list with detailed information of the confirmed action(s) and provide the action list through the action registration screen.
  • the processor 299 may set the automation element selected by the user from the action list as the first action of the automation to be registered in the automation DB 260 .
  • the processor 299 may recognize that the first action is a data reference action based on information indicating an output value type of the first action. For example, the processor 299 classifies the first action as a data reference action when the data reference action value (the value of “dataReferenceAction”) is true in the output value of the first action, and classifies the first action as a data reference action when the data reference action value is false. Action 1 can be classified as a data processing action.
  • the processor 299 may request the user to register a subsequent action as the first action is classified as a data reference action. For example, the processor 299 may inform the user that registration of a subsequent action is required through a pop-up window.
  • the processor 299 may configure a candidate list from candidates that can be registered as a subsequent action according to a user response to the request and provide the list through a display. For example, the processor 299 may check actions having an input value type that matches the output value type of the first action in the action DB 250, and construct a candidate list using detailed information of the checked actions. have.
  • the processor 299 may set the action selected by the user from the candidate list as the second action to be performed after the first action.
  • operation 760 after performing operation 760, it may be determined whether the action selected in operation 760 is another data reference action. When the action selected in operation 760 is another data reference action, operations 740 to 760 may be repeated until the selected action is not a data reference action.
  • FIG. 8 is a flowchart illustrating operations for converting an output value type of a data reference action, according to an embodiment.
  • the processor may set the data processing action as a subsequent action of automation.
  • the processor 299 may set the data processing action selected from the candidate list (eg, the candidate list 520 of FIG. 5 ) as a subsequent action of the automation.
  • the processor 299 may recognize that the output value type of the data reference action set as the preceding action of automation is different from the input value type of the data processing action.
  • the processor 299 may convert the output value type into the input value type. For example, the processor 299 may automatically perform a preceding action according to occurrence of a trigger. As a result of performing the preceding action, properties a, b, and c of type A (eg, CalendarEvent) may be output. The processor 299 may convert the types of properties a, b, and c, which are output values of the preceding action, into property d, of type B (eg, string), which is an input value of the subsequent action. The processor 299 may use the property d as an input value required when performing a subsequent action.
  • type A eg, CalendarEvent
  • FIG. 9 is a flowchart illustrating operations for registering automation, according to an embodiment.
  • the processor 299 may provide the user with a registration screen for allowing the user to register automation in the electronic device 200 through the display 210 .
  • the processor 299 registers an action selected by the user through the registration screen (eg, an action corresponding to an item selected from the action list 410 of FIG. 4A ) as an element of automation in the electronic device. can do.
  • the processor 299 may store the selected action as an element of the corresponding automation in the automation DB 260 .
  • the processor 299 may inform the user through the display that a data processing action is required as a subsequent action of the registered action.
  • the electronic device may include a touch-sensitive display; a processor operatively coupled to the display; and a memory operatively coupled to the processor, wherein the memory, when executed, causes the processor to: register with the electronic device automation defined as at least one action that automatically executes when a specified trigger occurs.
  • a data reference action set such that a registration screen is provided through the display, an action selected by a user through the registration screen is registered in the electronic device as an element of the automation, and the action registered as an element of the automation refers to data
  • instructions for displaying guide information for a data processing action through the display may be stored.
  • the data processing action may be set to output a result value by using an output value output as a result of executing the data reference action as a first input value.
  • the instructions cause the processor to, in response to a user input related to the guide information, provide a candidate list (eg, the candidate list 520 of FIG. 5 ) representing candidates selectable as the data processing action through the display.
  • a candidate list eg, the candidate list 520 of FIG. 5
  • the processor confirms the type of the output value in the detailed information of the data reference action, and identifies actions having an input value type that matches the output value type in a database storing detailed information of the actions,
  • the candidate list may be constructed using detailed information of the identified actions.
  • the instructions may cause the processor to check a value of a subfield indicating the type of the output value from among the subfields of the output value.
  • the instructions may cause the processor to display the guide information indicating that the data processing action is required through a pop-up window (eg, the pop-up window 440 of FIG. 4 ).
  • the instructions cause the processor to convert the type of the output value to match the type of the input value when the type of the output value is different from the type of the input value of the action registered in the electronic device as the data processing action.
  • the instructions include, by the processor, automation registration among a plurality of user interface (UI) elements provided through the registration screen when a data processing action is not registered in the electronic device as a subsequent action to be performed after the data reference action.
  • a completion button (eg, the completion button 450 of FIG. 4 ) for completion of , may be displayed to be distinguished from the rest of the UI elements.
  • the instructions may cause the processor to display the Done button dimly than other UI elements.
  • the instructions include the processor, as a subsequent action to be performed after the data reference action, to the user input when a user input for the completion button is received from the display in a state where a data processing action is not registered in the electronic device. Without reacting, the display of the registration screen may be maintained.
  • the instructions may cause the processor to set the second input value received through the registration screen as an input value necessary to perform the data processing action.
  • the instructions are determined by the processor, based on a value indicating whether the data reference action is the data reference action among subfields of the output value of the action registered as an element of the automation, the action registered as an element of the automation is the data reference action can be recognized as
  • a method of operating an electronic device may include: providing, through a display, a registration screen for registering automation, which is defined as at least one action automatically executed when a specified trigger is generated, to the electronic device; registering an action selected by a user through the registration screen as an element of the automation in the electronic device; and when the action registered as an element of the automation is a data reference action set to reference data, displaying guide information for a data processing action through the display.
  • the data processing action may be set to output a result value by using an output value output as a result of executing the data reference action as a first input value.
  • the method may further include, in response to a user input related to the guide information, providing, through the display, a candidate list indicating candidates selectable as the data processing action.
  • the providing of the candidate list may include: checking the type of the output value in detailed information of the data reference action; checking actions having an input value type that matches the output value type in a database storing detailed information of the actions; and constructing the candidate list by using detailed information of the identified actions.
  • the operation of confirming the type of the output value may include an operation of confirming a value of a subfield indicating the type of the output value from among the subfields of the output value.
  • the method further includes converting the type of the output value to match the type of the input value when the type of the output value is different from the type of the input value of the action registered in the electronic device as the data processing action can do.
  • the method when a data processing action is not registered in the electronic device as a subsequent action to be performed after the data reference action, completion of automation registration among a plurality of user interface (UI) elements provided through the registration screen
  • the method may further include an operation of displaying a completion button for this purpose to be distinguished from the rest of the UI elements.
  • the operation of displaying the completion button to be distinguished from the rest of the UI elements may include an operation of displaying the completion button more dimly than the rest of the UI elements.
  • the operation of maintaining the display of the registration screen may be further included.
  • the action registered as an element of the automation is recognized as the data reference action It may further include an action.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephone Function (AREA)

Abstract

다양한 실시예에서 전자 장치는, 터치 감응 디스플레이; 상기 디스플레이에 작동적으로 연결된 프로세서; 및 상기 프로세서에 작동적으로 연결된 메모리를 포함하고, 상기 메모리는, 실행될 때, 상기 프로세서가: 지정된 트리거가 발생될 때 자동으로 실행되는 적어도 하나의 액션으로 정의되는 오토메이션을 상기 전자 장치에 등록하기 위한 등록 화면을 상기 디스플레이를 통해 제공하고, 상기 등록 화면을 통해 사용자에 의해 선택된 액션을 상기 오토메이션의 요소로 상기 전자 장치에 등록하고, 상기 오토메이션의 요소로 등록된 액션이 데이터를 참조하도록 설정된 데이터 참조 액션인 경우, 데이터 처리 액션을 위한 안내 정보를 상기 디스플레이를 통해 표시하도록 하는 인스트럭션들을 저장할 수 있다. 상기 데이터 처리 액션은 상기 데이터 참조 액션이 실행된 결과로서 출력된 출력 값을 제1입력 값으로 이용하여 결과 값을 출력하도록 설정될 수 있다.그 외에도, 다양한 실시예들이 가능하다.

Description

오토메이션 서비스를 지원하는 전자 장치
본 발명의 특정 실시예들은 전자 장치의 상태나 주변 상황을 인지하고 인지된 상태나 상황에 따라 기능 또는 서비스를 자동으로 수행하도록 구성된 전자 장치에 관한 것이다.
전자 장치는, 전자 장치에서 지원하는 기능이나 서비스가 자동으로 실행되기 위한 조건을 전자 장치에 등록할 수 있도록 하는 어플리케이션을 사용자에게 제공할 수 있다. 여기서, 조건은 트리거(trigger)로 정의될 수 있다. 전자 장치의 상태나 주변 상황이 등록된 조건을 만족할 때 자동으로 실행되는 동작(예: 기능이나 서비스)은 액션(action)으로 정의될 수 있다. 트리거와 적어도 하나의 액션의 조합은 오토메이션(automation)으로 정의되어 전자 장치에 등록될 수 있다.
예컨대, 배터리 잔량(전자 장치의 상태)이 약 20% 이하로 감소된 것이 인식(트리거)될 경우, 절전 모드 기능(액션)(블루투스 끄기, 다크(dark) 모드 켜기)이 자동으로 실행될 수 있다. 다른 예로, 전자 장치의 위치(주변 상황)가 지정된 장소(예: 집)(트리거)일 때, 해당 오토메이션에 정의된 적어도 하나의 액션이 자동으로 실행될 수 있다. 예컨대, 상기 액션에 “와이파이 켜기, 에어컨 켜기, 에어컨 온도 25도(77 F)로 설정하기”가 포함될 수 있다.
액션들은 실행 결과에 대해 사용자가 확인 가능한지 여부를 기준으로 분류될 수 있다. 예컨대, ‘캘린더에서 일정 가져오는 동작’은 지정된 데이터를 참조한다. 지정된 데이터를 참조하는 액션(이하, 데이터 참조 액션)의 실행 결과를 사용자가 확인하기 어렵다.
액션의 다른 분류는 데이터 처리 액션(data processing action)이다. 데이터 처리 액션은 참조된 데이터를 처리하도록 구성된다. 예컨대, ‘가져온 일정을 팝업으로 보여주기’ 또는 ‘가져온 일정을 캘린더에서 삭제하기’가 데이터 처리 액션으로 분류될 수 있다. 사용자는 데이터 처리 액션의 실행 결과를 확인할 수 있다.
데이터 참조 액션의 후속 액션으로 데이터 처리 액션이 해당 오토메이션에 정의되어 있지 않을 수 있다. 이에 따라, 오토메이션의 실행 결과가 무엇인지 확인하는 것이 어려울 수 있다.
액션들끼리 연결(chainable) 관계가 성립될 수 있다. 예를 들어, 제1액션이 선행되고 이어서 제2액션이 실행되는 선후 관계가 성립될 수 있다.
제1액션이 실행된 결과로서 얻은 출력 값의 타입과 제2액션을 실행하기 위해 필요한 입력 값의 타입이 다른 경우, 제1액션과 제2액션 간의 연결 관계는 성립되지 않을 수 있다. 이에 따라, 두 액션이, 실질적으로는 연결 관계가 성립될 수 있음에도, 서로 독립적이고 개별적으로 실행될 수 있다.
따라서, 동일 오토메이션으로 묶여 있음에도 제1액션의 출력 값 타입이 제2액션의 입력 값 타입과 다르다는 이유로, 제2액션이 실행되지 않을 수 있다.
본 발명의 다양한 실시예는, 오토메이션을 생성하는 중에 데이터 처리 액션의 등록이 필요함을 사용자에게 안내하도록 구성된 전자 장치를 제공할 수 있다.
본 발명의 다양한 실시예는, 등록된 액션에 이어서 실행될 후속 액션으로서 등록 가능한 후보 리스트를 사용자에게 추천하도록 구성된 전자 장치를 제공할 수 있다. 예컨대, 전자 장치는 데이터 참조 액션의 출력 값을 입력 값으로 이용 가능한 데이터 처리 액션의 후보 리스트를 사용자에게 추천할 수 있다.
본 발명의 다양한 실시예는, 후속 액션으로 선택된 후보의 입력 값 타입이 그 선행 액션의 출력 값 타입과 다른 경우 타입 변환을 수행하도록 구성된 전자 장치를 제공할 수 있으며. 이에 따라, 오토메이션에 등록된 액션들이 정상적으로 수행될 수 있다.
본 개시에서 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
다양한 실시예에서 전자 장치는, 터치 감응 디스플레이; 상기 디스플레이에 작동적으로 연결된 프로세서; 및 상기 프로세서에 작동적으로 연결된 메모리를 포함하고, 상기 메모리는, 실행될 때, 상기 프로세서가: 지정된 트리거가 발생될 때 자동으로 실행되는 적어도 하나의 액션으로 정의되는 오토메이션을 상기 전자 장치에 등록하기 위한 등록 화면을 상기 디스플레이를 통해 제공하고, 상기 등록 화면을 통해 사용자에 의해 선택된 액션을 상기 오토메이션의 요소로 상기 전자 장치에 등록하고, 상기 오토메이션의 요소로 등록된 액션이 데이터를 참조하도록 설정된 데이터 참조 액션인 경우, 데이터 처리 액션을 위한 안내 정보를 상기 디스플레이를 통해 표시하도록 하는 인스트럭션들을 저장할 수 있다. 상기 데이터 처리 액션은 상기 데이터 참조 액션이 실행된 결과로서 출력된 출력 값을 제1입력 값으로 이용하여 결과 값을 출력하도록 설정될 수 있다.
다양한 실시예에서 전자 장치를 동작하는 방법은, 지정된 트리거가 발생될 때 자동으로 실행되는 적어도 하나의 액션으로 정의되는 오토메이션을 상기 전자 장치에 등록하기 위한 등록 화면을 디스플레이를 통해 제공하는 동작; 상기 등록 화면을 통해 사용자에 의해 선택된 액션을 상기 오토메이션의 요소로 상기 전자 장치에 등록하는 동작; 및 상기 오토메이션의 요소로 등록된 액션이 데이터를 참조하도록 설정된 데이터 참조 액션인 경우, 데이터 처리 액션을 위한 안내 정보를 상기 디스플레이를 통해 표시하는 동작을 포함할 수 있다. 상기 데이터 처리 액션은 상기 데이터 참조 액션이 실행된 결과로서 출력된 출력 값을 제1입력 값으로 이용하여 결과 값을 출력하도록 설정될 수 있다.
다양한 실시예에 따르면, 전자 장치는 등록된 오토메이션의 수행 결과를 사용자에게 제공할 수 있다. 이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1은, 다양한 실시예에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는, 다양한 실시예에 따른, 오토메이션 등록 및 자동 실행하도록 구성된 전자 장치의 블록 구성도이다.
도 3은 오토메이션에 구성될 요소(feature)의 상세 정보(specification)를 나타내는 예시이다.
도 4는, 일 실시예에 따른, 후속 액션의 등록이 필요함을 사용자에게 안내하는 동작을 설명하기 위한 도면이다.
도 5는, 일 실시예에 따른, 후속 액션의 후보 리스트를 사용자에게 제공하는 동작을 설명하기 위한 도면이다.
도 6은, 일 실시예에 따른, 오토메이션의 수행 결과를 제공하는 동작을 설명하기 위한 도면이다.
도 7은, 일 실시예에 따른, 오토메이션을 등록하기 위한 동작들을 설명하기 위한 흐름도이다.
도 8은, 일 실시예에 따른, 데이터 참조 액션의 출력 값 타입을 변환하기 위한 동작들을 설명하기 위한 흐름도이다.
도 9는, 일 실시예에 따른, 오토메이션을 등록하기 위한 동작들을 설명하기 위한 흐름도이다.
도 1 은 , 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 본 문서에서 사용된 "프로세서"라는 용어는 단수 및 복수 컨텍스트를 모두 나타낸다. 일 실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일 실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일 실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다.
무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 전자 장치(104)) 또는 네트워크 시스템(예: 제 2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일 실시예에 따르면, 무선 통신 모듈(192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
다양한 실시예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일 실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일 실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일 실시예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제 2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 일 실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
도 2는, 다양한 실시예에 따른, 오토메이션 등록 및 자동 실행하도록 구성된 전자 장치(200)의 블록 구성도이다. 도 3은 오토메이션에 구성될 요소(feature)의 상세 정보(specification)를 나타내는 예시이다. 도 2를 참조하면, 전자 장치(200)(예: 도 1의 전자 장치(101))는, 터치 감응 디스플레이(210)(예: 도 1의 디스플레이 모듈(160)), 오토메이션 서비스 모듈(220), 어플리케이션 모듈(230), 트리거 DB(240), 액션 DB(250), 오토메이션 DB(260), 메모리(288), 또는 프로세서(299)를 포함할 수 있다. 전자 장치(200)의 상기 구성 요소들은 서로 작동적으로 또는 전기적으로 연결될 수 있다.
오토메이션 서비스 모듈(220)은 오토메이션을 전자 장치(200)에 등록하도록 구성된 등록 모듈(또는, 생성 모듈)(221), 오토메이션에 구성된 요소의 타입을 변환하도록 구성된 타입 변환 모듈(222), 및 오토메이션의 실행을 관리하도록 구성된 실행 매니저 모듈(223)을 포함할 수 있다.
등록 모듈(221)은, 사용자가 오토메이션을 전자 장치(200)에 등록할 수 있도록 하기 위한 등록 화면을 디스플레이(210)를 통해 사용자에게 제공할 수 있다. 등록 모듈(221)은 등록 화면을 통해 사용자와 상호 작용하여 트리거와 적어도 하나 이상의 액션을 포함하는 오토메이션을 구성하고 오토메이션 DB(260)에 등록할 수 있다.
일 실시예에서, 등록 모듈(221)은 트리거 DB(240)에서 트리거를 확인할 수 있다. 예컨대, 등록 모듈(221)은 트리거 등록 화면을 통해 입력된 키워드에 대응하는 트리거(들)을 트리거 DB(240)에서 확인할 수 있다. 트리거 DB(240)에는 오토메이션의 요소(feature)로 구성 가능한 트리거들의 상세 정보(specification)가 저장될 수 있다. 등록 모듈(221)은 트리거 DB(240)에서 확인된 트리거(들)의 상세 정보로 트리거 리스트를 구성하고, 트리거 리스트를 트리거 등록 화면을 통해 사용자에게 제공할 수 있다. 등록 모듈(221)은 트리거 리스트에서 사용자에 의해 선택된 오토메이션 요소(예: 와이파이를 켜는 동작)를 오토메이션 DB(260)에 등록할 오토메이션의 트리거로 결정할 수 있다. 여기서, 트리거를 오토메이션 DB(260)에 등록하는 동작은, 선택된 요소를 해당 오토메이션의 트리거로 오토메이션 DB(260)에 저장하는 동작을 포함할 수 있다.
일 실시예에서, 등록 모듈(221)은 액션 DB(250)에서 액션을 확인할 수 있다. 예컨대, 등록 모듈(221)은 액션 등록 화면을 통해 입력된 키워드에 대응하는 액션(들)을 액션 DB(250)에서 확인할 수 있다. 액션 DB(250)에는 오토메이션의 요소(feature)로 구성 가능한 액션들의 상세 정보(specification)가 저장될 수 있다. 등록 모듈(221)은 액션 DB(250)에서 확인된 액션(들)의 상세 정보로 액션 리스트를 구성하고, 액션 리스트를 액션 등록 화면을 통해 사용자에게 제공할 수 있다. 등록 모듈(221)은 액션 리스트에서 사용자에 의해 선택된 오토메이션 요소(예: 블루투스를 켜는 동작)를 오토메이션 DB(260)에 등록할 오토메이션의 액션으로 결정할 수 있다. 액션을 오토메이션 DB(260)에 등록하는 동작은, 선택된 요소를 해당 오토메이션의 액션으로 오토메이션 DB(260)에 저장하는 동작을 포함할 수 있다.
상기의 실시예에서 오토메이션 요소들의 상세 정보를 관리하는 DB가 트리거 DB(240)와 액션 DB(250)로 구분되나, 이에 한정되지 않고, 그 구분없이 오토메이션 요소들이 하나의 DB로 관리될 수도 있다.
트리거 리스트와 액션 리스트에 포함될 수 있는 오토메이션 요소들은 다음 표 1과 같을 수 있다.
트리거 액션
시스템 기능 관련-와이파이가 켜졌을 때/꺼졌을 때
-블루투스가 켜졌을 때/꺼졌을 때
-배터리 잔량이 50%이하일 때
-소리 모드가 진동 모드로 변경되었을 때
시스템 기능 관련
-와이파이 켜기/끄기
-특정 와이파이 연결하기
-블루투스
어플리케이션의 동작 관련- OO로부터 전화 수신 시
- OO로부터 메시지 왔을 때
- XX 알람을 껐을 때
- 사진 촬영을 했을 때
어플리케이션의 동작 관련
- 빠른 거절 메시지 보내기
- 일정 가져오기
- 일정 공유하기
- 일정 삭제하기
- 연락처 가져오기
- 연락처 공유하기
- OO에게 XX라고 메시지 보내기
- 사진 촬영하기
- 찍은 사진 공유하기
외부 장치의 동작 관련- 에어컨 온도가 28도가 되었을 때
- TV 볼륨이 25레벨 이상일 때
- 세탁기 헹굼 완료되었을 때
외부 장치의 동작 관련
- 에어컨 온도 28도로 설정하기
- 세탁기 탈수 모드 시작하기
장소 관련- 서울역 반경 150m 안에 들어왔을 때
- 강남역 반경 150m 밖으로 나갔을 때
서비스 동작 관련
- OO 커피 매장에서 OO 메뉴 주문하기
- 날씨 정보 가져오기
시간 관련- 매일 저녁 7시가 되었을 때
- 매주 월요일 오전 6시에서 7시 사이에
빌트 인(built in) 동작 관련
- 텍스트 읽어 주기
- 팝업으로 보여 주기
등록 모듈(221)은 오토메이션에 구성될 트리거와 액션의 상세 정보를 정의하고, 정의된 트리거의 상세 정보를 트리거 DB(240)에 보관하고, 정의된 액션의 상세 정보를 액션 DB(250)에 보관할 수 있다. 등록 모듈(221)은 상세 정보를 참조하여 오토메이션을 오토메이션 DB(260)에 등록할 수 있다. 예를 들어, “OO 일정 가져오기”라는 오토메이션 요소의 상세 정보는 도 3과 같이 정의될 수 있다.
도 3을 참조하면, 상세 정보는, 해당 오토메이션 요소를 나타내는 식별자(310), 해당 요소의 카테고리(320), 해당 요소를 사용자에게 보여주는 방법을 나타내는 정보(330), 해당 요소를 처리하는 방법을 나타내는 정보(예: 해당 요소가 ‘메시지를 전송하는 동작’인 경우, 메시지 어플리케이션을 제어하기 위한 명령어가 포함됨)(340), 해당 요소를 실행하기 위해 필요한 파라미터로서 입력 값(350), 또는 해당 요소가 실행됨으로써 나타나는 결과로서 출력 값(360)을 포함할 수 있다.
입력 값(350)과 출력 값(360)의 서브 필드(sub field)들 중에서 타입은 해당 요소가 취급하는 데이터의 타입을 의미할 수 있다. 예를 들어, 아래 표 2를 참조하면, “OO일정 가져오기”라는 액션에서 입력 값은 “OO”라는 키워드를 포함할 수 있고, 키워드(입력 값)의 타입은 스트링(string)으로 정의될 수 있다. 출력 값은 키워드 “OO”를 이용하여 검색된 일정(예: 일정 아이디, 날짜, 일정 제목, 시간, 장소, 참석자)을 포함할 수 있다. 액션의 출력 값은 데이터 클래스(data class)에서 각 세부 내용의 특성(property)들을 포함할 수 있고, 그 타입은 CalendarEvent로 정의될 수 있다.
입력 값 출력 값
데이터 키워드 일정 아이디, 일정 이름, 날짜, 시작 시간, 일정이 끝나는 시간, 장소, 개요, 참석자
타입 String CalendarEvent
데이터 클래스 public class AFString implements AFData,
Equatable<AFString>, Comparable<AFString>, StringFul{
private String string;
public AFString() {
}
public class AFCalendarEvent implements AFData, LocationFul, ContactListFul, StringFul, GeoLocationFul, DisplayNameFul {
private AFString id;
private AFString eventName;
private AFDateTime startDate;
private AFDateTime endDate;
private AFLocation location;
private AFURL url;
private AFList<AFContact> attendanceList = new AFList();
private AFString summary = AFString of("");
private AFString displayName;
public AFCalendarEvent() {
}
오토메이션 DB(260)에 등록될 액션들은, 출력 값을 확인할 수 있는 방법을 사용자에게 제공하는지 여부를 기준으로, 데이터 참조 액션(예: 캘린더에서 00년 00월 00일 일정을 확인하는 동작)과 데이터 처리 액션(예: 가져온 일정을 삭제하는 동작, 가져온 일정을 팝업 창을 통해 사용자에게 제공하는 동작)으로 분류될 수 있다.
특정 실시예에서, 데이터 참조 액션은 지정된 데이터를 참조하는 액션일 수 있다. 특정 실시예에서, 데이터 참조 액션은 입력된 것과 실질적으로 동일한 형태로 저장되고 이용 가능하게 된 기록된 사용자 데이터(다른 단말에 있는 다른 사람 포함)를 참조하는 액션일 수 있다. 예컨대, 이에 국한하지는 않지만, 캘린더의 약속(appointment), 연락처(contact), 이메일의 내용(content) 또는 문자 메시지의 내용(content), 갤러리TM 와 같은 사진 보기 기능이 데이터 참조 액션일 수 있다. 특정 실시예에서, 데이터 참조 액션은 사용자(다른 단말의 다른 사용자 포함)가 텍스트 형식으로 입력하고 사용자가 터치 감응 디스플레이(210)를 통해 볼 수 있도록 텍스트로 제공되는 사용자 입력 텍스트 데이터를 참조하는 액션일 수 있다. 터치 감응 디스플레이(210)를 통해 볼 수 있게 된 텍스트는 입력된 것과 실질적으로 동일한 사용자 입력 텍스트 데이터일 수 있다.
데이터 참조 액션의 출력 값을 처리하는 데이터 처리 액션이 데이터 참조 액션의 후속 액션으로 등록될 수 있다. 예컨대, 선행 액션(데이터 참조 액션)의 출력 값(예: 일정)은 후속 액션(데이터 처리 액션)의 입력 값으로 이용될 수 있다. 사용자는 후속 액션의 처리 결과를 통해 선행 액션이 제대로 수행되었는지 여부를 확인할 수 있다. 예컨대, 후속 액션(데이터 처리 액션)이 ‘일정을 삭제하는 동작’인 경우, 사용자는 선행 액션의 결과 값(가져온 일정)이 원하는 결과 값인지 여부를 데이터 처리 액션의 수행 결과(일정 삭제)를 통해 확인할 수 있다.
데이터 처리 액션의 수행 결과는 그 자체로 확인 가능한 것이므로, 그 출력 값 타입은 지정되어 있지 않음을 나타내는 값(예: none)이거나 성공적으로 실행 완료되었는지 여부를 나타내는 값(예: boolean)을 포함할 수 있다. 따라서, 데이터 처리 액션들 간에 종속적이지 않고 독립적으로 수행될 수 있다.
일 실시예에서, 출력 값 타입은 액션 별로 아래 표 3과 같이 정의될 수 있다.
데이터 참조 액션 데이터 처리 액션
액션 출력 값 타입 액션 출력 값 타입
일정 가져오기 CalendarEvent- id
- eventName
-startDate
-endDate
-location
-attendee
일정 삭제하기
일정 공유하기
일정 수정하기
일정 이동하기
(예: 상세화면으로 이동)
None or Boolean
연락처 가져오기 Contact-id
-contact Name
-phoneNumber
-emailAddress
전화하기
메시지 보내기
전화 수신 거절 설정하기
None or Boolean
메시지 가져오기 Message-id
-sender
-text
메시지 읽기
답장하기
None or Boolean
파일 가져오기 File-id
-fileName
-filePath
-fileType
삭제
공유
열기
None or Boolean
일 실시예에서, 등록 모듈(221)은, 오토메이션 DB(260)에 등록된 액션이 데이터 참조 액션인지 여부를 확인하고, 데이터 참조 액션과 연계된 후속 액션이 오토메이션 DB(260)에 등록되어 있지 않은 경우, 후속 액션으로 데이터 처리 액션이 필요함을 등록 화면을 통해 사용자에게 안내할 수 있다. 등록 모듈(221)은, 안내에 대한 사용자 입력에 반응하여, 후속 액션으로서 가능한 후보 리스트를 등록 화면을 통해 제공할 수 있다.
선행 액션의 출력 값 타입과 후속 액션의 입력 값 타입이 맞지 않는 경우, 후속 액션이, 상기와 같은 후보 리스트를 통해 사용자에 의해 등록되었음에도 불구하고, 두 액션 간의 연결 관계가 성립되지 않아 수행되지 않을 수 있다.
타입 변환 모듈(222)은, 선행 액션으로 등록된 제1액션의 출력 값 타입과 후속 액션으로 등록된 제2액션의 입력 값 타입이 다른 경우, 제1액션의 출력 값 타입을 제2액션의 입력 값 타입에 맞춰 변환할 수 있다. 예컨대, 제1액션은 “OO 일정 가져오기”인 경우, 그 출력 값 타입은 표 3에 예시된 바와 같이, 데이터를 일정 아이디, 일정 이름, 시작 시간, 종료 시간, 장소, 및 참석자로 분류되는 타입일 수 있다. 제2액션의 입력 값 타입이 string인 경우, 타입 변환 모듈(222)은 제1액션의 출력 값 타입을 string으로 변환하는 작업을 수행할 수 있다.
실행 매니저 모듈(223)은 상기 표 2와 같은 요소의 상세 정보를 기반으로 어플리케이션 모듈(230)과 연동하여 오토메이션 DB(260)에 등록된 오토메이션을 실행할 수 있다.
일 실시예에서, 실행 매니저 모듈(223)은 트리거가 발생된 것을 인식할 수 있다. 예를 들어, 실행 매니저 모듈(223)은 어플리케이션 모듈(230)에 의해 트리거로서 지정된 동작이 실행된 것을 인식할 수 있다. 예컨대, 트리거는, 메시지 어플리케이션에서 무선 통신 회로를 통해 외부 전자 장치로부터 지정된 연락처의 메시지(예: 채팅(또는, 인스턴트) 메시지, SNS(social networking service) 메시지, 통화(예: 음성 통화, 영상 통화) 요청 메시지)를 수신하는 동작, 노티피케이션(notification) 어플리케이션이 다른 어플리케이션에서 발생된 지정된 이벤트(예: 메시지 어플리케이션에서 메시지를 수신하는 동작)에 대응하는 알림을 디스플레이 및/또는 스피커를 통해 제공하는 동작, 카메라 어플리케이션에서 카메라를 이용하여 사진을 촬영하는 동작, 헬스 어플리케이션에서 위치 인식 모듈(예: GNSS(global navigation satellite system) 통신 모듈)을 통해 전자 장치(200)가 지정된 장소(예: 집)에 도착한 것을 인식하는 동작, 또는 장치 관리 어플리케이션에서 배터리의 잔량이 지정된 값 이하로 줄어든 것을 인식하는 동작을 포함할 수 있다. 이외에도 다양한 동작들이 트리거로 지정 가능할 수 있다.
일 실시예에서, 실행 매니저 모듈(223)은 트리거 발생 시 수행되어야 하는 동작으로 지정된 액션을 오토메이션 DB(260)에서 확인하고, 확인된 액션(예: 기능 또는 서비스)을 실행하도록 어플리케이션 모듈(230)을 제어할 수 있다.
어플리케이션 모듈(230)(예: 도 1의 어플리케이션(146))은, 전자 장치(200) 제조 시 내장된(embedded) 어플리케이션 및/또는 온라인(예: 어플리케이션 스토어)상에 또는 저장 매체의 형태로 배포된 어플리케이션으로 구현될 수 있다. 어플리케이션 모듈(230)은, 트리거로서, 실행된 지정된 동작을 나타내는 정보를 오토메이션 서비스 모듈(220)로 전송하고, 상기 정보 전송에 대한 응답으로 오토메이션 서비스 모듈(220)로부터 수신된 액션 정보에 기반하여 기능이나 서비스를 실행할 수 있다.
등록 모듈(221), 타입 변환 모듈(222), 실행 매니저 모듈(223), 또는 어플리케이션 모듈(230)은, 메모리(288)(예: 도 1의 메모리(130))에 인스트럭션들(instructions)로 저장되고, 프로세서(299)(예: 도 1의 프로세서(120))에 의해 실행될 수 있다. 모듈들(221, 222, 223, 230) 중 적어도 하나는 인공지능 모델의 처리에 특화된 프로세서(예: 보조 프로세서(123))에 의해 실행될 수도 있다. 트리거 DB(240), 액션 DB(250), 또는 오토메이션 DB(260)는 메모리(288)에 저장되거나 메모리(288)와 물리적으로 분리된 별도의 칩에 저장될 수 있다.
다양한 실시예에서, 도 2에 도시된 구성요소 외에 추가적인 구성요소를 포함하거나, 도 2에 도시된 구성요소 중 적어도 하나를 생략할 수 있다. 예컨대, 전자 장치(200)는 오토메이션 서비스 모듈(220)을 호출하기 위한 지정된 사용자 입력을 수신하기 위한 마이크(예: 도 1의 입력 모듈(150))를 더 포함할 수 있다.
도 4는, 일 실시예에 따른, 후속 액션의 등록이 필요함을 사용자에게 안내하는 동작을 설명하기 위한 도면이다. 도 4a를 참조하면, 비독점적인(non-exclusive) 액션 리스트(410) 및 검색어로 액션을 검색하기 위한 박스를 포함하는 제1 화면이 표시된다. 사용자가 터치 입력(401)을 통해 "이벤트 찾기"와 같은 액션을 선택하는 경우, 도 4b의 화면이 표시된다. 도 4b의 화면은 제1 섹션(431) 및 제2 섹션(432)을 포함한다. 제1 섹션(431)은 "Wi-Fi 네트워크가 MDX_2G에서 연결 해제됨"과 같은 액션에 대한 조건 또는 트리거를 표시하거나 수신할 수 있다. 제2 섹션(432)은 제1 액션 아이템(433)에 대한 입력을 표시 및 수신한다. 제2 섹션(433)의 액션은 제1 섹션(431)의 조건 또는 트리거에 응답하여 수행된다. 제1 액션 아이템이 데이터 참조 액션인 경우, 팝업 창(440)은 사용자가 추가 작업을 요청하는 것을 돕기 위해 표시된다.
도 4(a)를 참조하면, 프로세서(예: 도 2의 프로세서(299))는 액션 리스트(410)를 디스플레이(예: 도 1의 디스플레이 모듈(160) 또는 도 2의 터치 감응 디스플레이(210))를 통해 사용자에게 제공할 수 있다. 프로세서(299)는 설정된 조건에 따라 액션들을 액션 DB(250)에서 선별할 수 있다. 예를 들어, 프로세서(299)는 무작위로 액션들을 액션 DB(250)에서 선별할 수 있다. 또는, 프로세서(299)는 검색 창(420)을 통해 사용자로부터 입력된 키워드와 일치하는 이름을 갖는 액션들을 액션 DB(250)에서 선별할 수도 있다. 또는, 프로세서(299)는 최근 들어(예: 일주일 이내) 즐겨 찾는 어플리케이션에 대응하는 액션들을 액션 DB(250)에서 선별할 수도 있다. 또는, 프로세서(299)는 사용 빈도가 단위 시간당 지정된 횟수 이상인 액션들을 액션 DB(250)에서 선별할 수도 있다. 이외에도 다양한 조건에 따라 액션들이 선별될 수 있다. 프로세서(299)는 선별된 액션들을 나타내는 액션 아이템들(예: 각각의 아이템은 해당 액션을 수행하는 어플리케이션을 나타내는 아이콘과 해당 액션의 명칭을 포함)을 액션 리스트(410)에 포함하여 디스플레이에 표시할 수 있다. 디스플레이의 크기 또는 아이템의 크기에 의하여, 액션 아이템들이 한 번에 액션 리스트(410)를 통해 표시되지 못할 수 있다. 프로세서(299)는, 액션 아이템들의 일부를 액션 리스트(410)를 통해 표시하는 중에, 사용자의 터치 제스처(예: 위 또는 아래로 드래그 제스처)에 반응하여, 다른 액션 아이템들을 액션 리스트(410)를 통해 표시할 수 있다.
도 4(b)를 참조하면, 프로세서(299)는 오토메이션 등록을 위한 화면(430)를 디스플레이를 통해 사용자에게 제공할 수 있다. 예를 들어, 프로세서(299)는, 액션 리스트(예: 도 4(a)의 액션 리스트(410))에서 지정된 액션 아이템이 사용자에 의해 선택(예: 해당 아이템이 터치(401))된 것에 반응하여, 액션 리스트(410)에서 등록 화면(430)으로 화면 전환할 수 있다. 프로세서(299)는 트리거 등록을 위한 제1섹션(431)과 액션 등록을 위한 제2섹션(432)을 등록 화면(430)에 포함하여 디스플레이에 표시할 수 있다. 프로세서(299)는, 액션 리스트(410)에서 선택된 아이템의 액션을 오토메이션의 제1액션으로 등록하고, 제1액션을 나타내는 제1액션 아이템(433)을 제2섹션(432)을 통해 제공할 수 있다. 프로세서(299)는 제1액션을 수행하기 위해 필요한 입력 값을 제2섹션(432)를 통해 사용자로부터 수신할 수 있다. 예를 들어, 프로세서(299)는, 제1액션 아이템(433)에 대한 사용자의 터치 입력에 반응하여, 제1액션(예: OO 이벤트 찾기)을 실행하도록 구성된 어플리케이션의 실행 화면(예: 달력 화면)을 디스플레이에 표시할 수 있다. 프로세서(299)는, 실행 화면을 통해 사용자로부터 입력 값(예: 2020.08.03 - 2020.08.05 운동)을 수신하고, 수신된 입력 값을 제1액션의 입력 값으로 설정할 수 있다. 추가적으로, 프로세서(299)는 입력 값(433a)을 제1액션 아이템(433)에 인접한 위치에 표시할 수 있다.
프로세서(299)는 제1액션의 상세 정보를 확인하여 제1액션이 데이터 참조 액션인지 여부를 판단할 수 있다. 예를 들어, 도 3을 참조하면, 프로세서(299)는 출력 값(360)의 서브 필드들 중에서 “dataReferenceAction”의 값을 확인하여, 그 값이 ‘true’인 경우 제1액션을 데이터 참조 액션으로 인식하고, 그 값이 ‘false’인 경우 제1액션을 데이터 처리 액션으로 인식할 수 있다.
도 4(c)를 참조하면, 제1액션이 데이터 참조 액션으로 인식된 경우 프로세서(299)는 후속 액션의 등록이 필요함을 팝업 창(440)을 통해 사용자에게 안내할 수 있다. 프로세서(299)는 팝업 창(440)의 표시를, 표시가 시작된 시점으로부터 지정된 시간 만료 후 또는 사용자의 터치 입력(예: 화면 밖으로 내보내는 듯한 터치 제스처)에 반응하여, 종료할 수 있다. 프로세서(299)는, 후속 액션의 등록 없이 오토메이션 등록을 완료하기 위한 사용자 입력(예: 완료 버튼(450)에 대한 터치 입력)이 수신되더라도, 반응하지 않고 등록 화면(430)의 표시를 유지할 수 있다. 프로세서(299)는, 추가적으로 또는 팝업 창(440) 표시를 대신하여, 완료 버튼(450)을 다른 UI(user interface) 요소(예: 취소 버튼(460), 제1액션 아이템(433), 입력 값(433a))와 구별되게(예: 흐릿하게) 표시함으로써, 오토메이션 등록이 아직 완료되지 못하였음을 사용자에게 안내할 수 있다.
도 5는, 일 실시예에 따른, 후속 액션의 후보 리스트를 사용자에게 제공하는 동작을 설명하기 위한 도면이다. 도 5를 설명함에 있어 도 4에 대한 설명과 중복되는 부분은 생략 또는 간략히 기재된다. 도 5a에서, 사용자는 버튼(510)을 선택하여 제2 섹션에서 추가 동작을 설정할 수 있다. 버튼(51)을 선택한 것에 반응하여, 도 5b의 화면은 제2 액션(520)의 후보 리스트를 표시한다.
도 5(a)를 참조하면, 프로세서(예: 도 2의 프로세서(299))는 제1액션 다음으로 수행될 제2액션을 추가하기 위한 버튼(510)을 포함하는 등록 화면(430)을 디스플레이를 통해 사용자에게 제공할 수 있다.
도 5(b)를 참조하면, 프로세서(299)는 추가 버튼(510)에 대한 사용자 입력에 반응하여, 후보 리스트(520)를 디스플레이를 통해 제공할 수 있다. 일 실시예에서, 프로세서(299)는 사용자 입력에 반응하여 제1액션의 출력 값 타입을 확인할 수 있다. 예컨대 도 3을 참조하여 설명하면, 프로세서(299)는 출력 값(360)의 서브 필드들 중에서 “type field”의 값을 확인할 수 있다. 프로세서(299)는 확인된 출력 값 타입과 일치하는 입력 값 타입을 갖는 액션들을 액션 DB(250)에서 확인하고, 확인된 액션들을 후속 액션의 후보로 결정할 수 있다. 예를 들어, 선행 액션으로 등록된 데이터 참조 액션의 출력 값 타입이 일정(또는, 이벤트)을 나타내는 값일 수 있다. 프로세서(299)는, 이러한 일정과 관련된 값을 입력 값으로 사용하는 액션들(예: 입력 값(이벤트)을 팝업으로 보기, 입력 값(일정)을 메시지로 보내기, 입력 값(이벤트) 지우기)을 후속 액션의 후보들로 선택할 수 있다. 프로세서(299)는 후보들 각각에 대응하는 액션 아이템들을 후보 리스트(520)를 통해 제공할 수 있다. 프로세서(299)는 후보 리스트(520)에서 선택된 액션을 제1액션 다음에 수행될 오토메이션의 제2액션으로 등록할 수 있다.
도 6은, 일 실시예에 따른, 오토메이션의 수행 결과를 제공하는 동작을 설명하기 위한 도면이다. 도 6을 설명함에 있어 도 4 내지 도 5에 대한 설명과 중복되는 부분은 생략 또는 간략히 기재된다. 도 6a를 참조하면, 조건 또는 트리거에 응답하여 발생하는 액션(433, 601)이 제1 섹션(431)에 제시된다. 제1 액션(433)의 출력 값은 제2 액션 아이템(601)에 대한 입력 값과 다르다. 따라서, 프로세서(299)는 제2액션의 입력 값 타입에 따라 제1 섹션의 출력 값 타입을 변환하여 연결 가능한 관계를 형성할 수 있다.
도 6(a)를 참조하면, 프로세서(예: 도 2의 프로세서(299))는 제1 액션을 나타내는 제1액션 아이템(433)과 제1액션의 출력 값(예: 일정)을 제1입력 값으로 사용하는 제2액션을 나타내는 제2액션 아이템(601)을 제2섹션(432)을 통해 제공할 수 있다. 프로세서(299)는 제2액션을 수행하기 위해 필요한 제2입력 값을 제2섹션(432)를 통해 사용자로부터 수신할 수 있다. 예를 들어, 프로세서(299)는, 제2액션 아이템(601)에 대한 사용자의 터치 입력에 반응하여, 제2액션(예: OO(제2입력값)에게 OO(제1입력값)을 메시지로 보내기)을 실행하도록 구성된 어플리케이션의 실행 화면(예: 연락처 화면)을 디스플레이에 표시할 수 있다. 프로세서(299)는 실행 화면을 통해 사용자와 상호 작용함으로써 지정된 정보(예: 연락처 정보)를 제2액션의 제2입력 값으로 설정할 수 있다. 추가적으로, 프로세서(299)는 제2입력 값(예: 메시지 받을 사람의 이름)(601a)을 제2액션 아이템(601)에 인접한 위치에 표시할 수 있다.
프로세서(299)는 제1액션의 출력 값 타입을 제2액션의 입력 값 타입에 맞춰 변환할 수 있다. 예를 들어, 프로세서(299)는 오토메이션 생성 중에 “OO 일정 가져오기”라는 제1액션과 “OO에게 OO 일정을 메시지로 보내기”라는 제2액션 간에 연결(chainable) 관계를 수립할 수 있다. 제1액션의 출력 값 타입(예: 일정)과 제2액션의 입력 값 타입(예: 텍스트)이 다르고 연결 관계가 성립되지 않을 수 있다. 이에 따라, 프로세서(299)는 제1액션의 출력 값 타입을 일정에서 텍스트로 변환할 수 있다.
도 6(b)를 참조하면, 프로세서(299)는 제2액션의 수행 결과(610)를 해당 어플리케이션의 실행 화면을 통해 사용자에게 제공할 수 있다. 예컨대, 프로세서(299)는 도 6(a)의 등록 화면에서 제1섹션(431)에 등록된 트리거가 발생했음을 인식하면, 제2섹션(432)에 등록된 제1액션 및 제2액션을 자동으로 수행하고, 그 수행 결과(610)를 사용자에게 디스플레이를 통해 제공할 수 있다.
도 7은, 일 실시예에 따른, 오토메이션을 등록하기 위한 동작들을 설명하기 위한 흐름도이다.
동작 710에서 프로세서(예: 도 2의 프로세서(299))는 디스플레이를 통해 사용자와 상호 작용하여 오토메이션의 트리거를 설정할 수 있다. 예를 들어, 프로세서(299)는 사용자 입력에 따라 오토메이션 서비스 모듈(220)을 실행할 수 있다. 일 실시예에서, 프로세서(299)는 홈 화면을 통해 오토메이션 서비스 모듈(220)을 나타내는 아이콘을 제공할 수 있다. 프로세서(299)는 아이콘에 대한 사용자의 터치 입력에 반응하여 오토메이션 서비스 모듈(220)을 실행할 수 있다. 일 실시예에서, 사용자 입력은 오토메이션 서비스 모듈(220)을 호출하도록 지정된 음성 입력일 수 있다. 예를 들어, 프로세서(299)는 음성 인식 모듈(speech recognition module)을 포함할 수 있다. 프로세서(299)는 마이크(예: 도 1의 입력 모듈(150))를 통해 사용자의 음성 입력을 수신하고, 음성 입력을 텍스트 데이터로 변환할 수 있다. 프로세서(299)는 텍스트 데이터에 오토메이션 서비스 모듈(220)을 호출하도록 지정된 텍스트(예: 오토메이션 실행해 줘)가 포함된 것에 반응하여 오토메이션 서비스 모듈(220)을 실행할 수 있다. 프로세서(299)는 오토메이션 서비스 모듈(220)의 실행 화면(예: 트리거 등록 화면(또는, 트리거 설정 화면))을 디스플레이를 통해 제공할 수 있다. 프로세서(299)는 트리거 등록 화면을 통해 입력된 키워드에 대응하는 트리거(들)의 상세 정보를 트리거 DB(240)에서 확인할 수 있다. 프로세서(299)는 확인된 트리거(들)의 상세 정보로 트리거 리스트를 구성하고, 트리거 리스트를 트리거 등록 화면을 통해 제공할 수 있다. 프로세서(299)는 트리거 리스트에서 사용자의 의해 선택된 오토메이션 요소를 오토메이션 DB(260)에 등록할 오토메이션의 트리거로 설정할 수 있다.
동작 720에서 프로세서(299)는 트리거가 발생된 것에 반응하여 수행될 제1액션을 설정할 수 있다. 예를 들어, 프로세서(299)는 액션 리스트를 디스플레이를 통해 제공할 수 있다. 프로세서(299)는 오토메이션 서비스 모듈(220)의 실행 화면(예: 액션 등록 화면(또는, 액션 설정 화면))을 디스플레이를 통해 제공할 수 있다. 프로세서(299)는 액션 등록 화면을 통해 입력된 키워드에 대응하는 액션(들)의 상세 정보를 액션 DB(250)에서 확인할 수 있다. 프로세서(299)는 확인된 액션(들)의 상세 정보로 액션 리스트를 구성하고, 액션 리스트를 액션 등록 화면을 통해 제공할 수 있다. 프로세서(299)는 액션 리스트에서 사용자의 의해 선택된 오토메이션 요소를 오토메이션 DB(260)에 등록할 오토메이션의 제1액션으로 설정할 수 있다.
동작 730에서 프로세서(299)는 제1액션의 출력 값 타입을 나타내는 정보에 기반하여 제1액션이 데이터 참조 액션인 것으로 인식할 수 있다. 예를 들어, 프로세서(299)는 제1액션의 출력 값에서 데이터 참조 액션 값(“dataReferenceAction”의 값)이 true인 경우 제1액션을 데이터 참조 액션으로 분류하고 데이터 참조 액션 값이 false인 경우 제1액션을 데이터 처리 액션으로 분류할 수 있다.
동작 740에서 프로세서(299)는, 제1액션이 데이터 참조 액션으로 분류됨에 따라, 후속 액션의 등록을 사용자에게 요청할 수 있다. 예컨대, 프로세서(299)는 팝업 창을 통해 후속 액션의 등록이 필요함을 사용자에게 안내할 수 있다.
동작 750에서 프로세서(299)는, 요청에 대한 사용자 반응에 따라, 후속 액션으로 등록 가능한 후보들로 후보 리스트를 구성하여 디스플레이를 통해 제공할 수 있다. 예를 들어, 프로세서(299)는 제1액션의 출력 값 타입과 일치하는 입력 값 타입을 갖는 액션들을 액션 DB(250)에서 확인하고, 확인된 액션들의 상세 정보를 이용하여 후보 리스트를 구성할 수 있다.
동작 760에서 프로세서(299)는 후보 리스트에서 사용자에 의해 선택된 액션을 제1액션 다음으로 수행될 제2액션으로 설정할 수 있다.
특정 실시예에서, 동작 760을 수행한 후, 동작 760에서 선택된 액션이 다른 데이터 참조 액션인지 여부가 결정될 수 있다. 동작 760에서 선택된 액션이 다른 데이터 참조 액션인 경우, 동작740 내지 760은 선택된 액션이 데이터 참조 액션이 아닐 때까지 반복될 수 있다.
도 8은, 일 실시예에 따른, 데이터 참조 액션의 출력 값 타입을 변환하기 위한 동작들을 설명하기 위한 흐름도이다.
동작 810에서 프로세서(예: 도 2의 프로세서(299))는 데이터 처리 액션을 오토메이션의 후속 액션으로 설정할 수 있다. 예를 들어, 프로세서(299)는 후보 리스트(예: 도 5의 후보리스트(520))에서 선택된 데이터 처리 액션을 오토메이션의 후속 액션으로 설정할 수 있다.
동작 820에서 프로세서(299)는 오토메이션의 선행 액션으로 설정된 데이터 참조 액션의 출력 값 타입이 데이터 처리 액션의 입력 값 타입과 다름을 인식할 수 있다.
동작 830에서 프로세서(299)는 출력 값 타입을 입력 값 타입으로 변환할 수 있다. 예를 들어, 프로세서(299)는 트리거 발생에 따라 선행 액션을 자동으로 수행할 수 있다. 선행 액션의 수행 결과로서 A 타입(예: CalendarEvent)의 property a, b, 및 c가 출력될 수 있다. 프로세서(299)는 선행 액션의 출력 값인 property a, b, 및 c의 타입을 후속 액션의 입력 값인 B 타입(예: string)의 property d로 변환할 수 있다. 프로세서(299)는 property d를 후속 액션을 수행할 때 필요한 입력 값으로 사용할 수 있다.
도 9는, 일 실시예에 따른, 오토메이션을 등록하기 위한 동작들을 설명하기 위한 흐름도이다.
동작 910에서 프로세서(299)는 사용자가 오토메이션을 전자 장치(200)에 등록할 수 있도록 하기 위한 등록 화면을 디스플레이(210)를 통해 사용자에게 제공할 수 있다.
동작 920에서 프로세서(299)는 상기 등록 화면을 통해 사용자에 의해 선택된 액션(예:도 4(a)의 액션 리스트(410)에서 선택된 아이템에 대응하는 액션)을 오토메이션의 요소로 상기 전자 장치에 등록할 수 있다. 예컨대, 프로세서(299)는 선택된 액션을 해당 오토메이션의 요소로 오토메이션 DB(260)에 저장할 수 있다.
동작 930에서 프로세서(299)는, 등록된 액션이 데이터를 참조하도록 설정된 데이터 참조 액션인 경우, 등록된 액션의 후속 액션으로서 데이터 처리 액션이 필요함을 상기 디스플레이를 통해 사용자에게 안내할 수 있다.
다양한 실시예에서 전자 장치(예: 도 2의 전자 장치(200))는, 터치 감응 디스플레이; 상기 디스플레이에 작동적으로 연결된 프로세서; 및 상기 프로세서에 작동적으로 연결된 메모리를 포함하고, 상기 메모리는, 실행될 때, 상기 프로세서가: 지정된 트리거가 발생될 때 자동으로 실행되는 적어도 하나의 액션으로 정의되는 오토메이션을 상기 전자 장치에 등록하기 위한 등록 화면을 상기 디스플레이를 통해 제공하고, 상기 등록 화면을 통해 사용자에 의해 선택된 액션을 상기 오토메이션의 요소로 상기 전자 장치에 등록하고, 상기 오토메이션의 요소로 등록된 액션이 데이터를 참조하도록 설정된 데이터 참조 액션인 경우, 데이터 처리 액션을 위한 안내 정보를 상기 디스플레이를 통해 표시하도록 하는 인스트럭션들을 저장할 수 있다. 상기 데이터 처리 액션은 상기 데이터 참조 액션이 실행된 결과로서 출력된 출력 값을 제1입력 값으로 이용하여 결과 값을 출력하도록 설정될 수 있다.
상기 인스트럭션들은 상기 프로세서가, 상기 안내 정보와 관련된 사용자 입력에 반응하여, 상기 데이터 처리 액션으로 선택 가능한 후보들을 나타내는 후보 리스트(예: 도 5의 후보 리스트(520))를 상기 디스플레이를 통해 제공하도록 할 수 있다.
상기 인스트럭션들은 상기 프로세서가, 상기 출력 값의 타입을 상기 데이터 참조 액션의 상세 정보에서 확인하고, 액션들의 상세 정보를 저장한 데이터베이스에서 상기 출력 값 타입과 일치하는 입력 값 타입을 갖는 액션들을 확인하고, 상기 확인된 액션들의 상세 정보를 이용하여 상기 후보 리스트를 구성하도록 할 수 있다.
상기 인스트럭션들은 상기 프로세서가, 상기 출력 값의 서브 필드들 중에서 상기 출력 값의 타입을 나타내는 서브 필드의 값을 확인하도록 할 수 있다.
상기 인스트럭션들은 상기 프로세서가, 팝업 창(예: 도 4의 팝업 창(440))을 통해 상기 데이터 처리 액션이 필요함을 나타내는 상기 안내 정보를 표시하도록 할 수 있다.
상기 인스트럭션들은 상기 프로세서가, 상기 출력 값의 타입이 상기 데이터 처리 액션으로 상기 전자 장치에 등록된 액션의 입력 값의 타입과 다른 경우, 상기 출력 값의 타입을 상기 입력 값의 타입에 맞게 변환하도록 할 수 있다.
상기 인스트럭션들은 상기 프로세서가, 상기 데이터 참조 액션 다음에 수행될 후속 액션으로 데이터 처리 액션이 상기 전자 장치에 등록되지 않은 경우, 상기 등록 화면을 통해 제공되는 복수의 UI(user interface) 요소들 중 오토메이션 등록의 완료를 위한 완료 버튼(예: 도 4의 완료 버튼(450))을 나머지 UI 요소와 구별되게 표시하도록 할 수 있다. 상기 인스트럭션들은 상기 프로세서가, 상기 완료 버튼을 나머지 UI 요소보다 흐릿하게 표시하도록 할 수 있다. 상기 인스트럭션들은 상기 프로세서가, 상기 데이터 참조 액션 다음에 수행될 후속 액션으로 데이터 처리 액션이 상기 전자 장치에 등록되지 않은 상태에서 상기 완료 버튼에 대한 사용자 입력이 상기 디스플레이로부터 수신된 경우, 상기 사용자 입력에 반응하지 않고, 상기 등록 화면의 표시를 유지하도록 할 수 있다.
상기 인스트럭션들은 상기 프로세서가, 상기 등록 화면을 통해 수신된 제2입력 값을 상기 데이터 처리 액션을 수행하기 위해 필요한 입력 값으로 설정하도록 할 수 있다.
상기 인스트럭션들은 상기 프로세서가, 상기 오토메이션의 요소로 등록된 액션의 출력 값의 서브 필드들 중에서 상기 데이터 참조 액션인지 여부를 나타내는 값에 기초하여, 상기 오토메이션의 요소로 등록된 액션이 상기 데이터 참조 액션인 것으로 인식하도록 할 수 있다.
다양한 실시예에서 전자 장치를 동작하는 방법은, 지정된 트리거가 발생될 때 자동으로 실행되는 적어도 하나의 액션으로 정의되는 오토메이션을 상기 전자 장치에 등록하기 위한 등록 화면을 디스플레이를 통해 제공하는 동작; 상기 등록 화면을 통해 사용자에 의해 선택된 액션을 상기 오토메이션의 요소로 상기 전자 장치에 등록하는 동작; 및 상기 오토메이션의 요소로 등록된 액션이 데이터를 참조하도록 설정된 데이터 참조 액션인 경우, 데이터 처리 액션을 위한 안내 정보를 상기 디스플레이를 통해 표시하는 동작을 포함할 수 있다. 상기 데이터 처리 액션은 상기 데이터 참조 액션이 실행된 결과로서 출력된 출력 값을 제1입력 값으로 이용하여 결과 값을 출력하도록 설정될 수 있다.
상기 방법은, 상기 안내 정보와 관련된 사용자 입력에 반응하여, 상기 데이터 처리 액션으로 선택 가능한 후보들을 나타내는 후보 리스트를 상기 디스플레이를 통해 제공하는 동작을 더 포함할 수 있다.
상기 후보 리스트를 제공하는 동작은, 상기 출력 값의 타입을 상기 데이터 참조 액션의 상세 정보에서 확인하는 동작; 액션들의 상세 정보를 저장한 데이터베이스에서 상기 출력 값 타입과 일치하는 입력 값 타입을 갖는 액션들을 확인하는 동작; 및 상기 확인된 액션들의 상세 정보를 이용하여 상기 후보 리스트를 구성하는 동작을 포함할 수 있다.
상기 출력 값의 타입을 확인하는 동작은, 상기 출력 값의 서브 필드들 중에서 상기 출력 값의 타입을 나타내는 서브 필드의 값을 확인하는 동작을 포함할 수 있다.
상기 방법은, 상기 출력 값의 타입이 상기 데이터 처리 액션으로 상기 전자 장치에 등록된 액션의 입력 값의 타입과 다른 경우, 상기 출력 값의 타입을 상기 입력 값의 타입에 맞게 변환하는 동작을 더 포함할 수 있다.
상기 방법은, 상기 데이터 참조 액션 다음에 수행될 후속 액션으로 데이터 처리 액션이 상기 전자 장치에 등록되지 않은 경우, 상기 등록 화면을 통해 제공되는 복수의 UI(user interface) 요소들 중 오토메이션 등록의 완료를 위한 완료 버튼을 나머지 UI 요소와 구별되게 표시하는 동작을 더 포함할 수 있다.
상기 완료 버튼을 나머지 UI 요소와 구별되게 표시하는 동작은, 상기 완료 버튼을 나머지 UI 요소보다 흐릿하게 표시하는 동작을 포함할 수 있다.
상기 방법은, 상기 데이터 참조 액션 다음에 수행될 후속 액션으로 데이터 처리 액션이 상기 전자 장치에 등록되지 않은 상태에서 상기 완료 버튼에 대한 사용자 입력이 상기 디스플레이로부터 수신된 경우, 상기 사용자 입력에 반응하지 않고, 상기 등록 화면의 표시를 유지하는 동작을 더 포함할 수 있다.
상기 방법은, 상기 오토메이션의 요소로 등록된 액션의 출력 값의 서브 필드들 중에서 상기 데이터 참조 액션인지 여부를 나타내는 값에 기초하여, 상기 오토메이션의 요소로 등록된 액션이 상기 데이터 참조 액션인 것으로 인식하는 동작을 더 포함할 수 있다.
본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 실시예에 따른 기술 내용을 쉽게 설명하고 본 발명의 실시예의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 실시예의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 다양한 실시예의 범위는 여기에 개시된 실시예들 이외에도 본 발명의 다양한 실시예의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 다양한 실시예의 범위에 포함되는 것으로 해석되어야 한다.

Claims (15)

  1. 전자 장치에 있어서,
    터치 감응 디스플레이;
    상기 디스플레이에 작동적으로 연결된 프로세서; 및
    상기 프로세서에 작동적으로 연결된 메모리를 포함하고, 상기 메모리는, 실행될 때, 상기 프로세서가:
    지정된 트리거가 발생될 때 자동으로 실행되는 적어도 하나의 액션으로 정의되는 오토메이션을 상기 전자 장치에 등록하기 위한 등록 화면을 상기 디스플레이를 통해 제공하고,
    상기 등록 화면을 통해 사용자에 의해 선택된 액션을 상기 오토메이션의 요소로 상기 전자 장치에 등록하고,
    상기 오토메이션의 요소로 등록된 액션이 데이터를 참조하도록 설정된 데이터 참조 액션인 경우, 데이터 처리 액션을 위한 안내 정보를 상기 디스플레이를 통해 표시하도록 하는 인스트럭션들을 저장하고,
    상기 데이터 처리 액션은 상기 데이터 참조 액션이 실행된 결과로서 출력된 출력 값을 제1입력 값으로 이용하여 결과 값을 출력하도록 설정된 것인, 전자 장치.
  2. 제1항에 있어서, 상기 인스트럭션들은 상기 프로세서가,
    상기 안내 정보와 관련된 사용자 입력에 반응하여, 상기 데이터 처리 액션으로 선택 가능한 후보들을 나타내는 후보 리스트를 상기 디스플레이를 통해 제공하도록 하는 전자 장치.
  3. 제2항에 있어서, 상기 인스트럭션들은 상기 프로세서가,
    상기 출력 값의 타입을 상기 데이터 참조 액션의 상세 정보에서 확인하고,
    액션들의 상세 정보를 저장한 데이터베이스에서 상기 출력 값 타입과 일치하는 입력 값 타입을 갖는 액션들을 확인하고,
    상기 확인된 액션들의 상세 정보를 이용하여 상기 후보 리스트를 구성하도록 하는 전자 장치.
  4. 제3항에 있어서, 상기 인스트럭션들은 상기 프로세서가, 상기 출력 값의 서브 필드들 중에서 상기 출력 값의 타입을 나타내는 서브 필드의 값을 확인하도록 하는 전자 장치.
  5. 제1항에 있어서, 상기 인스트럭션들은 상기 프로세서가,
    팝업 창을 통해 상기 데이터 처리 액션이 필요함을 나타내는 상기 안내 정보를 표시하도록 하는 전자 장치.
  6. 제1항에 있어서, 상기 인스트럭션들은 상기 프로세서가,
    상기 출력 값의 타입이 상기 데이터 처리 액션으로 상기 전자 장치에 등록된 액션의 입력 값의 타입과 다른 경우, 상기 출력 값의 타입을 상기 입력 값의 타입에 맞게 변환하도록 하는 전자 장치.
  7. 제1항에 있어서, 상기 인스트럭션들은 상기 프로세서가,
    상기 데이터 참조 액션 다음에 수행될 후속 액션으로 데이터 처리 액션이 상기 전자 장치에 등록되지 않은 경우, 상기 등록 화면을 통해 제공되는 복수의 UI(user interface) 요소들 중 오토메이션 등록의 완료를 위한 완료 버튼을 나머지 UI 요소와 구별되게 표시하도록 하는 전자 장치.
  8. 제7항에 있어서, 상기 인스트럭션들은 상기 프로세서가,
    상기 완료 버튼을 나머지 UI 요소보다 흐릿하게 표시하도록 하는 전자 장치.
  9. 제7항에 있어서, 상기 인스트럭션들은 상기 프로세서가,
    상기 데이터 참조 액션 다음에 수행될 후속 액션으로 데이터 처리 액션이 상기 전자 장치에 등록되지 않은 상태에서 상기 완료 버튼에 대한 사용자 입력이 상기 디스플레이로부터 수신된 경우, 상기 사용자 입력에 반응하지 않고, 상기 등록 화면의 표시를 유지하도록 하는 전자 장치.
  10. 제1항에 있어서, 상기 인스트럭션들은 상기 프로세서가,
    상기 등록 화면을 통해 수신된 제2입력 값을 상기 데이터 처리 액션을 수행하기 위해 필요한 입력 값으로 설정하도록 하는 전자 장치.
  11. 제1항에 있어서, 상기 인스트럭션들은 상기 프로세서가,
    상기 오토메이션의 요소로 등록된 액션의 출력 값의 서브 필드들 중에서 상기 데이터 참조 액션인지 여부를 나타내는 값에 기초하여, 상기 오토메이션의 요소로 등록된 액션이 상기 데이터 참조 액션인 것으로 인식하도록 하는 전자 장치.
  12. 전자 장치를 동작하는 방법에 있어서,
    지정된 트리거가 발생될 때 자동으로 실행되는 적어도 하나의 액션으로 정의되는 오토메이션을 상기 전자 장치에 등록하기 위한 등록 화면을 디스플레이를 통해 제공하는 동작;
    상기 등록 화면을 통해 사용자에 의해 선택된 액션을 상기 오토메이션의 요소로 상기 전자 장치에 등록하는 동작; 및
    상기 오토메이션의 요소로 등록된 액션이 데이터를 참조하도록 설정된 데이터 참조 액션인 경우, 데이터 처리 액션을 위한 안내 정보를 상기 디스플레이를 통해 표시 동작을 포함하고,
    상기 데이터 처리 액션은 상기 데이터 참조 액션이 실행된 결과로서 출력된 출력 값을 제1입력 값으로 이용하여 결과 값을 출력하도록 설정된 것인, 방법.
  13. 제12항에 있어서,
    상기 안내 정보와 관련된 사용자 입력에 반응하여, 상기 데이터 처리 액션으로 선택 가능한 후보들을 나타내는 후보 리스트를 상기 디스플레이를 통해 제공하는 동작을 더 포함하는 방법.
  14. 제13항에 있어서, 상기 후보 리스트를 제공하는 동작은,
    상기 출력 값의 타입을 상기 데이터 참조 액션의 상세 정보에서 확인하는 동작;
    액션들의 상세 정보를 저장한 데이터베이스에서 상기 출력 값 타입과 일치하는 입력 값 타입을 갖는 액션들을 확인하는 동작; 및
    상기 확인된 액션들의 상세 정보를 이용하여 상기 후보 리스트를 구성하는 동작을 포함하는 방법.
  15. 제14항에 있어서, 상기 출력 값의 타입을 확인하는 동작은,
    상기 출력 값의 서브 필드들 중에서 상기 출력 값의 타입을 나타내는 서브 필드의 값을 확인하는 동작을 포함하는 방법.
PCT/KR2021/015378 2020-12-02 2021-10-29 오토메이션 서비스를 지원하는 전자 장치 WO2022119133A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/536,357 US11635885B2 (en) 2020-12-02 2021-11-29 Electronic device for supporting automation services

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200166399A KR20220077446A (ko) 2020-12-02 2020-12-02 오토메이션 서비스를 지원하는 전자 장치
KR10-2020-0166399 2020-12-02

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/536,357 Continuation US11635885B2 (en) 2020-12-02 2021-11-29 Electronic device for supporting automation services

Publications (1)

Publication Number Publication Date
WO2022119133A1 true WO2022119133A1 (ko) 2022-06-09

Family

ID=81853194

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/015378 WO2022119133A1 (ko) 2020-12-02 2021-10-29 오토메이션 서비스를 지원하는 전자 장치

Country Status (2)

Country Link
KR (1) KR20220077446A (ko)
WO (1) WO2022119133A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070024737A (ko) * 2004-07-01 2007-03-02 노키아 코포레이션 이동 장치 애플리케이션 개인화에 콘텍스트 온톨로지를활용하는 방법, 장치 및 컴퓨터 프로그램 생성물
KR20110086156A (ko) * 2008-11-13 2011-07-27 퀄컴 인코포레이티드 컨텍스트 종속형 팝업 메뉴의 방법 및 시스템
KR20180062745A (ko) * 2016-12-01 2018-06-11 삼성전자주식회사 조건부 액션에 대한 정보를 공유하기 위한 방법 및 그 전자 장치
KR20190021767A (ko) * 2017-08-23 2019-03-06 삼성전자주식회사 외부 장치 액션 설정 방법 및 이를 지원하는 전자 장치
KR20200039824A (ko) * 2011-06-03 2020-04-16 애플 인크. 수행할 작업들을 나타내는 작업 항목들의 생성 및 프로세싱

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070024737A (ko) * 2004-07-01 2007-03-02 노키아 코포레이션 이동 장치 애플리케이션 개인화에 콘텍스트 온톨로지를활용하는 방법, 장치 및 컴퓨터 프로그램 생성물
KR20110086156A (ko) * 2008-11-13 2011-07-27 퀄컴 인코포레이티드 컨텍스트 종속형 팝업 메뉴의 방법 및 시스템
KR20200039824A (ko) * 2011-06-03 2020-04-16 애플 인크. 수행할 작업들을 나타내는 작업 항목들의 생성 및 프로세싱
KR20180062745A (ko) * 2016-12-01 2018-06-11 삼성전자주식회사 조건부 액션에 대한 정보를 공유하기 위한 방법 및 그 전자 장치
KR20190021767A (ko) * 2017-08-23 2019-03-06 삼성전자주식회사 외부 장치 액션 설정 방법 및 이를 지원하는 전자 장치

Also Published As

Publication number Publication date
KR20220077446A (ko) 2022-06-09

Similar Documents

Publication Publication Date Title
WO2021075786A1 (en) Electronic device and method of processing pop-up window using multi-window thereof
WO2022114416A1 (ko) 확장이 가능한 디스플레이를 이용하여 멀티 윈도우를 제공하는 전자 장치
WO2020141763A1 (ko) 전자 장치 및 그 폴더 구성 방법
WO2022030890A1 (ko) 다중 윈도우 이미지 캡쳐 방법 및 이를 위한 전자 장치
WO2022030893A1 (ko) 오디오 공유를 지원하는 전자 장치
WO2023277380A1 (ko) 입력 필드를 기반으로 사용자 인터페이스를 구성하는 방법 및 전자 장치
WO2022149763A1 (ko) 요청된 기능을 수행하는 외부 전자 장치를 관리하기 위한 전자 장치 및 그 작동 방법
WO2019177437A1 (ko) 화면 제어 방법 및 이를 지원하는 전자 장치
WO2022119133A1 (ko) 오토메이션 서비스를 지원하는 전자 장치
WO2021177640A1 (ko) 외부 전자 장치의 어플리케이션을 제어하는 방법 및 이를 지원하는 전자 장치
US11635885B2 (en) Electronic device for supporting automation services
WO2022191395A1 (ko) 사용자 명령을 처리하는 장치 및 그 동작 방법
WO2022030860A1 (ko) Iot 환경에서 타겟 전자 장치를 제어하기 위한 전자 장치 및 그에 관한 방법
WO2022124646A1 (ko) 프라이버시 서비스를 제공하기 위한 전자 장치
WO2022196965A1 (ko) 어시스턴스 모듈을 이용하여 상대방과 통신을 수행하는 전자 장치 및 그 제어 방법
WO2022215865A1 (ko) 전자 장치 및 iot 제어 정보 공유 방법
WO2022215839A1 (ko) 전자 장치 및 디바이스 정보를 이용하여 외부 장치를 등록하는 방법
WO2023075337A1 (ko) 외부 전자 장치와 통신하는 전자 장치 및 그 동작 방법
WO2022191378A1 (ko) 서비스를 제공하는 전자 장치 및 이의 동작 방법
WO2022215935A1 (ko) 개인화된 그룹 서비스를 제공하는 전자 장치 및 그 제어 방법
WO2024072117A1 (ko) 전자 장치 및 어플리케이션 간의 통신 방법
WO2024063342A1 (ko) 잠금 화면을 표시하는 전자 장치 및 그 동작 방법
WO2022245185A1 (ko) 메시징 서비스를 제공하는 전자 장치 및 그 전자 장치의 동작 방법
WO2020171422A1 (ko) 전자 장치의 단축 기능 제공 방법 및 이를 사용하는 전자 장치
WO2022010092A1 (ko) 컨텐츠 공유를 지원하는 전자 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21900821

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21900821

Country of ref document: EP

Kind code of ref document: A1