메뉴 건너뛰기

Bigdata, Semantic IoT, Hadoop, NoSQL

Bigdata, Hadoop ecosystem, Semantic IoT등의 프로젝트를 진행중에 습득한 내용을 정리하는 곳입니다.
필요한 분을 위해서 공개하고 있습니다. 문의사항은 gooper@gooper.com로 메일을 보내주세요.


*출처: http://wiblee.tistory.com/entry/Protege-튜토리얼-01-프로테제-개요-설치 [Wiblee Note]

*출처: http://wiblee.tistory.com/entry/Protege-튜토리얼-02-프로테제-메뉴-살펴보기 [Wiblee Note]

*출처: http://wiblee.tistory.com/entry/Protege-튜토리얼-03-프로테제와-OWL-Ontology [Wiblee Note]


Protege 튜토리얼 01: 프로테제 개요 & 설치

Wiblee 2015.01.08 17:20

프로테제란?


Protégé(프로테제)는 온톨로지 에디터입니다. 즉 이클립스 같이 개발 환경 지원 툴인데 그 대상이 온톨로지인 것입니다. 


온톨로지란 지식을 표현하는 것으로, 개념들과 개념 사이 관계들을 지정하여 논리 추론 등에 이용하게 됩니다. 


프로테제를 사용해서 온톨로지를 구축하고 온톨로지용 XML 기반 언어인 OWL 형태의 문서로 바꿀 수 있습니다.


프로테제는 현재 4.3 버전이 정식으로 최신 버전이고, 5 beta 버전도 나와 있습니다.


Protégé의 뜻과 의미가 궁금하다면 여기를 참고하세요!






다운로드하여 시작하기


그럼 다운로드하여 켜볼까요?


1. http://protege.stanford.edu/ 에 접속합니다. 

2. 아래로 내려보면 Downloads for Windows 버튼이 있습니다.  우리는 앞으로 5.0 beta 버전을 써볼 겁니다! 클릭하면 다운로드가 시작됩니다.




3. 다운로드가 끝나면 압축을 풉니다.

4.  run.bat을 더블클릭하면 도스창이 켜지고 조금 더 기다리면 아래와 같이 프로테제가 켜집니다.





Protege 튜토리얼 02: 프로테제 메뉴 살펴보기

Wiblee 2015.01.08 17:23



메뉴 구성


Protégé 메뉴를 하나 하나 살펴 보면서 무슨 기능을 하는지 알아봅시다.


먼저 큰 메뉴는 다음과 같습니다.





File : 주로 파일을 열고 저장하는 기능이 모여 있습니다.

Edit : 복사 붙여넣기 같은 기능들이 있습니다.

View : 온톨로지 파일을 보여주는 방식을 바꿉니다.

Reasoner : Reasoner[리즈너]는 reasoning, 즉 추론을 해주는 것입니다. Protege 4.3 버전 부터는 HermiT         Reasoner라는 리즈너가 미리 플러그인 형태로 설치되어 있습니다. 물론 다른 리즈너가 있다면 설치된 폴더 중 plugins 폴더에 복사해서 HermiT 대신 쓸 수도 있습니다. Reasoner 메뉴에서는 리즈너를 선택하고 사용/중지를 할 수 있는 옵션이 있습니다.

Tools : 온톨로지에 관한 도구들...

Refactor : 리팩터 관련...

Window : 창과 탭을 열고 닫는 메뉴

Help : 도움말




그 아래에는 가로로 쭉 나열된 탭들이 있습니다.






Active Ontology 탭은 현재 열려 있는 온톨로지가 무엇인지 보여줍니다. 한 번 웹상에 존재하는 온톨로지 하나를 열어서 살펴볼까요?


1. File > Open from URI를 클릭합니다.

2. http://130.88.198.11/co-ode-files/ontologies/pizza.owl 를 입력하고 확인을 누릅니다.


아래에 나오는 Annotations를 보면 owl 파일의 버전과 코멘트 등을 볼 수 있습니다.



Entities 탭을 눌러 봅시다. 여기에서는 온톨로지의 모든 것을 볼 수 있습니다. 온톨로지는 기본적으로 Class들, Property들, Individual들로 구성됩니다. 


왼쪽의 Class hierarchy 탭에 있는 삼각형들을 눌러보면 클래스들이 계층을 이루고 있는 것을 볼 수 있습니다. 이 피자 온톨로지는 피자의 종류를 분류해 놓은 것입니다. 피자베이스와 피자토핑에 무엇이 있는지를 적으면 나중에 reasoner를 사용해서 피자 토핑이 ㅇㅇ인 피자는 무엇이 있는지 추론할 수 있게 됩니다. 






왼쪽 탭에서 하나 누르면 오른쪽 탭에 Annotations와 Description이 나오게 됩니다. Annotations는 이 클래스의 정보를 적어놓은 것이고, Description은 이 클래스와 다른 클래스와의 관계들을 나타낸 것입니다. 


왼쪽 아래에는 여러 개의 탭이 함께 있는데, 이 중에 Object property hierarchy를 눌러봅시다.





Property는 이렇게 클래스와 클래스 사이 관계를 나타내는 것입니다. 예를 들어 isToppingOf는 '~의 토핑'이라는 뜻이고, Topping 클래스와 Pizza 클래스 사이의 관계입니다. 이렇게 관계를 정해 놓으면 나중에 reasoning을 할 수 있게 됩니다.


왼쪽 아래 탭 중에 Individuals by type을 누르면 Individual이 나옵니다. Individual은 클래스에 속하는 것입니다. 객체지향 컨셉에서의 인스턴스와 비슷한 것으로 볼 수 있습니다.

 



 

이 피자 온톨로지에는 Country 클래스에 속하는 다섯 개의 나라 Individual이 들어있는 것을 볼 수 있습니다. 



이 강좌는 맨체스터 대학의 Protégé OWL Tutorial를 참고로 작성되었습니다.


 

OWL 온톨로지란


온톨로지는 특정 도메인의 지식을 표현하기 위한 것입니다. 온톨로지는 도메인의 개념들을 묘사해야 하는데, 이를 위하여 여러 온톨로지 언어들이 존재합니다. 그 중 온톨로지의 표준 언어는 W3C가 제정한 OWL입니다. 


OWL 온톨로지는 Protege 기반 온톨로지와 비슷한 구성요소를 갖지만, 몇몇 용어들은 조금 다르기 때문에 이를 숙지하고 있어야 합니다. 가령, 아래 표에서 OWL 온톨로지에서의 Individual이라는 용어는 Protege 기반 온톨로지에서 Instance라는 용어와 같은 의미라는 것을 알 수 있습니다.


OWL 온톨로지와 Protege 기반 온톨로지에서 서로 상응하는 용어

 OWL 온톨로지

 Protege 기반 온톨로지 

 Individual

 Instance

 Property

 Slot

 Class

 Class



그러면, 온톨로지의 개념을 확고하게 머릿속에 정립하기 위해 Individual, Property, Class에 대하여 각각 알아보겠습니다.



Individual


Individual은 특정 도메인의 '객체'를 의미합니다. OWL 온톨로지의 Individual은 서로 다른 두 이름이 같은 객체를 가리킬 수도 있지만, Protege 기반 온톨로지에서는 Unique Name Assumption(UNA)를 따르므로, 이름이 다르면 반드시 다른 객체여야 합니다.


Protege 온톨로지의 시각화에서 Individual은 보통 '◇'와 같은 다이아몬드 표시로 나타냅니다. Protege에서 Individual은 Instance라고 불린다는 것을 기억해주세요.



Property


 Property는 Individual과 Individual 사이의 관계(relation)입니다. 둘 사이의 관계이므로 Property는 binary relation입니다.


예) "Mathew has sibling Gemma" 라는 문장에서, 

"Mathew"와 "Gemma"는 각 사람을 나타내는 Individual,

"hasSibling"은 sibling이라는 관계에 있음을 나타내는 Property로 볼 수 있습니다.



Property는 inverse property를 가질 수 있습니다. 예를 들어 hasOwner의 inverse는 isOwnedBy가 됩니다. 이와 유사하게 property는 경우에 따라 transitive일 수도 있고, symmetric일 수도 있습니다. 


Transitive는 어떤 관계에 대하여 a->b이고, b->c이면 a->c라는 것입니다.

Symmetric은 어떤 관계에 대하여 a->b이면, b->a라는 것입니다.


Property는 보통 화살표로 나타내며, Protege에서 Slot이라고 불립니다.



Class


Class는 Individual을 분류하는 일종의 묶음입니다. Class는 Superclass와 Subclass의 계층 구조를 가지고 있습니다. 예를 들어, Animal은 Cat이라는 subclass를 포함하여, Cat의 입장에서는 Animal은 Superclass입니다.


Class는 Protege에서도 Class라 불리며, 보통 Individual들을 동그라미로 묶어서 표현합니다.







위 그림은 맨체스터 대학 자료의 그림을 가져온 것으로, Individual, Property, Class를 나타내고 있습니다. 





번호 제목 글쓴이 날짜 조회 수
700 org.apache.hadoop.security.AccessControlException: Permission denied: user=hadoop, access=WRITE, inode="":root:supergroup:rwxr-xr-x 오류 처리방법 총관리자 2014.07.05 2834
699 spark-sql실행시 Caused by: java.lang.NumberFormatException: For input string: "0s" 오류발생시 조치사항 총관리자 2016.06.09 2802
698 banana pi에(lubuntu)에 hadoop설치하고 테스트하기 - 성공 file 총관리자 2014.07.05 2760
» protege 설명및 사용법 file 총관리자 2017.04.04 2743
696 Hive+mysql 설치 및 환경구축하기 file 구퍼 2013.03.07 2722
695 mysql-server 기동시 Do you already have another mysqld server running on port 오류 발생할때 확인및 조치방법 총관리자 2017.05.14 2668
694 org.apache.hadoop.hbase.PleaseHoldException: Master is initializing 구퍼 2013.03.15 2668
693 HBase 설치하기 – Pseudo-distributed file 구퍼 2013.03.12 2644
692 hadoop 설치(3대) file 구퍼 2013.03.07 2613
691 HBase, BigTable, Cassandra Schema Design file 구퍼 2013.03.15 2506
690 hbase shell에서 컬럼값 검색하기(SingleColumnValueFilter이용) 총관리자 2014.04.25 2446
689 banana pi에 hive 0.13.1+mysql(metastore)설치 file 총관리자 2014.09.09 2406
688 Cacti로 Hadoop 모니터링 하기 file 구퍼 2013.03.12 2367
687 AIX 7.1에 MariaDB 10.2 소스 설치 총관리자 2016.09.24 2363
686 jupyter, zeppelin, rstudio를 이용하여 spark cluster에 job를 실행시키기 위한 정보 총관리자 2018.04.13 2335
685 kafka broker기동시 brokerId가 달라서 기동에 실패하는 경우 조치방법 총관리자 2016.05.02 2331
684 hadoop설치시 오류 총관리자 2013.12.18 2313
683 메이븐 (maven) 설치 및 이클립스 연동하기 file 구퍼 2013.03.06 2280
682 apk 파일 위치 file 총관리자 2015.05.25 2227
681 [DataNode]org.apache.hadoop.security.KerberosAuthException: failure to login: for principal: hdfs/datanode03@GOOPER.COM from keytab hdfs.keytab오류 gooper 2023.04.18 2175

A personal place to organize information learned during the development of such Hadoop, Hive, Hbase, Semantic IoT, etc.
We are open to the required minutes. Please send inquiries to gooper@gooper.com.

위로