2015년 8월 13일 목요일

Ontology(2)

RDF = 주어 + 동사 + 목적어

URIref : 절대로 중복될 수 없는 유일성을 가진 referenece

RDF Schema : 클래스 상속 지원


주요 어휘
rdfs:Class   = 클래스를 정의하는 요소, rdf : about 애트리뷰트에 URIef를 써 줌
rdfs:label    = 사람이 이해할 수 있는 라벨을 붙인다.
rdfs:subClassOf = 한 클래스가 다른 기존 클래스의 하위 클래스임을 명시
rdfs:Property = 클래스의 속성을 정의하는 요소값
rdfs:domain = 한 속성이 어떤 클래스에 속하는 지 알려주는 요소
rdfs:range = 한 속성이 취할 수 있는 값의 범위를 정의하는 요소
rdfs:Literal = 상수값

rdf 코딩의 예
<rdf : RDF
       xmlns : rdf="htttp://www.w3.org/1999/02/22-rdf-syntax-nx#"
       xmlns : ontbook="http://Ontology.snu.ac.kr/ont-book#">

      <rdf : Description rdf : about="&ontbook : LeeSY">
              <ontbook : owns>
                         <rdf : Description rdf : about="&ontbook : OntologyTech">
                                       <ontbook : hasHompage rdf : resource =
                                                "http://www.Ontology.com/~ont"/>
                          </rdf: Description>
              </ontbook : owns>
              <ontbook : majorsln rdf : resource="&ontbook ; Electronic"/>
              <ontbook : age rdf : datatype="&xsd ; Integer">22</ontbook : age>
      </rdf : Description>
</rdf : RDF>                  
                         

OWL
1. Class
동일한 속성을 지니고 있어하나의 부류로 모아지는 개체들의 그룹
<owl : Class rdf : ID="레이저 프린터">
      <rdfs : subClassOf rdf : resource= "#프린터"/>
</owl : Class>

2. 속성
클래스와 클래스의 관계
    1. ObjectProperty: 클래스의 인스턴스를 다른 클래스에 속한 인스턴스와 연결
    2. DatatypeProperty: 클래스의 인스턴스를 특정한 데이터타입과 연결
<owl : ObjectProperty rdf : ID="제조하다">
            <rdfs : domain rdf : resource="#프린터"/>
            <rdfs : range rdf : resource="#제조회사"/>
</owl : ObjectProperty>

 속성도 클래스와 마찬가지로 계층적 관계를 나타낼 수 있다.
<owl : ObjectProperty rdf : ID="isADaughterOf">
            <rdfs : subProperty rdf : resource="#isAChildOf"/>
</owl : ObjectProperty>

OWL의 새로운 기능
1. 클래스의 bool 연산
      owl : intersectionOf , owl : unionOf, owl : complementOf
<owl: Class rdf : ID="사람">
       <owl : unionOf>
                 <owl : Class rdf : ID="여성"/>
                 <owl : Class rdf : ID="남성">
                           <owl : complementOf rdf : resource="#여성"/>
                  </owl : Class>
       </owl : unionOf>
</owl : Class>

2. 열거형 클래스
      owl : oneOf
<owl : Class rdf : ID="요일">
    <owl : oneOf rdf : parseType="Collection">
              <owl : Thing rdf : about="#월요일"/>
              <owl : Thing rdf : about="#화요일"/>
              <owl : Thing rdf : about="#수요일"/>
              <owl : Thing rdf : about="#목요일"/>
              <owl : Thing rdf : about="#금요일"/>
              <owl : Thing rdf : about="#토요일"/>
              <owl : Thing rdf : about="#일요일"/>
    </owl : oneOf>
</owl : Class> 

3. 클래스의 비접합성(교집합이 없는 경우)
     owl : disjointWith
<owl : Class rdf : ID="레이저 프린터">
      <owl : disjointWith rdf : resource="#잉크젯 프린터"/>
</owl : Class>
 
4. 속성에 대한 다양한 범위 지정
       제약이 있는 속성에 대한 정의 : onProperty
        속성 값의 제한 : allValueFrom, someValueFrom, hasValue
ex)
<owl:Class rdf : ID = "초식 동물">
        <rdfs : subClassOf>

         <owl : restriction>   
                <owl:onProperty rdf : resource="#먹다"/>
                <owl:allValuesFrom rdf : resource="#풀"/>
          </owl : Restriction>
          </rdfs : subClassOf>
</owl : Class>
   => owl : Restriction 를 통해 임의의 클래스를 만들고 그 클래스 밑에 의미를 부여한 후
         클래스 '초식 동물'이 그 의미를 모두 상속한다.

%% allValuesFrom : 이 속성만을 가진다.
       someValuesFrom : 이 속성뿐만 아니라 다른 속성을 가질 수 있다.

5. 관계차수 표현
어떤 클래스의 인스턴스가 특정 속성을 통해 연결될 수 있는 값이 최소한 , 최대한 이 몇  개인지를 제한하는 것
owl:Cardinality : ==
owl:maxCardinality : 최대한 n개
owl:minCardinality : 최소한 n개
<owl : Restriction>
        <owl : onProperty rdf : resource="#전공하다"/>
        <owl : minCardinality rdf : datatype="&xsd ; nonNegativeInteger">
         1
         </owl:minCardinality>
</owl : Restriction>

특별한 속성을 통한 추론 기능의 활성화
<rdf : type rdf : resource = "&owl; ________________" />
1. 이행속성(TransitiveProperty)
     A - P - B && B - P - C  => A - P - C
<owl:ObjectProperty rdf : ID="isMoreExpensiveThan">
      <rdf : type rdf : resource="&owl; TransitiveProperty>
</owl : ObjectProperty>

<owl:Class rdf : ID="프린터1">
      <isMoreExpensiveThan rdf : resource="#프린터2"/>
</owl : Class>

<owl:Class rdf : ID="프린터2">
      <isMoreExpensiveThan rdf : resource="#프린터3"/>
</owl : Class>
2. 대칭속성(SymmetricProperty)
    주어 와 목적어를 바꿔도 같은 의미일 때
<owl: ObjectProperty rdf : ID="대체하다">
       <rdf: type rdf : resource="&owl; SymmetricProperty"/>
</owl:ObjectProperty>

<owl:Class rdf : ID="레이저 프린터">
<대체하다 rdf:resource="#잉크젯 프린터"/>
</owl:Class>
 
3. 함수속성(FunctionalProperty)
    주어 와 목적어가 하나의 동사에 대하여 1:多 대응 일때
<owl: ObjectProperty rdf: ID="전공하다">
      <rdf: type rdf : resource="&owl; FunctionalProperty"/>
       <rdfs :domain rdf : resource="#학생"/>
       <rdfs : range rdf : resource="#전공"/>
</owl : ObjectProperty>

4. 역함수속성(InverseFunctionalPropety)
     주어 와 목적어가 하나의 동사에 대하여 1:1 대응 일때
<owl: ObjectProperty rdf: ID="학번을 가지다">
      <rdf: type rdf : resource="&owl; InverseFunctionalProperty"/>
      <rdf: type rdf : resource="&owl; FunctionalProperty"/>
       <rdfs :domain rdf : resource="#학생"/>
       <rdfs : range rdf : resource="#학번"/>
</owl : ObjectProperty>

5. 역의 관계에 있는 속성(InverseOf)
     ex) ~의 부모이다 <=> ~의 자식이다
<owl : ObjectProperty rdf : ID="isParentOf">
       <owl : inverseOF rdf : resource="#isChildOf"/>
</owl : ObjectProperty>

6. 클래스와 속성 간의 동치성과 비동치성 표현
equivalentClass equivalentProperty sameAs differentFrom Alldifferent
Why? 동음이의어 혹은 동의이음어 때문
<owl : Class rdf : ID="PrintingPaper">
      <owl:equivalentClass rdf : resource="&사무용품; CopyPaper">
</owl : Class>

토픽맵의 개념
1. 자원 : 컴퓨터 상에서 URI와 같이 주소를 가짐으로서 식별이 가능한 정보
2. 토픽 : 현실세계의 주제를 상징하는 컴퓨터 내의 자원
3. 어커런스 :  주제에 대한 정보자원의 위치
4. 관계 : 토픽들 간의 연관성

주제와 토픽의 관계
주제: '어떠한 것'
토픽: '그 어떠한 것을 컴퓨터가 이해하고 처리할 수 있는 형태로 표현한 것'

주제식별
하나의 토픽이 여러 개의 주제를 표현하거나 여러 개의 토픽이 동일한 주제를 표현하는 모호함을 없애기 위해 필요
1. 주제가 컴퓨터상에 존재하는 경우
=> 컴퓨터상의 주소를 통해 식별
2. 주제가 현실세계에 존재하는 경우
 => 컴퓨터에 식별가능한 주소가 존재하지않기 때문에 주제 지시자를 사용한다.

토픽의 특성
1. 이름
인간이 토픽을 쉽게 이해하도록 만든 것
2. 어커런스(Occurrence)
주제와 관련된 자원을 연결해준다.
3. 관계(Association)
하나 이상의 토픽 간의 연관성을 표현
%% 관계를 정의하기 전에 관계 타입을 먼저 정의해야 한다.

토픽맵 기타 구성 요소
1. 범위
2. 토픽맵병합(동일한 주제식별을 가지고 있거나, 동일한 범위 내에서 동일한 기본이름을 가질때)


댓글 없음:

댓글 쓰기