Protege Tutorial

Download Report

Transcript Protege Tutorial

Based on ProtegeOWLTutorial at protege website
protege คืออะไร?
 Protege เป็ นฟรี open-source แพลตฟอร์ม หรือแอพพลิเคชันที
่ ใ่ ช้สร้าง
รูปแบบหลัก หรือ องค์ความรูด้ ว้ ย ontologies
 ช่วงของ Ontologies มาจากอนุ กรมวิธาน, การจาแนกแยกแยะ, ฐานข้อมูลที่
เต็มไปด้วยทฤษฎี
 Ontologies ในเวลานี้ได้เป็ นศูนย์กลางของหลายแอพพลิเคชัน่ ไม่วา่ จะเป็ น
ความรูท้ างวิทยาศาสตร์ ,การจัดการข้อมูล,ระบบบูรณาการพาณิชย์อเิ ล็กทรอนิกส์และ
การบริการเว็บ
การติดตัง้ Protege
 ไปที่ http://protege.stanford.edu/doc/owl/getting-
started.html ทาการดาวโหลด protege (version 3.x)
 Protege OWL editor จะเป็ นตัวติดตัง้ แบบเต็มของแพลตฟอร์ม protege
ขณะทีท่ าการติดตัง้ ให้เลือกคาสัง่ “Basic+OWL”
 ศึกษารายละเอียดเพิม่ เติม:
http://protege.stanford.edu/doc/owl/gettingstarted.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 Ontology
 E2: การสร้างโปรเจค 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 ซึง่ จะเป็ น
superclass ของทุกสิง่
 E3: สร้างคลาสย่อยของ Pizza, PizzaTopping และ PizzaBase โดยกาหนดให้
เป็ นคลาสย่อยของ owl:Thing.
 เงือ่ นไขของการ Naming
 ไม่มชี อ่ื ทีเ่ ป็ นลักษณะพิเศษทีก่ าหนดไว้
 ต้องไม่มกี ารเปลีย่ นแปลง
การแยกออกจากกันของ classes
 E4: จะบอกได้อย่างไรว่า Pizza, PizzaTopping and PizzaBase
เป็ นคลาสทีแ่ ยกออกจากกัน
1. เลือกที่ class Pizza
2. กดปุม่ “add siblings” ซึง่ เป็ นปุม่ ใน
การแยกคลาส
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 เพือ่ ให้มนใจว่
ั ่ าคลาสเหล่านี้จะ
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
คุณสมบัติ OWL
 OWL มีคุณสมบัตขิ องการเป็ นตัวแทนความสัมพันธ์ระหว่าง 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”
 จากนัน้ ความสัมพันธ์แบบผกผันก็จะถูกติดตัง้
 เลือก hasBase
 สร้าง isBaseOf ให้เป็ ฯคุณสมบัตแิ บบผกผันของ hasBase
 isBaseOf จะเป็ นคุณสมบัตยิ อ่ ยของ isIngredientOf
 เลือก hasTopping
 สร้าง isToppingOf เป็ นคุณสมบัตแิ บบผกผัน
 isToppingOf จะเป็ นคุณสมบัตยิ อ่ ยของ isIngredientOf
คุณสมบัติการทางาน
 ถ้าคุณสมบัตเิ ป็ นในเรือ่ งของการทางาน ทีส่ ง่ ไป individual จะมีเพียง 1
individual ทีส่ มั พันธ์กบั คุณสมบัตนิ ้ี
 สาหรับโดเมนทีจ่ ะได้รบั ต้องเป็ นช่วงทีไ่ ม่ซ้ากัน
 คุณสมบัตกิ ารทางาน จะรูจ้ กั กันในชือ่ ของ single valued properties
คุณสมบัติของการทางานที่ผกผัน
 ถ้ามีคุณสมบัตเิ ป็ นการทางานทีผ่ กผัน จากนัน้ จะทาการผกผันคุณสมบัตเิ ป็ นฟงั ชันการ
ทางาน
 สาหรับช่วงทีจ่ ะได้รบั ต้องเป็ นโดเมนทีไ่ ม่ซ้ากัน
ฟั งก์ชนั vs. คุณสมบัติฟังก์ชนั แบบผกผัน
 FunctionalProperty vs InverseFunctionalProperty
Functional
Property
domain
range
Domain เป็ น
ตัวกาหนด
Range ต้องไม่ซ้า
กับ
InverseFunctional Domain ต้องไม่
ซ้ากัน
Property
Range เป็ น
ตัวกาหนด
example
hasFather: A hasFather
B, A hasFather C B=C
hasID: A hasID B, C
hasID B A=C
คุณสมบัติ Transitive
 ถ้าคุณสมบัตเิ ป็ นแบบ transitive และคุณสมบัตเิ ชือ่ มโยง individual a ไปยัง
individual b อักทัง้ individual b ไปยัง individual c ดังนัน้ แล้ว พวกเราสามารถ
สรุปได้วา่ individual a มีความสัมพันธ์กบั individual c โดย property P.
คุณสมบัติแบบสมมาตร
 ถ้าคุณสมบัติ P เป็ นแบบสมมาตร และความสัมพันธ์ระหว่าง individual a ไป
ยัง individual b ดังนัน้ แล้ว 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 และ ranges
 Properties จะเชือ่ มโยง individuals จาก domain ไปยัง
individuals จาก range.
 OWL ใช้ domain และ range เป็ นสัจพจน์ในการให้เหตุผล
E12: การระบุ range ของhasTopping
 เลือก hasTopping
่ range
 กดปุม
 เลือก PizzaTopping
่ OK button
 กดปุม
 PizzaTopping จะแสดงใน range list.
 เมือ่ multiple classes เพิท่ ใน range ก็จะเป็ นตัวแทนของ class ทัง้ หมด
E13: การกาหนด Pizza เป็ น domain ของhasTopping
property
 เลือก hasTopping property
่ add domain
 กดปุม
 เลือก Pizza
 กด OK
 Pizza จะแสดงออกมาใน domain list.
 เมือ่ multiple classes ถูกเพิม่ เป็ น domain ก็จะเป็ นตัวแทนของ class
ทัง้ หมด
E14: การระบุ domain และ range ของisToppingOf
property
 เลือก isToppingOf property
 ตัง้ ค่า domain ของ isToppingOf property ไปยัง
PizzaTopping
 ตัง้ ค่า 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 ทีอ่ ยูใ่ น class
 3 ข้อจากัด :
 ข้อจากัดเรือ่ งของจานวน
Existential quantifier (  )
 Universal quantifier (  )
 ข้อจากัดเรือ่ ความสาคัญ

 ข้อจากัดเรือ่ งค่าต่างๆ
E16: การเพิ่มข้ อจากัดของ Pizza
 เพิม่ ข้อจากัดไปยัง Pizza ซึง่ การระบุ 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 มีอย่างน้อยเพียงหนึ่ง
MozzarellaTopping.
 เลือก MargheritaPizza
 ไปที่ “Asserted Conditions” เพือ่ สร้างข้อจากัดใหม่
 เลือก someValueFrom
 เลือก hasTopping เป็ น property ทีเ่ ป็ นข้อจากัด
 กด enter ที่ MozzarellaTopping เป็ น filler
 กด OK
E20: การเพิ่มข้ อจากัดไปยัง
MargheritaPizza
 เพือ่ ระบุวา่ MargheritaPizza ต้องมีเพียงหนึ่ง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 SohoPizza
 AmericanHotPizza ส่วนใหญ่จะเหมือนกับ AmericanaPizza, แต่
จะมี JalapenoPepperTopping อยูใ่ นนัน้ ด้วย
 SohoPizza ส่วนใหญ่จะเหมือนกับ MargheritaPizza แต่จะมีการเพิม่
OliveTopping และ ParmezanTopping
E23: การทา subclasses ของ NamedPizza disjoint จากตัว
อื่นๆ
 เลือก MargheritaPizza
 กด “add all siblings” ทีอ่ ยูใ่ น “Disjoints widget” โดย pizzas
disjoint จากแต่ละอย่าง
การใช้ reasoner
 Ontology ได้อธิบายใน OWL-DL สามารถจะประมวลผลโดย reasoner.
 ไปที่ owl—preference เพือ่ ให้มนใจว่
ั ่ า OWL-DL จะถูกเลือก
 การบริการหลักจะถูกนาเสนอโดย reasoner ทีจ่ ะทดสอบว่า class หนึ่งๆเป็น subclass ของ
class อื่นๆหรือไม่
 โดยจะดาเนินการทดสอบทัง้ หมดของ classes ทีเ่ ป็นไปสาหรับ reasoner เพือ่ คานวณลาดับชัน้ ของ
คลาส ontology
 อีกประการหนึ่งก็คอื consistency checking – เพือ่ ตรวจสอบว่าจะมีความเป็นไปได้ในกรณี
อื่นๆ อีกหรือไม่
 โดยคลาสอาจไม่มกี รณีใดๆทีส่ อดคล้องกันเลย
การใช้ Racer
 ในการที่ reason over the ontology ใน Protege-OWL, a DIG
compliant reasoner ควรจะติดตัง้ และเริม่ การดาเนินงาน
 ใน tutorial นี้ เราได้ใช้ Racer
 Download at: http://www.racer-
systems.com/products/download/index.phtml
 Double click ที่ RacerPro เพือ่ เริม่ การทางานของ Racer
การร้ องขอการใช้ reasoner
 ต้องเริม่ ต้น Racer ซึง่ ontology สามารถทีจ่ ะส่ง reasoner เพือ่ คานวณลาดับชัน้ ของ




classification โดยอัตโิ นมัติ และตรวจสอบความสอดคล้องของตรรกะontology.
ใน Protege ลาดับชัน้ ทีเ่ ราสร้างขึน้ มานัน้ จะเรียกว่า asserted hierarchy การคานวณอย่าง
อัตโิ นมัตโิ ดยใช้ reasoner จะเรียกว่า inferred hierarchy.
ไปที่ OWL – classify taxonomy – ทาการร้องขอ reasoner
 ถ้าคลาสได้รบั การ reclassified ชือ่ ของคลาสจะปรากฏเป็ น blue color ในการอ้างถึงลาดับ
ชัน้
ไปที่ OWL – Check consistency – ทาการร้องขอ reasoner
 ถ้าคลาสได้รบั การค้นพบ inconsistent ไอคอนจะถูกวงกลมเป็ น red color.
การคานวณลาดับชัน้ ของ class จะรูจ้ กั กันในลักษณะ classifying the ontology
Invoke the reasoner
E24: ความสอดคล้ องของ classes
 ในการทีจ่ ะใช้งาน reasoner เพือ่ ตรวจสอบถึงความไม่สอดคล้องกันของ ontology พวกเราจะ
สร้างคลาส ProbeInconsistentTopping,
 อันไหนทีเ่ ป็ นซับคลาสของ CheeseTopping
 เลือก ProbeInconsistentTopping ไปที่ asserted condition เพือ่ เพิม่ ชือ่ คลาส
เลือก VegetableTopping และกดOK.
 ไปที่ OWL – เพือ่ เช็คความสอดคล้อง
E25: การจัด ontology อีกครัง้
 เพือ่ ดู ProbeInconsistentTopping ทีไ่ ม่สอดคล้องกัน
E26: การลบ disjoint statement
 ระหว่าง CheeseTopping และ VegetableTopping เพือ่ เก็นว่าเกิด
อะไรขึน้
 เลือก CheeseTopping
 ไปยัง Disjoint part
 เลือก VegetableTopping คลิกขวา และ “Delete the selected
row”.
 ทาการจัดอนุ วธิ าน
E27: การกาหนด ontology
 โดยการทา CheeseTopping และ VegetableTopping disjoint
จากตัวอื่นๆ
แหล่งข้ อมูล
 Protege Ontology Libraries
 http://protegewiki.stanford.edu/index.php/Protege_On
tology_Library
 Protege tutorial
 http://www.co-ode.org/resources/tutorials/
 Protege Website
 http://protege.stanford.edu/doc/users.html
 http://protege.stanford.edu/