KR20140137653A - A Method and Device for Analyzing the Event log to extract co-occurrences - Google Patents
A Method and Device for Analyzing the Event log to extract co-occurrences Download PDFInfo
- Publication number
- KR20140137653A KR20140137653A KR1020130058433A KR20130058433A KR20140137653A KR 20140137653 A KR20140137653 A KR 20140137653A KR 1020130058433 A KR1020130058433 A KR 1020130058433A KR 20130058433 A KR20130058433 A KR 20130058433A KR 20140137653 A KR20140137653 A KR 20140137653A
- Authority
- KR
- South Korea
- Prior art keywords
- cluster
- event
- electronic device
- information
- event log
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
아래의 실시 예들은 전자장치의 사용에 따라 발생하는 이벤트 로그를 수집하고, 분석을 함으로써, 사용자의 전자 장치 사용 패턴 및 일상 생활을 대표하는 패턴을 추출하고 모델링 하는 방법 및 장치에 관한 것이다.The following embodiments are directed to a method and apparatus for extracting and modeling a pattern representing a user's electronic device usage pattern and daily life by collecting and analyzing an event log generated according to usage of the electronic device.
이벤트 로깅(event logging)은 전자장치에 소프트웨어 및 하드웨어 이벤트를 기록하는 것이다. 전자장치의 소프트웨어 모듈 또는 하드웨어 모듈은 이벤트를 생성하여 이벤트 로그 수집부에 전달하고, 이벤트 로그 수집부는 이벤트 로그를 저장부에 저장한다. 이벤트 로그는 단말기에서 실행되는 프로세스들의 일련의 동작에 대한 기록이다. Event logging is the recording of software and hardware events on electronic devices. The software module or the hardware module of the electronic device generates and transmits an event to the event log collection unit, and the event log collection unit stores the event log in the storage unit. The event log is a record of the sequence of operations of the processes running on the terminal.
전자장치에 저장된 이벤트 로그를 분석하면 전자장치를 사용하는 사용자의 관심사, 의도 및 전자장치 사용 특징을 파악하고, 이를 활용하여 사용자 맞춤형 서비스 또는 사용자 상황인지 서비스를 제공할 수 있다.Analyzing the event log stored in the electronic device, the user's interest, intention, and characteristics of the electronic device using the electronic device can be analyzed and utilized to provide a user-customized service or a user context aware service.
본 발명의 목적은 전자장치에서 이벤트가 발생하면 이벤트 정보, 이벤트 발생 시각 및 전자장치의 위치 데이터를 포함하는 이벤트 로그를 수집하고, 이벤트 로그를 클러스터링하고, 이벤트 로그에 포함된 시간 및 위치데이터에 기초하여 클러스터에 라벨명을 부가함으로써, 사용자의 전자장치 사용 패턴을 예측 할 수 있 전자장치의 이벤트 로그 분석 방법 및 장치를 제공함에 있다. An object of the present invention is to provide an electronic device that collects event logs including event information, event occurrence time, and location data of electronic devices when an event occurs in an electronic device, clusters event logs, A method of analyzing an event log of an electronic device capable of predicting a user's electronic device usage pattern by adding a label name to a cluster.
본 발명의 다른 목적은 사용자의 일상 생활에서 반복되는 활동에 대한 패턴 분석의 정확도를 향상 시킬 수 있고, 이에 기반하여 상황인지 및 사용자 맞춤형 서비스 등에서 보다 나은 사용자 경험(UX)을 제공할 수 있는 전자장치의 이벤트 로그 분석 방법 및 장치를 제공함에 있다. It is another object of the present invention to provide an electronic device capable of improving the accuracy of pattern analysis for repeated activities in a user's daily life and providing a better user experience (UX) And an apparatus and method for analyzing an event log.
예시적 실시예에 따르면, 전자장치에서 이벤트가 발생하면 상기 이벤트 정보, 이벤트 발생 시각 및 상기 전자장치의 위치 데이터를 포함하는 이벤트 로그를 수집하는 단계, 상기 이벤트 로그를 적어도 하나의 클러스터로 클러스터링 하는 단계, 상기 클러스터와 관련된 정보를 생성하는 단계, 상기 이벤트 로그에 포함된 시간 및 위치데이터에 기초하여 상기 클러스터에 라벨명을 부가하는 단계를 포함하는 것을 특징으로 하는 이벤트 로그 관리 방법이 제공될 수 있다.According to an exemplary embodiment, when an event occurs in an electronic device, collecting an event log including the event information, an event occurrence time and position data of the electronic device, clustering the event log into at least one cluster Generating information related to the cluster, and adding a label name to the cluster based on time and location data included in the event log.
상기 방법은 상기 위치데이터에 기초하여 상기 전자장치의 외부로부터 지명을 획득하고, 상기 라벨명에 상기 지명이 포함되도록 할 수 있다. 상기 클러스터링 단계는, 상기 전자장치의 하드웨어와 관련된 이벤트 로그 및 상기 전자장치의 소프트웨어와 관련된 이벤트 로그를 구분하여 클러스터링 할 수 있다.The method may obtain a place name from the outside of the electronic device based on the location data, and cause the place name to be included in the label name. The clustering step may classify and cluster the event logs associated with the hardware of the electronic device and the event logs associated with the software of the electronic device.
상기 클러스터와 관련된 정보는 상기 클러스터의 중심 값 및 상기 클러스터를 구성하는 이벤트 로그 개수를 포함할 수 있다. 상기 클러스터와 관련된 정보는 상기 전자장치에서 실행되는 앱에서 액세스 가능하다. The information related to the cluster may include the center value of the cluster and the number of event logs constituting the cluster. The information associated with the cluster is accessible from an app running on the electronic device.
또 다른 예시적 실시예에 따르면, 전자장치에서 이벤트 발생에 따라 생성된 이벤트 로그로 구성되며, 각각 다른 중심 값을 갖는 제 1 클러스터와 제 2 클러스터를 비교하는 단계, 이벤트와 관련된 시간 정보 및 상기 전자장치의 위치데이터에 기초하여 상기 제 1 클러스터와 상기 제 2 클러스터의 유사성을 판단하는 단계, 상기 유사성에 기초하여 상기 제 1 클러스터와 상기 제 2 클러스터를 하나의 그룹으로 결정하는 단계 및 상기 그룹에 대한 정보를 저장하는 단계를 포함하는 것을 특징으로 하는 방법이 제공될 수 있다.According to yet another exemplary embodiment, there is provided a method comprising: comparing a first cluster and a second cluster, each of which has a different center value, with an event log generated in response to an event occurrence in an electronic device; Determining a similarity between the first cluster and the second cluster based on position data of the apparatus, determining the first cluster and the second cluster as one group based on the similarity, The method comprising the step of storing the information.
상기 그룹에 대한 정보는 그룹 아이디, 그룹을 구성하는 각 클러스터 아이디 및 각 클러스터의 유사성 관련 정보를 포함할 수 있다. 상기 그룹에 대한 정보는 상기 전자장치에서 실행되는 앱에서 액세스 가능하다.The information on the group may include a group ID, each cluster ID constituting the group, and similarity-related information of each cluster. Information about the group is accessible from an app running on the electronic device.
또 다른 예시적 실시예에 따르면, 상기 전자장치에서 새로운 이벤트가 발생하면 이벤트 로그를 수집하는 단계, 상기 클러스터의 중심 값과 상기 수집된 이벤트 로그의 거리를 결정하는 단계, 상기 거리가 미리 결정된 값 이하인 경우, 상기 이벤트 로그를 상기 클러스터에 포함시키는 단계, 상기 클러스터의 중심 값을 다시 계산하는 단계 및 상기 클러스터에 포함된 이벤트 로그의 개수를 증가시키는 단계를 포함하는 것을 특징으로 하는 방법이 제공될 수 있다.According to another exemplary embodiment, there is provided an electronic device, comprising: collecting an event log when a new event occurs in the electronic device; determining a distance between the center value of the cluster and the collected event log; , Including the step of including the event log in the cluster, recalculating the center value of the cluster, and increasing the number of event logs included in the cluster .
상기 라벨명은 사용자 입력에 의해 편집 가능하다.The label name is editable by user input.
전자장치에서 이벤트가 발생하면 이벤트 정보, 이벤트 발생 시각 및 전자장치의 위치 데이터를 포함하는 이벤트 로그를 수집하고, 이벤트 로그를 클러스터링하고, 이벤트 로그에 포함된 시간 및 위치데이터에 기초하여 클러스터에 라벨명을 부가함으로써 사용자의 전자장치 사용 패턴을 예측 할 수 있다. 이를 통해 사용자의 일상 생활에서 반복되는 활동에 대한 패턴 분석의 정확도를 향상 시킬 수 있고, 이에 기반하여 상황인지 및 사용자 맞춤형 서비스 등에서 보다 나은 사용자 경험(UX)을 제공할 수 있다.When an event occurs in an electronic device, an event log including event information, an event occurrence time and position data of the electronic device is collected, an event log is clustered, and a label name The electronic device usage pattern of the user can be predicted. Through this, it is possible to improve the accuracy of the pattern analysis of the activities repeated in the user's daily life, and thereby provide a better user experience (UX) in context awareness and customized services.
도1은 본 발명의 전자장치를 개략적으로 도시한 도면
도2는 본 발명의 하드웨어를 도시한 도면
도3는 본 발명의 소프트웨어를 도시한 도면
도4는 이벤트 발생시 프로세서에서 이벤트 로그를 처리하는 블럭을 개념적으로 보여주는 도면
도 5는 이벤트 로그 저장부에 저장되는 이벤트 로그 정보를 도시한 도면
도 6은 클러스터 정보 저장부에 저장되는 클러스터 정보를 도시한 도면
도 7 은 그룹정보를 나타내는 도면
도 8 은 이벤트 발생시 처리과정을 나타내는 흐름도
도 9 은 새로운 이벤트 발생시 처리과정을 나타내는 흐름도
도 10 은 두 개의 클러스터를 비교하여 그룹을 생성하는 과정을 나타내는 흐름도Figure 1 schematically depicts an electronic device of the present invention;
2 is a block diagram illustrating the hardware of the present invention.
3 is a block diagram of software of the present invention
4 is a block diagram conceptually showing a block for processing an event log in a processor when an event occurs
5 is a diagram showing event log information stored in an event log storage unit
6 is a view showing cluster information stored in the cluster information storage unit
7 is a diagram showing group information
FIG. 8 is a flowchart showing a processing procedure when an event occurs
9 is a flowchart showing a processing procedure when a new event occurs
10 is a flowchart showing a process of comparing two clusters to generate a group
본 발명은 정제되지 않은 다양한 종류의 데이터를 기반으로 사용자 상황을 고려한 패턴 그룹(Contextual pattern group)을 추출하는데 목적이 있다. 전자 장치의 액티비티(Activity) 및 상태 변화에 따라 발생하는 이벤트를 기반으로 데이터를 쌓으면서 클러스터를 생성한다. 클러스터를 구성하는 항목들은 클러스터 마다 다른 값을 가지며, 이는 상황 정보(Contextual information)를 수치화 하는 데 의미가 있다. 한 번 클러스터가 생성된 이후에는 데이터가 인입될 때 마다 클러스터를 갱신한다. 클러스터 정보 중 유사 데이터를 추출한 결과를 동시 출현(co-occurrence)이라고 하며 이 결과가 임계치 이상 존재하는 클러스터를 멤버(member)로하는 사용자 상황을 고려한 패턴 그룹(Contextual pattern group)을 생성한다. 클러스터링 방법으로는 K-means 와 nested-EM 알고리즘을 사용하며 클러스터링 또는 상황을 고려한 패턴 그룹(Contextual pattern group)에 사용자가 라벨링(Labeling)을 할 수 있는 기능을 가진다. 이는 데이터의 인입시마다 보다 정확한 클러스터가 만들어질 수 있도록 피드백을 반영하는 로직을 가진다.An object of the present invention is to extract a contextual pattern group based on various types of data that have not been refined. Clusters are created by accumulating data based on events occurring according to activity and state change of electronic devices. The items constituting the cluster have different values for each cluster, which is meaningful for quantifying contextual information. Once the cluster is created, the cluster is updated whenever data is fetched. The result of extracting the similar data among the cluster information is referred to as a co-occurrence, and a contextual pattern group is generated considering a user situation in which a cluster having a result exceeding a threshold value is a member. K-means and nested-EM algorithms are used as the clustering method, and the user has a function of labeling in the contextual pattern group considering the clustering or the situation. It has logic that reflects the feedback so that a more accurate cluster can be created each time data is imported.
이하에서, 예시적 실시 예들의 이러한 또는 다른 측면들이, 첨부된 도면을 참조하여 상세히 설명된다. 그러나, 본 발명이 실시 예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.In the following, these and other aspects of the exemplary embodiments are described in detail with reference to the accompanying drawings. However, the present invention is not limited or limited by the embodiments. Like reference symbols in the drawings denote like elements.
또한 본 명세서 및 첨부된 특허 청구범위에 사용된 단수형은 문맥상 명확하게 달리 지적하지 않은 이상 복수형도 포함하는 것으로 의도된 것이다. 또한, 본 명세서에 사용된 "및" 이라는 용어는 열거된 관련 아이템들 중 하나 이상의 아이템의 가능한 모든 조합을 지칭하고 포함하는 것으로 이해되어야 한다.Also, the singular forms used in this specification and the appended claims are intended to include the plural forms as well, unless the context clearly dictates otherwise. It is also to be understood that the term "and" as used herein refers to and includes all possible combinations of one or more of the listed related items.
또한 흐름도와 관련하여 설명되는 방법들은 흐름도에 도시된 단계의 순서를 바꾸거나, 특정 단계를 반복하거나 생략함으로써 변경될 수 있다.
Also, the methods described in connection with the flowcharts may be altered by reordering the steps shown in the flowchart, or by repeating or omitting certain steps.
이하, 첨부된 도면을 참조하여 본 개시를 설명한다. Hereinafter, the present disclosure will be described with reference to the accompanying drawings.
도 1은 예시적 실시예에 따른 전자 장치(100)를 개략적으로 도시한다. 1 schematically illustrates an
도 1을 참조하면, 상기 전자 장치(100)는 하드웨어(110) 또는 소프트웨어(120)를 포함할 수 있다. 상기 하드웨어(110)에 한 실시예에 대한 설명이 도 2와 연관되어 제공된다. 상기 소프트웨어(120)는 커널(kernel)(121), 미들웨어(middleware)(122), 어플리케이션 프로그래밍 인터페이스(API: application programming interface)(123) 또는 어플리케이션(124)을 포함할 수 있으며, 예시적 실시예에 대한 자세한 설명이 도 3와 연관되어 제공된다. Referring to FIG. 1, the
전자 장치(100)는, 예를 들면, 전자 시계, 냉장고, 에어컨, 청소기, 인공 지능 로봇, TV, DVD(digital video disk) 플레이어, 오디오, 오븐, 전자레인지, 세탁기, 전자 팔찌, 전자 목걸이, 공기 청정기, 전자 액자, 각종 의료기기(예를 들면, MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography) 촬영기, 초음파기), 네비게이션 장치(navigation device), 블랙 박스(black box), 셋톱 박스(set-top box), 전자 사전, 자동차 장치, 조선 장치, 항공 장치, 보안 기기, 전자 의복, 전자 키, 농축수산 장치, 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), PDA(personal digital assistant), PMP(portable multimedia player), 태블릿 PC(tablet personal computer), 이동전화기, 화상전화기, 스마트 폰(smartphone), 전자북리더기, 카메라, 웨어러블 장치(wearable device), 무선 장치(wireless device), GPS 수신기(global positioning system receiver), 핸드-헬드 장치(hand-held device), MP3 플레이어, 캠코더(camcorder), 게임 콘솔(game consoles), 손목 시계(wrist watch), HMD(head-mounted display), 평판 표시 장치(flat panel device), 디지털 픽쳐 프레임(digital picture frame), 전자 보드(electronic board), 전자 사인 입력 장치(electronic signature receiving device) 또는 프로젝터(projector) 등일 수 있다. 본 개시에 따른 전자 장치는 전술한 기기들에 한정되지 않음은 당업자에게 자명하다.The
도 2는 예시적 실시예에 따른 하드웨어(200)(예: 상기 하드웨어 110)를 개략적으로 도시한다. 도 2를 참조하면, 상기 하드웨어(200)는 하나 이상의 프로세서(201)를 포함할 수 있다. 예를 들면, 도2에 도시된 바와 같이, 상기 프로세서(201)는 하나 이상의 어플리케이션 프로세서(AP: application processor) (201A)와 하나 이상의 커뮤니케이션 프로세서(CP: communication processor) (201B)를 포함할 수 있다. 상기 AP (201A)는 운영체제 또는 응용 프로그램을 구동하여 상기 AP (201)에 연결된 다수의하드웨어 또는 소프트웨어 구성요소들을 제어하고, 멀티미디어 데이터를 포함한 각종 데이터 처리 및 연산을 수행할 수 있는 프로세서로서, 예를 들면, SoC(system on chip) 로 구현될 수 있다. 구현 예에 따라서는, 상기 프로세서(201)는 GPU(graphic processing unit, 미도시)를 더 포함할 수 있다.FIG. 2 schematically illustrates hardware 200 (e.g., hardware 110) according to an exemplary embodiment. Referring to FIG. 2, the
상기 CP (201B)는 상기 하드웨어(200)(예: 상기 하드웨어 110)를 포함하는 전자 장치(예: 상기 전자 장치 100)의 통신 기능을 수행할 수 있는 프로세서로서, 예를 들면, SoC로 구현될 수 있다. 구현 예에 따라서는, 상기 CP (201B)는 멀티미디어 제어 기능의 적어도 일부를 수행할 수 있다. 또한, 상기 CP (201B)는 SIM 카드(subscriber identification module card, 221)와 같은 가입자 식별 모듈을이용하여 통신 네트워크 내에서 단말의 구별 및 인증을 수행하고, 사용자에게 음성 통화, 영상 통화, 문자 메시지 또는 패킷 데이터(packet data) 등의 서비스들을 제공할 수 있다. 또한, 상기CP (201B)는 RF부(radio frequency unit) (205)의 데이터 송수신을 제어할 수 있다. 도 2에서는, 상기 CP (201B), 전력관리부 (203) 또는 메모리(204)등의 구성요소들이 상기 AP (201A)와 별개의 구성요소로 도시되어 있으나, 어떤 실시예에 따르면, 상기 AP (201A)가 전술한 구성요소들의 적어도일부(예: 상기 CP 201B)를 포함하도록 구현될 수 있다. The CP 201B is a processor capable of performing the communication function of an electronic device (e.g., the electronic device 100) including the hardware 200 (e.g., the hardware 110), for example, . In some implementations, the CP 201B may perform at least some of the multimedia control functions. In addition, the CP 201B performs identification and authentication of terminals in a communication network using a subscriber identification module such as a SIM card (subscriber identification module card) 221, and provides the user with a voice call, a video call, a text message, And may provide services such as packet data. In addition, the CP 201B can control data transmission / reception of a radio frequency unit (RF unit) 205. 2, components such as the CP 201B, the
상기 RF 부(205)는 데이터의 송수신, 예를 들면, RF 신호 또는 호출된 전자신호의 송수신을 담당한다. 상기RF 부(205)는, 도시되지는 않았으나, 예를 들면, 트랜시버(transceiver), PAM(power amp module), 주파수 필터(frequency filter) 또는 LNA(low noise amplifier) 등을 포함할 수 있다. 또한, 상기 RF 부(205)는 무선통신에서 자유공간상의 전자파를 송수신하기 위한 부품, 예를 들면, 도체 또는 도선 등을 더 포함할 수 있다. The
상기 하드웨어 (200)는 내장(internal) 메모리 (204A) 또는 외장(external) 메모리(204B)를 포함할 수 있다. 상기 내장 메모리(204A)는 휘발성메모리(예를 들면, DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous dynamic RAM) 등) 또는 비휘발성 메모리(non-volatile Memory, 예를 들면, OTPROM(one time programmableROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM 등) 중 적어도 하나를 포함할 수 있다. 한 실시예에 따르면, 상기 AP (201A) 또는 상기 CP (201B)는 각각에 연결된 비휘발성 메모리 또는 다른 구성요소 중 적어도 하나로부터 수신한 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리할 수 있다. 또한, 상기 AP (201A) 또는 상기 CP(201B)는 상기 다른 구성요소로부터 수신하거나 생성된 데이터를 상기 비휘발성 메모리에 보존할 수 있다.The
상기 외장 메모리(204B)는, 예를 들면, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 memory stick 등을 더 포함할 수 있다.The
상기 전력관리부(203)는 상기 하드웨어 (200)의 전력을 관리할 수 있다. 도시하지는 않았으나, 상기 전력관리부(203)는, 예를 들면, PMIC(power management integrated circuit), 충전 IC(charger integrated circuit) 또는 배터리 게이지(battery gauge)를 포함할 수 있다. 상기 PMIC는, 예를 들면, 집적회로 또는 SoC 반도체내에 탑재될 수 있다. 충전 방식은 유선과 무선으로 구분될 수 있다. 상기 충전 IC는 배터리를 충전시킬 수 있으며, 충전기로부터의 과전압 또는 과전류 유입을방지할 수 있다. 이때, 상기 충전 IC는 유선 충전 방식 또는 무선 충전 방식 중 적어도 하나를 위한 충전 IC를 포함할 수 있다. 무선 충전 방식으로는, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등이 있으며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 정류기 등의 회로가 추가될 수 있다. 상기 배터리 게이지는 배터리223의 잔량, 충전 중 전압, 전류 또는 온도 중 적어도 하나를 측정할 수 있다. 상기 배터리223는 전기를 생성하여 전원을 공급할 수 있고, 예를 들면, 충전식 전지(rechargeable battery)일 수 있다. The
인터페이스(206)는, 예를 들면, HDMI(mHL)(206A), USB(universal serial bus, 206B), 프로젝터(projector, 206C), D-sub(D-subminiature, 206D), SD(secure Digital)/MMC(multi-media card)(미도시) 또는 IrDA(infrared data association, 미도시) 중 적어도 하나를 포함할 수 있다. The interface 206 is connected to an interface such as an HDMI (mHL) 206A, a universal
통신부(230)는 무선 주파수를 이용하여 무선 통신 기능을 제공할 수 있으며, WiFi(207A), BT(Bluetooth)(207B), GPS(207C) 또는 NFC(near field communication)(207D) 중 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 상기 통신부(230)는 상기 하드웨어(200)를 네트워크(예: Internet, LAN(local area network), WAN(wire area network), telecommunication network, cellular network, satellite network, 또는 POTS(plain old telephone service, 등)와 연결시키기 위한 네트워크 인터페이스(예: LAN card) 또는 모뎀 등을 포함할 수 있다.The communication unit 230 may provide a wireless communication function using a radio frequency and may transmit at least one of a
사용자 입력부(208)는 사용자로부터 다양한 명령어를 입력 받을 수 있다. 상기 사용자 입력부(208)는, 예를 들면, 터치 스크린 패널(208A), (디지털) 펜 센서(208B), 키(208C) 또는 초음파(ultrasonic) 입력 장치(208D) 중 적어도 하나를 포함할 수 있다. 상기 터치 스크린 패널(208A)은, 예를 들면, 정전식, 감압식, 적외선 방식 또는 초음파 방식 중 적어도 하나의 방식으로 터치 입력을인식할 수 있다. 또한, 상기 터치 스크린 패널(208A)은 컨트롤러(미도시)를 더 포함할 수도 있다. 정전식의 경우, 직접 터치뿐만 아니라 근접 인식도가능하다. 상기 터치 스크린 패널(208A)은 택타일 레이어(tactile layer)를 더 포함할 수도 있다. 이 경우, 상기 터치 스크린 패널(208A)은 사용자에게 촉각 반응을 제공할 수 있다. 상기 (디지털) 펜 센서 (208B)는, 예를 들면, 사용자의 터치 입력을 받는 것과 동일한 방법 또는 별도의인식용 쉬트(sheet)를 이용하여 구현될 수 있다. 상기 키(208C)로서, 예를 들면, 키패드 또는 터치 키가 이용될 수 있다. 상기 초음파 입력 장치(208D)는 초음파 신호를 발생하는 펜을 통해, 단말에서 마이크(예: 마이크215D)로 음파를 감지하여 데이터를 확인할 수 있는 장치로서, 무선 인식이 가능하다. 다양한실시예에 따르면, 상기 하드웨어(200)는, 예를 들면, 상기 통신부(230)를 이용하여, 이와 연결된 외부 장치(예: 네트워크, 컴퓨터 또는 서버)로부터 사용자 입력을 수신할 수도 있다. The user input unit 208 may receive various commands from the user. The user input 208 may include at least one of, for example, a
디스플레이부(209)는 영상 또는 데이터를 사용자에게 표시하기 위한 장치로서, 예를 들면, 패널(209A) 또는 홀로그램(209B)이 될 수 있다. 상기 패널(209A)로서, 예를 들면, LCD(liquid-crystal display) 또는 AM-OLED(active-matrix organic light-emitting diode) 등이 이용될 수 있다. 이때, 상기 패널(209A)을 제어하는 컨트롤러가 더 구성될 수 있다. 상기 패널(209A)은, 예를 들면, 유연하게(flexible), 투명하게(transparent) 또는 착용할 수 있게(wearable) 구현될 수 있다. 상기 패널(209A)은 터치 스크린 패널과 하나의 모듈로 구성될 수도 있다. 상기 홀로그램(209B)은 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. The
카메라부(210)는, 화상 및 동영상을 촬영할 수 있고, 구현예에 따라서는, 하나 이상의 이미지센서(예: 전면 렌즈 또는 후면 렌즈), ISP(image signal processor, 미도시) 또는 플래쉬 LED(flash LED, 미도시)를 포함할 수 있다. The
인디케이터(211)는 상기 하드웨어(200) 혹은 그 일부(예: 상기 AP 201A)의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태, 또는 충전 상태 등을 표시할 수 있다. 모터(212)는 전기적 신호를 기계적 진동으로 변환할 수 있다.The
센서부(213)는, 예를 들면, 제스처센서(gesture sensor)(213A), 자이로 센서(gyro sensor)(213B), 기압 센서(barometer sensor)(213C), 마그네틱 센서(magnetic sensor)(213D), 가속도 센서(acceleration sensor)(213E), 그립 센서(grip sensor)(213F), 근접 센서(proximity sensor)(213G), RGB(red, green, blue) 센서(213H), 생체 센서(biometric sensor)(213I), 온도/습도 센서(213J), 조도 센서(illuminance sensor)(213K), UV(ultraviolet) 센서(213L), 후각 센서(E-nose sensor, 미도시), EMG 센서(electromyography sensor, 미도시), EEG 센서(electroencephalogram sensor, 미도시), ECG 센서(electrocardiogramsensor, 미도시) 또는 지문 센서 등을 포함할 수 있다. 구현예에 따라서는, 하드웨어(200)는 센서부(213)를 제어하기 위한 MCU(micro controller unit)(214)를 더 포함할 수 있다. The sensor unit 213 includes a
오디오 코덱(215)은 음성과 전기신호를 쌍방향으로 변환시킬 수 있다. 상기 오디오 코덱(215)은, 예를 들면, 스피커(215A), 리시버(215B), 이어폰(215C) 또는 마이크(215D)등을 통해 입력 또는 출력되는 음성 정보를 변환시킬 수 있다. 도시되지는 않았으나, 상기 하드웨어(200)는, 모바일 TV 지원을 위한 처리 장치(예: GPU)를 포함할 수 있다. 상기 모바일TV지원을 위한 처리 장치는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting) 또는 미디어플로우(media flow) 등의 규격에 따른 미디어 데이터를 처리할 수 있다. The
본 개시에 따른 하드웨어의 전술한 구성 요소들의 명칭은 전자 장치의 종류에 따라서 달라질 수 있으며, 본 개시에 따른 하드웨어는 전술한 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. The names of the above-described components of the hardware according to the present disclosure may vary depending on the type of electronic device, and the hardware according to the present disclosure may be configured to include at least one of the components described above, Or < / RTI > additional other components.
도 3은 예시적 실시예에 따른 소프트웨어(300)(예: 상기 소프트웨어 120)를 개략적으로 도시한다. 상기 소프트웨어(300)는 하드웨어(예: 상기 하드웨어 200)에 구현되어 전자 장치(예: 상기 전자 장치 100)에 관련된 자원을 제어하는 운영체제(OS: operation system) 또는 운영체제 상에서 구동되는 다양한 어플리케이션(예: 어플리케이션 340)을 포함할 수 있다. 상기 운영체제는, 예를 들면, 안드로이드(Android), iOS, 윈도우즈(Windows), 심비안(Symbian), 타이젠(Tizen) 또는 바다(Bada) 등이 될 수 있다. FIG. 3 schematically illustrates software 300 (e.g., software 120) in accordance with an exemplary embodiment. The
커널(310)은 자원을 관리할 수 있는 시스템 리소스 매니저(311) 또는 디바이스 드라이버(312)를 포함할 수 있다. 예를 들면, 상기 시스템 리소스 매니저(311)는 프로세스 관리부(311A), 메모리 관리부(311B) 또는 파일 시스템관리부(311C) 등을 포함할 수 있으며, 시스템 리소스의 제어, 할당 또는 회수 등을 수행할 수 있다. The kernel 310 may include a system resource manager 311 or a device driver 312 that can manage resources. For example, the system resource manager 311 may include a process management unit 311A, a memory management unit 311B, or a file system management unit 311C, and may perform control, assignment, or recovery of system resources have.
상기 디바이스 드라이버(312)는 해당 전자 장치(예: 상기 전자 장치 100)의 하드웨어(예: 상기 하드웨어 200)의 다양한 구성요소들을 소프트웨어적으로 접근하여 제어할 수 있도록 한다. 이를 위하여, 상기 디바이스 드라이버(312)는, 도시하지는 않았으나, 예를 들면, 인터페이스와 각 하드웨어 업체가제공하는 개별 드라이버 모듈 부분으로 구분될 수 있다. 예를 들면, 상기 디바이스 드라이버(312)는, 디스플레이 드라이버(312A), 카메라 드라이버(312B), 블루투스 드라이버(312C), 공유 메모리드라이버(312D), USB 드라이버(312E), 키패드드라이버(312F), WiFi 드라이버(312G), 오디오드라이버 (312H) 또는 IPC (inter-process communication) 드라이버(미도시) 중 적어도 하나를 포함할 수 있다. The device driver 312 allows various components of the hardware (e.g., the hardware 200) of the electronic device (e.g., the electronic device 100) to be accessed and controlled in a software manner. To this end, the device driver 312 may be divided into, for example, an interface and individual driver module parts provided by respective hardware vendors, though not shown. For example, the device driver 312 may include a display driver 312A, a camera driver 312B, a Bluetooth driver 312C, a shared memory driver 312D, a
미들웨어(320)는 다양한 어플리케이션들에서 공통적으로 필요한 기능을 제공하기 위해 미리 구현해 놓은 복수의 모듈들을 포함하여 구성될 수 있다. 상기 미들웨어(320)는 어플리케이션(340) 에서 전자 장치 내부의 제한된 시스템 자원을 효율적으로 사용할 수 있도록 API(330)를 통해 공통적으로 필요한 기능을 제공할 수 있다. 상기 미들웨어(320)는, 예를 들면, 어플리케이션 매니저(application manager)(320A), 윈도우 매니저(window manager)(320B), 멀티미디어 매니저(multimedia manager)(320C), 리소스 매니저(resource manager) (320D), 파워 매니저(power manager)(320E), 데이터베이스 매니저(database manager)(320F) 또는 패키지 매니저(package manager)(320G) 등의 복수의 모듈들 중 하나 이상을 포함할 수 있다.The
상기 어플리케이션 매니저(320A)는 상기 어플리케이션(340)중 적어도 하나의 어플리케이션의 생명 주기(life cycle)를 관리할 수 있다. 상기 윈도우매니저(320B)는 화면에서 사용하는 GUI 자원을 관리할 수 있다. 상기 멀티미디어 매니저(320C)는 다양한 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱(codec)을 이용하여 미디어 파일의 인코딩(encoding) 또는 디코딩(decoding)을 수행할 수 있다. 상기 리소스매니저(320D)는 상기 어플리케이션(340)중 적어도 어느 하나의 어플리케이션의 소스 코드, 메모리 또는 저장 공간 등의 자원을 관리할 수 있다. 상기 파워 매니저(320E)는 바이오스(BIOS: basic input/output system) 등과 함께 동작하여 배터리(battery) 또는 전원을 관리하고, 동작에 필요한 전력 정보 등을 제공할 수 있다. 상기 데이터베이스 매니저(320F)는 상기 어플리케이션(340) 중 적어도 하나의 어플리케이션에서 사용할 데이터베이스를 생성, 검색 또는 변경할 수 있도록 관리할 수 있다. 상기 패키지 매니저(320G)는 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 업데이트를 관리할 수 있다.The
구현예에 따라서는, 상기 미들웨어(320)는 연결 매니저(connectivity manager)(320H), 통지 매니저(notification manager)(320I), 위치 매니저(location manager)(320J), 그래픽 매니저(graphic manager)(320K) 또는 보안 매니저(security manager)(320L) 중 적어도 하나를 포함할 수 있다.The
상기 연결 매니저(320H)는 예를 들어, WiFi 또는 블루투스 등의 무선 연결을 관리할 수 있다. 상기 통지 매니저(320I)는 도착 메시지, 약속, 근접성 알림 등의 사건(event)을 사용자에게 방해되지 않는 방식으로 표시 또는 통지할 수 있다. 상기 위치 매니저(320J)는 전자 장치의 위치 정보를 관리할 수 있다. 상기 그래픽 매니저(320K)는 사용자에게 제공될 그래픽 효과 및 이와 관련된 사용자 인터페이스를 관리할 수 있다. 상기 보안 매니저(320L)는 시스템 보안 또는 사용자 인증 등에 필요한 제반 보안 기능을 제공할 수 있다.The
전자 장치(예: 상기 전자 장치 100)가 전화 기능을 구비한 경우에는, 상기 미들웨어(320)는 상기 전자 장치의 음성 또는 영상 통화 기능을 관리하기 위한 통화 매니저(telephony manager, 미도시)를 더 포함할 수 있다. When the electronic device (e.g., the electronic device 100) has a telephone function, the
예시적 실시예에 따르면, 상기 미들웨어(320)는, 런타임 라이브러리(325) 또는 다른 라이브러리 모듈들(미도시)를 포함할 수 있다. 상기 런타임 라이브러리(325)는, 어플리케이션이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈이다. 예를 들면, 상기 런타임 라이브러리(325)는 입출력, 메모리 관리 또는 산술 함수에 대한 기능 등을 수행할 수 있다. 상기 미들웨어(320)는 전술한 내부 구성요소 모듈들의 다양한 기능 조합을 통해 새로운 미들웨어 모듈을 생성하여 사용할 수 있다. 상기 미들웨어(320)는 차별화된 기능을제공하기 위해 운영체제의 종류별로 특화된 모듈을 제공할 수 있다. According to an exemplary embodiment, the
또한, 상기 미들웨어(320)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. 따라서, 본 개시의 실시예에 기재된 구성요소를 일부 생략하거나 다른 구성요소를 더 구비하거나, 또는 유사한 기능을 수행하는 다른 명칭을 갖는 구성요소로 대체할 수 있다.In addition, the
상기 API(330)는, API 프로그래밍 함수들의 집합으로, 운영체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 예를 들면, 플랫폼별로 하나의 API 셋을 제공할 수 있으며, 타이젠(Tizen)의 경우, 예를 들면, 두 개 이상의 API 셋을 제공할 수 있다.The
상기 어플리케이션(340)은 상기 API(330)를 이용하여 해당 전자 장치 (예: 상기 전자 장치 100)에서 구현되는 적어도 하나의 응용 프로그램(들)을 나타낸다. 상기 어플리케이션(340)은, 예를 들면, 프리로드 어플리케이션(preloaded Application) 또는 제 삼자 어플리케이션(third party application)을 포함할 수 있다. 상기 어플리케이션(340)은, 예를 들어, 홈 화면으로 돌아가기 위한(340A), 다이얼러(dialer)(340B), SMS(short message server)/MMS(multi-media message service)(340C), IM(instant message)(340D), 브라우저(browser)(340E), 카메라(340F), 알람(alarm)(340G), 컨택츠(contacts (or address book))(340H), 음성 다이얼(voice dial)(340I), 이메일(email)(340J), 달력(340K), 미디어플레이어(media player)(340L), 앨범 (340M), 또는 시계(340N) 중 적어도 하나를 포함할 수 있다. The application 340 represents at least one application program (s) implemented in a corresponding electronic device (e.g., the electronic device 100) using the
본 개시에 따른 소프트웨어의 전술한 구성 요소들의 명칭은 운영체제의 종류에 따라서 달라질 수 있다. 또한, 본 개시에 따른 소프트웨어는 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다.
The names of the above-mentioned components of the software according to the present disclosure may vary depending on the type of operating system. In addition, the software according to the present disclosure may include at least one or more of the above-described components, some of which may be omitted, or may further include other additional components.
도 4는 이벤트 발생시 프로세서에서 이벤트 로그를 처리하는 블럭을 도시한 도면이다. 도 2 및 도 4를 참조하면 센서부(402), 통신부(404), 타이머(406), 프로세서(400) 및 저장부(430)가 도시되어 있다. 프로세서(400)는 저장부(430)에서 프로그램 코드를 읽고, 프로세스를 생성하고 프로세스에 따라 데이터를 처리할 수 있다. 프로세서(400)는 앱(App) 정보 수집부(408), 이벤트 로그 수집부(410), 클러스터 생성부(412) 및 그룹 생성부(414)를 포함할 수 있다. 앱 정보 수집부(408), 이벤트 로그 수집부(410), 클러스터 생성부(412) 및 그룹 생성부(414)는 프로세스이다. 프로세스는 프로세서(400)에서 한시적으로 생성되었다가 처리가 끝나면 사라질 수 있다.FIG. 4 is a block diagram illustrating a process of processing an event log in a processor when an event occurs. 2 and 4, a
센서부(402)는 센서값에 변화가 생기면 이벤트를 발생 할 수 있다. 예를 들면 조도센서(213K)는 전자장치 주변 밝기의 변화가 생기면 이를 감지하고 이벤트를 발생시킬 수 있다. 통신부(404)는 전자장치의 외부로부터 데이터가 수신되면 이벤트를 발생할 수 있다. 타이머(406)는 시간정보를 이벤트로 제공할 수 있다. The
저장부(430)는 내장메모리(204A) 및 외장메모리(204B)를 포함 할 수 있다. 저장부(430)는 이벤트 로그 저장부(416), 클러스터 정보 저장부(418) 및 그룹 정보 저장부(420)를 포함한다. 이벤트 로그 저장부(416), 클러스터 정보 저장부(418) 및 그룹 정보 저장부(420)는 동일한 저장부(420)안에 저장 영역만 구분하여 형성될 수 있다. 또한 이벤트 로그 저장부(416), 클러스터 정보 저장부(418) 및 그룹 정보 저장부(420)은 별도의 저장 공간이 될 수 있다.The
전자장치는 기준 시간을 통신부(404)를 통해 수신하고, 기준 시간과 타이머에서 발생하는 이벤트에 기초하여 현재 시각을 계산할 수 있다. 또한 전자장치는 통신부(404)를 통해 현재 시각을 수신할 수 있다. 그 밖에 전자장치에서 발생되는 하드웨어 및 소프트웨어의 다양한 변화가 이벤트가 될 수 있다. 예를 들면 디스플레이부의 ON/OFF 상태, 언락상태, 카메라 제어 버튼, 검색 버튼, SD카드의 장착여부, 배터리의 충전 상태, 저장공간 사용 가능 여부, 사용자 제스처 감지 등에 따라 이벤트가 발생될 수 있다. The electronic device can receive the reference time through the
앱 정보 수집부(408)는 실행되는 앱과 관련된 정보를 수집한다. 예를 들면 특정 앱이 실행되면 실행되는 시점의 날짜, 시간, 앱 이름 및 위치 데이터를 수집할 수 있다. 또한 앱 정보 수집부(408)는 현재 실행중인 다른 앱에 대한 정보 및 이전에 실행되었던 앱의 정보도 수집할 수 있다.The app
이벤트 로그 수집부(410)는 센서부(402), 통신부(404), 타이머(406) 및 앱 정보 수집부(408)에서 이벤트가 발생하면 이에 대한 이벤트 로그를 수집한다. 수집된 이벤트 로그는 이벤트 로그 저장부(416)에 저장되거나 클러스터 생성부로 보내져서 분석된다. The event
이벤트 로그 저장부(416)는 데이터베이스(data base)로 구성될 수 있다. The event
클러스터 생성부(412)는 이벤트 로그 수집부(410)로부터 수신한 이벤트 로그를 분석해서 클러스터링 할 수 있다. 또한 클러스터 생성부(412)는 이벤트 로그 저장부(416)에 저장되어 있는 이벤트 로그를 분석해서 클러스터링 할 수 있다. The
클러스터 정보 저장부(418)는 클러스터 생성부에서 분석한 클러스터 정보를 저장한다. 클러스터 정보 저장부(418)는 데이터베이스로 구성될 수 있다.The cluster
그룹 생성부(414)는 클러스터 생성부(412) 및 클러스터 정보 저장부(418)에 저장된 클러스터 정보를 참조하여 유사한 클러스터를 하나의 그룹으로 묶고, 이와 관련된 그룹 정보를 그룹 정보 저장부(420)에 저장한다. 그룹 정보 저장부(420)는 데이터베이스로 구성될 수 있다. 클러스터 생성부(412)에서 생성된 클러스터 정보 및 그룹 생성부(414)에서 생성된 그룹 정보는 API로 제공되어 전자장치에서 앱이 실행될 때 앱이 그룹정보를 직접 액세스 할 수 있다.The
이벤트 로그 저장부(416), 클러스터 정보 저장부(418) 및 그룹 정보 저장부(420)는 동일한 저장부(430)에 포함되거나 또는 별도의 다른 저장부로 구성될 수 있다.The event
또한 클러스터 생성부(412), 그룹 생성부(414), 클러스터 정보 저장부(418) 및 그룹 정보 저장부(420)는 전자장치와는 다른 별도의 서버(미도시)에 마련될 수 있다. 이 경우, 이벤트 로그 수집부에서 수집된 이벤트 로그는 통신부를 통해 서버로 제공될 수 있다. 서버에서는 수집된 이벤트 로그를 분석해서 관련 클러스터 정보 및 그룹 정보를 통신부를 통해 전자장치로 제공할 수 있다.
The
도 5는 이벤트 로그 저장부에 저장되는 이벤트 로그 정보를 도시한 도면이다. 도 4 및 도 5를 참조하면 이벤트 로그는 이벤트 로그 아이디(ID)(502), 이벤트 정보(504), 이벤트 관련 시간정보(506) 및 위치정보(508)를 포함할 수 있다. 이벤트 로그 저장부(416)에는 이벤트 로그(510, 512, 514, 516, 518, 520)가 데이터베이스 형태로 저장된다.5 is a diagram illustrating event log information stored in the event log storage unit. 4 and 5, the event log may include an
이벤트 로그 아이디(502)는 이벤트 발생 순서에 따라 일련번호로 부여될 수 있다. 예를 들면 이벤트 로그 아이디(502)는 'E1', 'E2', 'E3', ... 와 같이 일련번호로 부여될 수 있다. 이벤트 로그 아이디(502)는 이벤트 로그 수집부(410)에서 부여할 수 있고, 다른 별도의 프로세스에서 부여할 수 있다. 각각의 이벤트 로그는 고유의 이벤트 로그 아이디(502)를 가질 수 있다. The
이벤트 정보는 발생된 이벤트의 특성을 반영하여 부여될 수 있다. 이벤트 특성은 하드웨어에 의해 발생되는 하드웨어 이벤트와 소프트웨어에 의해 발생되는 소프트웨어 이벤트로 구분될 수 있다. 하드웨어에 의해 발생되는 이벤트는 센서 및 하드웨어 모듈에 의해 발생되는 이벤트가 될 수 있다. 이 때 이벤트 정보는 이벤트를 발생시킨 센서 및 하드웨어 모듈의 이름을 포함할 수 있다. 예를 들면 이벤트 정보는 'BT(Blue Tooth)', 'WiFi', 'MAGNETIC', 'GPS' 처럼 하드웨어 모듈 이름을 포함할 수 있다. 소프트웨어에 의해 발생되는 이벤트는 앱이 실행될 때 발생 될 수 있다. 예를 들면 'Map 앱'을 실행시키면 이벤트가 발생될 수 있다. 이 경우 이벤트 정보는 이벤트를 발생시킨 앱 이름을 포함할 수 있다. 이벤트 정보는 'Map', 'Phone book', 'Play' 처럼 앱 이름을 포함할 수 있다.The event information can be given by reflecting the characteristics of the generated event. The event characteristic can be divided into a hardware event generated by the hardware and a software event generated by the software. Events generated by hardware can be events generated by sensors and hardware modules. At this time, the event information may include the name of the sensor and the hardware module that generated the event. For example, the event information may include hardware module names such as 'BT (Blue Tooth)', 'WiFi', 'MAGNETIC', and 'GPS'. Events generated by the software can be generated when the app is launched. For example, if you run 'Map app', an event may occur. In this case, the event information may include the name of the app that generated the event. Event information can include app names like 'Map', 'Phone book', 'Play'.
이벤트 관련 시간정보는 이벤트가 발생한 시각, 날짜 및 요일정보가 될 수 있다. 예를 들면 시간정보는 '2010-11-09 18:07:35 WED' 와 같이 될 수 있다.The event-related time information may be the time, date, and day of the week when the event occurred. For example, the time information could be like '2010-11-09 18:07:35 WED'.
위치정보는 이벤트가 발생했을 때 전자장치의 위치 데이터이다. 위치정보는 경도 및 위도를 포함한 좌표로 제공될 수 있다. 위치정보는 GPS 위성으로 부터 수신한 데이터가 될 수 있다. 위치정보는 통신 기지국(미도시)으로부터 수신한 셀 아이디(Cell ID)가 되거나 또는 와이파이(WiFi) AP(Access Point)가 될 수 있다. 예를 들면 위치정보는 '127.0517465, 37.2390389'와 같이 될 수 있다. The location information is the location data of the electronic device when the event occurs. The location information may be provided in coordinates including longitude and latitude. The location information may be data received from GPS satellites. The location information may be a cell ID received from a communication base station (not shown) or a WiFi AP (access point). For example, the location information may be '127.0517465, 37.2390389'.
이벤트가 발생되면 이벤트 로그 수집부(410)는 하드웨어 및 소프트웨어가 발생시킨 이벤트 로그를 수집한다. 예를 들면 사용자가 'Map 앱'을 실행시키면 이벤트 로그 수집부(410)는 이벤트 로그(510)를 이벤트 로그 저장부(416)에 저장한다. 사용자가 'Phone book 앱'을 실행시키면 이벤트 로그 수집부(410)는 이벤트 로그(512)를 이벤트 로그 저장부(416)에 저장한다. 사용자가 'WiFi'를 켜면 이벤트 로그 수집부(410)는 이벤트 로그(518)를 이벤트 로그 저장부(416)에 저장한다.
When an event occurs, the event
도 6은 클러스터 정보 저장부에 저장되는 클러스터 정보를 도시한 도면이다. 도 4 및 도 6을 참조하면 클러스터 정보는 클러스터 아이디(602), 라벨명(604), 클러스터를 구성하는 이벤트 로그 정보(606), 중심 값(608), 거리(610) 및 이벤트 로그 개수(612)를 포함할 수 있다. 클러스터 정보 저장부(418)에는 클러스터 정보(614, 616, 618, 620)가 데이터베이스 형태로 저장된다.6 is a diagram illustrating cluster information stored in the cluster information storage unit. 4 and 6, the cluster information includes a
클러스터 아이디(602)는 일련번호로 부여될 수 있다. 예를 들면 클러스터 아이디는 'C1', 'C2', 'C3', 'C4', ...와 같이 일련번호로 부여될 수 있다. 라벨명(604)은 클러스터를 식별하기 위한 정보가 될 수 있다. 라벨명(604)은 클러스터 정보에 포함된 중심 값(608)에 기초하여 프로세서(400)가 자동으로 부여할 수 있다. 중심 값이 위치 정보일 경우에 전자 장치가 위치하는 곳의 지명이 라벨명으로 부여될 수 있다. 예를 들면 클러스터 'C1'의 중심 값이 '127.03, 37.51'이면, 프로세서(400)는 해당 위치가 '강남구' 라는 것을 지도 데이터로부터 획득하고, 클러스터 C1의 라벨명을 '강남구'로 결정한다. 지도 데이터는 전자장치 외부에 있는 서버(미도시)로부터 제공되거나 또는 전자장치에 내장될 수 있다. 라벨명은 사용자가 부여할 수도 있다. 사용자는 '강남구'라는 위치를 보고 라벨명을 '사무실'로 수정할 수 있다.The
전자장치는 라벨명을 부여할 때 지식베이스를 사용할 수 있다. 예를 들면 클러스터의 중심 값이 과거에 사용자가 운동을 했던 상황과 유사하면, 전자장치는 라벨명을 '운동'으로 결정할 수 있다.Electronic devices can use knowledge bases when labeling. For example, if the center value of the cluster is similar to the situation in which the user has performed a movement in the past, the electronic device may determine the label name to be 'motion'.
구성 이벤트 로그(606)는 클러스터에 포함되는 복수의 이벤트 로그 아이디(ID)이다. 예를 들면 클러스터 C1에 속하는 이벤트 로그 아이디(ID)는 'E1, E4, E5, E7, E10, E23, E32, ...' 이다.The
중심 값(608)은 각 클러스터의 중심 값이다. 클러스터의 중심 값은 다양한 알고리즘을 사용해서 계산될 수 있다. 예를 들면 각 클러스터를 구성하는 이벤트 로그 정보에 포함된 시간 및 위치 데이터의 평균이 될 수 있다. 클러스터 'C1'(614)의 중심 값은 '127.03, 37.51' 이다. The
거리(610)는 클러스터의 중심 값(608)으로부터 클러스터를 구성하는 이벤트 로그의 시간 또는 위치 데이터까지의 최대 거리가 될 수 있다. 거리(610)는 클러스터의 크기가 될 수 있다. 예를 들면 클러스터 'C1'의 거리는 '0.9, 0.9' 이다. 거리는 클러스터를 구성하는 이벤트 로그의 종류에 따라 다를 수 있다. 예를 들면 클러스터를 구성하는 이벤트 로그가 위치에 특징이 있는 경우, 거리는 위치가 될 수 있다. 클러스터를 구성하는 이벤트 로그가 시간에 특징이 있는 경우에는 거리(610)는 시간이 될 수 있다.
중심 값(608) 및 거리(610)는 새로운 이벤트 로그가 클러스터에 포함되면 그 값이 변경 될 수 있다. 프로세서는 새로운 이벤트 로그가 클러스터에 포함되면 중심 값(608) 및 거리(610)를 다시 계산한다.The
이벤트 로그 개수(612)는 클러스터에 포함되는 이벤트 로그의 개수이다. 예를 들면 클러스터 'C1'(614)에 포함되는 이벤트 로그 개수는 '80' 이다.The number of event logs 612 is the number of event logs included in the cluster. For example, the number of event logs included in cluster 'C1' 614 is '80'.
클러스터 정보는 저장부(430)에 데이터베이스 형태로 저장될 수 있다. 예를 들면 저장부(430)에 클러스터 정보 'C1, C2, C3, C4, ...'이 저장되어 있다. 클러스터 'C1'(614)의 라벨명은 '강남구' 이고, 구성 이벤트 로그는 'E1, E4, E5, E7, E10, E23, E32, ...' 이고, 중심 값은 '127.03, 37.51', 거리는 '0.9, 0.9', 이벤트 로그 개수는 '80' 이다. 클러스터 'C2'(616)의 라벨명은 '집' 이고, 구성 이벤트 로그는 'E23, E34, E53, ..., E171' 이고, 중심 값은 '125.3, 36.2', 거리는 '0.2, 0.2', 이벤트 로그 개수는 '120' 이다. 클러스터 'C3'(618)의 라벨명은 '운동' 이고, 구성 이벤트 로그는 'E3, E7, E9, E11, E90, ..., E232' 이고, 중심 값은 'SUN, 20:34;21', 거리는 '10:00', 이벤트 로그 개수는 '28'이다.
The cluster information may be stored in the
도 7은 그룹정보를 나타내는 도면이다. 도 4 및 도 7을 참조하면 그룹정보(710, 712, 714)는 그룹명(702), 라벨명(704), 구성 클러스터(706), 유사성 판단 정보(708)를 포함할 수 있다. 그룹정보 저장부(420)에는 그룹정보(710, 712, 714)가 데이터베이스 형태로 저장된다.7 is a diagram showing group information. Referring to FIGS. 4 and 7, the
그룹명(702)은 일련번호로 부여될 수 있다. 예를 들면 그룹명은 'G1', 'G2', 'G3', ...와 같이 일련번호로 부여될 수 있다. 라벨명(704)은 일련번호로 부여되거나 또는 각각의 그룹을 특징을 잘 나타내는 명칭이 부여될 수 있다. 라벨명(704)은 프로세서(400)가 자동으로 부여할 수 있다. 라벨명(704)은 유사성 판단정보(708)에 기초하여 부여될 수 있다. 예를 들면 유사성 판단 정보(708)가 '취침'으로 결정되면 프로세서(400)는 '취침'으로 라벨명을 결정하고, 사용자의 승인과정을 통해 라벨명을 확정할 수 있다.The
구성 클러스터(706)는 그룹을 구성하는 클러스터에 대한 정보이다. 예를 들면 그룹 'G1'(710)을 구성하는 클러스터는 'C1', 'C2' 이다. 그룹 'G2'(712)를 구성하는 클러스터는 'C3' 이다. 그룹 'G3'(714)를 구성하는 클러스터는 'C1', 'C5', 'C9' 이다.The
유사성 판단 정보(708)는 그룹을 구성하는 각각의 클러스터가 가지고 있는 유사한 데이터에 대한 정보이다. 유사성 판단 정보(708)는 시간, 위치 및 빈도수가 될 수 있다. 예를 들면 그룹 'G1'(710)을 구성하는 클러스터 'C1' 및 'C2'의 중심 값이 시간 및 위치가 유사한 경우, 유사성 판단 정보(708)는 시간 및 위치가 될 수 있다.The
유사성 판단 정보(708)는 각각의 클러스터가 가지고 있는 중심 값을 비교해서 판단하거나, 각각의 클러스터에 포함된 이벤트 로그를 구성하는 데이터를 비교해서 판단 할 수 있다. 예를 들면 그룹 'G3'(714)를 구성하는 클러스터는 'C1', 'C5' 및 'C9' 이다. 클러스터 'C1'은 위치에 기반하여 클러스터링 되었다. 클러스터 'C1'의 중심 값은 '127.03, 37.51'이다. 클러스터 'C5'는 시간에 기초하여 클러스터링 되었다. 클러스터 'C5'의 중심 값은 (MON, 22:20:21)이다. 클러스터 'C9'는 조도센서 값의 변화에 기초하여 클러스터링 되었다. 클러스터 'C9'의 중심 값은 '20' 이다. 프로세서(400)는 클러스터 'C1', 'C5' 및 'C9'를 분석하여 유사성 판단 정보를 얻을 수 있다. 예를 들면 클러스터 'C1', 'C5' 및 'C9'은 동일한 시간대에 발생했다. 따라서 그룹 G3(714)의 유사성 판단정보는 '시간'이 될 수 있다. 유사한 분석과정을 거쳐 프로세서는 그룹 G1(710)의 유사성 판단 정보를 '시간' 및 '위치'로 결정하고, 그룹 G2(712)의 유사성 판단 정보를 '빈도 수'로 결정 할 수 있다.
The
도 8은 이벤트 발생시 처리과정을 나타내는 도면이다. 도 4 및 도8을 참조하면, 전자장치에서 이벤트가 발생하면(단계 802), 프로세서는 이벤트 정보, 이벤트 발생 시각 및 전자장치의 위치 데이터를 포함하는 이벤트 로그를 수집한다(단계 804). 이벤트 로그는 이벤트 로그 아이디, 이벤트 정보, 이벤트 관련 시간정보 및 위치정보를 포함할 수 있다. 이벤트 관련 시간정보는 이벤트가 발생한 시각, 날짜 및 요일정보가 될 수 있다. 예를 들면 시간정보는 '2010-11-09 18:07:35 WED' 와 같이 될 수 있다. 위치정보는 이벤트가 발생되었을 때 전자장치의 위치 데이터이다. 위치정보는 경도 및 위도를 포함한 좌표로 제공될 수 있다.FIG. 8 is a diagram illustrating a processing procedure when an event occurs. Referring to FIGS. 4 and 8, when an event occurs in the electronic device (step 802), the processor collects an event log including event information, an event occurrence time and position data of the electronic device (step 804). The event log may include an event log ID, event information, event related time information, and location information. The event-related time information may be the time, date, and day of the week when the event occurred. For example, the time information could be like '2010-11-09 18:07:35 WED'. The location information is location data of the electronic device when the event occurs. The location information may be provided in coordinates including longitude and latitude.
이벤트가 발생하면 이벤트 로그 수집부(410)는 센서부(402), 통신부(404), 타이머(406) 및 앱(App) 정보 수집부(408)에서 발생한 이벤트 로그를 수집하고, 이벤트 로그 저장부(416)에 저장한다. When an event occurs, the event
프로세서(400)는 이벤트 로그를 적어도 하나의 클러스터로 클러스터링 한다(단계 806). 프로세서(400)는 이벤트 로그 저장부(416)에 저장된 이벤트 로그의 개수가 미리 결정된 값 보다 크면 이벤트 로그를 클러스터링 한다. 예를 들면 프로세서(400)는 이벤트 로그 저장부(416)에 저장된 클러스터의 개수가 30개 이상이면 이벤트 로그 저장부(416)에 저장된 이벤트 로그를 클러스터링 한다. 프로세서(400)는 클러스터와 관련된 정보를 생성한다(단계 808). 클러스터와 관련된 정보는 클러스터 아이디(602), 라벨명(604), 클러스터를 구성하는 이벤트 로그 정보(606), 중심 값(608), 거리(610) 및 클러스터를 구성하는 이벤트 로그 개수(612)를 포함할 수 있다. 클러스터와 관련된 정보는 API로 제공되어 전자장치에서 실행되는 앱에서 액세스 가능하다.Processor 400 clusters event logs into at least one cluster (step 806). The processor 400 clusters the event logs if the number of event logs stored in the event
프로세서(400)는 이벤트 로그에 포함된 시간 및 위치 데이터에 기초하여 클러스터에 라벨명을 부가한다(단계 810). 라벨명은 클러스터 정보에 포함된 중심 값에 기초하여 프로세서(400)가 자동으로 부여할 수 있다. 프로세서(400)는 위치 데이터에 기초하여 전자장치의 외부로부터 지명을 획득하고, 라벨명에 지명이 포함되도록 할 수 있다. 예를 들면 클러스터의 중심 값이 '127.03, 37.51'이면, 프로세서(400)는 해당 위치가 '강남구' 라는 것을 지도 데이터로부터 획득하고, 클러스터의 라벨명을 '강남구'가 포함되도록 결정한다. 지도 데이터는 전자장치 외부에 있는 서버(미도시)로부터 제공되거나 또는 전자장치에 내장될 수 있다.The processor 400 adds a label name to the cluster based on the time and location data contained in the event log (step 810). The label name can be automatically assigned by the processor 400 based on the center value included in the cluster information. The processor 400 may obtain a nomination from outside the electronic device based on the location data and cause the name to be included in the label name. For example, if the center value of the cluster is '127.03, 37.51', the processor 400 obtains from the map data that the corresponding location is 'Gangnam-gu', and determines that the label name of the cluster includes 'Gangnam-gu'. The map data may be provided from a server (not shown) external to the electronic device or embedded in the electronic device.
프로세서(400)는 전자장치의 하드웨어와 관련된 이벤트 로그 및 전자장치의 소프트웨어와 관련된 이벤트 로그를 구분하여 클러스터링 할 수 있다. 예를 들면 프로세서(400)는 이벤트 로그 수집부(410)를 통해 하드웨어 모듈인 센서부(402)에서 발생한 이벤트 로그를 하나 이상의 클러스터로 구성 할 수 있다. 프로세서(400)는 이벤트 로그 수집부(410)를 통해 소프트웨어 모듈인 앱 정보 수집부(408)에서 발생한 이벤트 로그를 하나 이상의 클러스터로 구성할 수 있다.
The processor 400 may separate and cluster the event logs associated with the hardware of the electronic device and the event logs associated with the software of the electronic device. For example, the processor 400 may configure the event log generated by the
도9는 클러스터가 생성된 상태에서 새로운 이벤트가 발생되었을 때 처리과정을 나타내는 흐름도이다. 도 4 및 도 9를 참조하면, 클러스터가 생성된 상태에서 새로운 이벤트가 발생하면(단계 902), 프로세서는 이벤트 로그를 수집한다(단계 904). 프로세서(400)는 클러스터의 중심 값과 새로운 이벤트 로그에 포함된 데이터를 비교하여 클러스터의 중심 값과 이벤트 로그간의 거리를 결정한다(단계 906). 여기서 거리는 클러스터의 중심 값과 이벤트 로그에 포함된 각 데이터의 값들의 차이다. 클러스터의 중심 값은 클러스터의 유형에 따라 위치 데이터, 시간 데이터 및 센서 값 등이 될 수 있다. 클러스터의 유형에 따라 중심 값은 다양한 형태의 값이 될 수 있다. 클러스터의 중심 값이 위치 데이터일 경우, 프로세서(400)는 새로운 이벤트가 발생하면 새로운 이벤트 로그에 포함된 위치 데이터와 클러스터의 중심 값을 비교한다. 클러스터의 중심 값이 시간 데이터인 경우, 프로세서(400)는 새로운 이벤트가 발생하면 새로운 이벤트 로그에 포함된 시간 데이터와 클러스터의 중심 값을 비교한다. 프로세서(400)는 거리가 미리 결정된 값 이하인지 판단한다(단계 908). 예를 들면 중심 값이 'SUN, 21:52:12'인 클러스터 'C1'이 존재하는 상태에서, 일요일 21:52분에 새로운 이벤트가 발생하면, 프로세서(400)는 클러스터 'C1'의 중심 값과 새로운 이벤트 로그를 비교한다. C1의 중심값이 'SUN, 21:52:12'이므로 프로세서는 일요일 21:52분에 발생한 이벤트에 대한 이벤트 로그를 클러스터 'C1'에 포함시킨다. 프로세서(400)는 클러스터의 중심 값을 다시 계산하고 이벤트 로그 개수도 증가 시킨다(단계 910). 클러스터 'C1'의 개수는 한 개 증가하고, 중심 값도 다시 계산된다. 새로운 이벤트에 포함된 데이터가 클러스터 'C1'의 중심 값과 미리 결정된 거리보다 크면, 프로세서(400)는 새로운 이벤트를 클러스터 'C1'에 포함시키지 않고, 별개의 이벤트 로그로 저장한다.
9 is a flowchart showing a process when a new event is generated in a state where a cluster is created. Referring to FIGS. 4 and 9, when a new event is generated in a state where the cluster is created (step 902), the processor collects an event log (step 904). The processor 400 compares the center value of the cluster with the data contained in the new event log to determine the distance between the center value of the cluster and the event log (step 906). Here, the distance is the difference between the center value of the cluster and the value of each data included in the event log. The center value of the cluster may be location data, time data, sensor value, etc. depending on the type of the cluster. Depending on the type of cluster, the center value can be a variety of values. When the center value of the cluster is the position data, the processor 400 compares the position data included in the new event log with the center value of the cluster when a new event occurs. If the center value of the cluster is time data, the processor 400 compares the time data included in the new event log with the center value of the cluster when a new event occurs. The processor 400 determines whether the distance is less than or equal to a predetermined value (step 908). For example, if a new event occurs on Sunday at 21:52 with cluster 'C1' having a center value of 'SUN, 21:52:12', the processor 400 determines that the center value of cluster 'C1' And the new event log. Since the center value of C1 is 'SUN, 21:52:12', the processor includes an event log for the event occurring at 21:52 on Sunday in cluster 'C1'. The processor 400 recalculates the center value of the cluster and also increments the number of event logs (step 910). The number of clusters " C1 " increases by one and the center value is calculated again. If the data contained in the new event is greater than a predetermined distance from the center value of the cluster 'C1', the processor 400 does not include the new event in the cluster 'C1', but stores it as a separate event log.
도 10은 두 개의 클러스터를 비교하여 그룹을 생성하는 과정을 나타내는 흐름도이다. 프로세서(400)는 전자장치에서 이벤트 발생에 따라 생성된 이벤트 로그로 구성되며, 각각 다른 중심 값을 갖는 제 1 클러스터와 제 2클러스터를 비교한다(단계 1002). 예를 들면 제 1 클러스터는 위치에 기초하여 클러스터링 되었다. 제 1 클러스터의 중심 값은 '127.03, 37.51'이다. 제 2 클러스터는 시간에 기초하여 클러스터링 되었다. 제 2 클러스터의 중심 값은 'MON, 22:20:21'이다. 제 1 클러스터는 복수의 이벤트 로그를 포함한다. 제 1 클러스터에 포함된 이벤트 로그의 위치 데이터는 제 1 클러스터의 중심 값인 '127.03, 37.51'을 중심으로 일정 거리 이내의 값을 가지고 있다. 제 2 클러스터에 포함된 이벤트 로그의 시간 데이터는 제 2 클러스터의 중심 값인 'MON, 22:20:21'을 중심으로 일정 거리 이내의 값을 가지고 있다.10 is a flowchart illustrating a process of generating a group by comparing two clusters. The processor 400 comprises an event log generated according to an event occurrence in the electronic device, and compares the first cluster and the second cluster having different center values (step 1002). For example, the first cluster has been clustered based on location. The center value of the first cluster is '127.03, 37.51'. The second cluster was clustered on a time basis. The center value of the second cluster is 'MON, 22:20:21'. The first cluster includes a plurality of event logs. The location data of the event log included in the first cluster has a value within a predetermined distance centered on '127.03, 37.51' which is the center value of the first cluster. The time data of the event log included in the second cluster has a value within a certain distance centering on the central value of 'MON, 22:20:21' of the second cluster.
프로세서(400)는 이벤트와 관련된 시간 정보 및 전자장치의 위치 데이터에 기초하여 제 1 클러스터와 제 2 클러스터의 유사성을 판단한다(단계 1004). 프로세서(400)는 먼저 제 1 클러스터와 제 2 클러스터의 중심 값을 비교하여 유사성을 판단한다. 제 1 클러스터의 중심 값과 제 2 클러스터의 중심 값은 서로 다른 형태의 데이터이므로 프로세서(400)는 각 클러스터의 중심 값은 서로 유사성이 없다고 판단한다. 다음에, 프로세서(400)는 제 1 클러스터 및 제 2 클러스터에 포함된 이벤트 로그의 시간 정보 및 위치 데이터에 기초하여 유사성을 판단한다. 예를 들면 제 1 클러스터에 포함된 이벤트 로그는 월요일 22시20분을 기준으로 일정 시간 이내에 수집되었다. 이 때 제 1 클러스터는 중심 값이 '127.03, 37.51' 이지만, 이벤트 로그에 포함된 시간 정보는 월요일 22시20분을 중심으로 일정 시간 이내의 값을 갖게 된다. 제 2 클러스터의 중심 값은 'MON, 22:20:21'이므로 제 2 클러스터의 이벤트 로그에 포함된 시간 정보도 월요일 22시20분21초를 중심으로 일정 시간 이내의 값을 갖게 된다. 프로세서(400)는 제 1 클러스터의 시간 정보 및 제 2 클러스터의 시간정보가 유사성이 있는 것으로 판단한다.The processor 400 determines the similarity of the first cluster and the second cluster based on the time information related to the event and the location data of the electronic device (step 1004). The processor 400 first determines the similarity by comparing the center values of the first and second clusters. Since the center value of the first cluster and the center value of the second cluster are different types of data, the processor 400 determines that the center values of the clusters are not similar to each other. Next, the processor 400 judges the similarity based on the time information and the position data of the event log included in the first cluster and the second cluster. For example, the event log included in the first cluster was collected within a certain time on Monday at 22:20. At this time, the center value of the first cluster is '127.03, 37.51', but the time information included in the event log has a value within a certain time centered on Monday at 22:20. Since the center value of the second cluster is 'MON, 22:20:21', the time information included in the event log of the second cluster also has a value within a certain time centered on Monday 22:20:21. The processor 400 determines that the time information of the first cluster and the time information of the second cluster are similar.
프로세서(400)는 유사성에 기초하여 제 1 클러스터와 제 2 클러스터를 하나의 그룹으로 결정한다(단계 1006). 제 1 클러스터와 제 2 클러스터는 시간 정보에 대해 유사성이 있으므로 프로세서(400)는 제 1 클러스터와 제 2 클러스터를 시간 정보에 기초하여 하나의 그룹으로 결정한다. The processor 400 determines the first cluster and the second cluster as a group based on the similarity (step 1006). Since the first cluster and the second cluster have similarity to the time information, the processor 400 determines the first cluster and the second cluster as one group based on the time information.
프로세서(400)는 그룹에 대한 정보를 저장한다(단계 1008). 프로세서(400)는 그룹에 대한 정보를 그룹 정보 저장부(430)에 저장한다. 그룹에 대한 정보는 데이터 베이스 형태로 저장된다. 그룹에 대한 정보는 그룹명, 그룹을 구성하는 각 클러스터 아이디 및 각 클러스터의 유사성 관련 정보를 포함한다. 그룹명은 일련번호로 부여될 수 있다. 예를 들면 그룹명은 'G1', 'G2', 'G3', ...와 같이 일련번호로 부여될 수 있다. 제 1 클러스터는 클러스터 아이디가 'C1'이다. 제 2 클러스터는 클러스터 아이디가 'C2'이다. 그룹을 구성하는 각 클러스터 아이디는 'C1' 및 'C2'가 될 수 있다. 이런 경우 유사성 관련 정보는 '시간 정보'이다. 제 1 클러스터와 제 2 클러스터는 시간 정보에 기초하여 하나의 그룹으로 형성 되었으므로, 프로세서(400)는 유사성 관련 정보를 '시간'으로 결정하고 저장한다.The processor 400 stores information about the group (step 1008). The processor 400 stores the information on the group in the group
그룹에 대한 정보는 전자장치에서 실행되는 앱에서 액세스 가능하다. 그룹에 대한 정보는 API 로 제공될 수 있다. 전자장치에서 앱이 실행될 때 앱이 그룹에 대한 정보를 액세스하고, 관련된 서비스를 제공 할 수 있다.
Information about the group is accessible from an app running on the electronic device. Information about the group can be provided by the API. When an app runs on an electronic device, the app can access information about the group and provide related services.
상기에서 설명된 내용들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기의 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The contents described above may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The above hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. This is possible. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.
100: 전자 장치 400: 프로세서
408: App 정보 수집부 410: 이벤트 로그 수집부
412: 클러스터 생성부 414: 그룹 생성부
402: 센서부 404: 통신부
406: 타이머 430: 저장부
416: 이벤트 로그 저장부 418: 클러스터 정보 저장부
420: 그룹 정보 저장부100: electronic device 400: processor
408: App information collecting unit 410: Event log collecting unit
412: Cluster Generation Unit 414:
402: sensor unit 404: communication unit
406: timer 430: storage unit
416: Event log storage unit 418: Cluster information storage unit
420: Group information storage unit
Claims (20)
상기 이벤트 로그를 적어도 하나의 클러스터로 클러스터링 하는 단계;
상기 클러스터와 관련된 정보를 생성하는 단계;
상기 이벤트 로그에 포함된 시간 및 위치데이터에 기초하여 상기 클러스터에 라벨명을 부가하는 단계를 포함하는 것을 특징으로 하는 이벤트 로그 관리 방법.Collecting an event log including the event information, an event occurrence time and position data of the electronic device when an event occurs in the electronic device;
Clustering the event logs into at least one cluster;
Generating information related to the cluster;
And adding a label name to the cluster based on time and location data included in the event log.
상기 위치데이터에 기초하여 상기 전자장치의 외부로부터 지명을 획득하고, 상기 라벨명에 상기 지명이 포함되도록 하는 것을 특징으로 하는 이벤트 로그 관리 방법.The method according to claim 1,
Acquiring a place name from the outside of the electronic device based on the position data, and storing the place name in the label name.
상기 라벨명은 사용자 입력에 의해 편집 가능한 것을 특징으로 하는 이벤트 로그 관리 방법.The method according to claim 1,
Wherein the label name is editable by user input.
상기 클러스터링 단계는,
상기 전자장치의 하드웨어와 관련된 이벤트 로그 및 상기 전자장치의 소프트웨어와 관련된 이벤트 로그를 구분하여 클러스터링 하는 것을 특징으로 하는 이벤트 로그 관리 방법. The method according to claim 1,
Wherein the clustering comprises:
An event log related to the hardware of the electronic device and an event log related to the software of the electronic device are classified and clustered.
상기 클러스터와 관련된 정보는 상기 클러스터의 중심 값 및 상기 클러스터를 구성하는 이벤트 로그 개수를 포함하는 것을 특징으로 하는 이벤트 로그 관리 방법. The method according to claim 1,
Wherein the information related to the cluster includes a center value of the cluster and a number of event logs constituting the cluster.
상기 클러스터와 관련된 정보는 상기 전자장치에서 실행되는 앱에서 액세스 가능한 것을 특징으로 하는 이벤트 로그 관리 방법.The method according to claim 1,
Wherein information related to the cluster is accessible from an app running on the electronic device.
상기 전자장치에서 새로운 이벤트가 발생하면 이벤트 로그를 수집하는 단계;
상기 클러스터의 중심 값과 상기 수집된 이벤트 로그의 거리를 결정하는 단계;
상기 거리가 미리 결정된 값 이하인 경우, 상기 이벤트 로그를 상기 클러스터에 포함시키는 단계;
상기 클러스터의 중심 값을 다시 계산하는 단계; 및
상기 클러스터에 포함된 이벤트 로그의 개수를 증가시키는 단계를 포함하는 것을 특징으로 하는 이벤트 로그 관리 방법.The method according to claim 1,
Collecting an event log when a new event occurs in the electronic device;
Determining a center value of the cluster and a distance of the collected event log;
If the distance is less than or equal to a predetermined value, including the event log in the cluster;
Recalculating the center value of the cluster; And
And increasing the number of event logs included in the cluster.
이벤트와 관련된 시간 정보 및 상기 전자장치의 위치데이터에 기초하여 상기 제 1 클러스터와 상기 제 2 클러스터의 유사성을 판단하는 단계;
상기 유사성에 기초하여 상기 제 1 클러스터와 상기 제 2 클러스터를 하나의 그룹으로 결정하는 단계; 및
상기 그룹에 대한 정보를 저장하는 단계를 포함하는 것을 특징으로 하는 방법.Comparing the first cluster and the second cluster, each of which has a different center value, from the event log generated according to the event occurrence in the electronic device;
Determining similarity between the first cluster and the second cluster based on time information related to the event and location data of the electronic device;
Determining the first cluster and the second cluster as a group based on the similarity; And
And storing information about the group.
상기 그룹에 대한 정보는 그룹 아이디, 그룹을 구성하는 각 클러스터 아이디 및 각 클러스터의 유사성 관련 정보를 포함하는 것을 특징으로 하는 방법.9. The method of claim 8,
Wherein the information on the group includes a group ID, each cluster ID constituting the group, and similarity-related information of each cluster.
상기 그룹에 대한 정보는 상기 전자장치에서 실행되는 앱에서 액세스 가능한 것을 특징으로 하는 방법.9. The method of claim 8,
Wherein information about the group is accessible from an app running on the electronic device.
전자장치의 외부로부터 데이터가 수신되면 이벤트를 발생하는 통신부; 및
상기 센서부 및 통신부에서 이벤트가 발생하면, 상기 이벤트 정보, 이벤트 발생 시각 및 상기 전자장치의 위치 데이터를 포함하는 이벤트 로그를 수집하고, 상기 이벤트 로그를 적어도 하나의 클러스터로 클러스터링하고, 상기 클러스터와 관련된 정보를 생성하고, 상기 이벤트 로그에 포함된 시간 및 위치데이터에 기초하여 상기 클러스터에 라벨명을 부가하는 프로세서를 포함하는 전자장치.A sensor unit for generating an event when a sensor value changes;
A communication unit for generating an event when data is received from outside of the electronic device; And
Collecting event logs including the event information, an event occurrence time and position data of the electronic device when the event occurs in the sensor unit and the communication unit, clustering the event logs into at least one cluster, And a processor for adding a label name to the cluster based on time and location data included in the event log.
상기 프로세서는 상기 위치데이터에 기초하여 상기 전자장치의 외부로부터 지명을 획득하고, 상기 라벨명에 상기 지명이 포함되도록 하는 것을 특징으로 하는 전자장치.12. The method of claim 11,
Wherein the processor obtains a place name from the outside of the electronic device based on the position data, and causes the place name to be included in the label name.
상기 라벨명은 사용자 입력에 의해 편집 가능한 것을 특징으로 하는 전자장치.13. The method of claim 12,
Wherein the label name is editable by user input.
상기 프로세서는 상기 전자장치의 하드웨어와 관련된 이벤트 로그 및 상기 전자장치의 소프트웨어와 관련된 이벤트 로그를 구분하여 클러스터링 하는 것을 특징으로 하는 전자장치.12. The method of claim 11,
Wherein the processor is configured to classify and cluster event logs associated with hardware of the electronic device and event logs associated with software of the electronic device.
상기 클러스터와 관련된 정보는 상기 클러스터의 중심 값 및 상기 클러스터를 구성하는 이벤트 로그 개수를 포함하는 것을 특징으로 하는 전자장치. 12. The method of claim 11,
Wherein the information related to the cluster includes a center value of the cluster and an event log number constituting the cluster.
상기 클러스터와 관련된 정보는 상기 전자장치에서 실행되는 앱에서 액세스 가능한 것을 특징으로 하는 전자장치.12. The method of claim 11,
Wherein the information associated with the cluster is accessible from an app running on the electronic device.
상기 프로세서는 상기 전자장치에서 새로운 이벤트가 발생하면 이벤트 로그를 수집하고, 상기 클러스터의 중심 값과 상기 수집된 이벤트 로그의 거리를 결정하고, 상기 거리가 미리 결정된 값 이하인 경우, 상기 이벤트 로그를 상기 클러스터에 포함시키고, 상기 클러스터의 중심 값을 다시 계산하고, 상기 클러스터에 포함된 이벤트 로그의 개수를 증가시키는 것을 특징으로 하는 전자장치.12. The method of claim 11,
Wherein the processor collects an event log when a new event occurs in the electronic device, determines a distance between the center value of the cluster and the collected event log, and if the distance is less than or equal to a predetermined value, And recalculates the center value of the cluster and increases the number of event logs included in the cluster.
전자장치의 외부로부터 데이터가 수신되면 이벤트를 발생하는 통신부; 및
상기 센서부 및 상기 통신부에서 발생한 이벤트에 기초하여 생성된 이벤트 로그로 구성되며, 각각 다른 중심 값을 갖는 제 1 클러스터와 제 2 클러스터를 비교하고, 상기 이벤트와 관련된 시간 정보 및 상기 전자장치의 위치데이터에 기초하여 상기 제 1 클러스터와 상기 제 2 클러스터의 유사성을 판단하고, 상기 유사성에 기초하여 상기 제 1 클러스터와 상기 제 2 클러스터를 하나의 그룹으로 결정하고, 상기 그룹에 대한 정보를 저장하는 프로세서를 포함하는 전자장치. A sensor unit for generating an event when a sensor value changes;
A communication unit for generating an event when data is received from outside of the electronic device; And
And an event log generated based on an event occurring in the sensor unit and the communication unit, wherein the first cluster and the second cluster having different center values are compared, and time information related to the event and position data of the electronic device Determining a similarity between the first cluster and the second cluster, determining the first cluster and the second cluster as a group based on the similarity, and storing information on the group ≪ / RTI >
상기 그룹에 대한 정보는 그룹 아이디, 그룹을 구성하는 각 클러스터 아이디 및 각 클러스터의 유사성 관련 정보를 포함하는 것을 특징으로 하는 전자장치.19. The method of claim 18,
Wherein the information on the group includes a group ID, each cluster ID constituting the group, and similarity-related information of each cluster.
상기 그룹에 대한 정보는 상기 전자장치에서 실행되는 앱에서 액세스 가능한 것을 특징으로 하는 전자장치.19. The method of claim 18,
Wherein the information about the group is accessible from an app running on the electronic device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130058433A KR20140137653A (en) | 2013-05-23 | 2013-05-23 | A Method and Device for Analyzing the Event log to extract co-occurrences |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130058433A KR20140137653A (en) | 2013-05-23 | 2013-05-23 | A Method and Device for Analyzing the Event log to extract co-occurrences |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20140137653A true KR20140137653A (en) | 2014-12-03 |
Family
ID=52457377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130058433A KR20140137653A (en) | 2013-05-23 | 2013-05-23 | A Method and Device for Analyzing the Event log to extract co-occurrences |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20140137653A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024053773A1 (en) * | 2022-09-07 | 2024-03-14 | 쿠팡 주식회사 | Method for managing log information and electronic device for supporting same |
-
2013
- 2013-05-23 KR KR1020130058433A patent/KR20140137653A/en not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024053773A1 (en) * | 2022-09-07 | 2024-03-14 | 쿠팡 주식회사 | Method for managing log information and electronic device for supporting same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108701495B (en) | Method for integrating and providing data collected from a plurality of devices and electronic device for implementing the method | |
CN106209964B (en) | Electronic device and method for controlling execution of application in electronic device | |
US10831792B2 (en) | Sensor information using method and electronic device using the same | |
KR102160975B1 (en) | Method and system providing of location based service to a electronic device | |
KR20150054413A (en) | Apparatas and method for determining a location of content according to user's eyes data in an electronic device | |
CN108605261B (en) | Electronic device and operation method thereof | |
US10198057B2 (en) | Electronic device and method for measuring position change | |
KR20170086977A (en) | Method and apparatus for processing image data | |
KR20170100309A (en) | Electronic apparatus for providing a voice recognition control and method thereof | |
JP2020502696A (en) | Electronic device and web page display method using the same | |
KR20180131863A (en) | Electronic device for providing information related to a smart watch and method for operating the same | |
US10621308B2 (en) | Electronic device and method for linking exercise schedule thereof | |
KR20170089642A (en) | Apparatus and method for managing of history information in a electronic device | |
KR102490673B1 (en) | Method for providing additional information for application and electronic device supporting the same | |
CN108124054B (en) | Apparatus for displaying user interface based on sensing signal of grip sensor | |
KR20150008653A (en) | Method for utilizing Usage Log of Portable Terminal and Apparatus for using the same | |
KR20170054876A (en) | Method for managing schedule information and electronic device thereof | |
CN108885853B (en) | Electronic device and method for controlling the same | |
US10210104B2 (en) | Apparatus and method for providing handoff thereof | |
KR20150085864A (en) | Advertising method of electronic apparatus and electronic apparatus thereof | |
KR20180061930A (en) | Text input method and electronic device supporting the same | |
KR20150020398A (en) | Apparatas and method for unified search of application in an electronic device | |
KR20150008647A (en) | Method and apparatus for grouping using communication log | |
KR20140137653A (en) | A Method and Device for Analyzing the Event log to extract co-occurrences | |
KR20180106221A (en) | Method for providing graphic effect corresponding to configuration information of object and electronic device thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |