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/