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/