7월, 2006의 게시물 표시

Jena에서 Property 추출시 고려사항

StmtIterator iter = selIndi.listProperties(); 선택된 Individual의 Property들을 보고 싶을 때 listProperties메소드를 사용한다. 문제는 selIndi의 Property들중에 Object값(value)이 Null인 경우에는 가져오질 못한다. 그래서, selIndi의 RDFType을 얻어온다음에 캐스팅하고, Resource ontRes = (Resource) selIndi.getRDFType(); OntClass ontCls = (OntClass)ontRes.as(OntClass.class); 캐스팅된 ontCls의 listDeclaredProperties를 호출하면 말그대로 ontCls에서 선언한 property들만 가져오게 된다. //direct는 sub컨셉에서 지정된 property를 상속받아 가져올지를 체크 Iterator iter = ontCls.listDeclaredProperties(boolean direct); 문제는 name이라는 property도메인을 Person클래스으로 지정하고 Food클래스로도 지정하면 name의 입장에서는 Person과 Food의 anonymous Union클래스를 도메인으로 가지게 되 name이라는 Property는 어디서도 찾을 수 없다.

맥북에 CD빼는 버튼을 만들어 달라!

얼마전 연구실에서 맥북을 샀는데 뽀대에 반해 집에까지 끌고 들어 왔다. 개인적인 사정이 못만지다가 오늘에야 만져봤다. 아직도 백스페이스를 어떻게 누르는지 조차도 모른다. 문제는 그놈의 무지에서 시작, XP가 된다는 말에 무작정 시디를 넣고 시동??뭔가하는 아이콘을 클릭했다. (뭔지 기억조차 나질 않는다.) 엄멈! 윈도우 CD로 부팅이 되면서 맥북이 파란화면에 윈도우 설치를 자꾸 권유했다. 재부팅을 해도 그 화면이다. "시디를 빼버려야지~" 허걱! 시디를 빼는 버튼은 어디에도 없었다... ㅡ.ㅡ;;; 결국 시디를 빼긴 뺐다~ ... ... ... 윈도우 화면에서 ㅡ.,ㅡ;;;

Eclipse Plugin개발

Eclipse Plugin개발은 하면 할수록 감동이 넘치지만 몸이 너무 힘들어지네요. 계속 삽질의 연속이고..에효~ 맘 같으면 지금까지의 시행착오들을 정리해보고싶은데 너무 많은 길을 걸어온 것 같아요. 어디서 부터 시작해야할지... 디자인 패턴 좀 열심히 볼껄 후회되네요. 책사면 앞에 몇장 읽다가 덮어버리는...ㅋ

가지세요! 그리고 잘하세요.

처음에 제2의 DERI Korea[1]의 사이트를 발견하고서 "에효~"하고 한숨밖에 안나왔는데... 결국은 이렇게 되네요. 125억이 됬든. 껌깞이 됬든... 자세한 얘기는 모르겠지만 뭔가 잘못되어가고 있다는 생각이 들긴하네요. 정말 남아 있는 DERI Korea의 선장 및 이하 연구원들이 잘 이끌어 주시길 바랍니다. (씁) ps. 처음 시작했던 DERI Korea[2]에게는 다른 좋은 일이 있겠죠!~? [1] http://www.deri-korea.org [2] http://korea.deri.org

Protopage.com

이미지
Protopage 란것을 발견했는데 StartOn 과 상당히 유사한 서비스를 제공하네요. 약간 다른점은 각 페이지로 구별을 할수 있고 public혹은 private으로도 설정해 공유여부를 결정할수 있습니다. 저도 함 만들어봤습니다. http://www.protopage.com/kwangsub Use it to catch up with news from hundreds of sources (including the BBC, CNN, Reuters, New York Times, London Times, CNET, ESPN, ...) Put color coded sticky notes, todo lists and reminders on it Keep your frequently accessed bookmarks on it Name it (e.g. as www.protopage.com/yourname ) Share parts of your page with friends, or keep it private Use it to share photos

zb5 , 제로보드

이미지
학부 과제를 할때, 어떤 프로젝트에서 게시판을 급조할 때, 제로보드 를 자주 사용했었어요. 지금은 사용하지 않지만 CHORD홈페이지도 제로보드로 만들었었죠. (급조로ㅋㅋ) 그간의 레이아웃과 스타일을 싹 바꾼 제로보드5가 나타난답니다. 간간히 소식은 들었는데 오늘 모냥새를 처음 봤습니다. 기대되네요.

StartOn 개인화 페이지 서비스

이미지
아직 정식 오픈은 되지 않은 개인화 페이지입니다. 일전의 레이아웃이나 색상을 바꾸는 정도와는 비교도 안됩니다. 한참을 끄작끄작대다가 저다 한번 만들어봤습니다. http://www.starton.co.kr/ontoj 저처럼 어지간히 벌려놓는거 좋아하는 사람한테는 어쩔지 모르겠지만... 메인화면으로 등록해두면 어떤 포탈사이트보다도 훌륭할것 같아요. 앨범 콘텐츠의 Exif 기능이나, 스케줄 관리기능 같은게 좀더 강화되면 오방이네요.ㅋ del.icio.us 처럼 다른 사람이 설정한 콘텐츠를 볼수있는건지?는 잘 모르겠는데 그렇다면 확실히 social network의 바람이 느껴지는것 같네요 특히, 네이버 오픈API를 가져다 붙이는게 인상적이네요. (얼마나 많은 사람들이 이 기능을 사용할지는 모르겠지만...) [1] http://www.starton.co.kr/ [2] starton공식 블로그 : http://blog.starton.co.kr/

개인화된 홈

“개인화된 홈” 개인화된 홈의 서비스를 종종 들어가 확인하곤 했는데 오늘은 왼쪽 메뉴에 “콘텐츠 추가”란게 더 생겼네요. (뒷북이면…) 클릭하면 위 스냅샷처럼 콘텐츠들을 추가 할 수 있고요, 제공되어 있는 카테고리에서 제공되어 있는 서비스만 추가 할 수 있겠거니 생각했는데, RSS를 검색하니 제 blog가 나오고, 추가를 하니 이건 RSS리더 기능이네요. 푸하~ 검색기록을 활성화하고 검색을 하면 ”맞춤검색”을 하네요. 이제부터는 비슷한 컨텍스트를 갖은  결과만 보여주겠네요. 검색된 history도 남아요, 친절하게 보안생각해서 비밀번호를 한번더 묻는 센스까지! 볼때마다 신선하네요, 구글 origin source : http://chord.snu.ac.kr/~kskim/wp/?p=112

두번째 Tagging이야기

예전에 썼던 annotation에 대한 글 에 대한 두번째 이야기… 화두가 되고 있는 Web2.0이 되기 전의 웹사이트들은 웹컨텐츠 제공자(웹 디자이너, 웹 마스터 등)들이 웹 배포 어플리케이션(Dreamweaver, Namo등)을 이용하여 컨텐츠를 배포하였다. (물론 메모장에 최고의 도구일 시절이 있었겠지만…) 그 후, server page기술을 이용하여 웹컨테츠 요청자들도 함께 컨텐츠를 만들어 배포할 수 있게 되었다. 이때 부터 요청자와 제공자의 구분이 묘현해지기 시작한것 같다. 최근 wiki나 블로그와 같은 형태의 페이지를 만들어 자신들의 컨텐츠를 배포한다. 그래, 내가 알찬 컨텐츠를 만들었어, CD로 구워서 다락방에 올려놓길 원치 않는다면 최대한 가져갈 수 있도록 도와줘야 한다고 생각한다. 첫째, 이 텍스트들의 관계를 잘라가면서 indexing을 하는 멋진 클롤러가 존재하길 바라는 방법도 있겠고 두번째로, 좋은 컨텐츠를 제공하는 provider입장이 되어, 후진 크롤러라도 환상적인 내 컨텐츠를 긇어갈 수 있도록 도와주는 방법이 있을것 같다. 요새 난 그 두번째 방법으로 annotation, tagging에 관심 있다. (이 하나가 완벽하게 만들어주길 기대하지 말자, cowork!) Tagging방법 요약사이트에 속해 있는 각 페이지를 메타수준에서 tagging을 해준다. (이 기능을 지원하기 위해 웹 브라우저에 붙어 있는 툴바와 비슷한 모습이든 어플리케이션의 모습이든 별도의 Client가 필요할 것이다.) Tag뭉치를 담고 있는 플랫폼내지는 서버? Tag들과 Tag와 엮여져 있는 Resource들을 검색할 수 있는 Client (이것도 웹브라우져거 되든 application형태가 되든 할것이다.) 예를 들어, 내가 지금 보고 있는 페이지에 Tagging을 건다. 보고 있는 페이지의 상단이나 하단, 뭐 구석 어딘가에 Tagging을 걸어줄 부분을 마련한다. 물론 Tagging을 시도하는 나는 logon된 user일 것이다. logon된 u

Annotation

이미지
Annotation에 대해 몇가지 적어보자. 우선 Annotation는 사전에 찾아보면 “주석”정도로 해석될 수 있는데, 말 그대로 어떠한 리소스에 주석을 다는것이다. 위의 그림을 보면 문서내에 사람이 추가적인 설명을 적어놓는 방식으로 Annotation을 하고 있다. 이제부터 언급할 Annotation에서 사용되는 도메인은 웹을 통해 URI로 하여금 특정 리소스를 얻을 수 있는 범위를 말한다. 즉, 그 대상이 material한 책이나 문서가 아닌 웹을 통해 접근이 가능한 리소스를 의미한다. 이런 웹 리소스를 Annotation하기 위해서는 몇가지 방법이 있을 수 있겠다. (Annotation과 Tagging과의 관계가 포함관계인지, 포함관계라면 어느것이 어느것을 포함하고 있는것인지, 아니면 전혀 별개의것인지 아직 잘 모르겠다. ) 내부 Tagging방법 Provider(블로거, 사이트관리자 등)같은 정보를 제공하는 사람들이 해당 정보를 제공하면서 Tagging을하는 것이다. 이 방법은 Provider의 주관적인 관점이 많이 개입될 수 있다. 또한, 제공자의 부정확한 정보나 의도적인 잘못된 Tagging이 포함될 수 있다. 외부 Tagging방법 이미 Publish된 포스트 혹은 페이지에 대한 Annotation을 reader가 Tagging하는 방법이다. 외부Tagging방법은 Tagging정보를 담고 있을 별도의 Repository가 필요할 것이다. 내부Tagging방법보다는 주관적인 관점이 적게 개입될 수 있다. Requirement of Tagging (단계) Post(Extract) - Storage - retrieval Post(Extract)단계 - 포스트나 페이지가 생성될 때나 생성된 후에나 Tagging을 하는 작업은 필수이다. 이 작업은 Mannual 혹은 Automatic하게 이루어질 수 있다. 필요APP - Provider의 Tagging작업을 쉽게 도와주는 APP Storage 단계 - Tagging의 정보와 리소스

Semantic Desktop

어쩌면 Semantic DeskTop이 우리가 얘기하는 DeskTop on Desk(바로 지금 내 눈앞에 있는)가 아니고, something using DeskTop on Desk가 아닐까? 그 something은 데스크탑을 이용하여 network에 연결해 리소스를 배포(publish)할 수 있는 것, 즉 bbs, wiki, blog 등을 의미하는게 아닌가 싶다. 또, 이런 리소스들을 DublinCore, Foaf같은 제약?을 붙여 filtering한 후, 사용자에게 필요한 정보만을 제공하기 위해 나온것이 social network이 아닐까? origin source : http://chord.snu.ac.kr/~kskim/wp/?p=86

프로젝트 관리를 위한 ?

언제나 느끼는 것이지만, 이름 짓기는 참 어렵다. 요근래 특허 작업하면, 이름이 바뀌면서 문서도 몇번씩 바뀌더니…anyway~(누구말투다..ㅋ) 오늘 버스타고 오다가 문득 생각난 건데, 연구실마다 프로젝트를 하나씩은 하고 있는것 같다. 프로젝트가 아무리 유일하다고 해도 비슷한 프로젝트는 당연히 있을것이고, 프로젝트를 관리하고 처리하는 사람들의 경험은 어디로 남을까? 결과보고서? 개발품? 아님 사라지나? 어떻게든 남겨볼려고 개발계획서만들고, ER그리고, 요구분석해데고 하는거겠지…당근 있어야지. (미루고 미루다 한방에 몰아서하는 식만 아니면,,,) 여튼, 이런 종류의 생각이였다. 그래서 추가적인 솔루션이 없을까 생각해보다, 몇가지 생각했던게, ranking, tag cloud, feed, trackback정도? 프로젝트에 대한 스키마를 온톨로지로 구현하는 논문들이 있고, 몇몇 실제 구현하여 사용되고 있는것도 같다. 연구실 홈페이지(회의자료, 강의자료, 발표자료 관리용)에 대한 요청이 들어왔다. TagWeb 을 응용해서, 도메인자체를 좀 바꿔서 생각해도 구현 가능할 것 같은데… (누가 하지? –a;) http://www.mindswap.org/rdf/instance/?inst=%7B’link’%3A+’http%3A%2F%2Fwww.mindswap.org%2F2003%2Fowl%2Fproject’%7D origin source : http://chord.snu.ac.kr/~kskim/wp/?p=80

ontological notepad

‘ontological notepad’ 사람들이 서로 의사소통을 하기 위해 말을 한다. 어떻게 보면, 프로그램 언어도 컴퓨터와 사람이 의사소통을 하기위한 방법이다. 의사소통을 하기 위해서는 syntax, semantic, rule이 필요하다. syntax는 의사소통을 위해 정형화한(formalization) 기본단위이다. 예를들어, 자음+자음 (x), 자음+모음(o) . semantic은 기본단위를 이용하여 의미를 담을 수 있는 최소단위이다. 예를들어, 사과-빨갛고 맛있는 과일, public-공동의, 흰 사과-하얀 색을 띈 “빨갛고 맛있는 과일”, public static void main-컴파일시 메모리에 로딩되는 메인메소드 정도가 되겠다. 이런 semantic은 단위들이 합쳐지면서 다른 semantic을 갖을 수 있다. rule은 syntax와 semantic간의 관계규약?들을 정의한것이라고 할 수 있겠다. 예를들어, “동일한 속성에 다른 값을 갖을 수 없다”는 rule이 있다면, “하얀 사과”는 존재할 수 없다. 사과는 이미 “빨갛고”라는 속성을 갖고 있었기 때문에 “하얀 사과”는 현재 rule-base에서는 존재 할 수 없는것이다. 이런 syntax, semantic, rule의 정보를 포함하고 있는 notepad를 만들어보자. 이 notepad에 작성을 하면 사용되는 syntax나 semantic에 맞추어 사용자에게 asist를 제공한다. 의료서식지에서 응용될 수 있을것 같고, 가족코드나 기본 박자들을 정의하면 rule안에서 작곡도 되는 상상을 해본다.  아직은 교수님의 초기 아이디어이고 , 아직은 좀더 정리해야 할 내용이 많다. origin source : http://chord.snu.ac.kr/~kskim/wp/?p=47

~의 타입이다, ~인스턴스이다.

분산된 정보(온톨로지)를 이용하고, 생성하는 것에 대해 고민해보자. 객체(individual)을 생성한다고 하면 해당 타입이 있게 된다.(optional 한건지 mandatory한건진 모르겠다. 내 생각인데 jena api를 이용해 보면 resource를 특정타입 없이 생성이 가능한걸로 봐서 optional이 아닌가 싶다.) 아무튼 어떤 객체에 대해 타입이 있기 마련인데 객체의 속성은 타입(클래스)의 속성을 상속받아(사실, 상속이란 단어도 좀 그런게 프레임 기반의 지식체계라면 ‘상속’이란게 맞지만, 그래프구조를 띄는 owl에서는 상속이란게 맞지 않는것 같다. Jena2 doc : Presenting RDF as frames 에 참고 내용이 좀 있다.) 여하튼, 앞에 신경쓰지말고 보면, 하나의 individual을 만들 때는 반드시 타입(클래스)가 가지고 있는 모든 속성을 표현해줘야 하나? 그렇다면 예를들어보자, ‘Person’이라는 타입이 있고 그의 속성으로 name, address, sex가 있다고 하고, ‘person_01′이라는 객체를 만들었다. 현재 ‘person_01′이란 객체는 name, address, sex가 null이다, 아니, 속성자체에 대한 ref가 없다. 이런 상황을 tool, 혹은 구현상에서 제대로된 ref를 갖도록 고쳐줘야하는 건가? 난 분산된 정보를 사용한다는 것은 각기의 정의된 타입( VCARD:FN 이나 VCARD:NICKNAME같은)들을 가져다가 사용한다는 것이라고 생각한다. 예를들어보자, 타입이 있기 전에 ‘person_01′이라는 객체가 만들어졌고, person_01에 VCARD:FN=’김광섭’, VCARD:NICKNAME=’좀만이’ 라고 트리플을 만들어준다. (전자의 individual만드는 것과 후자의 individual만드는 것은 방법의 차인가? 컨셉에서 객체를 만드는 것과 컨셉의 속성에서 객체를 만든 것…) 그리고, 몇가지 더 추가 내용이 있겠지만, person_01의 default NS는 person_01이 될터이고

OBID의 문제

OBID의 초기 모습은 병원에서 사용하는 양식들을 온토롤지 표현하고 표현된 스키마에 따라 사용자 인터페이스를 동적으로 생성시켜주고, 병원양식의 인스턴스들을 재사용 하도록 도와주는 지원도구였다. 그리고 그런 지원도구를 개발하는 것이 초기 목적이었다. 사실 몇가지 문제가 있었다. 1) 분산된 Resource의 문제들 2) 페이지 생성에 필요한 Mediator? 3) Object Property의 Range를 표현할 Page셋팅 4) Multi-user문제 5) so What? 뭐 어쩌라고? 어떤 한 개념(Class)의 인스턴스를 BaseURI가 http://local.com #인 곳에 생성하려 한다면 해당 개념의 attr, type, restriction등을 가져와야 한다. (물론, 온톨로지를 구축하는 사람은 해당 개념의 타입정도는 알 수 있다, 하지만 지금은 Knowledge Acqusition의 자동생성을 하는 관점에서 얘기하는 것이고, 타입을 모른다면 인터페이스가 자동으로 생성될 수 없다.) 요건 인터페이스가 생성되기 위해 attr, type, restriction들이 제공된다는 가정으로 해결될 수 있다. 페이지를 동적으로 생성된다고는 하지만 사실 사람이 페이지에 표현될 항목들을 하나하나 추가하는 것이다. 그래도 table, form, input태그같은 html을 추가하지 않고(WISWIG방식은 좀더 편리하겠지만) 입력화면의 항목들을 쉽게 편집한다는 것은 어느정도 메리트가 있다고 본다. 입력 인터페이스가 어느정도의 많이 생성이되고 자주 바뀔지는 모르겠지만 기존의 웹페이지만드는 방식에 비하면 그정도 cost는 감수해도 될 것 같다. 그래도! 그래도~ 좀 불편하다. 그래서 생각했던것이 페이지 생성에 필요한 Mediator이다. Henrik Eriksson은 온톨로지의 컨셉, 속성에 따라 입력 컨트롤의 타입을 결정할 수 있게 했다. 이게 Protege의 widget의 모태가 되었던것 같다. ObjectType property는 어느 컨셉의 인스턴스,

온톨로지 - 개념의 표현(1)

이미지
An ontology is a specification of a conceptualization - Tom Gruber 아마도 많은 사람들이 저 문장으로 온톨로지를 이해하고 있는 내용인것 같다. 예전에 가끔 “온톨로지가 뭐냐?”는 질문에 머리속에서 온갖것들의 조합이 엉켜져 있어 어떻게 대답을 할까 고민했었다.(사실 지금도 그리 깔끔하게 풀려있지는 않은것 같다.:-)) 저걸 물어보는 사람이 이쪽을 얼마나 아는 사람이냐, 관심이 있는 사람이냐에 따라..등등, 아니면 어떻게 도망갈까? ^^;; 지식영역의 사물들을 표현하고 기술하는데 사용되는 용어들을 정의한다. 하늘의 금성이라는 개념을 예로 들어보자. 사람에 따라 “금성”, “제일 밝은 별” 또, 금성의 출현시기에 따라 저녁 무렵에 보이는 금성을 “태백성”, “장경성” 혹은 “개밥바라기”라 부르며, 일몰 전후 혹은 새벽 무렵에 보이는 금성을 “샛별”, “명성”이라 부른다. 그렇지만 우리가 금성이란 개념을 지칭하기에 앞어 그전에 금성은 금성이였다. 어떻게 언제 보아도 고유의 속성들을 지닌 금성이다. 온톨로지는 이런 개념, 속성들의 정의, 그들간의 관계를 표현한다. 사람이 온토로지를 구축할 때, 가장 많이 사용되는 방법이 Top-down일거다. 당연한 것이 난 “차”가 뭔지 알고 적어도 “오토바이”와의 차이점도 안다. 더불어, “차”, “오토바이”가 가지고 있는 속성도 안다. 그렇기 때문 컨셉의 정의를 만들고 속성들을 붙여나간다. 이렇게 개념을 정의한다. 반대로 속성들에 의해 컨셉이 정의 되는 Bottom-Up방식도 있다. “이동한다”, “바퀴가 2개다”, “뚜껑이 없다” 이 3개의 속성으로 오토바이임을 나는 안다. 하지만 “자전거”도 저 속성을 만족한다. Bottom-Up의 방식은 도메인이 한정되어 있는 분야에서 사용되야 할것이다. 결국 중요한건 온톨로지는 Top-down이건 Bottom-up이건 개념의 표현이란 것이다. origin source : http://chord.snu.ac.kr/~kskim/wp/

move blog contents

My previous blog is blended with private, research, etc.. I intend to separate that now. so, several post would be out date, but I will move it for the reference.

first post started~

So far, I usually have wrote most post in korean at anoter blog. I will try to write the post in english from day. To write a blog in english will spend more time than in korean. (I don't know exactly that all these action would help me or not.. besides I'm so pooooor in english, but I guess, It will be refresh my mind.) I am a Phd candidate student in DERI Seoul Nationl University, Korea. My major is Medical Informatics of Dental now. (Actually, there are some story in my major. :-)) Anyway, I'm interested in semantic, real semantic stuff that would be trivial, but can represent some small semantics on web. I will introduce that some application, some methods can make semantics on web through this blog. (each ideas will be made from me or another.) And then, I will make my topic in my research area  after a while. so, I will be albe to earn big benefit throught by blog and another comments.. will thanks to these..