OPO : Online Presence Ontology

OPO : Online Presence Ontology를 소개해보려고 합니다.

eab7b8eba6bc-2

OPO : The Online Presence Ontology는 온라인상에서 사용자들의 존재(presence)에 대한 정보를 서술하기 위한 Concepts과 Properties를 제공합니다. 즉, 온라인상에서 사용자의 존재(presence)와 관련되어 있는 모든 데이터들에 대한 의미적인 설명과 어플리케이션간의 상호교환이 가능하게끔 해주는데 그 목적이 있습니다.

예를들어, Instant Messaging Tool을 생각해보면,

eab7b8eba6bc-5

온라인 상에서의 나의 상태 정보(Online Status), 나의 연락처(contacts), 나의 activity(노래를 듣고 있군요), 내가 메세지를 수신할지 말지, 그리고 나를 나타내고 있는 이미지(아바타)등이 나타나고 있는데, OPO는 이러한 정보를 의미적으로 표현해주게 됩니다. – OPO의 구조는 FOAF와 SIOC와 결합되어 사용할 수 있습니다.

OPO의 핵심 Classes 들은 아래의 그림과 같이 설명될 수 있습니다.

eab7b8eba6bc-1
(클릭하시면, 크게 보실 수 있습니다.)

상세한 classes와 properties는 OPO Specification을 참조하시면 됩니다.

이제 간단한 예제를 살펴보도록 하겠습니다.

eab7b8eba6bc-6

이 예제는 milstan이 자신의 online presence를 나타내고 있습니다.

이 예제의 Online Presence는,

foaf:Agent로 정의된 리소스 – 여기서는 간단하게 milstan 이라 하죠 – milstan은 어플리케이션으로 부터 notifications을 받을 수 있으며(ALLNotificationsPass), 웹상의 누구라도 contact정보를 찾을 수 있습니다.(PubliclyFindable).

그리고 “singing in the rain”라고 자신의 StatusMessage를 표현하고 있으며, 이 agent는 시스템에서 활동하고 있으며(Active), 웹상의 누구라도 연락할 수 있으며(FreelyContactable), 다른 agent와도 contact할 수 있고(Available), agent의 온라인 상태가 다른 agent에 보이게 됩니다.(Visible). 이와 같이 정의함으로써 이 예제의 온라인 상태는 – SkypeMe mode에 해당하는 – IM status에 사용될 수 있습니다.

OPO Project의 다른 예제 – 예를들면, fb나 tweet등의 status에 대한 표현등. – 는 여기서 확인하실 수 있습니다.

사용자의 온라인 상태를 어떤 어플리케이션을 사용하던간에 동일하게 보여줄 수 있을 것 같다는 생각이 들어 매우 재미있어 보이는 Project 입니다. 예를들어, 내가 어떤 노래를 들고 있는데, 이 상태가 메신저뿐만 아니라, twitter, facebook에도 나타나게 되면, 나름대로 재미있지 않을까요?

Bits, Virtual Worlds, and Avatar

지난 VoCampSeoul2009에서 만들어보고 싶었던 Avatar에 대한 Vocabulary를 간단히 생각해보려고 합니다.

Atoms로 대표되는 real world, Bits로 대표되는 virtual world에서의 People, Avatar, 그리고 Relationships에 대해서 생각해본 적이 있었습니다.

FOAF가 real world에서의 사람(People)과 그 사람의 활동(Activities), 그리고 다른 사람 및 개체(Objects)와의 관계를 표현해줍니다. 그렇다면, virtual world에서의 사람의 분신인 아바타(Avtar)와 그 아바타의 활동(Activities), 그리고 다른 아바타 및 개체와의 관계를 표현해주는 확장된 Vocabulary를 만들어보면 재미있지 않을까요?

Virtual world를 의미적으로 표현하는 것은 상당히 어렵겠지만, 가상세계라는 공간에서 실제 사람의 분신인 Avatar를 FOAF의 확장된 개념으로 표현해보는 것은 어렵지 않을 것 같다는 생각이 듭니다.

예를들어, 간단히 생각해보면,

일반적으로 아바타로 표현되는 것들, AvatarName(아바타의 screen name), AvatarLevel(레벨), AvatarExPoint(경험치), Items(아바타의 아이템들)….. 등등 Avatar를 표현해주는 Explicit data들과 아바타와 또 다른 사용자의 아바타를 연결해주는 relationships 등은 어렵지 않게 정의할 수 있겠지요.

800px-nurien_foaf_a

그리고 이러한 virtual world의 avatar는 쉽게 FOAF와 연동될 수 있을 것 같네요.

674px-nurien_foaf1

물론 각각의 아바타에 대한 표현이 서비스에 의해 규정이 되긴 하겠지만, 일반적인 아바타 그 자체에 대한 표현은 충분히 가능할 것 같다는 생각이 듭니다.

The Semantic Web VoCamp Seoul 2009 : RDF Vocabularies

지난 금요일(5월29일)에 The Semantic Web VoCamp Seoul 2009 : Summer에 참석해서 RDF Vocabularies에 대해서 발표한 내용입니다.


개인적으로 무척 즐겁고 재미있는 시간이었지요.  간단하게 발표 내용을 summary 해봅니다.

The Social Web은 공유된 매개체를 통해 연결된 사람들에 대한 이야기입니다. 흔히들 현재 SNS platform을 구성하는 세가지 block을 Identity, Friends, and Feed 라고 이야기 하고 있습니다.(Facebook을 생각해보면, 그 의미를 이해하실 수 있을 것이라 생각됩니다. – 나와 친구들의 이야기(온라인상에서의 활동)를 news feed를 통해 살펴보고 이야기 할 수 있는 것이죠. – ).

이러한 Social Web을 구성하는 major building blocks을 Semantic Web의 측면에서 – RDF Vocabularies(FOAF, SIOC, SKOS…)를 통해 – 접근해 보려고 합니다.

the Web은 리소스(사람, 문서, 데이터..)로 연결된 사회적인 연결망이라고 보았을 때, 이러한 리소스들간의 관계에 의미를 부여하고자 하는 노력이 Semantic Web이라 할 수 있습니다.

RDF(Resource Description Framework)는 리소스에 대한 정보를 의미적으로 표현해주는 언어입니다. RDF의 강력함 중의 하나는 바로 ‘웹상에 이미 정의된 다양한 classes and properties’를 REUSING할 수 있다는 것입니다.

RDF Vocabulaires란 ‘웹상에 이미 정의된 Classes와 Properties의 집합’이라고 볼 수 있습니다.  다양한 vocabularies들이 존재하지만, 여기에서는 다음의 세가지를 다루어 보려고 합니다.

  • FOAF – Friend of a Friend
  • SIOC – Semantically-Interlinked Online Community
  • SKOS – Simple Knowledge Organization System

FOAF(Friend of a Friend)는 온라인상에서의 자신(사람들의)의 identity와 그것에 기반한 사회적인 관계(social graph)를 표현해주는 vocabulary 입니다. 즉, 사람(People) – 이름, 생년월일, 취미, 조직, 이메일주소,… – , 사람간의 관계(Relationships) – a network of friends – 를 machine readable하게 표현해줍니다.

즉, Social Web의 Identity와 Friends는 FOAF를 통해서 의미적으로 표현할 수 있습니다.

온라인상에서 나의 identity는 매우 다양하게 표현이 됩니다.

vocamp

FOAF는 이렇게 분산되어 있는 사용자의 Identityd와 friends를 통합할 수 있습니다.

vocamp1

또한 다양한 network of friends를 의미적으로 상호연결할 수 있습니다.

vocamp2

그리고 FOAF를 통해 분산되어 있는 자신만의 Social Graph를 통합할 수 있습니다.

vocamp3

FOAF가 ‘Who I am’으로 말할 수 있는 ‘identity’와 ‘Who I know’라고 말할 수 있는 ‘friends’를 의미적으로 표현해 줄 수 있다는 것을 살펴봤습니다.

SIOC(Semantically-Interlinked Online Communities)은 온라인 커뮤니티의 콘텐츠와 그 구조를 의미있게 표현해주는 온톨로지 입니다. FOAF와 함께 사용함으로써 이를 통해 온라인상에서의 나와 친구들의 다양한 activities를 의미적으로 표현해줄 수 있습니다.

  1. 사용자들은 콘텐츠를 포스팅, 태깅, 공유합니다.
  2. 태그를 통해(또는 social graph)를 콘텐츠를 살펴봅니다.
  3. 코멘트를 통해 논의를 하고
  4. 이렇게 포스팅된 콘텐츠를 통해 서로 연결이 됩니다.

이런 일반적인 시나리오를 생각해봤을 때,  SIOC은 이러한 사용자들과 커뮤니티간의 액션, 사용자들과 사용자들간의 액션을 의미적으로 표현할 수 있게 해줍니다. 즉, 온라인 커뮤니티에서의 사회적인 활동을 표현해주는 온톨로지라고 할 수 있습니다.

vocamp4

이 그림은 twitter에서의 두 사람의 활동을 FOAF와 SIOC을 통해 표현한 내용입니다.

여기서 앞에서 전제로 말씀드렸던, Identity, Friends, and Feed를 다시 한번 고려해보면,

다음과 같은 paradigm을 생각해볼 수 있을 것 같습니다.

Archiving/Displaying your Social Activities

Browsing/Navigating your friends Social Activities

이러한 패러다임을 Semantic Web의 기술(RDF Vocabularies)을 통해서 적용해보는 것은 매우 재미있고, 의미있는 시도가 될 수 있을 것 같습니다.

SKOS는 Knowledge Organization Systems을 연결하고 공유하기 위한 일반적인 데이터 모델입니다.  이를 통해 사용자들의 activities에 대한 실제 내용을 의미적으로 연결할 수 있습니다.

vocamp5

‘Concept’을 통해 semantic relation을 표현해줍니다.

마지막으로 즐거운 시간을 마련해주신 sonagi님과 참석하신 모든 분들께 수고하셨다는 말을 드리고 싶네요.

다음번엔 더 재미있는 시간들로 다가와주길 기대해보면서 말이죠….. ^^)b

Return top

Sangwon Yang

현명한 사람이 되고 싶은 두 아이의 아빠