메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

Cloudera CDH/CDP 및 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를 나타내고 있습니다. 





번호 제목 날짜 조회 수
41 [u-Auctions]목록이 1개만 나오는 문제 2017.05.29 138
40 hue메타 정보를 저장(oracle DB)하는 내부 테이블을 이용하여 전체 테이블목록, 전체 코디네이터 목록, 코디네이터기준 workflow구조를 추출하는 쿼리문 2022.04.01 137
39 [HA구성 이슈]oozie 2대를 L4로 HA구성했을때 발생하는 이슈 2023.01.17 136
38 Oracle NLOB type의 데이터를 import하는 경우 No Java type for SQL type 2011 for column rst와 같은 오류 발생시 조치사항 2022.01.14 136
37 S2RDF 테스트(벤치마크 테스트를 기준으로 python, scala소스가 만들어져서 기능은 파악되지 못함) [2] file 2016.05.27 136
36 Hadoop 2.7.x에서 사용할 수 있는 파일/디렉토리 관련 util성 클래스 파일 2017.09.28 134
35 webid에서 google처럼 검색할 수 있도록 하는 프로그램 2017.05.16 134
34 [CDP7.1.3]Ranger WebUI에서 Error! Connection refused: Please check the KMS provider URL and whether the Ranager KMS is running발생시 조치 방법 2023.06.07 133
33 [CDP7.1.7] oozie sqoop action으로 import혹은 export수행시 발생한 오류에 대한 자세한 로그 확인 하는 방법 2024.04.19 131
32 core 'gc_shard3_replica2' is already locked라는 오류가 발생할때 조치사항 2017.09.14 130
31 [oracle]10자리 timestamp값을 날짜로 변환하는 방법 2022.04.14 129
30 [Kerberos]병렬 kinit 호출시 cache파일이 손상되어 Bad format in credentials cache 혹은 No credentials cache found 혹은 Internal credentials cache error 오류 발생시 2023.01.20 128
29 [bitbucket] 2022년 3월 2일 부터 git 작업시 기존에 사용하던 비빌번호를 사용할 수 없도록 변경되었다. 2022.04.30 128
28 [oozie]Oozie WF수행시 단계별 ID넘버링 비교/설명 2022.03.23 128
27 magento2 샘플데이타 설치 2017.01.31 126
26 [kerberos]Kerberos HA구성 참고 페이지 2022.08.31 125
25 magento2 설치후 초기화면이 깨지는 문제 file 2017.01.31 125
24 5건의 triple data를 이용하여 특정 작업 폴더에서 작업하는 방법/절차 2016.06.16 123
23 [Hadoop Encryption] Encryption Zone에 생성된 table에 Hue에서 insert 수행시 User:hdfs not allowed to do 'DECRYPT_EEK' ON 'testkey' 오류 2023.11.01 122
22 hadoop에서 yarn jar ..를 이용하여 appliction을 실행하여 정상적으로 수행되었으나 yarn UI의 어플리케이션 목록에 나타나지 않는 문제 2017.05.02 122
위로