236 정보과학회논문지 : 컴퓨팅의실제및레터제 14 권제 2 호 (2008.4) 사용자컨텍스트와페트리넷을이용한모바일상의라이프스토리생성 (Life Story Generation in Mobile Environments Using User Contexts and Petri Net) 이영설 조성배 (Young-Seol Lee) (Sung-Bae Cho) Abstract People use diary or photograph for recalling their memory in order to satisfy their desires for recording their lives. If the experienced events are organized to a story, S/he can share her/his experience with others, and recall her/his significant events easily. In this paper, we propose a method that generates a story with Petri net and user contexts collected from mobile device. Here, we use Petri-net as a representation method that links human activities or experience causally. It is appropriate solution for modeling parallel events in real world, and for representing non-linear story line. In order to show the usefulness of the proposed method, we show an example of generating a story of user's experience with user contexts from mobile device and evaluate them. Key words :Petri Net, Story generation, Mobile log collection, Life log 요약사람들은자신의삶을기록하고자하는욕구를충족시키기위하여일기를쓰거나사진을찍어기록을남긴다. 사람이경험한일을자동적으로이야기형태로만들어기록으로남길수있다면그것을통해서자신의경험을다른사람과공유할수있고, 쉽게자신의과거경험을돌이켜볼수있을것이다. 본논문에서는모바일기기를통해서얻을수있는사용자컨텍스트를바탕으로사람이경험한일들을이야기형식으로구성하는방법을제안한다. 여기서는사용자가수행한행위나경험한사건을인과적이거나시간적순서로연결해주기위하여 Petri Net 을이용하였다. Petri Net 은동시적이고병렬적으로발생하는사건이나시스템을모델링하는방법으로현실세계의일부를모델링하는데뿐만아니라, 비선형적인스토리라인을표현하는데도적합한방법이다. 제안한방법의가능성을보이기위하여모바일기기사용자를대상으로수집한사용자컨텍스트를바탕으로스토리를생성하는사례를보이고유용성을평가한다. 키워드 : 페트리넷, 스토리생성, 모바일로그수집, 라이프로그 본연구는지식경제부및정보통신연구진흥원의대학 IT연구센터지원사업의연구결과로수행되었음 (IITA-2008-(C1090-0801-0046)) 이논문은 2007 한국컴퓨터종합학술대회에서 사용자컨텍스트와페트리넷을이용한모바일상의라이프스토리생성 의제목으로발표된논문을확장한것임 학생회원 : 연세대학교컴퓨터과학과 tiras@sclab.yonsei.ac.kr 종신회원 : 연세대학교컴퓨터과학과교수 sbcho@cs.yonsei.ac.kr 논문접수 : 2007년 10월 2일심사완료 : 2008년 1월 11일 Copyright@2008 한국정보과학회ː개인목적이나교육목적인경우, 이저작물의전체또는일부에대한복사본혹은디지털사본의제작을허가합니다. 이때, 사본은상업적수단으로사용할수없으며첫페이지에본문구와출처를반드시명시해야합니다. 이외의목적으로복제, 배포, 출판, 전송등모든유형의사용행위를하는경우에대하여는사전에허가를얻고비용을지불해야합니다. 정보과학회논문지 : 컴퓨팅의실제및레터제14권제2호 (2008.4) 1. 서론사람이현실에서경험하는많은사건을스토리형태로조직화하고보여줄수있다면자신의경험을다른사람과쉽게공유할수있게되고, 자신에게있었던의미있는사건들을시간이지난후되돌아보는데도움이될것이다. 실생활에서사람에게일어난일을스토리로구성하기위해서는현실에서사람이겪은일에대한정보를수집해야하고수집된정보를바탕으로스토리를생성할수있어야한다. 모바일기기에다양한기능이추가되고모바일기기를사용하는인구가증가함에따라사용자에대한여러가지의미있는정보를모바일기기에서수집할수있게되었다. 본논문에서는현실에서사람이겪은일에대한정보를수집하기위하여모바일기기에서수집된로그를처리하여얻은사용자컨텍스트를사용하였다 [1]. 이야기를만드는방법은크게나누어캐릭터기반스토리생성, 스크립트기반스토리생성, 캐릭터기반과스크립트기반방법론을모두적용하는 3가지가있다 [2]. 캐릭터기반스토리생성에서는스토리에존재하는캐릭터들이외부환경과다른캐릭터들과의사소통하면서자신의행동을결정한다. 그리고이러한캐릭터들의행동이모여서자연스럽게스토리를이루게된다. 스크립트기반스토리생성에서는캐릭터는자율성이없기때문에스스로스토리진행에영향을줄수는없다. 스크립트기반방식에서스토리는작가가만들거나자동으로생성된다. 캐릭터기반방식과스크립트기반방식을절충하는방안의경우기본적인스토리라인을갖추고그스토리내부에서캐릭터가제한적인자율성을갖는방법을사용한다. 본논문에서는 3가지스토리생성방식중에서스크
사용자컨텍스트와페트리넷을이용한모바일상의라이프스토리생성 237 립트기반스토리생성을선택하였다. 그이유는수집할수있는사용자정보는한정되어있는반면실제환경에서발생한사건들을스토리로만들기위해서고려해야할변수가너무많기때문에, 모바일기기에서수집할수있는정보를토대로일관성을가진스토리를생성하는데미리정의된스크립트를사용하는것이유리하기때문이다. 스크립트를표현하는방법으로는페트리넷 (Petri net) 을사용하였는데, 이것은동시적이고병렬적으로발생하는사건이나시스템을모델링하는방법으로현실세계를모델링하는데적합한방법이다 [3]. 페트리넷은이미게임환경에서사람의개입에따라달라지는비선형적인스토리라인을표현하기위하여사용되었다 [4]. 즉, 사용자컨텍스트에따라서변화하는스토리라인을표현하는데적합하며, 발생했던사건들이서로에게끼치는영향을모델링하기에알맞다. 본논문에서는페트리넷으로구성된스토리스크립트를바탕으로모바일기기에서수집한사용자컨텍스트를스토리형태로구성하는방법을제안한다. 또제안하는방법의가능성을보여주기위하여모바일기기에서수집한사용자컨텍스트를바탕으로사용자가경험한일들을이야기형식으로구성하는사례를보여준다. 2. 관련연구 2.1 스토리그래프스토리그래프 (Story Graph) 는전통적으로이용되어온스크립트형태의스토리표현방식이다 [5]. 이것은사건들이시간순서대로나열되어있는스토리조각들과스토리조각들사이를연결하고전체스토리의분기를나타내는사용자선택으로이루어져있다. 스토리분기에서사용자가다음으로이어질스토리조각을선택하면서, 전체스토리는더이상스토리분기가나타나지않을때까지진행된다. 스토리그래프가가진문제점은스토리가진행되어분기점에이르면그시점에서미리스토리그래프에서정해진사용자행동중하나가발생해야한다는점이다. 만약정해진몇가지행동중하나가발생하지않으면스토리는진행도중에멈추게되고, 스토리는결말이나지않은상태로끝나게된다. 2.2 Narrative Mediation Narrative Mediation은기본적으로비순환스토리그래프와같은표현력을가지고있으며좀더세밀한스토리분기의표현에알맞은특성을가지고있다 [5]. Narrative Mediation으로스토리라인을설계할때는먼저이상적인스토리라인을구성하고사용자가정해진시점에서스토리에개입했을때, 사용자의행동이스토리라인의일관성과응집성을해치는것인지, 혹은예정된행동인지를판단하고예정된행동이아니면이후 의스토리를다른스토리로대체한다. Narrative Mediation의경우항상이상적인스토리라인을기본적으로가지고있어야하기때문에전혀다른여러가지내용의스토리를담을수있도록설계하기가쉽지않다. 2.3 페트리넷페트리넷은비동기적인요소들이서로긴밀하게연결되어있는시스템을모델링하기위해서제안된방법이다 [6]. 페트리넷에서시스템구성요소들사이의연결관계는시스템에서발생하는이벤트의인과관계를나타낸다. 페트리넷은기본적으로장소 (place) 의집합 P, 전이 (transition) 의집합 T, 입력함수 I, 출력함수 O의 4개의집합으로구성되어있다. 입력함수 I는전이 t j 와장소의집합사이의관계를나타내며, I(t j) 로표현된다. 출력함수 O는전이 t j 와전이의출력값의집합 O(t j) 로표현된다. 정의 : 페트리넷은다음과같은 4 요소로구성된다. 페트리넷에서나타나는요소의명칭과설명은표 1과같다. Place(P) 는원의형태로나타내고, transition(t) 은직선이나직사각형의형태로나타낸다. I와 O에해당하는 Edge는화살표를가진선분의형태로표현된다. 마지막으로 place 내부에는 token이점으로표현되어있어서 token의개수와 token을가진 place들로시스템의현재상태가표현된다. 그림 1은페트리넷으로표현된간단한시스템의예이다. transition은입력으로연결된 place에모두 token이존재해야만실행 (fire) 될수 표 1 페트리넷에나타나는요소의명칭과설명 명칭 설명 Place (P) 상태나이벤트조건을표현 Transition (T) 사건의발생을표현 Edge (E) P와 T의관계를표현 ( 입력 / 출력 ) Token 현재시스템상태를표현 그림 1 페트리넷의예
238 정보과학회논문지 : 컴퓨팅의실제및레터제 14 권제 2 호 (2008.4) 있는상태가되며, 실행가능한 transition이실행되면입력 place에있는 token이소비되고출력 place에 token이생성된다. 예를들어, 그림 1에서는 t 1 이실행가능하며, t 1 이실행되면 p 1 에있는 token이사라지고, t 1 의출력으로연결되어있는 p 1 과 p 2 에다시 token이생성된다. 결국, t 1 의실행후의시스템상태는 p 1 과 p 2 가각각 token을하나씩가지고있는상태가된다. 3. 제안하는방법본논문에서사용자컨텍스트는모바일기기에서얻을수있는여러가지정보 (GPS 로그, SMS 기록, 통화기록, 사진, 음악, 날씨정보등 ) 로부터추론되는사용자의행위나감정을말한다. 그림 2는 Modular Bayesian network를사용하여사용자컨텍스트를확률과함께추출하는간략한과정을보여준다 [1]. 분류 오락 / 여행 / 관람 직장 / 학교 / 군대 생활 / 가사 / 거래 교제 / 사교 / 교섭 / 약속 / 다툼 종교경조사 표 2 사건의분류와예 예 스포츠, 여행, 놀이, 사냥, 무용, 연극, 연주등등 퇴임, 휴가, 결근, 입학, 졸업, 업무, 입대, 제대등 치장, 식사, 목욕, 쇼핑, 휴식, 청소, 세면등등 방문, 작별, 화해, 절교, 경쟁, 부탁, 초대등참배, 예배, 기도등결혼, 이혼, 장례등 그림 3 플롯의개념적구조 그림 2 사용자컨텍스트의추출 3.1 개념정의본논문에서사건 (event) 은사람이경험하는일이나수행하는행위를의미하며플롯을구성하는기본요소가된다. 플롯 (plot) 은하나의사건을중심으로다른사건들이시간적, 혹은인과적순서에따라서배열되어있는사건의집합으로플롯의중심이되는사건은사용자컨텍스트를통해서파악하거나추론할수있는사용자의경험이나행위가된다. 또한스토리 (story) 는플롯을시간적순서에따라서나열한것으로사용자가하루동안겪었던일의요약이된다. 표 2는스토리를구성할수있는사건이나행동의종류를간략히요약한것이다. 3.2 플롯의구조플롯은사용자컨텍스트를통해서파악할수있는사건을중심으로구성된이야기이다. 대개의경우사용자의경험은주변환경이나상황에따라서달라지며사용자컨텍스트를통해서파악할수있는단편적인경험은그전후로다른사건이나행위에의해서뒷받침되어야인과적인논리성과일관성을가지게된다. 그러므로사용자의경험은그냥하나의사건으로표현되기보다는플롯이라는구조를통해서그하나의사건의전후에있 을것으로추론되는사건들을포함해야한다. 또한특정한경우에는어떤행위의결과가다른플롯에영향을끼칠수도있으므로플롯은자신의결과를다른플롯에전달할수있어야한다. 그림 3은이러한플롯의개념적인구조를나타내고있다. 3.3 플롯의페트리넷표현여기서는플롯을표현하기위해서페트리넷을이용하였다. 페트리넷을이용하는이유는이것으로표현하면플롯내부의사건의전후관계를명확히나타낼수있으며, 사용자컨텍스트가플롯의중심사건과연결되어있는지잘표현할수있고, 무엇보다플롯이모두진행된이후에플롯의진행결과를다른플롯으로전달하는것을 token의이동이라는개념으로잘표현할수있기때문이다. 표 3은플롯을페트리넷으로표현하였을때페트리넷의각구성요소가가지는의미를보여준다. 그림 4는플롯을페트리넷으로표현한예이다. 그림 4 에서선택된플롯은항상시작 place에 token이생성되는것으로플롯의이야기가진행된다. 사용자컨텍스트는플롯의중심이되는사건을진행하기위해서필요하고, 이전플롯의실행결과는현재플롯내부의이야기흐름을바꾸는데이용된다. 이전플롯의실행결과에따라서현재플롯에서진행되는이야기가달라지므로사용자가이전에어떤사건을겪었는지에따라서전체적인스토리도달라진다. 마지막으로플롯이진행된결과는플롯의결과를나타내는 place에 token을삽입하는것으로표현된다.
사용자컨텍스트와페트리넷을이용한모바일상의라이프스토리생성 239 표 3 플롯에서페트리넷구성요소가가지는의미 4.2 실험방법실험에서사용될간단한플롯을작성하고실제로수집된사용자컨텍스트에적용하여스토리를생성해보았다. 표 4는실험에사용된플롯의종류와플롯이선택되기위해서필요한사용자컨텍스트, 플롯내부의분기를위해서필요한다른플롯의결과, 그리고그플롯이진행된후에저장되는결과를정리한것이다. 이실험에서는실험의편의를위하여, 외출 과 귀가 는사용자컨텍스트없이항상선택되는플롯으로결정하고, 모든스토리는 외출 로시작하여 귀가 로종료되는것으로설정하였다. 표 4 실험에이용된플롯 플롯 컨텍스트 분기 결과 외출 - - - 즐거운통화 즐거운통화 - 친구와통화 모임 모임 - 친구들과만남 차마시기 차마시기 친구들과만남 - 외식 외식 친구들과만남 - 쇼핑 쇼핑 - - 귀가 - - - 그림 5 플롯의페트리넷표현예 3.4 플롯의선택과스토리생성사용자컨텍스트에따라서진행할수있는플롯을선택하고플롯들을시간적인순서로배열하면그것이스토리가된다. 따라서스토리의생성은플롯의선택과배열로이루어지게된다. 그림 5는사용자컨텍스트에따라서플롯을선택하고선택된플롯들이시간순서에따라서배열되어스토리가되는것을나타내고있다. 4.3 실험결과그림 6은한명의사용자를대상으로어느하루동안생성된스토리이다. 생성된스토리는사건의연속으로 XML 파일형식으로저장하였다. 그림 6에표현된스토리는 외출, 모임, 외식, 쇼핑, 차마시기, 귀가 의순서대로플롯이배열된결과이다. 주의할점은 모임 의결과친구들과만났고, 친구들과만난결과가 외식 이나 차마시기 에반영되어 친구들과함께차마시기 라는스토리라인이생성된것이다. 반면 쇼핑 의경우에는친구들과만나는것으로인해서영향을받는분기가없었기때문에친구들과쇼핑을하는스토리가생성되지않았다. 표 5는그날실제사용자의생활을생성된스 4. 실험및결과 4.1 실험환경본논문에서는모바일기기를통하여 3명의여대생에게 2주간수집한데이타를바탕으로추출한사용자컨텍스트를플롯의선택과스토리생성을위하여이용하였다 [1]. 전체시스템은 Windows XP Pro OS에서 Visual C++ 6.0으로작성되었다. 그림 6 스토리생성결과 XML
240 정보과학회논문지 : 컴퓨팅의실제및레터제 14 권제 2 호 (2008.4) 표 5 실제사용자의경험과선택된플롯의비교시간장소경험해당플롯 07:30 집기상외출 08:45 버스정류장버스타기 09:15 공과대학수업듣기 - 11:00 학생식당점심식사 - 12:00 음식점후배밥사주기 - 13:30 대강당동아리활동모임 20:00 음식점동아리회식외식 21:10 베스킨라빈스아이스크림차마시기 22:00 집귀가귀가토리와비교한것이다. 수업이나평범한식사에관련된플롯은실험에사용되지않았고후배에게밥을사주는내용은사용자컨텍스트로부터추출되지않았다. 그러므로스토리에포함되지않은것은자연스러운일이다. 쇼핑 의경우, 실제로사용자는경험하지않은사건이스토리에포함되었는데이경우는사용자컨텍스트가잘못추출되거나추론된경우이다. 5. 결론및향후연구본실험에서는모바일기기에서수집된사용자컨텍스트를바탕으로사용자의경험을스토리로구성하려고시도하였다. 여기서는스토리를사용자가경험하는사건이나수행하는행위의인과적인배열로정의하고, 모바일기기에서수집되는사용자컨텍스트를통해서경험을인과적인사건의순서를가지는플롯으로구성하기위하여페트리넷을이용하는방법을제안하고제안한방법을사용자로부터수집된데이타에적용하여스토리생성의가능성을보였다. 또한생성된스토리를실제로사용자가작성한보고서와비교해본결과, 해당하는스크립트가존재하지않거나사용자컨텍스트가정확히추출되지못한경우를제외하면생성된스토리는사용자가경험한일들의많은부분을나타냄을확인할수있었다. 향후연구로는실제경험을보다잘반영하는스토리를생성하기위해서는사용자에게서수집하는컨텍스트의종류를늘리고수집되는컨텍스트의정확도를높여서선택되는플롯이사용자의실제경험과일치하도록해야한다. 또한실제생활에서경험할수있는많은사건이존재하므로그사건들을포함할수있도록다양한플롯을추가하고플롯내부의분기를늘려서좀더세분화된이야기를보여줄수있도록해야한다. 마지막으로사용자에게생성된스토리를평가할수있도록하여실제로사용자가느끼는스토리의적합성을분석할필요가있다. 참고문헌 [1] K.-S. Hwang and S.-B. Cho, "Modular Bayesian Networks for Inferring Landmarks on Mobile Daily Life," The 19th Australian Joint Conference on Artificial Intelligence, pp. 929-933, 2006. [2] M. Theune, S. Faas, A. Nijholt, and D. Heylen, "The Virtual Storyteller: Story Creation by Intelligent Agents," Proceedings Technologies for Interactive Digital Storytelling and Entertainment TIDSE, pp. 204-215, 2003. [3] B. Farwer, "Recovery and Reset in Object Petri Nets with Process Markings," Proceedings of CS&P 2006 - Concurrency, Specification and Programming, pp. 47-57, 2006. [4] C. Brom, and A. Abonyi, "Petri Nets for Game Plot," Proceedings of AISB Artificial Intelligence and Simulation Behaviour Convention, Bristol, Vol. 3, pp. 6-13, 2006. [5] M. O. Riedl, and R. M. Young, "From Linear Story Generation to Branching Story Graphs," IEEE Journal of Computer Graphics and Animation, Vol. 26, No.3, pp. 23-31, 2006. [6] J. L. Peterson, Petri Net Theory and The Modeling of Systems, Prentice-Hall, 1981. [7] Y-H. Rhee, J-H. Kim and A. Chung, "Your Phone Automatically Caches Your Life," SPECIAL ISSUE: Gadgets '06, Vol.13, No.4, pp. 42-44, 2006.