Protege Tutorial

Download Report

Transcript Protege Tutorial

Protege Tutorial
บทเรี ยน ProtegeOWL ขั้นพื้นฐาน
โดยเว็บไซต์ของ protege
Protege คืออะไร?

Protege เป็ นซอฟต์แวร์ฟรี , ในรู ปแบบของโอเพนซอร์ส ซึ่งเป็ นซอฟต์แวร์ที่เผยแพร่ ซอร์
สโค้ดได้ มีโครงสร้างเป็ นแบบจาลองและการใช้โปรแกรมประยุกต์ความรู้พน้ ฐานกับ
ออนโทโลจี

ออนโทโลจีเป็ นศูนย์กลางการใช้งานโปรแกรมประยุกต์ต่างๆเช่น กระบวนทัศน์ทาง
วิทยาศาสตร์, การจัดการข้อมูลสารสนเทศ , ระบบบูรณาการ, การพาณิ ชย์อิเล็กทรอนิคส์
และการบริ การทางเว็บไซต์
การติดตั้ง Protege



ไปที่ http://protege.stanford.edu/doc/owl/getting-started.html เพื่อดาวน์โหลด protege
(เวอร์ชนั 3.x)
Protege OWL รุ่ นนี้ถูกสร้างขึ้นมาเพื่อให้มีการติดตั้งอย่างเต็มรู ปแบบของโปรทีเจ
ระหว่างที่มีการติดตั้ง ควรเลือกออบ “Basic+OWL”
รายละเอียดเพิ่มเติม : http://protege.stanford.edu/doc/owl/getting-started.html
Protege


2 แนวทางหลักในการออกแบบ แบบจาลองออนโทโลจี
 Frame-based
 OWL
แต่ละแบบก็จะมีหน้าตาอินเตอร์เฟซที่มีลกั ษณะเฉพาะตัว
 Protege Frames รุ่ นนี้ : สามารถใช้ในการคานวนจานวนของออนโทโลจีที่เป็ นframe-based, ให้มีการสอดคล้อง
กับ OKBC (Open Knowledge Base Connectivity Protocol).
 Classes
 Slots for properties and relationships
 Instances for class
 Protege OWL รุ่ นouh: สามารถใช้ออนโทโลจีในการสร้างเ 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 ถูกสร้างขึ้น
บันชื่อไฟล์เป็ น pizza.owl
ชื่อ Classes




ไปที่แท็บ OWL Classes
จะมีลาดับคลาสที่วา่ งๆอยู่ ภายในจะบรรจุคลาสไว้ 1 คลาสเรี ยกว่า owl:Thing, เป็ นคลาสแม่ของ
ทุกๆคลาส
E3: ทาการสร้าง คลาสย่อย ชื่อว่า Pizza, PizzaTopping และ PizzaBase. คลาสเหล่านี้จะเป็ นคลาส
ย่อยของ owl:Thing.
การตั้งชื่อ


ไม่มีการตั้งชื่อที่ตรงกับชื่อพิเศษ
มีความสอดคล้องกัน
Disjoint classes

E4: จะทาอย่างให้ Pizza, PizzaTopping และ PizzaBase เป็ นคลาสที่มีการ
Disjoint กัน
1.
เลือก คลาส Pizza
2.
กดปุ่ ม “add siblings” ที่อยูข่ า้ งบนส่ วน disjoint
classes
3.
เพิ่ม PizzaBase และ PizzaTopping
4.
ทาการเลือกคลาส PizzaTopping,
5.
เพิ่ม Pizza และ PizzaBase ไปยัง disjoint class
E5: วิธีการสร้ างกลุ่มของคลาส




ทาการสร้าง ThinAndCrisyBase และ DeepPanBase ไปที่คลาสย่อยของ
PizzaBase และแต่ละคลาสจะเป็ นคลาสที่ถูกdisjoint
เลือก PizzaBase, คลิกขวาเลือก“create subclasses”
จะมีการสร้างคลาสที่เป็ น disjoint คลาสขึ้น 2 คลาส
และจะมีการบันทึกขึ้นทุกครั้งที่มีการสร้าง disjoint คลาส
E6: สร้ างคลาสย่ อยใน PizzaTopping

เลือก PizzaTopping,


ทาการเลือกคลาส MeatTopping,


สร้างคลาสย่อยเป็ น MeatTopping, VegetableTopping, CheeseTopping และ SeafoodTopping. ทา
คลาสทั้งหมดนี้ให้เป็ น Disjoint คลาส
เพิ่ม disjoint ของคลาสย่อย : SpicyBeefTopping, PepperoniTopping, SalamiTopping และ
HamTopping
เลือก VegetableTopping:

เพิ่ม disjoint ของคลาสย่อย : TomatoTopping, OliveTopping, MushroomTopping, PepperTopping,
OnionTopping, CaperTopping
E6: การสร้ าง disjoint ของคลาสย่ อย

เลือก PepperTopping

เพิ่ม disjoint ของคลาสย่อย : RedPepperTopping, GreenPepperTopping,
JalapenoPepperTopping

เลือก CheeseTopping


เพิม่ disjoint ของคลาสย่อย : MozzarellaTopping, ParmezanTopping
เลือก SeafoodTopping

เพิม่ disjoint ของคลาสย่อย : TunaTopping, AnchovyTopping and PrawnTopping
คุณสมบัตขิ อง OWL


OWL มีคุณสมบัติในการแสดงความสัมพันธ์ระหว่างออบเจค 2 ออบเจค
มี 2 คุณสมบัติหลักๆดังต่อไปนี้



คุณสมบัติทาง Object : ออบเจคสองออบเคสามารถเชื่อมโยงกันได้
คุณสมบัติทาง datatype : object สามารถลิงค์ไปยัง XML Schema datatype หรื อ
rdf:literal
คถณสมบัติอื่นๆ ของ OWL – คุณสมบัติในการให้คาอธิบายประกอบ, ถูกใช้
ในการให้อธิบายข้อมูลของคลาส, ลักษณะเฉพาะ , และคุณสมบัติอื่นๆ
E7: การสร้ างคุณสมบัตขิ อง Object



ทาการเปลี่ยนจากแถบเมนู “Properties”
ใช้ปุ่ม “Create Object Property” ในการสร้างคุณสมบัติของออบเจคตัวใหม่
ทาการเปลี่ยนชื่อไปเป็ น hasIngredient
E8: การสร้ างคุณสมบัตยิ ่ อย

เลือกคุณสมบัติ hasIngredient

ทาการเพิ่ม Topping และ hasBase ไปที่ subproperties
คุณสมบัตกิ ารเปลีย่ นกลับ


ในแต่ละคุณสมบัติของ object สามารถมีการเปลี่ยนกลับคุณสมบัติที่ตรงกัน
ได้
ถ้ามีบางคุณสมบัติเชื่อมโยงจาก a ไปยัง b ดังนั้นก็จะสามารถเปลี่ยนกลับ จาก
b ไปยัง a ได้
E9: การสร้ างคุณสมบัตกิ ารเปลีย่ นกลับ(การผกผัน)



สร้างคุณสมบัติของ object ใหม่โดยไปที่ isIngredientOf
 กดปุ่ ม “Set inverse property”
 เลือก “hasIngredient”
 จากนั้นการผกผันของความสัมพันธ์กจ็ ะถูกตั้งค่าขึ้น
เลือก hasBase
 ทาการสร้าง isBaseOf ที่มีคุณสมบัติผกผันกับ hasBase
่ ยของ isIngredientOf
 isBaseOf เป็ นคุณสมบัติยอ
เลือก hasTopping
 สร้าง isToppingOf ที่มีคุณสมบัติการผกผัน
่ย
 isToppingOf จะเป็ นคุณสมบัติยอ
ของ isIngredientOf
คุณสมบัตขิ องฟังก์ ชัน

ถ้าหากคุณสมบัติเป็ นเหมือนฟังก์ชนั ที่ใช้ในการทางานที่จะยอมให้มีการทางานเฉพาะ
ส่ วน โดยผ่านคุณสมบัติดงั นี้


ยอมให้มีการกาหนดขอบเขตที่แน่นอน มีลาดับที่เป็ นเอกลักษณ์เฉพาะส่ วน
คุณสมบัติของฟังก์ชนั ต่างๆ เป็ นเหมือนคุณสมบัติที่มีค่าเป็ นค่าๆเดียว
การทางานของฟังก์ชันผกผัน

ถ้าหากฟังก์ชนั มีคุณสมบัติในการผกผัน ดังนั้นก็จะมีการผกผันตามคุณสมบัติ
ดังต่อไปนี้

กาหนดให้มีลาดับและขอบเขตที่แน่นอน
ฟังก์ ชันและคุณสมบัตกิ ารผกผันของฟังก์ ชัน

ความแตกต่างระหว่างคุณสมบัติของฟังก์ชนั และการผกผันคุณสมบัติของฟังก์ชนั
domain
range
Functional
Property
For a given
domain
Range is
unique
InverseFunctional
Property
Domain is
unique
For a given
range
example
hasFather: A hasFather
B, A hasFather C B=C
hasID: A hasID B, C
hasID B A=C
คุณสมบัตกิ ารถ่ ายทอด

ถ้า a มีคุณสมบัติการถ่ายทอด , และเป็ นการถ่ายทอดคุณสมบัติโดยตรงจาก a ไป b และ b มีการถ่ายทอด
คุณสมบัติโดยตรงไปยัง c, ดังนั้นเราสามารถถ่ายทอดคุณสมบัติโดยตรงจาก a ไปยัง c ได้ผา่ นคุณสมบัติ P
คุณสมบัตกิ ารสมมาตร(Symmetric)

ถ้า P มีคุณสมบัติของการสมมาตร และมีการสมมาตรโดยตรงจาก a ไปยังb
ดังนั้น b ก็จะมีคุณสมบัติการสมมาตรได้โดยตรงไปยัง a โดยผ่านคุณสมบัติ P
E10: การทาให้ hasIngredient มีคุณสมบัตกิ ารถ่ ายทอด



เลือกคุณสมบัติ hasIngredient
คลิกกล่องเชคค์บอ๊ คที่มีชื่อว่า transitive
ทาการเลือกคุณสมบัติ isIngredientOf ทาการคลิกที่ transitive box อีกครั้งเพื่อ
ความมัน่ ใจ
E11: การทาคุณสมบัตขิ องฟังก์ ชัน hasBase



เลือกคุณสมบัติ hasBase
คลิกเลือก “functional”
OWL-DL จะไม่อนุญาต ให้ datatype การถ่ายทอด การสมมาตร หรื อ
คุณสมบัติการผกผัน
คุณสมบัตขิ อง domains และ ranges


คุณสมบัติที่มีการเชื่อโยงจาก domain ไปยัง range
OWL ใช้ domain และ range เป็ นหลักการและเหตุผล
E12: การกาหนด range ของ hasTopping

เลือก hasTopping





กดปุ่ ม range
เลือก PizzaTopping
กดปุ่ ม OK
PizzaTopping จะแสดงรายการของ range
เมื่อหลายๆคลาสถูกเพิ่ม range เข้าไปคลาสเหล่านั้นก็จะมีการ union กันหมด
ทุกๆคลาส
E13: การกาหนด Pizza ให้ มี domain เป็ นคุณสมบัติของ
hasTopping

เลือกคุณสมบัติ hasTopping





กดปุ่ มเพิ่ม domain
เลือก Pizza
กด OK
Pizza จะแสดงรายการของ domain
เมื่อหลายๆคลาสถูกเพิ่มเป็ น domain คลาสเหล่านั้นก็จะสามารถนาเสนอ
ออกมาเป็ นการ Union ของหลายๆคลาสได้
E14: การระบุ domain และ range สาหรับคุณสมบัติของisToppingOf



เลือกคุณสมบัติ isToppingOf
ตั้งค่า domain ของคุณสมบัติ isToppingOf เป็ น PizzaTopping
ตั้งค่า range ของคุณสมบัติ isToppingOf เป็ น Pizza.
E15: ระบุ domain และ range สาหรับคุณสมบัติของ hasBase ที่เป็ นคุณสมบัติการผกผัน
isBaseOf

เลือกคุณสมบัติ hasBase



ระบุ domain เป็ น Pizza
ระบุ range เป็ น PizzaBase
เลือกคุณสมบัติ isBaseOf


ระบุ domain เป็ น PizzaBase
ระบุ range เป็ น Pizza
ข้ อจากัดด้ านคุณสมบัติ



ใน OWL, คุณสมบัติที่ถูกสร้างขึ้นต่างก็มีขอ้ จากัด
ข้อจากัดนี้ถูกใช้จากัดในเฉพาะด้านสาหรับแต่ละคลาส
3 ข้อจากัด:



ข้อจากัดด้านปริ มาณ
 Existential quantifier (  )
 Universal quantifier (  )
ข้อจากัดด้าน Cardinality
ข้อจากัดของ hasValue
E16: การเพิม่ ข้ อจากัดให้ กบั Pizza

เพิ่มข้อจากัดให้กบั Pizza โดยระบุ Pizza เป็ น PizzaBase



เลือก Pizza
เลือกหัวข้อ Necessary เพื่อสร้างเงื่อนไขที่จาเป็ น
ทาการสร้างข้อจากัด



เลือก hasBase เป็ นคุณสมบัติที่มีขอ้ จากัด
เลือก someValueFrom เป็ นข้อจากัด
ให้ PizzaBase เป็ น filler
เพิม่ ข้ อจากัดให้ กบั Pizza
E18: สร้ างข้ อแตกต่ างตามแต่ ละประเภทของ Pizzas


สร้างคลาสย่อยของ Pizza ที่เรี ยกว่า NamedPizzaและเรี ยกคลาสย่อยของ
NamedPizza ว่า MargheritaPizza
เพิม่ ข้อคอมเมนต์ให้กบั MargheritaPizza: เป็ น pizza ที่มีเพียง Mozarella และ
Tomato toppings
E19: เพิม่ ข้ อจากัดให้ กบั MargheritaPizza

ระบุ MargheritaPizza ให้มีอย่างน้อยคือ MozzarellaTopping.






เลือก MargheritaPizza
ไปที่ “Asserted Conditions” สร้างข้อจากัดใหม่
เลือก someValueFrom
เลือก hasTopping ให้มีคุณสมบัติเป็ นข้อจากัด
เลือก MozzarellaTopping ให้เป็ น filler
กดปุ่ ม OK
E20: เพิม่ ข้ อจากัดให้ กบั MargheritaPizza

เพื่อระบุ MargheritaPizza ให้มีอย่างน้อยหนึ่งตัวที่เป็ น TomatoTopping.






เลือก MargheritaPizza
ไปที่ “Asserted Conditions”ในการสร้างข้อจากัด
เลือก someValueFrom
เลือก hasTopping ให้เป็ นคุณสมบัติที่มีขอ้ จากัด
เลือก TomatoTopping ให้เป็ น filler
กดปุ่ ม OK
E21: สร้ าง AmericanPizza


สร้าง AmericanPizza กับ toppings ของ pepperoni mozzarella และ tomato.
ผ่านการ cloning และการ modifying ในการอธิบายของ MargheritaPizza.



เลือก MargheritaPizza
เลือกสร้าง clone
เพิ่มข้อจากัดเพิ่มเติมให้กบั AmericanaPizza


เพิม่ PepperoniTopping
กดปุ่ ม OK
E22: สร้ าง AmericanHotPizza และ SohoPizza


AmericanHotPizza เกือบจะคล้ายกับ AmericanaPizza แต่มี JalapenoPepperTopping อยู่
ในนั้น
SohoPizza เกือบจะคล้ายกับ MargheritaPizzaแต่จะมีส่วนที่เพิ่มเติมขึ้นมาคือ
OliveTopping และ ParmezanTopping
E23: ทาคลาสย่อยของ NamedPizza ให้ disjoint กัน


เลือก MargheritaPizza
กดปุ่ ม “add all siblings” บน “Disjoints widget” เพื่อทา disjoint ให้กบั
pizzas แต่ละอัน
การใช้ เหตุและผล





Ontology ใช้ในการอธิบายใน OWL-DL ที่สามารถดาเนินการได้จากการให้เหตุและผล
 ไปที่ owl—preference, ทาการเชคค์ให้แน่ ใจว่า OWL-DL ได้ถูกเลือกไว้แล้ว
การบริ การหลักเพื่อเสนอให้เห็นถึงเหตุและผลที่เป็ นการทดสอบว่าเป็ นคลาสที่เป็ นซับคลาสของคลาสอื่นๆ
หรื อไม่
การแสดงถึงการทดสอบในแต่ละคลาส ,เป็ นการให้เหตุผลในสิ่ งที่เป็ นไปได้ การคาควณของการได้ มาของ
ออนโทโลยีของแต่ ละลาดับชั้น
การบริ การด้านการให้เหตุผลอื่นๆก็เป็ นเหมือนการตรวจสอบความสอดคล้องกัน – เพื่อตรวจสอบความเป็ นไป
ได้ของคลาสนั้นว่าเป็ นไปได้หรื อไม่
คลาสอาจเป็ นคลาสตัวอย่างที่ถือว่ามีความสอดคล้องกันหรื ออาจเป็ นคลาสที่ไม่มีความสอดคล้องกันก็มีบา้ งใน
หลายๆตัวอย่าง
การใช้ Racer


ในลาดับการให้เหตุผลที่มากว่าออนโทโลจีใน Protege-OWL ซึ่งเป็ นไปตาม
มาตรฐาน DIG ที่ควรจะติดตั้งและเริ่ มใช้งาน
ในการสอน จะมีการใช้ Racer


ดาวน์โหลดที่ : http://www.racer-systems.com/products/download/index.phtml
ดับเบิลคลิก RacerPro เพื่อเริ่ มใช้ Racer
การอ้ างถึงเห็นผล





มีการเริ่ มใช้ Racer ที่ ontology ที่สามารถส่ งไปยัง reasoner โดยอัตโนมัติที่มีการคานวนการจาแนกเป็ นลาดับ
ชั้นและสามารถตรวจสอบความสอดคล้องกันของออนโทโลจี้
ใน Protege, แมนนัวร์ที่มีโครงสร้างเป็ นลาดับขั้นจะถูกเรี ยกว่า asserted hierarchy. มีการคานวนอย่างอัติ
โนมัติโดย reasoner จะถูกเรี ยกว่า inferred hierarchy.
ไปที่ OWL – classify taxonomy – เพิอ่ อ้างไปยัง reasoner
 ถ้าคลาสเป็ น reclassified ดังนั้นคลาสจะปรากฏชื่ อเป็ นสี ฟ้า blue color ในลาดับชั้นที่ถูกอ้างถึง
ไปที่ OWL – ตรวจสอบ consistency – เพื่ออ้างไปยัง reasoner
 ถ้าพบว่าคลาสเป็ น inconsistent จะเกิด icon เป็ นวงกลมสี แดง red color.
การคานวณการนาเสนอคลาสเป็ นลาดับชั้น ทาให้รู้ถึง การจาแนกของออนโทโลจี
การอ้ างอิงอย่ างมีเหตุผล
E24: คลาสที่ไม่ สอดคล้ องกัน

ในลาดับแสดงถึงการใช้ reasoner เพื่อตรวจสอบ inconsistencies ในออนโทโลจี, เพื่อที่จะสร้างคลาส
ProbeInconsistentTopping,



คลาสย่อยอันไหนเป็ นคลาสของ CheeseTopping
เลือก ProbeInconsistentToppingไปยืนยันเงื่อนไขในการเพิ่มชื่อคลาส เลือก VegetableTopping และกดปุ่ ม OK
ไปที่ OWL – ตรวจสอบ consistency
E25: ทาการแบ่ งกลุ่มของแต่ ละประเภทของออนโทโลจีอกี ครั้ง

จะเห็น ProbeInconsistentTopping ว่าไม่มีอยูแ่ ล้ว
E26: ทาการลบ disjoint statement

ระหว่าง CheeseTopping และ VegetableTopping จะเห็นว่ามีอะไรเกิดขึ้นบ้าง





ทาการการเลือก CheeseTopping
ไปยังส่ วนที่เป็ น Disjoint
เลือก VegetableTopping, คลิกขวาและ “ทาการลบแถวที่เลือก”
การจาแนก taxonomy
ความสอดคล้องดังกล่าวไม่เกิดขึ้นแล้ว
E27: แก้ไข ontology

ทาได้โดยกาหนดให้ CheeseTopping และ VegetableTopping ให้ disjoint
ออกจากตัวอื่นๆ
แหล่ งอ้ างอิง

Protege Ontology Libraries


แหล่งความรู ้ Protege


http://protegewiki.stanford.edu/index.php/Protege_Ontology_Library
http://www.co-ode.org/resources/tutorials/
เว็บไซต์ Protege


http://protege.stanford.edu/doc/users.html
http://protege.stanford.edu/