본문 바로가기
Data & AI Intelligence/▶AI & Agent

온톨로지 - Protege 간단 FOAF 실습

by 류딩이2025. 12. 11.

Protege란? 

: Protégé(프로테제) 는 스탠포드 대학(Stanford University) 에서 개발한 OWL(Web Ontology Language) 기반 온톨로지 모델링 도구


1. 설치

 

https://protege.stanford.edu/

 

protégé

A free, open-source ontology editor and framework for building intelligent systems Protégé is supported by a strong community of academic, government, and corporate users, who use Protégé to build knowledge-based solutions in areas as diverse as biomed

protege.stanford.edu

하단에 No, thanks를 눌러서 설치 진행

 

 


2. 새 온톨로지 생성 & FOAF 온톨로지 Import

File > Open from URL...

 


 

 

Window > SPARQL_Query


간단 FOAF 실습

 

1. FOAF 클래스 구조 확인하기

owl:Thing
 └── foaf:Agent
      ├── foaf:Person
      ├── foaf:Group
      ├── foaf:Organization
      └── etc.

여기서 foaf:Person 을 클릭하면:

  • rdfs:label = Person
  • rdfs:comment = A person
  • SubClassOf = foaf:Agent
  • DisjointWith = foaf:Organization, foaf:Group

→ 즉, 사람(Person)은 Agent의 종류이며 조직이나 그룹과는 동일할 수 없다는 의미.


2. 나만의 인스턴스(Person) 만들기

 

  • 좌측 탭에서 Individuals 클릭
  • 오른쪽 상단 클래스 선택: foaf:Person
  • 아래에서 + 버튼(Add individual) 클릭
  • 인스턴스 이름 입력: 예) 이름

 

 

 

3. Organization 인스턴스 만들기

① Individuals 탭에서 “Team” 클릭

→ 지금 화면처럼 보여야 합니다.

② 오른쪽 가운데 “Description: Team” 영역에서

Types 오른쪽의 “+” 버튼 클릭

③ 검색창에 입력:

 

4. Object Property로 개념 연결하기 (속성연결)

 

① Object property assertions → + 클릭

② “Property” 입력창에서 CTRL + SPACE 눌러 자동완성 창을 띄우세요.

 


5. 친구 관계 추가하기 (foaf:knows)

 

친구 추가 : 김훈종

 

 

 

① Individuals 탭에서 “이정륜” 선택

② 오른쪽 아래 “Object property assertions” → + 클릭

③ Property 칸 클릭 → CTRL + SPACE

④ Value(오른쪽 칸) 클릭 → CTRL + SPACE

 


6. 별명(nickname) 값을 인스턴스(사람)에게 적용하는 방법

 

① 왼쪽 (Data property hierarchy)

  • 온톨로지에 존재하는 모든 Data Property(데이터 속성) 목록
  • 예: foaf:firstname, foaf:age, foaf:family_name, foaf:geekcode 등

② 가운데 팝업 — "Create a new Data property"

③ 오른쪽 패널

  • 해당 데이터 속성의 주석, 도메인(domain), 범위(range) 등을 설정하는 곳

① Individuals 탭에서 별명을 줄 사람 선택 => 나 자신

② 오른쪽 아래에서 "Data property assertions" 찾기

 

③ Property 칸 클릭 → CTRL + SPACE

④ Value(값) 칸 클릭 → 문자열 입력

 

지식 그래프(Knowledge Graph)의 정의와 특징

지식 그래프의 정의

지식 그래프는 **실세계의 개체(Entity)와 그들 사이의 관계(Relation)를 그래프 구조로 표현한 데이터**입니다. 이는 노드와 엣지라는 핵심 요소를 통해 복잡한 정보를 구조화하여 표현합니다.

핵심 구성 요소

1. 노드 (Node, 개체)

  • 사람, 장소, 사물, 개념 등 실세계에서 의미를 가지는 모든 대상을 나타냅니다.

2. 엣지 (Edge, 관계)

  • 두 개체(노드) 사이의 연관성이나 관계를 정의합니다. (예: '~을 개발했다', '~의 고향이다')

온톨로지(Ontology) 적용에 따른 특징

지식 그래프는 온톨로지의 유무와 관계없이 구성될 수 있지만, 온톨로지를 적용함으로써 데이터의 품질과 활용도가 크게 향상됩니다.

온톨로지가 없어도 지식 그래프인가?

온톨로지가 없더라도 개체 간의 **의미론적인 관계**를 포함하고 있다면 지식 그래프로 볼 수 있습니다. 다만, 관계의 정의가 형식적이지 않을 수 있습니다.

온톨로지가 적용될 경우의 이점

  • 관계 명확성 향상: 관계의 정의와 제약 조건이 명확해집니다.
  • 데이터 일관성 확보: 모든 데이터가 정의된 스키마를 따르므로 일관성이 유지됩니다.
  • 기계적 해석 가능성 증대: 형식화된 구조 덕분에 AI나 기계가 데이터를 더 정확하게 해석하고 추론할 수 있습니다.

결론

지식 그래프는 데이터 간의 복잡한 연결 고리를 직관적으로 보여주어, 정보 검색, 추천 시스템, 자연어 이해 등 다양한 인공지능 분야에서 **정보 활용의 핵심 기반**을 제공합니다. 온톨로지 적용은 이러한 지식 그래프를 더욱 정교하고 강력하게 만듭니다.