OWL’nin en önemli özelliği birçok veriyi dağıtık ortamlardan toplayabilir ve bunlarla ilgili çıkarsama yapabilir.
Ontoloji genel olarak; sınıflar, sınıflara ait özellikler, sınıfa ait örnekler ve bu örneklerin kendi aralarındaki ilişkilerini göstermektedir.
Owl yazımına başlayalım.
Sınıf Tanımlamaları
owl:thing = Owl’de her sınıfın ait olduğu üst sınıftır.
owl:Nothing = OWL tarafından boş sınıf olarak tanımlanmaktadır.
Sınıf tanımlamasına örnek verelim:
<owl:class rdf:id="Magaza"/>
<owl:class rdf:id="Kullanici"/>
Burada Magaza ve Kullanici isminde sınıf tanımlamış olduk.
Rdf:ID = Sınıf isimlerinin tanımlandığı alandır.
-rdfs:subClassOf
Alt sınıf tanımlamak için kullanılır.
<owl:class rdf:id="Musteri">
<rdfs:subclassof rdf:resource="#Kullanici"/>
….
</owl:class>
Individuals
Bir sınıfa ait üyelerin tanıtılmasıdır.
<musteri rdf:id="Musteri1"/>
<owl:thing rdf:id="Musteri1"/>
<owl:thing rdf:about="#Musteri">
<rdf:type rdf:resource="Musteri"/>
Musteri sınıfına ait bir Musteri1 isminde bir üyeyi iki şekilde tanımladık.
Özelliklerin Tanımlanması
Datatype Properties: Daha çok nicelik tanımlamasıdır. Örneğin; Tip tanımlaması.
<owl:datatypeproperty rdf:id="Adi">
<rdfs:domain rdf:resource="#Kullanici"/>
<rdfs:range rdf:resource="&xsd;string/">
</owl:datatypeproperty>
Object Properties: Daha çok nitelik tanımlanamasıdır. Örneğin iki sınıf arasındaki bağlantı.
<owl:objectproperty rdf:id="sahiptir">
<rdfs:domain rdf:resource="#Kullanici/">
<rdfs:range rdf:resource="#Urunler"/>
</owl:objectproperty>
Restrictions
<owl:class rdf:about="#mathCourse">
<rdfs:subclassof>
<owl:restriction>
<owl:onproperty rdf:resource="#isTaughtBy"/>
<owl:hasvalue rdf:resource="#949318"/>
</owl:restriction>
</rdfs:subclassof>
</owl:class>
Bu örneğimizde matematik kursuna bir kısıtlama getirmişiz. Bu ders sadece 949318 numaralı kişi tarafından öğretilir.
Transitive Özellik
<owl:ObjectProperty rdf:ID="locatedIn">
<rdf:type rdf:resource="&owl;TransitiveProperty"/>
<rdfs:domain rdf:resource="&owl;Thing"/>
<rdfs:range rdf:resource="#Region"/>
</owl:ObjectProperty>
Symmetric Özellik
<owl:ObjectProperty rdf:ID="adjacentRegion">
<rdf:type rdf:resource="&owl;SymmetricProperty"/>
<rdfs:domain rdf:resource="#Region"/>
<rdfs:range rdf:resource="#Region"/>
</owl:ObjectProperty>
Functional Özellik
<owl:ObjectProperty rdf:ID="husband">
<rdf:type rdf:resource="&owl;FunctionalProperty"/>
<rdfs:domain rdf:resource="#Woman"/>
<rdfs:range rdf:resource="#Man"/>
</owl:ObjectProperty>
Woman sadece bir Man'e sahip olabilir.
Inverse Functional Özellik
<owl:ObjectProperty rdf:ID="has social security number">
<rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
<rdfs:domain rdf:resource="#Person"/>
<rdfs:range rdf:resource="#SocialSecurityNumber"/>
</owl:ObjectProperty>
İki farklı nesne aynı social security number'a sahip olamaz.
InverseOf Özellik
<owl:ObjectProperty rdf:ID="hasChild">
<owl:inverseOf rdf:resource=#hasParent"/>
</owl:ObjectProperty>
hasChild, hasParent birbirinin tersidir.
allValuesFrom,someValuesFrom Özelliği
<owl:Class rdf:ID="Wine">
<rdfs:subClassOf rdf:resource="food;PotableLiquid"/>
...
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasMaker"/>
<owl:allValuesFrom rdf:resource="#Winery"/>
</owl:Restriction>
</rdfs:subClassOf>....
</owl:Class>
<owl:Class rdf:ID="Wine">
<rdfs:subClassOf rdf:resource="food;PotableLiquid"/>
...
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasMaker"/>
<owl:someValuesFrom rdf:resource="#Winery"/>
</owl:Restriction>
</rdfs:subClassOf>....
</owl:Class>
hasValue Özellik
<owl:Class rdf:ID="Burgundy">
...
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar"/>
<owl:hasValue rdf:resource="#Dry"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Devamı ikinci kısımda anlatılacaktır.
0 yorum:
Yorum Gönder