46
Based on ProtegeOWLTutorial at protege website

Protege Tutorial

  • Upload
    ziya

  • View
    118

  • Download
    0

Embed Size (px)

DESCRIPTION

Protege Tutorial. Based on ProtegeOWLTutorial at protege website. protege คืออะไร ?. Protege เป็นฟรี open-source แพลตฟอร์ม หรือแอพพลิเคชั่นที่ใช้สร้างรูปแบบหลัก หรือ องค์ความรู้ด้วย ontologies ช่วงของ Ontologies มาจากอนุกรมวิธาน , การจำแนกแยกแยะ , ฐานข้อมูลที่เต็มไปด้วยทฤษฎี - PowerPoint PPT Presentation

Citation preview

Page 1: Protege Tutorial

Based on ProtegeOWLTutorial at protege website

Page 2: Protege Tutorial

protege คื�ออะไร?Protege เป็นฟร� open-source แพลตฟอร�ม หร�อแอพ

พล�เคืชั่��นที่��ใชั่�สร�างร�ป็แบบหล�ก หร�อ องคื�คืวามร� �ด้�วย ontologies

ชั่%วงของ Ontologies มาจากอน(กรมว�ธาน, การจ*าแนกแยกแยะ, ฐานข�อม�ลที่��เต,มไป็ด้�วยที่ฤษฎี�

Ontologies ในเวลาน�0ได้�เป็นศู�นย�กลางของหลายแอพพล�เคืชั่��น ไม%ว%าจะเป็น คืวามร� �ที่างว�ที่ยาศูาสตร� ,การจ�ด้การข�อม�ล,ระบบบ�รณาการพาณ�ชั่ย�อ�เล,กที่รอน�กส�และการบร�การเว,บ

Page 3: Protege Tutorial

การต�ด้ต�0ง Protegeไป็ที่��

http://protege.stanford.edu/doc/owl/getting-started.html ที่*าการด้าวโหลด้ protege (version 3.x)

Protege OWL editor จะเป็นต�วต�ด้ต�0งแบบเต,มของแพลตฟอร�ม protege ขณะที่��ที่*าการต�ด้ต�0ง ให�เล�อกคื*าส��ง “Basic+OWL”

ศู4กษารายละเอ�ยด้เพ��มเต�ม: http://protege.stanford.edu/doc/owl/getting-started.html

Page 4: Protege Tutorial

Protege จะม�สองต�วเล�อกส*าหร�บการ modelling ontologies:

Frame-based OWL

แต%ละอย%างจะม�ส%วนของ User Interface ตามแบบของตนเอง Protege Frames editor: จะเชั่��อมต%อก�บผู้��ใชั่�โด้ยการสร�างและคื�ด้เล�อก ontologies

ที่��เป็น frame-based และสอด้คืล�องก�บ OKBC (โป็รโตคือลเชั่��อมต%อ Open Knowledge Base). Classes Slots for properties and relationships Instances for class

Protege OWL editor: จะเชั่��อมต%อก�บผู้��ใชั่�โด้ยการสร�าง ontology ส*าหร�บ Semantic Web ที่��สอด้คืล�องก�บ OWL Classes Properties Instances reasoning

Page 5: Protege Tutorial

การสร�าง OWL OntologyE2: การสร�างโป็รเจคื OWL ใหม%

ไป็ที่�� protegeเล�อก File – New Project – OWL/RDF files –

Ontology URI (http://www.pizza.com/ontologies/pizza.owl) – OWL DL – Properties View

จะม�โป็รเจคื Protege-OWL ว%างๆ ที่��พร�อมส*าหร�บการเร��มใชั่�งาน

ที่*าการ Save ชั่��อไฟล�เป็น pizza.owl

Page 6: Protege Tutorial

Named Classesไป็ที่��แที่,บ OWL Classesจะม� class แบบ tree ว%างๆ ที่��บรรจ( class 1 class ที่��เร�ยกว%า

owl:Thing ซึ่4�งจะเป็น superclass ของที่(กส��งE3: สร�างคืลาสย%อยของ Pizza, PizzaTopping และ

PizzaBase โด้ยก*าหนด้ให�เป็นคืลาสย%อยของ owl:Thing.เง��อนไขของการ Naming

ไม%ม�ชั่��อที่��เป็นล�กษณะพ�เศูษที่��ก*าหนด้ไว�ต�องไม%ม�การเป็ล��ยนแป็ลง

Page 7: Protege Tutorial

การแยกออกจากก�นของ classesE4: จะบอกได้�อย%างไรว%า Pizza, PizzaTopping and

PizzaBase เป็นคืลาสที่��แยกออกจากก�น

1 .เล�อกที่�� class Pizza

2. กด้ป็(8ม “add siblings” ซึ่4�งเป็นป็(8มในการแยกคืลาส

3. เพ��ม PizzaBase และ PizzaTopping

4. เล�อก class PizzaTopping,

5. เพ��ม Pizza และ PizzaBase เพ��อที่*าการ disjoint class

Page 8: Protege Tutorial

E5: การสร�างกล(%มของ classesสร�าง ThinAndCrisyBase และ DeepPanBase เป็น

คืลาสย%อยของ PizzaBase โด้ยแต%ละอย%างจะ disjointed ก�น

เล�อก PizzaBase โด้ยคืล�ด้ขวาที่��เม�าส�แล�วเล�อก “create subclasses”

ที่*าตามต�วชั่%วย เพ��อสร�าง 2 คืลาสที่�� Disjointed ก�นจะเป็นการป็ระหย�ด้เวลาส*าหร�บการสร�าง disjoint classes

หลายๆคืลาส

Page 9: Protege Tutorial

E6: การสร�าง คืลาสย%อยบางคืลาสของ PizzaToppingเล�อก PizzaTopping,

สร�าง subclaesses เป็น MeatTopping, VegetableTopping, CheeseTopping และ SeafoodTopping เพ��อให�ม��นใจว%าคืลาสเหล%าน�0จะ Disjionted ก�บต�วอ��นๆ

เล�อก class MeatTopping,เพ��ม disjoint subclassesได้�แก% SpicyBeefTopping,

PepperoniTopping, SalamiTopping และ HamTopping

เล�อก VegetableTopping:เพ��ม disjoint subclasses ได้�แก% TomatoTopping,

OliveTopping, MushroomTopping, PepperTopping, OnionTopping, CaperTopping

Page 10: Protege Tutorial

E6: การสร�าง disjoint subclassesเล�อก PepperTopping

เพ��ม disjoint subclasses ได้�แก% RedPepperTopping, GreenPepperTopping, JalapenoPepperTopping

เล�อก CheeseToppingเพ��ม disjoint subclasses ได้�แก% MozzarellaTopping,

ParmezanToppingเล�อก SeafoodTopping

เพ��ที่ disjoint subclasses ได้�แก% TunaTopping, AnchovyTopping และ PrawnTopping

Page 11: Protege Tutorial

คื(ณสมบ�ต� OWLOWL ม�คื(ณสมบ�ต�ของการเป็นต�วแที่นคืวามส�มพ�นธ�ระหว%าง

2 objects.ม�คื(ณสมบ�ต�หล�ก 2 ป็ระการ:

คื(ณสมบ�ต� Object : เชั่��อมต%อ object ก�บ objectคื(ณสมบ�ต�ป็ระเภที่ข�อม�ล: เชั่��อมต%อ object ไป็ที่�� XML

Schema datatype หร�อ rdf:literalคื(ณสมบ�ต�อ��นๆของ OWL– ใชั่�ในการเพ��มข�อม�ลของ

classes, individuals และ properties

Page 12: Protege Tutorial
Page 13: Protege Tutorial

E7: การก*าหนด้คื(ณสมบ�ต� objectเล�อกที่��แที่,บ “Properties”เล�อก “Create Object Property” ในการสร�าคื(ณสมบ�ต�

ของobject ใหม%เป็ล��ยนชั่��อเป็น hasIngredient

Page 14: Protege Tutorial

E8: การสร�าง sub-propertiesเล�อกคื(ณสมบ�ต� hasIngredient

เพ��ม hasTopping และ hasBase เป็น subproperties

Page 15: Protege Tutorial

การผู้กผู้�นของคื(ณสมบ�ต�แต%ละคื(ณสมบ�ต�ของ object จะต�องม�คื(ณสมบ�ต�การให�

บร�การที่��สอด้คืล�องก�นถ้�าบางคื(ณสมบ�ต�ที่��เชั่��อมต%อ individual a ก�บ individual

b คื(ณสมบ�ต�จะม�การผู้กผู้�น โด้ยจะเชั่��อมต%อ individual b ไป็ย�ง individual a.

Page 16: Protege Tutorial

E9: การสร�างคื(ณสมบ�ต�แบบผู้กผู้�นสร�างคื(ณสมบ�ต�ของ object ที่��ชั่��อว%า isIngredientOf

เล�อก “Set inverse property” เล�อก “hasIngredient” จากน�0นคืวามส�มพ�นธ�แบบผู้กผู้�นก,จะถ้�กต�ด้ต�0ง

เล�อก hasBase สร�าง isBaseOf ให�เป็ฯคื(ณสมบ�ต�แบบผู้กผู้�นของ hasBase isBaseOf จะเป็นคื(ณสมบ�ต�ย%อยของ isIngredientOf

เล�อก hasTopping สร�าง isToppingOf เป็นคื(ณสมบ�ต�แบบผู้กผู้�น isToppingOf จะเป็นคื(ณสมบ�ต�ย%อยของ isIngredientOf

Page 17: Protege Tutorial

คื(ณสมบ�ต�การที่*างานถ้�าคื(ณสมบ�ต�เป็นในเร��องของการที่*างาน ที่��ส%งไป็ individual

จะม�เพ�ยง 1 individual ที่��ส�มพ�นธ�ก�บคื(ณสมบ�ต�น�0ส*าหร�บโด้เมนที่��จะได้�ร�บ ต�องเป็นชั่%วงที่��ไม%ซึ่*0าก�น

คื(ณสมบ�ต�การที่*างาน จะร� �จ�กก�นในชั่��อของ single valued properties

Page 18: Protege Tutorial

คื(ณสมบ�ต�ของการที่*างานที่��ผู้กผู้�นถ้�าม�คื(ณสมบ�ต�เป็นการที่*างานที่��ผู้กผู้�น จากน�0นจะที่*าการผู้กผู้�น

คื(ณสมบ�ต�เป็นฟ<งชั่�นการที่*างานส*าหร�บชั่%วงที่��จะได้�ร�บ ต�องเป็นโด้เมนที่��ไม%ซึ่*0าก�น

Page 19: Protege Tutorial

ฟ<งก�ชั่�น vs. คื(ณสมบ�ต�ฟ<งก�ชั่�นแบบผู้กผู้�นFunctionalProperty vs

InverseFunctionalPropertydomain range example

Functional

Property

Domain เป็นต�วก*าหนด้

Range ต�องไม%ซึ่*0าก�บ

hasFather: A hasFather B, A hasFather C B=C

InverseFunctionalProperty

Domain ต�องไม%ซึ่*0าก�น

Range เป็นต�วก*าหนด้

hasID: A hasID B, C hasID B A=C

Page 20: Protege Tutorial

คื(ณสมบ�ต� Transitiveถ้�าคื(ณสมบ�ต�เป็นแบบ transitive และคื(ณสมบ�ต�เชั่��อมโยง individual

a ไป็ย�ง individual b อ�กที่�0ง individual b ไป็ย�ง individual c ด้�งน�0นแล�ว พวกเราสามารถ้สร(ป็ได้�ว%า individual a ม�คืวามส�มพ�นธ�ก�บ individual c โด้ย property P.

Page 21: Protege Tutorial

คื(ณสมบ�ต�แบบสมมาตร ถ้�าคื(ณสมบ�ต� P เป็นแบบสมมาตร และคืวามส�มพ�นธ�ระหว%าง

individual a ไป็ย�ง individual b ด้�งน�0นแล�ว individual b ก,จะต�องม�คืวามส�มพ�นธ�ก�บ individual a ด้�วย โด้ย property P.

Page 22: Protege Tutorial

E10: การที่*า hasIngredient เป็นproperty transitiveเล�อก hasIngredient propertyกาที่��ชั่%อง transitive tick boxเล�อก isIngredientOf property เพ��อให�ม� �นใจว%าถ้�กกา

เร�ยบร�อยแล�ว

Page 23: Protege Tutorial

E11: การที่*า hasBase property เป็น functionalเล�อก hasBase propertyกาถ้�กที่��ชั่%อง “functional”OWL-DL จะไม%ต�ด้ตาม datatype properties

เป็นtransitive, symmetric หร�อม� inverse properties.

Page 24: Protege Tutorial

คื(ณสมบ�ต� domains และ rangesProperties จะเชั่��อมโยง individuals จาก domain ไป็

ย�งindividuals จาก range.OWL ใชั่� domain และ range เป็นส�จพจน�ในการให�

เหต(ผู้ล

Page 25: Protege Tutorial

E12: การระบ( range ของhasToppingเล�อก hasTopping

กด้ป็(8ม rangeเล�อก PizzaToppingกด้ป็(8ม OK buttonPizzaTopping จะแสด้งใน range list.

เม��อ multiple classes เพ��ที่ใน range ก,จะเป็นต�วแที่นของ class ที่�0งหมด้

Page 26: Protege Tutorial

E13: การก*าหนด้ Pizza เป็น domain ของhasTopping propertyเล�อก hasTopping property

กด้ป็(8ม add domainเล�อก Pizzaกด้ OKPizza จะแสด้งออกมาใน domain list.

เม��อ multiple classes ถ้�กเพ��มเป็น domain ก,จะเป็นต�วแที่นของ class ที่�0งหมด้

Page 27: Protege Tutorial

E14: การระบ( domain และ range ของisToppingOf propertyเล�อก isToppingOf propertyต�0งคื%า domain ของ isToppingOf property ไป็

ย�งPizzaToppingต�0งคื%า range ของ isToppingOf property ไป็ย�ง

Pizza

Page 28: Protege Tutorial

E15: การระย( domain และ range ส*าหร�บ hasBase property และinverse property isBaseOf

เล�อก hasBase propertyก*าหนด้ domain เป็น Pizzaก*าหนด้ range เป็น PizzaBase

เล�อก isBaseOf propertyก*าหนด้ domain เป็น PizzaBaseก*าหนด้ range เป็น Pizza

Page 29: Protege Tutorial

Property restrictionsใน OWL เร��อง properties จะใชั่�ในการสร�างข�อจ*าก�ด้ข�อจ*าก�ด้จะถ้�กใชั่�เพ��อจ*าก�ด้ individuals ที่��อย�%ใน class3 ข�อจ*าก�ด้ :

ข�อจ*าก�ด้เร��องของจ*านวน Existential quantifier ( ) Universal quantifier ( )

ข�อจ*าก�ด้เร��อคืวามส*าคื�ญข�อจ*าก�ด้เร��องคื%าต%างๆ

Page 30: Protege Tutorial

E16: การเพ��มข�อจ*าก�ด้ของ Pizzaเพ��มข�อจ*าก�ด้ไป็ย�ง Pizza ซึ่4�งการระบ( Pizza จ*าเป็นต�อง

ม�PizzaBaseเล�อก Pizzaเล�อก Necessary header เพ��อสร�างเง�อนไข necessaryเล�อกสร�าง restriction wizard

เล�อก hasBase เป็น restricted property เล�อก someValueFrom เป็น restriction วาง PizzaBase ไป็ที่�� filler

Page 31: Protege Tutorial

Add a restriction to Pizza

Page 32: Protege Tutorial

E18: การสร�างคืวามแตกต%างของป็ระเภที่ Pizzasสร�างคืลาสย%อยของ Pizza ชั่��อว%า NamedPizza และคืลาส

ย%อยของ NamedPizza ชั่��อว%า MargheritaPizza.เพ��มข�อคืวามไป็ย�ง MargheritaPizza ว%า “A pizza

that only has Mozarella and Tomato toppings”

Page 33: Protege Tutorial

E19: การเพ��มข�อจ*าก�ด้ไป็ย�งMargheritaPizzaเพ��อระบ(ว%า MargheritaPizza ม�อย%างน�อยเพ�ยงหน4�ง

MozzarellaTopping.เล�อก MargheritaPizzaไป็ที่�� “Asserted Conditions” เพ��อสร�างข�อจ*าก�ด้ใหม%เล�อก someValueFromเล�อก hasTopping เป็น property ที่��เป็นข�อจ*าก�ด้กด้ enter ที่�� MozzarellaTopping เป็น fillerกด้ OK

Page 34: Protege Tutorial

E20: การเพ��มข�อจ*าก�ด้ไป็ย�งMargheritaPizzaเพ��อระบ(ว%า MargheritaPizza ต�องม�เพ�ยง

หน4�งTomatoTopping.เล�อก MargheritaPizzaไป็ย�ง “Asserted Conditions” สร�างข�อจ*าก�ด้ใหม%เล�อก someValueFromเล�อก hasTopping เป็น property ที่��เป็นข�อจ*าก�ด้กด้ Enter ที่�� TomatoTopping เป็น fillerกด้ OK

Page 35: Protege Tutorial

E21: การสร�าง AmericanPizzaสร�าง AmericanPizza ก�บ toppings ของ

pepperoni, mozzarella และ tomato.ผู้%านการโคืลนและการป็ร�บเป็ล��ยนรายละเอ�ยด้

ของMargheritaPizzaเล�อก MargheritaPizzaเล�อก cloneเล�อกเพ��มข�อจ*าก�ด้ไป็ย�ง AmericanaPizza

ที่*าการเพ��ม PepperoniToppingกด้ OK.

Page 36: Protege Tutorial

E22: การสร�าง AmericanHotPizza และ a SohoPizzaAmericanHotPizza ส%วนใหญ%จะเหม�อนก�บ

AmericanaPizza, แต%จะม� JalapenoPepperTopping อย�%ในน�0นด้�วย

SohoPizza ส%วนใหญ%จะเหม�อนก�บ MargheritaPizza แต%จะม�การเพ��มOliveTopping และ ParmezanTopping

Page 37: Protege Tutorial

E23: การที่*า subclasses ของ NamedPizza disjoint จากต�วอ��นๆเล�อก MargheritaPizzaกด้ “add all siblings” ที่��อย�%ใน “Disjoints widget”

โด้ย pizzas disjoint จากแต%ละอย%าง

Page 38: Protege Tutorial

การใชั่� reasonerOntology ได้�อธ�บายใน OWL-DL สามารถ้จะป็ระมวลผู้ลโด้ย

reasoner. ไป็ที่�� owl—preference เพ��อให�ม��นใจว%า OWL-DL จะถ้�กเล�อก

การบร�การหล�กจะถ้�กน*าเสนอโด้ย reasoner ที่��จะที่ด้สอบว%า class หน4�งๆเป็น subclass ของclass อ��นๆหร�อไม%

โด้ยจะด้*าเน�นการที่ด้สอบที่�0งหมด้ของ classes ที่��เป็นไป็ส*าหร�บ reasoner เพ��อคื*านวณล*าด้�บชั่�0นของคืลาส ontology

อ�กป็ระการหน4�งก,คื�อ consistency checking – เพ��อตรวจสอบว%าจะม�คืวามเป็นไป็ได้�ในกรณ�อ��นๆ อ�กหร�อไม%

โด้ยคืลาสอาจไม%ม�กรณ�ใด้ๆที่��สอด้คืล�องก�นเลย

Page 39: Protege Tutorial

การใชั่� Racerในการที่�� reason over the ontology ใน Protege-

OWL, a DIG compliant reasoner คืวรจะต�ด้ต�0งและเร��มการด้*าเน�นงาน

ใน tutorial น�0 เราได้�ใชั่� RacerDownload at:

http://www.racer-systems.com/products/download/index.phtml

Double click ที่�� RacerPro เพ��อเร��มการที่*างานของ Racer

Page 40: Protege Tutorial

การร�องขอการใชั่� reasonerต�องเร��มต�น Racer ซึ่4�ง ontology สามารถ้ที่��จะส%ง reasoner เพ��อ

คื*านวณล*าด้�บชั่�0นของ classification โด้ยอ�ต�โนม�ต� และตรวจสอบคืวามสอด้คืล�องของตรรกะontology.

ใน Protege ล*าด้�บชั่�0นที่��เราสร�างข40นมาน�0น จะเร�ยกว%า asserted hierarchy การคื*านวณอย%างอ�ต�โนม�ต�โด้ยใชั่� reasoner จะเร�ยกว%า inferred hierarchy.

ไป็ที่�� OWL – classify taxonomy – ที่*าการร�องขอ reasonerถ้�าคืลาสได้�ร�บการ reclassified ชั่��อของคืลาสจะป็รากฏเป็น blue

color ในการอ�างถ้4งล*าด้�บชั่�0นไป็ที่�� OWL – Check consistency – ที่*าการร�องขอ reasoner

ถ้�าคืลาสได้�ร�บการคื�นพบ inconsistent ไอคือนจะถ้�กวงกลมเป็น red color.

การคื*านวณล*าด้�บชั่�0นของ class จะร� �จ�กก�นในล�กษณะ classifying the ontology

Page 41: Protege Tutorial

Invoke the reasoner

Page 42: Protege Tutorial

E24: คืวามสอด้คืล�องของ classesในการที่��จะใชั่�งาน reasoner เพ��อตรวจสอบถ้4งคืวามไม%สอด้คืล�องก�น

ของ ontology พวกเราจะสร�างคืลาส ProbeInconsistentTopping,อ�นไหนที่��เป็นซึ่�บคืลาสของ CheeseTopping เล�อก ProbeInconsistentTopping ไป็ที่�� asserted condition เพ��อ

เพ��มชั่��อคืลาส เล�อก VegetableTopping และกด้OK. ไป็ที่�� OWL – เพ��อเชั่,คืคืวามสอด้คืล�อง

Page 43: Protege Tutorial

E25: การจ�ด้ ontology อ�กคืร�0งเพ��อด้� ProbeInconsistentTopping ที่��ไม%สอด้คืล�องก�น

Page 44: Protege Tutorial

E26: การลบ disjoint statementระหว%าง CheeseTopping และ VegetableTopping

เพ��อเก,นว%าเก�ด้อะไรข40นเล�อก CheeseToppingไป็ย�ง Disjoint partเล�อก VegetableTopping คืล�กขวา และ “Delete the

selected row”.ที่*าการจ�ด้อน(ว�ธาน

Page 45: Protege Tutorial

E27: การก*าหนด้ ontologyโด้ยการที่*า CheeseTopping และ

VegetableTopping disjoint จากต�วอ��นๆ

Page 46: Protege Tutorial

แหล%งข�อม�ลProtege Ontology Libraries

http://protegewiki.stanford.edu/index.php/Protege_Ontology_Library

Protege tutorialhttp://www.co-ode.org/resources/tutorials/

Protege Websitehttp://protege.stanford.edu/doc/users.htmlhttp://protege.stanford.edu/