Protege Tutorial
description
Transcript of Protege Tutorial
Based on ProtegeOWLTutorial at protege website
protege คื�ออะไร?Protege เป็นฟร� open-source แพลตฟอร�ม หร�อแอพ
พล�เคืชั่��นที่��ใชั่�สร�างร�ป็แบบหล�ก หร�อ องคื�คืวามร� �ด้�วย ontologies
ชั่%วงของ Ontologies มาจากอน(กรมว�ธาน, การจ*าแนกแยกแยะ, ฐานข�อม�ลที่��เต,มไป็ด้�วยที่ฤษฎี�
Ontologies ในเวลาน�0ได้�เป็นศู�นย�กลางของหลายแอพพล�เคืชั่��น ไม%ว%าจะเป็น คืวามร� �ที่างว�ที่ยาศูาสตร� ,การจ�ด้การข�อม�ล,ระบบบ�รณาการพาณ�ชั่ย�อ�เล,กที่รอน�กส�และการบร�การเว,บ
การต�ด้ต�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
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
การสร�าง 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
Named Classesไป็ที่��แที่,บ OWL Classesจะม� class แบบ tree ว%างๆ ที่��บรรจ( class 1 class ที่��เร�ยกว%า
owl:Thing ซึ่4�งจะเป็น superclass ของที่(กส��งE3: สร�างคืลาสย%อยของ Pizza, PizzaTopping และ
PizzaBase โด้ยก*าหนด้ให�เป็นคืลาสย%อยของ owl:Thing.เง��อนไขของการ Naming
ไม%ม�ชั่��อที่��เป็นล�กษณะพ�เศูษที่��ก*าหนด้ไว�ต�องไม%ม�การเป็ล��ยนแป็ลง
การแยกออกจากก�นของ 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
E5: การสร�างกล(%มของ classesสร�าง ThinAndCrisyBase และ DeepPanBase เป็น
คืลาสย%อยของ PizzaBase โด้ยแต%ละอย%างจะ disjointed ก�น
เล�อก PizzaBase โด้ยคืล�ด้ขวาที่��เม�าส�แล�วเล�อก “create subclasses”
ที่*าตามต�วชั่%วย เพ��อสร�าง 2 คืลาสที่�� Disjointed ก�นจะเป็นการป็ระหย�ด้เวลาส*าหร�บการสร�าง disjoint classes
หลายๆคืลาส
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
E6: การสร�าง disjoint subclassesเล�อก PepperTopping
เพ��ม disjoint subclasses ได้�แก% RedPepperTopping, GreenPepperTopping, JalapenoPepperTopping
เล�อก CheeseToppingเพ��ม disjoint subclasses ได้�แก% MozzarellaTopping,
ParmezanToppingเล�อก SeafoodTopping
เพ��ที่ disjoint subclasses ได้�แก% TunaTopping, AnchovyTopping และ PrawnTopping
คื(ณสมบ�ต� OWLOWL ม�คื(ณสมบ�ต�ของการเป็นต�วแที่นคืวามส�มพ�นธ�ระหว%าง
2 objects.ม�คื(ณสมบ�ต�หล�ก 2 ป็ระการ:
คื(ณสมบ�ต� Object : เชั่��อมต%อ object ก�บ objectคื(ณสมบ�ต�ป็ระเภที่ข�อม�ล: เชั่��อมต%อ object ไป็ที่�� XML
Schema datatype หร�อ rdf:literalคื(ณสมบ�ต�อ��นๆของ OWL– ใชั่�ในการเพ��มข�อม�ลของ
classes, individuals และ properties
E7: การก*าหนด้คื(ณสมบ�ต� objectเล�อกที่��แที่,บ “Properties”เล�อก “Create Object Property” ในการสร�าคื(ณสมบ�ต�
ของobject ใหม%เป็ล��ยนชั่��อเป็น hasIngredient
E8: การสร�าง sub-propertiesเล�อกคื(ณสมบ�ต� hasIngredient
เพ��ม hasTopping และ hasBase เป็น subproperties
การผู้กผู้�นของคื(ณสมบ�ต�แต%ละคื(ณสมบ�ต�ของ object จะต�องม�คื(ณสมบ�ต�การให�
บร�การที่��สอด้คืล�องก�นถ้�าบางคื(ณสมบ�ต�ที่��เชั่��อมต%อ individual a ก�บ individual
b คื(ณสมบ�ต�จะม�การผู้กผู้�น โด้ยจะเชั่��อมต%อ individual b ไป็ย�ง individual a.
E9: การสร�างคื(ณสมบ�ต�แบบผู้กผู้�นสร�างคื(ณสมบ�ต�ของ object ที่��ชั่��อว%า isIngredientOf
เล�อก “Set inverse property” เล�อก “hasIngredient” จากน�0นคืวามส�มพ�นธ�แบบผู้กผู้�นก,จะถ้�กต�ด้ต�0ง
เล�อก hasBase สร�าง isBaseOf ให�เป็ฯคื(ณสมบ�ต�แบบผู้กผู้�นของ hasBase isBaseOf จะเป็นคื(ณสมบ�ต�ย%อยของ isIngredientOf
เล�อก hasTopping สร�าง isToppingOf เป็นคื(ณสมบ�ต�แบบผู้กผู้�น isToppingOf จะเป็นคื(ณสมบ�ต�ย%อยของ isIngredientOf
คื(ณสมบ�ต�การที่*างานถ้�าคื(ณสมบ�ต�เป็นในเร��องของการที่*างาน ที่��ส%งไป็ individual
จะม�เพ�ยง 1 individual ที่��ส�มพ�นธ�ก�บคื(ณสมบ�ต�น�0ส*าหร�บโด้เมนที่��จะได้�ร�บ ต�องเป็นชั่%วงที่��ไม%ซึ่*0าก�น
คื(ณสมบ�ต�การที่*างาน จะร� �จ�กก�นในชั่��อของ single valued properties
คื(ณสมบ�ต�ของการที่*างานที่��ผู้กผู้�นถ้�าม�คื(ณสมบ�ต�เป็นการที่*างานที่��ผู้กผู้�น จากน�0นจะที่*าการผู้กผู้�น
คื(ณสมบ�ต�เป็นฟ<งชั่�นการที่*างานส*าหร�บชั่%วงที่��จะได้�ร�บ ต�องเป็นโด้เมนที่��ไม%ซึ่*0าก�น
ฟ<งก�ชั่�น 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
คื(ณสมบ�ต� Transitiveถ้�าคื(ณสมบ�ต�เป็นแบบ transitive และคื(ณสมบ�ต�เชั่��อมโยง individual
a ไป็ย�ง individual b อ�กที่�0ง individual b ไป็ย�ง individual c ด้�งน�0นแล�ว พวกเราสามารถ้สร(ป็ได้�ว%า individual a ม�คืวามส�มพ�นธ�ก�บ individual c โด้ย property P.
คื(ณสมบ�ต�แบบสมมาตร ถ้�าคื(ณสมบ�ต� P เป็นแบบสมมาตร และคืวามส�มพ�นธ�ระหว%าง
individual a ไป็ย�ง individual b ด้�งน�0นแล�ว individual b ก,จะต�องม�คืวามส�มพ�นธ�ก�บ individual a ด้�วย โด้ย property P.
E10: การที่*า hasIngredient เป็นproperty transitiveเล�อก hasIngredient propertyกาที่��ชั่%อง transitive tick boxเล�อก isIngredientOf property เพ��อให�ม� �นใจว%าถ้�กกา
เร�ยบร�อยแล�ว
E11: การที่*า hasBase property เป็น functionalเล�อก hasBase propertyกาถ้�กที่��ชั่%อง “functional”OWL-DL จะไม%ต�ด้ตาม datatype properties
เป็นtransitive, symmetric หร�อม� inverse properties.
คื(ณสมบ�ต� domains และ rangesProperties จะเชั่��อมโยง individuals จาก domain ไป็
ย�งindividuals จาก range.OWL ใชั่� domain และ range เป็นส�จพจน�ในการให�
เหต(ผู้ล
E12: การระบ( range ของhasToppingเล�อก hasTopping
กด้ป็(8ม rangeเล�อก PizzaToppingกด้ป็(8ม OK buttonPizzaTopping จะแสด้งใน range list.
เม��อ multiple classes เพ��ที่ใน range ก,จะเป็นต�วแที่นของ class ที่�0งหมด้
E13: การก*าหนด้ Pizza เป็น domain ของhasTopping propertyเล�อก hasTopping property
กด้ป็(8ม add domainเล�อก Pizzaกด้ OKPizza จะแสด้งออกมาใน domain list.
เม��อ multiple classes ถ้�กเพ��มเป็น domain ก,จะเป็นต�วแที่นของ class ที่�0งหมด้
E14: การระบ( domain และ range ของisToppingOf propertyเล�อก isToppingOf propertyต�0งคื%า domain ของ isToppingOf property ไป็
ย�งPizzaToppingต�0งคื%า range ของ isToppingOf property ไป็ย�ง
Pizza
E15: การระย( domain และ range ส*าหร�บ hasBase property และinverse property isBaseOf
เล�อก hasBase propertyก*าหนด้ domain เป็น Pizzaก*าหนด้ range เป็น PizzaBase
เล�อก isBaseOf propertyก*าหนด้ domain เป็น PizzaBaseก*าหนด้ range เป็น Pizza
Property restrictionsใน OWL เร��อง properties จะใชั่�ในการสร�างข�อจ*าก�ด้ข�อจ*าก�ด้จะถ้�กใชั่�เพ��อจ*าก�ด้ individuals ที่��อย�%ใน class3 ข�อจ*าก�ด้ :
ข�อจ*าก�ด้เร��องของจ*านวน Existential quantifier ( ) Universal quantifier ( )
ข�อจ*าก�ด้เร��อคืวามส*าคื�ญข�อจ*าก�ด้เร��องคื%าต%างๆ
E16: การเพ��มข�อจ*าก�ด้ของ Pizzaเพ��มข�อจ*าก�ด้ไป็ย�ง Pizza ซึ่4�งการระบ( Pizza จ*าเป็นต�อง
ม�PizzaBaseเล�อก Pizzaเล�อก Necessary header เพ��อสร�างเง�อนไข necessaryเล�อกสร�าง restriction wizard
เล�อก hasBase เป็น restricted property เล�อก someValueFrom เป็น restriction วาง PizzaBase ไป็ที่�� filler
Add a restriction to Pizza
E18: การสร�างคืวามแตกต%างของป็ระเภที่ Pizzasสร�างคืลาสย%อยของ Pizza ชั่��อว%า NamedPizza และคืลาส
ย%อยของ NamedPizza ชั่��อว%า MargheritaPizza.เพ��มข�อคืวามไป็ย�ง MargheritaPizza ว%า “A pizza
that only has Mozarella and Tomato toppings”
E19: การเพ��มข�อจ*าก�ด้ไป็ย�งMargheritaPizzaเพ��อระบ(ว%า MargheritaPizza ม�อย%างน�อยเพ�ยงหน4�ง
MozzarellaTopping.เล�อก MargheritaPizzaไป็ที่�� “Asserted Conditions” เพ��อสร�างข�อจ*าก�ด้ใหม%เล�อก someValueFromเล�อก hasTopping เป็น property ที่��เป็นข�อจ*าก�ด้กด้ enter ที่�� MozzarellaTopping เป็น fillerกด้ OK
E20: การเพ��มข�อจ*าก�ด้ไป็ย�งMargheritaPizzaเพ��อระบ(ว%า MargheritaPizza ต�องม�เพ�ยง
หน4�งTomatoTopping.เล�อก MargheritaPizzaไป็ย�ง “Asserted Conditions” สร�างข�อจ*าก�ด้ใหม%เล�อก someValueFromเล�อก hasTopping เป็น property ที่��เป็นข�อจ*าก�ด้กด้ Enter ที่�� TomatoTopping เป็น fillerกด้ OK
E21: การสร�าง AmericanPizzaสร�าง AmericanPizza ก�บ toppings ของ
pepperoni, mozzarella และ tomato.ผู้%านการโคืลนและการป็ร�บเป็ล��ยนรายละเอ�ยด้
ของMargheritaPizzaเล�อก MargheritaPizzaเล�อก cloneเล�อกเพ��มข�อจ*าก�ด้ไป็ย�ง AmericanaPizza
ที่*าการเพ��ม PepperoniToppingกด้ OK.
E22: การสร�าง AmericanHotPizza และ a SohoPizzaAmericanHotPizza ส%วนใหญ%จะเหม�อนก�บ
AmericanaPizza, แต%จะม� JalapenoPepperTopping อย�%ในน�0นด้�วย
SohoPizza ส%วนใหญ%จะเหม�อนก�บ MargheritaPizza แต%จะม�การเพ��มOliveTopping และ ParmezanTopping
E23: การที่*า subclasses ของ NamedPizza disjoint จากต�วอ��นๆเล�อก MargheritaPizzaกด้ “add all siblings” ที่��อย�%ใน “Disjoints widget”
โด้ย pizzas disjoint จากแต%ละอย%าง
การใชั่� reasonerOntology ได้�อธ�บายใน OWL-DL สามารถ้จะป็ระมวลผู้ลโด้ย
reasoner. ไป็ที่�� owl—preference เพ��อให�ม��นใจว%า OWL-DL จะถ้�กเล�อก
การบร�การหล�กจะถ้�กน*าเสนอโด้ย reasoner ที่��จะที่ด้สอบว%า class หน4�งๆเป็น subclass ของclass อ��นๆหร�อไม%
โด้ยจะด้*าเน�นการที่ด้สอบที่�0งหมด้ของ classes ที่��เป็นไป็ส*าหร�บ reasoner เพ��อคื*านวณล*าด้�บชั่�0นของคืลาส ontology
อ�กป็ระการหน4�งก,คื�อ consistency checking – เพ��อตรวจสอบว%าจะม�คืวามเป็นไป็ได้�ในกรณ�อ��นๆ อ�กหร�อไม%
โด้ยคืลาสอาจไม%ม�กรณ�ใด้ๆที่��สอด้คืล�องก�นเลย
การใชั่� 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
การร�องขอการใชั่� 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
Invoke the reasoner
E24: คืวามสอด้คืล�องของ classesในการที่��จะใชั่�งาน reasoner เพ��อตรวจสอบถ้4งคืวามไม%สอด้คืล�องก�น
ของ ontology พวกเราจะสร�างคืลาส ProbeInconsistentTopping,อ�นไหนที่��เป็นซึ่�บคืลาสของ CheeseTopping เล�อก ProbeInconsistentTopping ไป็ที่�� asserted condition เพ��อ
เพ��มชั่��อคืลาส เล�อก VegetableTopping และกด้OK. ไป็ที่�� OWL – เพ��อเชั่,คืคืวามสอด้คืล�อง
E25: การจ�ด้ ontology อ�กคืร�0งเพ��อด้� ProbeInconsistentTopping ที่��ไม%สอด้คืล�องก�น
E26: การลบ disjoint statementระหว%าง CheeseTopping และ VegetableTopping
เพ��อเก,นว%าเก�ด้อะไรข40นเล�อก CheeseToppingไป็ย�ง Disjoint partเล�อก VegetableTopping คืล�กขวา และ “Delete the
selected row”.ที่*าการจ�ด้อน(ว�ธาน
E27: การก*าหนด้ ontologyโด้ยการที่*า CheeseTopping และ
VegetableTopping disjoint จากต�วอ��นๆ
แหล%งข�อม�ล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/