OWL語言

OWL語言

RDF, RDFS表達能力有限,RDFS侷限於子類分層和屬性分層,以及屬性的定義域和值域的限定。

一些語義網特徵用例需要更強的表達能力,所以OWL(Web Ontology Language),

一種表達能力更強的本地語言被提出來。OWL以RDF和RDFS爲基礎,使用基於XML的RDF語法。

頭部

owl語言的頭部主要指定了一些主要的命名空間。

<rdf:RDF
         xmlns:owl="http://www.w3.org/2002/07/owl#"
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
</rdf:RDF>

類元素

類之間有子類關係,不相容關係, 相等關係

<!--定義了子類關係-->
<owl:Class rdf:ID=“副教授”>
	<rdfs:subClassof rdf:resource="#教師"/>
</owl:Class>


<!--不相容關係-->
<owl:Class rdf:about="#副教授">
    <owl:disjointWith rdf:resource="#教授"/>
    <owl:disjointWith rdf:resource="#助理教授"/>
</owl:Class>


<!--相等關係-->
<owl:Class rdf:ID="教師">
    <owl:equivalentClass rdf:resource="#教員"/>
</owl:Class>

屬性

OWL中有兩種屬性,一種是對象屬性,一種是數據類型屬性

對象屬性:將對象相互關聯,例如監督(誰 監督 誰),

數據類型屬性:將對象與數據類型值關聯起來,例如電話,年齡等

例如下面定義的年齡,這個數據類型值

<owl:DatatypeProperty rdf:ID="年齡">
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"/>
</owl:DatatypeProperty>

屬性約束

OWL語言中的屬性約束是重點,極大得增強了OWL語言的表達能力。

  • 聲明類滿足某些條件,也就是聲明類是滿足這些條件類的子類

    其中owl:allValuesFrom用來規定owl:onProperty指定屬性(由…講授)的所有可能取值範圍

    owl:hasValue用來規定owl:onProperty必須取規定的特定值。

    owl:someValueFrom用來規定一部分可能的取值範圍。

    <!--所有可能取值範圍,意思就是一年級的課程必須由教授來講授-->
    <owl:Class rdf:about="#一年級課程">
    	<rdfs:subClassOf>
    		<owl:Restriction>
    			<owl:onProperty rdf:resource="#由..講授"/>
    			<owl:allValuesFrom rdf:resource="#教授"/>
    		</owl:Restriction>
    	</rdfs:subClassOf>
    </owl:Class>
    
    <!--數學課必須由編號爲948352的這位老師來講授-->
    <owl:Class rdf:about="#數學課">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#由...講授"/>
               	<owl:hasValue rdf:resource="#948352"/>    
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    
    <!--所有老師都至少要教授一門本科課程-->
    <owl:Class rdf:about="#教員">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#講授"/>
                <owl:someValuesFrom rdf:resource="#本科課程"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    
  • 基數約束

    owl:minCardinality, owl:maxCardinality用來實現基數約束

    <!--一個系至少有10個成員,至多有30個成員-->
    <owl:Class rdf:about="#系">
        <rdfs:subClassOf>
        	<owl:Restriction>
                <owl:onProperty rdf:resource="#成員"/>
                <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">
                    10
                </owl:minCardinality>
            </owl:Restriction> 
        </rdfs:subClassOf>    
        </rdfs:subClassOf>
        	<owl:Restriction>
                <owl:onProperty rdf:resource="#成員"/>
                <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">
                    30
                </owl:minCardinality>
            </owl:Restriction> 
        <rdfs:subClassOf>
    </owl:Class>
    

特殊性質

  • owl:TransitiveProperty定義傳遞性,例如優於高於祖先

  • owl:SymmetricProperty定義對稱性,例如同年級同胞兄弟

  • owl:FunctionProperty定義函數性,定義函數性,可能有點難理解,其實更數學上的函數

    定義差不多,規定一個屬性對任何對象最多隻能取一個值,如年齡,身高

  • owl:InverseFunctionalProperty定義逆函數性,即規定一個屬性對不同的對象不能取

    相同的值,例如身份證號。定義了屬性值的唯一性

    例子

    <owl:ObjectProperty rdf:ID="同年級">
      <rdf:type rdf:resource="&owl;TransitiveProperty"/>
      <rdf:type rdf:resoure="&owl;SymmetricProperty"/>
      <rdf:domain rdf:resource="#學生"/>
      <rdf:range rdf:resource="#學生"/>
    </owl:ObjectProperty>  
    

布爾組合

布爾組合就是表達類之間的並交補關係

  • 補的關係,就是一種不相容關係,owl:disjointWith也可以達到相同的目的。

    <owl:Class rdf:about="#課程">
    	<rdfs:subClassOf>
            <owl:Class>
                <owl:complementOf rdf:resource="#教工"/>
            </owl:Class>
        </rdfs:subClassOf>
    </owl:Class>
    
  • 並的關係用owl:unionOf定義

    <owl:Class rdf:ID="大學人員">
        <owl:unionOf rdf:parseType="Collection">
            <owl:Class rdf:about="#教工"/>
            <owl:Class rdf:about="#學生"/>
        </owl:unionOf>
    </owl:Class>
    
  • 交的關係用owl:intersectionOf

    <!--計算機系的老師必須同時滿足是教師,並且屬於計算機系這兩個條件-->
    <owl:Class rdf:ID="計算機系老師">
        <owl:intersectionOf rdf:parseType="Collection">
            <owl:Class rdf:about="#教師"/>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#屬於"/>
                <owl:hasValue rdf:resource="#計算機系"/>
            </owl:Restriction>
        </owl:intersectionOf>
    </owl:Class>
    

枚舉

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章