http://www.ibm.com/developerworks/kr/views/java/articles.jsp?expand=&sort_order=desc
&search_by=Real-time+Java&show_abstract=true&sort_by=%EB%82%A0%EC%A7%9C
&view_by=Search


Real-time Java, Part 5: 실시간 자바 애플리케이션 작성 및 전개하기
WebSphere Real Time에서 제공하는 툴을 사용하여 RT 자바 애플리케이션을 작성 및 전개해 봅시다.
Real-time Java, Part 4: 실시간 가비지 컬렉션 (한글)
전 통적인 가비지 컬렉션(GC)에서의 비결정적 중지(Nondeterministic pauses) 때문에 자바는 실시간(RT) 개발 환경에 적합하지 않습니다. IBM WebSphere Real Time의 일부인 Metronome GC는 결정적 GC 작동을 제공하여 개발자들이 자바 언어로 하드(hard) RT 애플리케이션을 작성할 수 있도록 합니다. 필자는 결정적 GC에 Metronome을 사용하는 방법, Metronome을 개발할 때 개입되는 기술적 문제들, GC 튜닝에 사용할 수 있는 툴과 장치들을 설명합니다.

Real-time Java, Part 3: 쓰레딩과 동기화 (한글)
Real-time Java 시리즈, 세 번째 글에서는 Real-time Specification for Java (RTSJ)가 반드시 지원해야 하는 쓰레딩과 동기화에 대해 설명합니다. 실시간 애플리케이션을 개발 및 전개할 때 반드시 유념해야 하는 쓰레딩과 동기화 문제에 대해서도 설명합니다.

Real-time Java, Part 2: 컴파일 기술 비교 (한글)
Real-time Java 시리즈, 두 번째 글에서는 자바 언어의 네이티브 컴파일과 관련한 문제점들을 설명합니다. 동적 (Just-in-time) 또는 정적 (Ahead-of-time) 컴파일 단독으로는 모든 자바 애플리케이션들의 요구 사항들을 맞출 수 없습니다. 필자는 다양한 실행 환경에서 이 두 개의 컴파일 기술들을 비교하고 서로 어떻게 보완되는지를 설명합니다.

Real-time Java, Part 1: 실시간 시스템에 자바 사용하기 (한글)
Real-time Java 시리즈 첫 번째 기술자료에서는, 자바를 사용하여 실시간 성능 요구 사항들에 부합하는 시스템을 개발하는 주요 문제점들을 다룹니다. 실시간 애플리케이션 개발이 의미하는 바가 무엇인지, 실시간 애플리케이션의 요구 사항을 맞추기 위해 런타임 시스템들이 어떻게 다루어져야 하는지를 설명합니다. 필자는 표준 기반 기술들을 결합하여 실시간 자바의 문제점들을 해결하는 방법을 여러분에게 소개합니다.


Posted by ukmie
,
Eclipse IDE에서 자바용 RMock 테스팅 프레임웍으로 jMock 강화하기
http://www.ibm.com/developerworks/kr/library/os-eclipse-rmock/index.html?ca=dnn-krt-20070725#resources
Posted by ukmie
,
비교적 잘알려진 논문.
시맨틱웹 기반의 검색 시스템 구현과 관련된 기술현황 위주다 보니 좀 오래된 느낌이 든다.
그래도 여전히 읽어줄만 한듯,..

출처: http://kidbs.itfind.or.kr/new-bin/WZIN/WebzineRead.cgi?recno=0901013490&mcode=jugidong

시맨틱웹 기반의 검색 시스템 구조

이강찬* 김성한* 민재홍** 박기식*** 정인정****

현재의 시맨틱웹 연구 및 개발은 시맨틱웹의 기본 기술인 RDF/RDFS, 에이전트, 온톨로지에 초점이 맞추어져 있다. 본 고에서는 시맨틱웹의 기본 기술을 유기적으로 조직하고 향후 시맨틱웹의 연구와 기술 개발에 청사진의 역할을 할 수 있는 시맨틱웹의 시스템 구조를 제시한 후, 시스템 구조를 사용하기 위한 시맨틱웹 개발에 필요한 도구에 대하여 설명한다. ▧

I. 서 론

1990년대부터의 정보통신의 발달 및 인터넷 사용 환경의 편의성 제고 등으로 인하여 웹의 사용이 일반화되고 있을 뿐만 아니라 각종 다양한 정보들이 웹을 통해서 공유되고 있다. 즉, 각종 멀티미디어 정보들이 디지털화되고 대용량의 데이터 교환이 가능해졌으며 단순한 텍스트뿐만 아니라 이미지, 음성, 동영상 등 다양한 형태의 자료를 공유할 수 있게 됨에 따라서 다양한 정보의 공유와 그 방대한 양으로 인하여 웹은 정보의 바다로 부각되었다.

그러나 현재의 웹 환경은 컴퓨터를 매개로 하여 사람과 사람들간의 정보 교환을 위해 발달되어 모든 정보의 추출, 이해를 사람에게 의존하기 때문에 사용자가 원하는 유용한 정보를 추출하는 일은 그리 간단하지 않다. 이러한 환경을 개선하기 위해 에이전트, 검색 엔진, 자연언어 처리 등과 같은 기술이 웹 환경에서 적용되기 위하여 연구/개발되고 있으나 이러한 기술 역시도 현재의 웹 환경이 지니고 있는 문제점으로 인하여 한계가 있다. 현재의 웹은 HTML 마크업 언어를 기반으로 하여 확산되었으며, HTML로 이루어진 웹 문서들은 정보의 표현을 위해서 정보와 표현을 위한 태그와 복잡하게 섞여 있다. 이러한 이유로 인하여 정보를 추출하기 어려울 뿐만 아니라 부울 연산에 의한 단어 검색을 위주로 하는 현재의 검색 방법에서는 유의어, 동음이의어 등과 같은 문제를 해결하지 못한다. 이러한 문제점을 개선하기 위하여 XML이 개발되었으나 XML도 정보의 정확한 표현은 가능하지만, 의미 표현이 불가능하고 다양한 형태의 표현 가능성으로 인하여 정보의 애매성을 증가시키는 단점을 지니고 있다.

지금까지의 웹 기술은 인간과 컴퓨터간의 정보 교환에 치중하고 정보와 태그의 혼합으로 정보추출의 어려움 그리고 컴퓨터의 웹 데이터에 대한 의미적 해석 및 처리의 취약 등의 어려운 문제점들이 있었다. 이를 해결하고 컴퓨터간의 정보교환이 가능하게 하며 웹 상의 데이터의 의미를 사람이 아닌 컴퓨터가 이해처리할 수 있는 새로운 정보 기술인 시맨틱웹이 1990년대 말에 소개되었다. 시맨틱웹은 분산처리 환경 하에서 서로 다른 데이터베이스 및 이기종 컴퓨터마다 상이한 의미를 갖는 데이터에게 각각의 컴퓨터 및 응용 프로그램들에서도 자유롭게 접근이 가능하도록 한다.

본 고에서는 시맨틱웹 기술을 적용한 검색 시스템의 구조를 제안하며, 현재까지의 개발된 도구를 이용하여 검색 시스템의 모듈별 도구를 정리하였다.

II. 온톨로지

웹을 제안하였던 팀버너스리(Tim Berners-Lee)는 시맨틱웹의 중요 기술로서 의미 표현을 위한 RDF/RDFS와 이기종 환경에서 도메인의 지식을 공유하고 재사용하기 위한 온톨로지(ontology), 그리고, 자동적이고 지능적인 기능의 수행과 개인화을 위한 에이전트를 시맨틱웹의 중요 기술로서 제안하였다. 이러한 기술들 중에서 온톨로지는 오랜 시간동안 인공지능과 다른 학문 분야에서 연구를 하고 있다.

온톨로지란 도메인 내에서 공유되는 데이터들의 개념화한 형식적이고 명백한 규정이며, 이는 특정분야에서 사용되는 표준 어휘들의 모음이라고 할 수 있다. 즉, 온톨로지는 도메인 내의 지식을 개념화 하고 이를 명세화 하는 것으로서 정의된다. 또한 온톨로지는 어휘 사전의 역할 이외에 지식을 효과적으로 표현하기 위해 정보의 의미를 부여하고, 정보간의 관계를 설정한다. 따라서 온톨로지는 광범위한 도메인에 적용이 가능토록 표준을 제시함으로써 웹 문서에 나타난 지식을 표현, 공유와 재사용을 그 목적으로 하고 있다. 시맨틱웹의 목적인 의미에 따른 자동적인 실행과 추론을 하기 위해서 온톨로지는 중요한 기술로 사용되고 있다.

이러한 온톨로지는 다음과 같이 3가지 종류로 구분을 할 수 있다.

온톨로지는 다음과 같은 응용프로그램에서 사용이 될 수 있다.

- 커뮤니티 참조(Community Reference) - 중립적인 온톨로지 작성

- 데이터베이스의 스키마의 정의나 혹은 온톨로지의 명세화와 같은 데이터베이스 주석(annotation)을 위한 공통의 사전(vocabulary) 정의

- 정보의 이용을 위한 공통적인 방법의 제공

- 데이터베이스의 주석과 기술적인 문서의 이해

첫번째의 커뮤니티 참조는 동일한 언어로써 작성해야 하고 이기종 환경에서 사용을 위해 다른 언어로의 전환이 가능해야 한다. 즉, 지식을 표현하는 데 있어서는 동일한 언어로써 표현을 해야 하며, 다른 시스템에 지식을 이식할 때에 다른 시스템에 적합한 언어로써 번역을 해야 한다. 두번째의 데이터베이스의 스키마의 정의나 혹은 온톨로지의 명세화와 같은 데이터베이스 주석을 위한 공통의 사전 정의는 지식에 대한 서술과 공유를 위해 동일한 표준 용어로써 기술한다. 공통의 사전 어휘로써 온톨로지는 지식의 작성, 관리, 공유, 재사용 및 신뢰성에서 장점을 지닌다.

세번째의 정보에 대한 동일한 방법의 접근은 서로 상이한 언어로써 작성된 지식을 공유할 수 있게 하는 것이다. 즉, 온톨로지는 공통적으로 공유되는 지식의 용어를 제공함으로써 서로 다른 언어로 작성이 되어 있어도 지식을 제공할 수 있다. 마지막으로, 데이터베이스의 주석과 기술적인 문서의 이해이다. 온톨로지는 자연언어 처리를 제공함으로써 도메인 내의 지식의 연결뿐만 아니라 지식이 문법과 어휘와 같은 언어적인 구조의 연관 관계를 이해할 수 있도록 설계되어 있다.

위에서 언급한 다섯 가지 형태의 응용 프로그램에서 온톨로지의 사용을 필요로 하고 있다. 또한, 온톨로지의 사용은 기존의 데이터베이스 기반의 응용 프로그램의 기능뿐만 아니라 자연언어 처리와 같은 방법을 사용하여 의미의 파악을 하여 단순한 키워드 매칭 방법이 아닌 용어들간의 연관 관계를 파악하여 질적인 정보와 지식을 제공할 수 있다.

III. 시맨틱웹 기반 검색 구조

현재의 시맨틱웹의 연구의 초점은 시맨틱웹을 가능하게 하기 위한 기반 기술에 있다. 이러한 이유로 시맨틱웹의 응용 및 시스템의 구조는 시험 모델이나 도메인에 적합하도록 설계되어 있다. 제시하는 시스템 구조는 현재의 웹 구조에 시맨틱웹 기술을 결합하였다. 시맨틱웹과 현재의 웹 구조를 결합하는 것은 시맨틱웹 시스템 구조를 현재의 웹과 독립적으로 구성하게 되면 그에 소모되는 자원과 비용이 증가하고, 현재의 웹과 유사한 구조를 지님으로써 현재의 웹과 연동할 수 있는 시스템 구조가 필요하기 때문이다.

제안하는 시맨틱웹 검색시스템 구조는 시맨틱웹의 사용과 서비스의 연관 관계를 상세히 나타내었으며 현재의 웹 시스템을 기반으로 하여 설계하였다. 이러한 연관 관계는 향후 시맨틱웹의 연구와 개발에 있어서 로드맵의 역할을 하며 효율적이고 유기적인 설계 및 개발에 사용을 할 수 있으며 현재의 웹에서 시맨틱웹을 위한 시스템의 설계에 이용할 수 있다.

본 고에서 소개하는 시스템 구조는 서브 시스템인 검색엔진과 온톨로지로 구분할 수 있는데, (그림 1)에서 온톨로지 저장소(Ontology Repository)를 중심으로 상위가 검색엔진이며, 하위가 온톨로지 시스템 구조이다. 검색엔진은 사용자가 시맨틱웹의 사용과 에이전트와 RDF, 온톨로지를 이용한 추론 엔진의 연동에 대한 서브 시스템 구조이며, 온톨로지 서브시스템은 시맨틱웹에서 온톨로지를 생성하고 유지 관리하기 위한 시스템 구조이다.

1. 검색엔진 서브시스템 구조

검색엔진 서브 시스템은 온톨로지 저장 시스템을 중심으로 RDF 처리를 위한 RDF 질의 처리기, 온톨로지 크롤러, 그리고 지식 추론을 위한 추론엔진으로 구성할 수 있으며, 각각의 구성 요소에 대한 설명은 <표 2>와 같다.

이러한 온톨로지는 단지 검색에만 유용하게 사용되는 것이 아니라 사용자가 온톨로지를 이용하여 페이지 구성을 할 수도 있다. 현재 시맨틱웹을 위한 마크업 언어로서는 RDF/RDFS와 RDF를 기반으로 한 DAML, OIL과 HTML에 온톨로지를 삽입한 SHOE, 그리고 OWL등이 개발되었다. 이러한 언어들을 사용하여 시맨틱웹 문서를 작성하기 위해서는 <표 3>과 같은 구성요소가 필수적으로 필요하게 된다.

이와 같은 검색 서브시스템의 구성요소는 시맨틱웹 시스템의 흐름을 반영하고 있다. 또한, 현재의 웹에서 사용자가 웹을 사용할 때의 각 시스템 흐름과도 유사한 시스템의 흐름을 지니고 있으며, W3C와 시맨틱웹을 연구하는 기관의 프로토타입의 응용 사례에 적용할 수 있는 구조를 지니고 있다.

2. 온톨로지 서브시스템 구조

온톨로지는 메타데이터와 유사한 형식과 속성을 지니고 있다. 그러나 온톨로지가 메타데이터와 구분이 되는 것은 추론의 기능을 제공하며 지식의 표현과 추출을 하고 공통의 지식을 공유 및 재사용이 가능한 점이다. 또한, 온톨로지는 시맨틱웹 언어와 같은 지식 표현의 언어로써 작성이 되어 있으며, 파일의 형태로써 표현이 가능하다.

시맨틱웹에서의 온톨로지는 추론 엔진에서 추론을 하기 위한 지식을 제공하며, 도메인 내의 지식을 공유하고 이기종 환경에서의 상호운영용을 보장하고 있다. 제안하는 온톨로지 서브시스템 구조는 온톨로지의 저장, 생성 및 유지 보수를 통합적으로 할 수 있다.

제안하는 온톨로지 서브시스템은 온톨로지 생성, 온톨로지 관리, 온톨로지 저장 모듈로 구분을 할 수 있다.

먼저 온톨로지 생성은 온톨로지를 생성하는 과정이며, 온톨로지 정의1)를 기본으로 하고 있다. 현재 온톨로지 생성은 수작업으로써 사용자가 온톨로지 편집기나 모델링 도구를 사용하여 작성을 하고 있다. 제안하는 시스템에서는 수동적인 부분과 더불어 자동적인 생성이 가능하도록 시스템의 구성요소를 제시하였으며, 각 구성 요소는 <표 4>와 같다.

온톨로지 생성 구성요소는 온톨로지 언어인 지식 표현언어의 사용을 제공해야 한다. 현재 시맨틱웹에서는 DAML, OIL, SHOE 및 RDF와 같은 언어를 온톨로지 표현을 위하여 제공을 하고 있다. 또한, 온톨로지 모델러는 텍스트 방식이 아닌 계층적인 구조를 표현하는 트리 모델이나, 소프트웨어 공학의 UML과 같은 방식의 그래픽 방법을 제공해야 하며, 개념화를 자동화된 방법으로 수행하기 위해서 구분 규칙을 제공하여 개념간의 계층적인 구조를 제시하여야 한다.

또한 온톨로지 생성기에서는 개념화의 정보를 가지고 이를 명세화하는 작업을 해야 한다. 명세화 작업은 개념에 대한 정보를 기입하는 것이며, 이는 메타데이터를 작성하는 것과 동일한 방식이다. 그러나, 작성을 하기 위한 언어는 지식을 표현할 수 있는 언어를 사용하여야 하며, 시맨틱웹에서는 시맨틱웹 마크업 언어로써 작성이 되어야 한다.

온톨로지의 관리는 편집, 주석 및 온톨로지 통합 도구를 제공하여야 한다. 온톨로지의 편집은 온톨로지의 수정을 위하여 제공하는 방안이며, 온톨로지 주석은 각각의 온톨로지에 사용자의 메모와 같은 부분을 기록하는 것이다. 마지막으로 온톨로지 통합 도구는 도메인의 온톨로지를 하나의 온톨로지로 통합하는 방법이다. 통합 방법은 사용자가 직접적으로 사용을 위한 온톨로지 통합기(integrator)와 자동적으로 통합을 하기 위한 온톨로지 학습기(learner)로써 구성을 할 수 있으며, 자세한 설명은 <표 5>과 같다.

마지막으로 온톨로지 저장 구성요소는 온톨로지의 저장과 저장된 온톨로지의 버전을 제공하며, 항상 온톨로지 무결성 등을 검사하는 모듈이 있어야 한다. 저장 구성 요소는 <표 6>과 같이 정리하였다.

IV. 시맨틱웹 개발을 위한 도구

본 절에서는 제안한 시맨틱웹의 시스템 구조를 기반으로 하여 시맨틱웹 시스템의 각 구성요소에서 필요 기술들과 개발이 완료되어 이용할 수 있는 도구에 대하여 설명한다.

2003년 현재, 시맨틱웹을 위한 도구들은 다양한 분야에서 개발되고 있다. 사용자가 사용을 위해서 사용의 측면에서는 에이전트 및 웹 문서간의 변환기, 질의어를 처리하기 위한 기술 및 도구가 개발되었으며, 추론을 제공하기 위한 추론 엔진의 로직은 인공지능 분야에서 연구를 하고 있는 first order logic, description logic, horn logic이 적용되고 있다. 또한, 추론의 규칙을 위해서 자바로 개발된 common rule이 제공이 되어 추론 엔진의 연구에 기여를 하고 있다.

그러나, 현재의 개발된 검색 엔진 서브시스템의 도구와 기술은 시맨틱웹을 구현하는 데 있어서 미약하다. 시맨틱웹이 가능하기 위해서는 에이전트의 기술과 마크업 언어와 에이전트간의 API 및 추론 엔진에서의 추론 방안의 연구와 개발이 필요하다.

온톨로지 서브시스템은 온톨로지의 저장 및 유지, 관리의 기능을 수행하는 시스템이다. 이러한 기능을 수행하는 온톨로지 서브시스템을 위한 도구는 현재까지 그 개발이 활발하지 않다.

이상으로 본 고에서 제안하는 시맨틱웹 기반의 검색 시스템을 위한 도구를 살펴보았다. 현재까지의 개발은 각 모듈별로 독립적인 도구들만 제공되고 있으며, 모듈이 통합된 도구는 상당히 많은 시간이 요구되고 있다. 이와 더불어 시맨틱웹을 위한 질의 언어 표준 개발도 동시에 이루어져야 할 것으로 사료된다.

V. 결 론

지금까지의 웹 기술은 인간과 컴퓨터간의 정보 교환에 치중하고 정보와 태그의 혼합으로 정보추출의 어려움, 그리고 컴퓨터의 웹 데이터에 대한 의미적 해석 및 처리의 취약 등의 어려운 문제점들이 있었다. 이를 해결하고 컴퓨터간의 정보교환이 가능하게 하며 웹 상의 데이터의 의미를 사람이 아닌 컴퓨터가 이해처리할 수 있는 새로운 정보 기술인 시맨틱웹이 현재 점차 그 모습을 드러내고 있다.

그러나, 현재의 시맨틱웹 기술에 대한 연구는 초기 단계로 구체화되어 있지 않고 각기 여러 요소별로 독립적인 연구가 진행되고 있다. 이로 인하여 경쟁적으로 각 요소기술들이 제안되고 있으나 이처럼 경쟁적이고 독립적인 연구는 시맨틱웹의 요소 기술들의 빠른 발전을 가져온 반면, 유기적인 연구를 저해하는 문제점이 있다. 이에 지금까지 독립적으로 연구가 진행되어 온 시맨틱웹의 각 요소 기술들의 유기적인 통합이 필요하며, 시맨틱웹의 효과적인 구현을 위한 개선된 마크업 언어 및 표준화 동향에 대한 연구와 함께 시맨틱웹에 대한 효과적인 활용방안 등에 대한 연구가 필요하다.

마지막으로 시맨틱웹의 응용은 지능형 정보 검색, 지식 관리, 자동화된 웹서비스, 에이전트 시스템, 지능형 전자상거래 및 현재의 웹 응용들에 모두 적용될 수 있으며, 새로운 기술이 빠르게 도입되기 위해서는 손쉬운 온톨로지 도구 개발, 온톨로지 기반의 시맨틱웹 프로토타입, 그리고 기존 웹에 손쉬운 적용 등의 도입 이슈들이 해결되어야 할 것으로 사료된다.

<참 고 문 헌>

[1]    Berners-Lee. Tim, Heldler. J, Lassila. O, The Semantic Web, Scientific American, May 2001, pp.28-37.

[2]    S.A. McIlraith, T.C. Son, Honglei Zeng, Semantic Web Services, IEEE Intelligent Systems. Vol.16, Issue 2, March-April. 2001, pp.46-53.

[3]    J. Hendler, Agents and the Semantic Web, IEEE Intelligent Systems, Vol.16, Issue 6, March-April 2001, pp.30-37.

[4]    Particia G. Baker, Carole A. Goble, Sean Bechhofer, Norman W. Paton, Robert Stevens, Andy Brass, An Ontology or Bioinformatics Application, Bioinformatics, Vol.15, No.6, 1999, pp.510-520.

[5]    Robert Stevens, Carole A. Goble, Sean Bechhofer, Onotlogy-Based Knowledge Representation Bioinformatics, Briefings Bioinformatics, 2001.

[6]    Robert Stevens, Carole Goble, Ian Horrocks, Sean Bechhofer, Building a Bioinformatics Ontology using OIL, IEEE Transaction On Information Technology In Biomedicine, Vol.6, No.2, June 2002, pp.135-141.

[7]    Gomez-Perez. A, Corcho. O, Ontology Languages for the Semantic Web, IEEE Intelligent Systems, Vol.17, Issue 1, Jan-Feb. 2002, pp.54-60.

[8]    Michel Klein, Dieter Fensel, Ontology Versioning on the Semantic Web, First Semantic Web Working Symposium, Stanford, CA, USA, August. 2001.

[9]    Introduction to Ontologies on the Semantic Web http://www.cs.umd.edu/users/hendler/ontologies.html

[10]  World Wide Web Consortium, http://www.w3.org

[11]  Maedche. A., Staab. S., Ontology Learning for the Semantic Web, IEEE Intelligent Systems, Vol.16 Issue 2, March-April 2001, pp.72-79.

[12]  Resource Description Framework(RDF) Model and Syntax Specification, http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/.

[13]  Resource Description Framework(RDF) Schema Specification 1.0, http://www.w3.org/TR/2000/CR-rdf-schema-20000327/

[14]  Sean Bechhofer et al. An informal description of Standard OIL and Instance OIL, http://www.ontoknowledge.org/oil/downl/oil-whitepaper.pdf

[15]  D. Fensel, F. van Harmelen, I. Horrocks, D.L. McGuinness, P.F. Patel-Schneider,  OIL: An Ontology Infrastructure for the Semantic Web , IEEE Intelligent Systems, Vol.16, Issue: 2, 2001, pp.38-45.

[16]  Dan Connolly, Frank van Harmelen, Ian Horrocks, Deborah L. McGuinness, Peter F. Patel-Schneider, Lynn Andrea Stein, DAML+OIL(March 2001) Reference Description,

http://www.w3.org/TR/2001/NOTE-daml+oil-reference-20011218

[17]  Dan Connolly, Frank van Harmelen, Ian Horrocks, Deborah McGuinness, Peter F. Patel-Schneider, Lynn Andrea Stein, Annotated DAML+OIL Ontology Markup,     

http://www.w3.org/TR/2001/NOTE-daml+oil-walkthru-20011218/
Posted by ukmie
,
탑쿼드란트코리아에 소개된  Ontology Engineering 개념도


출처 : http://www.topquadrant.co.kr/

Ontology Engineering


Ontology Engineering이란 사람이 갖고 있는 개념을 온톨로지로 표현하고 이를 시맨틱 처리 기술을 활용하여 응용하는 전반적인 기술을 의미합니다.

온톨로지를 활용하기 위해서는 기본적으로 아래와 같은 구조의 기술들이 필요하며 이를 응용하여 시맨틱 기술 응용 분야가 만들어집니다.






솔트룩스사에 게재된 시맨텍웹 소개자료중 일부
http://in2.saltlux.com/

Semantic Web의 가치

시멘틱 웹이 실현되면 컴퓨터가 자동으로 정보를 처리할 수 있어 정보시스템의 생산성과 효 율성이 극대화됩니다. 컴퓨터 혼자 전자상거래를 할 수 있고, 기업의 시스템 통합(SI), 지능 형 로봇 시스템, 의료 정보화 등 다양한 분야에 응용할 수 있습니다.

Structure

 



자주 보는 그림 --



Posted by ukmie
,
오라클에서도 많은 일들이 일어나고 있군요. TopQuadrant 사와 밀접한 관계인듯,.

Semantic 테크놀로지 센터
http://www.oracle.com/technology/global/kr/tech/semantic_technologies/index.html

Oracle Database 10g RDF 데이터 모델을 이용한 Semantic Web 애플리케이션의 개발

오라클의 서버 테크놀로지 담당 디렉터 Xavier Lopez, 테크니컬 스태프 수석 위원 Melliyal Annamalai가 오라클 오픈월드에서 발표한 프리젠테이션 자료로 Semantics 테크놀로지의 특성과 활용 분야, RDF에 대한 최신 정보 등을 소개하고 있습니다.





Posted by ukmie
,
Posted by ukmie
,

Semantic Wiki

software 2007. 8. 2. 18:37
시맨틱웹 커뮤니티라는데 좀 더 살펴봐야할듯,,음음
http://wiki.ontoworld.org/wiki/Main_Page

많기도 하다. 과연 쓸만한 것들일까.
http://wiki.ontoworld.org/wiki/Semantic_Wiki_State_Of_The_Art

미디어위키 시맨틱웹 버전
http://wiki.ontoworld.org/wiki/Semantic_MediaWiki



Posted by ukmie
,

톰캣 6.0 에서 웹사이트 여러개 운영하기 (2)


톰캣에서 하나의 IP로 여러개의 웹사이트를 운영하는 방법은 2가지가 있다.


  # 가상 호스트(Virtual Host)를 이용하는 방법
  # IP Address의 port를 여러개 사용하는 방법


여기서는 가상 호스트를 이용하여 톰캣에서 여러개의 웹사이트를 운영하는 방법에 대해서 설명하고자 한다.
설치 환경은 다음과 같다.


    * O/S : Windows XP (Windows Server 동일)
    * Tomcat 6.0.10


설명의 편의를 위해 톰캣의 설치 디렉토리는 'TOMCAT_HOME' 으로 표기할 것이다. 참고로 내 경우는 C:\Server\Tomcat6.0 이다.

설정하는 방법은 /TOMCAT_HOME/conf/에 있는 server.xml 파일만 수정하면 된다. server.xml의 쓸데없는 주석부분을 다 없애고 관련 부분만 남겨놓으면 아래와 같다.    

    <Service name="Catalina">
          <Connector port="8080" protocol="HTTP/1.1"
           maxThreads="150" connectionTimeout="20000"
           redirectPort="8443" />
          <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

          <Engine name="Catalina" defaultHost="localhost">
           <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
            resourceName="UserDatabase"/>

           <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
           </Host>

          </Engine>
         </Service>


위의 내용에서 핵심 부분은 <Host></Host> 영역이다.

1. 우선 <Connector port="8080" protocol="HTTP/1.1" 부분의 port를 80으로 수정한다.
  도메인명이 기본으로 80포트를 사용하기 때문이다.
 
2. <Host>... </Host> 에 해당하는 부분을 복사하여 2개를 만든다. 그리고 이렇게 수정하자.
       


    <Host name="www.myweb1.com"  appBase="d:/webapps/myweb1"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
           </Host>

           <Host name="www.myweb2.com"  appBase="d:/webapps/myweb2"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
           </Host>


  appBase="webapps" 는 톰캣의 기본 웹루트인 TOMCAT_HOME/webapps 디렉토리를 가르킨다. 웹사이트를 원하는 디렉토리에 두고 싶다면 d:/webapps/myweb1 처럼 자기가 지정하고 싶은 곳으로 수정하면 된다.
 
3. 마지막으로 웹사이트들의 ROOT 디렉토리를 지정해주자. 아래의 폴더를 생성한다.

d:/webapps/myweb1/ROOT/
d:/webapps/myweb1/ROOT/WEB-INF/

d:/webapps/myweb2/ROOT/
d:/webapps/myweb2/ROOT/WEB-INF/

그리고 WEB-INF 폴더 밑에 각각 web.xml 파일을 추가한다. 그냥 /TOMCAT_HOME/webapps/ROOT/WEB-INF/에 있는 web.xml 을 복사하면 된다.

4. 테스트하기 위해 ROOT/index.html 또는 index.jsp를 만든다.

이제 톰캣을 재시작하고 웹브라우저로 접속해 보자.
http://www.myweb1.com
http://www.myweb2.com

정말 간단하지 않은가?
톰캣 6.0에서 웹사이트 여러개 운영하기 (1)
아파치와 연동없이 톰캣만으로도 하나의 IP로 다수의 웹사이트를 운영하는 것이 가능하다.
(아파치와 톰캣을 연동하는 방법에 대해서는 차후에 자세히 올리도록 하겠다)

특히 개발자의 경우 여러개의 프로젝트를 개발하거나 테스트하고자 할 때 웹사이트를 여러개 운영해야한다. 다수의 웹 사이트를 세팅하는 방법은 크게 2가지가 있다.


    * 가상호스트를 이용하는 방법
    * IP Address의 port를 여러개 사용하는 방법


가상호스트를 이용하는 방법은 도메인을 이용하여 실제로 서비스를 운영하는 경우가 아니면 개발자에겐 별 의미가 없다. 여기서는 두번째 방법인 IP 어드레스의 포트를 이용하는 방법에 대해서 설명하겠다. (바로가기 : 톰캣에서 가상 호스트를 이용하는 방법)
우선 설치 환경은 다음과 같다.


    * O/S : Windows XP (난 아직 리눅스를 잘 모른다. 비슷하겠지만 테스트해보지 않았다)
    * Tomcat 6.0 (정확히는 6.0.10) : 다운로드


설명의 편의를 위해 톰캣의 설치 디렉토리는 'TOMCAT_HOME' 으로 표기할 것이다. 참고로 내 경우는 C:\Server\Tomcat6.0 이다.

설정하는 방법은 간단하다. /TOMCAT_HOME/conf/에 있는 server.xml 파일만 수정하면 끝이다. server.xml의 쓸데없는 주석부분을 다 없애고 핵심부분만 남겨놓으면 아래와 같다.


    <Service name="Catalina">
      <Connector port="8080" protocol="HTTP/1.1"
       maxThreads="150" connectionTimeout="20000"
       redirectPort="8443" />
      <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

      <Engine name="Catalina" defaultHost="localhost">
       <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
        resourceName="UserDatabase"/>

       <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
       </Host>

      </Engine>
     </Service>



우선 빨간색으로 표시한 부분만 이해하고 넘어가도 상관없다.
Connector port="8080"은 HTTP로 넘어오는 포트를 지정하는 것이다. 톰캣의 기본 포트가 8080인 이유가 여기에 있다. 따라서 8080 대신 기본 80포트를 사용하고 싶다면? 바로 이 부분을 port="80"으로 바꾸어주면 된다.

다음, Host 지시어의 appBase="webapps" 는 웹어플리케이션(웹사이트)의 위치를 나타낸다. appBase="./webapps"와 같은 의미다. 실제 위치는 TOMCAT_HOME/webapps이다. 물론 "d:/weapps/myweb1" 과 같이 절대경로로 지정하는 것도 가능하다.

그럼 웹사이트를 하다 더 추가하고 싶다면? 위의 <Service>...</Service>를 하나 더 만들어 버리면 된다. 위의 코드를 복사한 다음 server.xml 에 추가한다. 그리고 빨간색으로 표시한 부분만 수정하자.


    <Service name="Catalina2">
      <Connector port="9090" protocol="HTTP/1.1"
         maxThreads="150" connectionTimeout="20000"
         redirectPort="8443" />
      <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
      
      <Engine name="Catalina2" defaultHost="localhost">
       <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
         resourceName="UserDatabase"/>
     
       <Host name="localhost"  appBase="d:/webapps/myweb2"
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
       </Host>
      </Engine>
     </Service>


다른 웹어플리케이션을 돌리기 위해 서비스를 하나 더 추가한 것이다.
port="9090" 은 새로 추가하고 싶은 포트이다.
appBase="d:/webapps/myweb2"는 9090 포트에서 돌아갈 웹사이트 위치이다.

이제 server.xml 설정은 끝난 것이다.
마지막으로 웹사이트의 ROOT 디렉토리를 지정해주자. 아래의 폴더를 생성한다.

d:/webapps/myweb2/ROOT/   (
d:/webapps/myweb2/ROOT/WEB-INF/
(WEB-INF 폴더를 만들고 web.xml 파일을 추가한다. 그냥 /TOMCAT_HOME/webapps/ROOT/WEB-INF/에 있는 web.xml 을 복사하면 된다.

무지 간단하다. 하지만 난 이 간단한 것을 위해서 하루종일 삽질해야만 했다. 검색해 보아도 문서는 많은데 실제 도움이 될만한 것이 별로 없었다.

테스트하기 위해 ROOT/index.html 또는 index.jsp를 만든다.
이제 톰캣을 재시작하고 웹브라우저로 접속해 보자.
http://localhost:8080
http://localhost:9090

출처 : http://dbdb.tistory.com/rss

+++++
ROOT 디렉토리의 이름을 바꾸고 싶다면
<Host name="localhost" appBase="d:/dev/myweb">
 <Context path="" docBase="d:/dev/myweb"/> <!-- 추가-->
</Host>


Posted by ukmie
,

OntoWiki

software 2007. 8. 1. 18:29
이런걸 만들고 싶었어..홀홀

OntoWiki is a semantic collaboration platform for the development of Semantic Web knowledge bases. Powl is web-based ontology authoring and management solution for the Semantic Web.

http://ontowiki.net/Projects/OntoWiki

http://frankradio.egloos.com/3153534

http://3ba.se/screencast/OntoWiki-Tutorial.swf (튜토리얼 동영상)

Posted by ukmie
,
D2RQ - 베를린 대학서 만든 OWL 변환기(?), 오픈소스

As Semantic Web technologies are getting mature, there is a growing need for RDF applications to access the content of non-RDF, legacy databases without having to replicate the whole database into RDF. D2RQ is a declarative language to describe mappings between relational database schemata and OWL/RDFS ontologies. The mappings allow RDF applications to access the content of huge, non-RDF databases using Semantic Web query languages like SPARQL.

D2RQ Architecture


Using D2RQ you can:

  • query a non-RDF database using SPARQL or find(spo),
  • access information in a non-RDF database using the Jena Model API or the Sesame API,
  • do RDFS and OWL inferencing over the content of a non-RDF database using Jena's inference engine.

http://sites.wiwiss.fu-berlin.de/suhl/bizer/D2RQ/


Integrating relational databases with RDF/OWL
http://www.snee.com/bobdc.blog/2006/10/integrating_relational_databas.html

Mapping relational data to RDF with D2RQ
http://www.snee.com/bobdc.blog/2006/11/mapping_relational_data_to_rdf.html


Posted by ukmie
,