yuns

[Protege 기초 실습12] Object Property - Value Partitions 본문

protege

[Protege 기초 실습12] Object Property - Value Partitions

yuuuun 2022. 12. 29. 19:04
반응형

무료 오픈 소스 온톨로지 편집기 실습 - Value Partitions

tutorial을 보고 실습을 진행해보고자 한다.


Value Partitions은 'design pattern'이다.

Ontology에서의 design patterns은 객체 지향 프로그래밍의 디자인 패턴(design patterns in object oriented programming)과 유사하다. 또, 이는 일반적인 모델링 문제를 해결하기 위한 입증된 솔루션으로 인정받았다.

SpicinessValuePartition이라는 이름을 가진 Value Partition을 생성해보도록 하자. (여기서는, PizzaTopping의 매운 정도를 나타내기 위함이다.) Value Partition은 나올 수 있는 범주를 exhaustive list로 정의한다. 예를 들어서 SpicinessValueParition의 범주를 ['Mild', 'Medium', 'Hot']으로 범주를 정할 수 있다. 아래는, OWL에서 ValuePartition을 생성하는 7가지 단계이다.

  1. ValuePartition을 나타내는 class을 생성한다.(spiciness ValueParition을 나타내는 class인 SpicinessValuePartition)
  2. ValuePartition이 가질 수 있는 여러 옵션들을 subclass로 만든다.(SpicyValuePartition아래 Mid, Medium, Hot)
  3. ValuePartition의 subclass를 disjoint상태로 만든다.
  4. 값 유형 목록을 철저(exhaustive)하게 만들기 위한 "covering axiom"을 제공
  5. ValuePartition에 object property를 생성한다. (여기서 hasSpiciness)
  6. property를 funictional로 지정해준다.
  7. property의 range을 ValuePartition의 class로 지정한다.(hasSpiciness property의 range: SpicinessValuePartition)

이제 실습을 통해 위에서 언급한게 무엇인지 알아보도록 하자.

먼저, Class를 추가해보도록 하자. (Thing > ValueParititon > SpcinessValuePartition> Hot, Medium, Mild)

 

Hot, Medium, Mild가 서로를 disjoint한 상태로 만들어준다. 한번에 설정해주기 위해서, Hot를 누르고, 'Make all primitive siblings disjoint'를 눌러서 한번에 설정한다. (근데, 이것을 누르기전에 이미 설정이 되어있었다. 버전 차이로 자동화된걸까?)

[Object Property] 에서 hasSpiciness를 추가한 뒤, range를 SpicinessValueParition을 추가해보자.

Covering axiom을 하기 위해서 SpicinessValueParition의 Equivalent To를 클릭해서 Hot, Medium, Mild를 추가해준다.

그냥 추가해줬더니, 생각한대로 안 나와서 직접 입력해서 추가했다.


Covering Axioms

TBD

반응형
Comments