1 / 46

Protege Tutorial

Protege Tutorial. บทเรียน ProtegeOWL ขั้นพื้นฐาน โดยเว็บไซต์ของ protege. Protege คืออะไร ?. Protege เป็นซอฟต์แวร์ฟรี , ในรูปแบบของโอเพนซอร์ส ซึ่งเป็นซอฟต์แวร์ที่เผยแพร่ซอร์สโค้ดได้ มีโครงสร้างเป็นแบบจำลองและการใช้โปรแกรมประยุกต์ความรู้พ้นฐานกับ ออนโทโลจี

lynna
Download Presentation

Protege Tutorial

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Protege Tutorial บทเรียน ProtegeOWL ขั้นพื้นฐานโดยเว็บไซต์ของ protege

  2. Protege คืออะไร? • Protege เป็นซอฟต์แวร์ฟรี , ในรูปแบบของโอเพนซอร์ส ซึ่งเป็นซอฟต์แวร์ที่เผยแพร่ซอร์สโค้ดได้มีโครงสร้างเป็นแบบจำลองและการใช้โปรแกรมประยุกต์ความรู้พ้นฐานกับ ออนโทโลจี • ออนโทโลจีเป็นศูนย์กลางการใช้งานโปรแกรมประยุกต์ต่างๆเช่นกระบวนทัศน์ทางวิทยาศาสตร์, การจัดการข้อมูลสารสนเทศ , ระบบบูรณาการ, การพาณิชย์อิเล็กทรอนิคส์และการบริการทางเว็บไซต์

  3. การติดตั้ง 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

  4. 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

  5. การสร้าง 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

  6. ชื่อ Classes • ไปที่แท็บ OWL Classes • จะมีลำดับคลาสที่ว่างๆอยู่ ภายในจะบรรจุคลาสไว้ 1 คลาสเรียกว่า owl:Thing, เป็นคลาสแม่ของทุกๆคลาส • E3: ทำการสร้าง คลาสย่อย ชื่อว่า Pizza, PizzaTopping และ PizzaBase. คลาสเหล่านี้จะเป็นคลาสย่อยของ owl:Thing. • การตั้งชื่อ • ไม่มีการตั้งชื่อที่ตรงกับชื่อพิเศษ • มีความสอดคล้องกัน

  7. Disjoint classes • E4: จะทำอย่างให้ Pizza, PizzaTopping และ PizzaBase เป็นคลาสที่มีการ Disjoint กัน • เลือก คลาส Pizza • กดปุ่ม “add siblings” ที่อยู่ข้างบนส่วน disjoint classes • เพิ่ม PizzaBase และ PizzaTopping • ทำการเลือกคลาส PizzaTopping, • เพิ่ม Pizza และ PizzaBase ไปยัง disjoint class

  8. E5: วิธีการสร้างกลุ่มของคลาส • ทำการสร้าง ThinAndCrisyBase และ DeepPanBase ไปที่คลาสย่อยของ PizzaBase และแต่ละคลาสจะเป็นคลาสที่ถูกdisjoint • เลือก PizzaBase, คลิกขวาเลือก“create subclasses” • จะมีการสร้างคลาสที่เป็น disjoint คลาสขึ้น 2 คลาส • และจะมีการบันทึกขึ้นทุกครั้งที่มีการสร้าง disjoint คลาส

  9. E6: สร้างคลาสย่อยใน PizzaTopping • เลือก PizzaTopping, • สร้างคลาสย่อยเป็น MeatTopping, VegetableTopping, CheeseTopping และ SeafoodTopping. ทำคลาสทั้งหมดนี้ให้เป็น Disjoint คลาส • ทำการเลือกคลาส MeatTopping, • เพิ่ม disjoint ของคลาสย่อย : SpicyBeefTopping, PepperoniTopping, SalamiTopping และ HamTopping • เลือก VegetableTopping: • เพิ่ม disjoint ของคลาสย่อย : TomatoTopping, OliveTopping, MushroomTopping, PepperTopping, OnionTopping, CaperTopping

  10. E6: การสร้าง disjoint ของคลาสย่อย • เลือก PepperTopping • เพิ่ม disjoint ของคลาสย่อย : RedPepperTopping, GreenPepperTopping, JalapenoPepperTopping • เลือก CheeseTopping • เพิ่ม disjoint ของคลาสย่อย : MozzarellaTopping, ParmezanTopping • เลือก SeafoodTopping • เพิ่ม disjoint ของคลาสย่อย : TunaTopping, AnchovyTopping and PrawnTopping

  11. คุณสมบัติของ OWL • OWL มีคุณสมบัติในการแสดงความสัมพันธ์ระหว่างออบเจค 2 ออบเจค • มี 2 คุณสมบัติหลักๆดังต่อไปนี้ • คุณสมบัติทาง Object : ออบเจคสองออบเคสามารถเชื่อมโยงกันได้ • คุณสมบัติทาง datatype : object สามารถลิงค์ไปยัง XML Schema datatype หรือ rdf:literal • คถณสมบัติอื่นๆ ของ OWL – คุณสมบัติในการให้คำอธิบายประกอบ, ถูกใช้ในการให้อธิบายข้อมูลของคลาส, ลักษณะเฉพาะ , และคุณสมบัติอื่นๆ

  12. E7: การสร้างคุณสมบัติของ Object • ทำการเปลี่ยนจากแถบเมนู “Properties” • ใช้ปุ่ม “Create Object Property” ในการสร้างคุณสมบัติของออบเจคตัวใหม่ • ทำการเปลี่ยนชื่อไปเป็น hasIngredient

  13. E8: การสร้างคุณสมบัติย่อย • เลือกคุณสมบัติ hasIngredient • ทำการเพิ่ม Topping และ hasBase ไปที่ subproperties

  14. คุณสมบัติการเปลี่ยนกลับคุณสมบัติการเปลี่ยนกลับ • ในแต่ละคุณสมบัติของ object สามารถมีการเปลี่ยนกลับคุณสมบัติที่ตรงกันได้ • ถ้ามีบางคุณสมบัติเชื่อมโยงจาก a ไปยัง b ดังนั้นก็จะสามารถเปลี่ยนกลับ จาก b ไปยัง a ได้

  15. E9: การสร้างคุณสมบัติการเปลี่ยนกลับ(การผกผัน) • สร้างคุณสมบัติของ object ใหม่โดยไปที่ isIngredientOf • กดปุ่ม “Set inverse property” • เลือก “hasIngredient” • จากนั้นการผกผันของความสัมพันธ์ก็จะถูกตั้งค่าขึ้น • เลือก hasBase • ทำการสร้าง isBaseOf ที่มีคุณสมบัติผกผันกับ hasBase • isBaseOf เป็นคุณสมบัติย่อยของ isIngredientOf • เลือก hasTopping • สร้าง isToppingOf ที่มีคุณสมบัติการผกผัน • isToppingOf จะเป็นคุณสมบัติย่อยของ isIngredientOf

  16. คุณสมบัติของฟังก์ชัน • ถ้าหากคุณสมบัติเป็นเหมือนฟังก์ชันที่ใช้ในการทำงานที่จะยอมให้มีการทำงานเฉพาะส่วน โดยผ่านคุณสมบัติดังนี้ • ยอมให้มีการกำหนดขอบเขตที่แน่นอน มีลำดับที่เป็นเอกลักษณ์เฉพาะส่วน • คุณสมบัติของฟังก์ชันต่างๆ เป็นเหมือนคุณสมบัติที่มีค่าเป็นค่าๆเดียว

  17. การทำงานของฟังก์ชันผกผันการทำงานของฟังก์ชันผกผัน • ถ้าหากฟังก์ชันมีคุณสมบัติในการผกผัน ดังนั้นก็จะมีการผกผันตามคุณสมบัติดังต่อไปนี้ • กำหนดให้มีลำดับและขอบเขตที่แน่นอน

  18. ฟังก์ชันและคุณสมบัติการผกผันของฟังก์ชันฟังก์ชันและคุณสมบัติการผกผันของฟังก์ชัน • ความแตกต่างระหว่างคุณสมบัติของฟังก์ชันและการผกผันคุณสมบัติของฟังก์ชัน

  19. คุณสมบัติการถ่ายทอด • ถ้า a มีคุณสมบัติการถ่ายทอด , และเป็นการถ่ายทอดคุณสมบัติโดยตรงจาก a ไป b และ b มีการถ่ายทอดคุณสมบัติโดยตรงไปยัง c, ดังนั้นเราสามารถถ่ายทอดคุณสมบัติโดยตรงจาก a ไปยัง c ได้ผ่านคุณสมบัติ P

  20. คุณสมบัติการสมมาตร(Symmetric)คุณสมบัติการสมมาตร(Symmetric) • ถ้า P มีคุณสมบัติของการสมมาตร และมีการสมมาตรโดยตรงจาก a ไปยังb ดังนั้น b ก็จะมีคุณสมบัติการสมมาตรได้โดยตรงไปยัง a โดยผ่านคุณสมบัติ P

  21. E10: การทำให้ hasIngredient มีคุณสมบัติการถ่ายทอด • เลือกคุณสมบัติ hasIngredient • คลิกกล่องเชคค์บ๊อคที่มีชื่อว่า transitive • ทำการเลือกคุณสมบัติ isIngredientOf ทำการคลิกที่ transitive box อีกครั้งเพื่อความมั่นใจ

  22. E11: การทำคุณสมบัติของฟังก์ชัน hasBase • เลือกคุณสมบัติ hasBase • คลิกเลือก “functional” • OWL-DL จะไม่อนุญาต ให้ datatype การถ่ายทอด การสมมาตร หรือคุณสมบัติการผกผัน

  23. คุณสมบัติของ domains และ ranges • คุณสมบัติที่มีการเชื่อโยงจาก domain ไปยัง range • OWL ใช้ domain และ range เป็นหลักการและเหตุผล

  24. E12: การกำหนด range ของ hasTopping • เลือก hasTopping • กดปุ่ม range • เลือก PizzaTopping • กดปุ่ม OK • PizzaTopping จะแสดงรายการของ range • เมื่อหลายๆคลาสถูกเพิ่ม range เข้าไปคลาสเหล่านั้นก็จะมีการ union กันหมดทุกๆคลาส

  25. E13: การกำหนด Pizza ให้มี domain เป็นคุณสมบัติของ hasTopping • เลือกคุณสมบัติ hasTopping • กดปุ่มเพิ่ม domain • เลือก Pizza • กด OK • Pizza จะแสดงรายการของ domain • เมื่อหลายๆคลาสถูกเพิ่มเป็น domain คลาสเหล่านั้นก็จะสามารถนำเสนอออกมาเป็นการ Union ของหลายๆคลาสได้

  26. E14: การระบุ domain และ range สำหรับคุณสมบัติของisToppingOf • เลือกคุณสมบัติ isToppingOf • ตั้งค่า domain ของคุณสมบัติ isToppingOf เป็น PizzaTopping • ตั้งค่า range ของคุณสมบัติ isToppingOf เป็น Pizza.

  27. E15: ระบุ domain และ range สำหรับคุณสมบัติของ hasBase ที่เป็นคุณสมบัติการผกผัน isBaseOf • เลือกคุณสมบัติ hasBase • ระบุ domain เป็น Pizza • ระบุ range เป็น PizzaBase • เลือกคุณสมบัติ isBaseOf • ระบุ domain เป็น PizzaBase • ระบุ range เป็น Pizza

  28. ข้อจำกัดด้านคุณสมบัติข้อจำกัดด้านคุณสมบัติ • ใน OWL, คุณสมบัติที่ถูกสร้างขึ้นต่างก็มีข้อจำกัด • ข้อจำกัดนี้ถูกใช้จำกัดในเฉพาะด้านสำหรับแต่ละคลาส • 3 ข้อจำกัด: • ข้อจำกัดด้านปริมาณ • Existential quantifier ( ) • Universal quantifier ( ) • ข้อจำกัดด้าน Cardinality • ข้อจำกัดของ hasValue

  29. E16: การเพิ่มข้อจำกัดให้กับ Pizza • เพิ่มข้อจำกัดให้กับ Pizza โดยระบุ Pizza เป็น PizzaBase • เลือก Pizza • เลือกหัวข้อ Necessary เพื่อสร้างเงื่อนไขที่จำเป็น • ทำการสร้างข้อจำกัด • เลือก hasBase เป็นคุณสมบัติที่มีข้อจำกัด • เลือก someValueFrom เป็นข้อจำกัด • ให้ PizzaBase เป็น filler

  30. เพิ่มข้อจำกัดให้กับ Pizza

  31. E18: สร้างข้อแตกต่างตามแต่ละประเภทของ Pizzas • สร้างคลาสย่อยของ Pizza ที่เรียกว่า NamedPizzaและเรียกคลาสย่อยของ NamedPizza ว่า MargheritaPizza • เพิ่มข้อคอมเมนต์ให้กับ MargheritaPizza: เป็น pizza ที่มีเพียง Mozarella และ Tomato toppings

  32. E19: เพิ่มข้อจำกัดให้กับ MargheritaPizza • ระบุ MargheritaPizza ให้มีอย่างน้อยคือ MozzarellaTopping. • เลือก MargheritaPizza • ไปที่ “Asserted Conditions” สร้างข้อจำกัดใหม่ • เลือก someValueFrom • เลือก hasTopping ให้มีคุณสมบัติเป็นข้อจำกัด • เลือก MozzarellaTopping ให้เป็น filler • กดปุ่ม OK

  33. E20: เพิ่มข้อจำกัดให้กับ MargheritaPizza • เพื่อระบุ MargheritaPizza ให้มีอย่างน้อยหนึ่งตัวที่เป็น TomatoTopping. • เลือก MargheritaPizza • ไปที่ “Asserted Conditions”ในการสร้างข้อจำกัด • เลือก someValueFrom • เลือก hasTopping ให้เป็นคุณสมบัติที่มีข้อจำกัด • เลือก TomatoTopping ให้เป็น filler • กดปุ่ม OK

  34. E21: สร้าง AmericanPizza • สร้าง AmericanPizza กับ toppings ของ pepperoni mozzarella และ tomato. • ผ่านการ cloning และการ modifying ในการอธิบายของ MargheritaPizza. • เลือก MargheritaPizza • เลือกสร้าง clone • เพิ่มข้อจำกัดเพิ่มเติมให้กับ AmericanaPizza • เพิ่ม PepperoniTopping • กดปุ่ม OK

  35. E22: สร้าง AmericanHotPizza และ SohoPizza • AmericanHotPizza เกือบจะคล้ายกับ AmericanaPizza แต่มี JalapenoPepperTopping อยู่ในนั้น • SohoPizza เกือบจะคล้ายกับ MargheritaPizzaแต่จะมีส่วนที่เพิ่มเติมขึ้นมาคือ OliveTopping และ ParmezanTopping

  36. E23: ทำคลาสย่อยของ NamedPizza ให้ disjoint กัน • เลือก MargheritaPizza • กดปุ่ม “add all siblings” บน “Disjoints widget” เพื่อทำ disjoint ให้กับ pizzas แต่ละอัน

  37. การใช้เหตุและผล • Ontology ใช้ในการอธิบายใน OWL-DL ที่สามารถดำเนินการได้จากการให้เหตุและผล • ไปที่ owl—preference, ทำการเชคค์ให้แน่ใจว่า OWL-DL ได้ถูกเลือกไว้แล้ว • การบริการหลักเพื่อเสนอให้เห็นถึงเหตุและผลที่เป็นการทดสอบว่าเป็นคลาสที่เป็นซับคลาสของคลาสอื่นๆหรือไม่ • การแสดงถึงการทดสอบในแต่ละคลาส ,เป็นการให้เหตุผลในสิ่งที่เป็นไปได้ การคำควณของการได้มาของออนโทโลยีของแต่ละลำดับชั้น • การบริการด้านการให้เหตุผลอื่นๆก็เป็นเหมือนการตรวจสอบความสอดคล้องกัน – เพื่อตรวจสอบความเป็นไปได้ของคลาสนั้นว่าเป็นไปได้หรือไม่ • คลาสอาจเป็นคลาสตัวอย่างที่ถือว่ามีความสอดคล้องกันหรืออาจเป็นคลาสที่ไม่มีความสอดคล้องกันก็มีบ้างในหลายๆตัวอย่าง

  38. การใช้ Racer • ในลำดับการให้เหตุผลที่มากว่าออนโทโลจีใน Protege-OWL ซึ่งเป็นไปตามมาตรฐาน DIG ที่ควรจะติดตั้งและเริ่มใช้งาน • ในการสอนจะมีการใช้ Racer • ดาวน์โหลดที่ : http://www.racer-systems.com/products/download/index.phtml • ดับเบิลคลิก RacerPro เพื่อเริ่มใช้ Racer

  39. การอ้างถึงเห็นผล • มีการเริ่มใช้ Racer ที่ ontology ที่สามารถส่งไปยัง reasoner โดยอัตโนมัติที่มีการคำนวนการจำแนกเป็นลำดับชั้นและสามารถตรวจสอบความสอดคล้องกันของออนโทโลจี้ • ในProtege, แมนนัวร์ที่มีโครงสร้างเป็นลำดับขั้นจะถูกเรียกว่า asserted hierarchy. มีการคำนวนอย่างอัติโนมัติโดย reasoner จะถูกเรียกว่า inferred hierarchy. • ไปที่ OWL – classify taxonomy – เพิ่ออ้างไปยัง reasoner • ถ้าคลาสเป็นreclassifiedดังนั้นคลาสจะปรากฏชื่อเป็นสีฟ้า blue colorในลำดับชั้นที่ถูกอ้างถึง • ไปที่ OWL – ตรวจสอบ consistency – เพื่ออ้างไปยัง reasoner • ถ้าพบว่าคลาสเป็น inconsistentจะเกิด icon เป็นวงกลมสีแดง red color. • การคำนวณการนำเสนอคลาสเป็นลำดับชั้นทำให้รู้ถึง การจำแนกของออนโทโลจี

  40. การอ้างอิงอย่างมีเหตุผลการอ้างอิงอย่างมีเหตุผล

  41. E24: คลาสที่ไม่สอดคล้องกัน • ในลำดับแสดงถึงการใช้ reasoner เพื่อตรวจสอบ inconsistencies ในออนโทโลจี, เพื่อที่จะสร้างคลาส ProbeInconsistentTopping, • คลาสย่อยอันไหนเป็นคลาสของ CheeseTopping • เลือก ProbeInconsistentToppingไปยืนยันเงื่อนไขในการเพิ่มชื่อคลาส เลือก VegetableTopping และกดปุ่ม OK • ไปที่ OWL – ตรวจสอบ consistency

  42. E25: ทำการแบ่งกลุ่มของแต่ละประเภทของออนโทโลจีอีกครั้ง • จะเห็น ProbeInconsistentTopping ว่าไม่มีอยู่แล้ว

  43. E26: ทำการลบ disjoint statement • ระหว่าง CheeseTopping และ VegetableTopping จะเห็นว่ามีอะไรเกิดขึ้นบ้าง • ทำการการเลือก CheeseTopping • ไปยังส่วนที่เป็น Disjoint • เลือก VegetableTopping, คลิกขวาและ “ทำการลบแถวที่เลือก” • การจำแนก taxonomy • ความสอดคล้องดังกล่าวไม่เกิดขึ้นแล้ว

  44. E27: แก้ไข ontology • ทำได้โดยกำหนดให้ CheeseTopping และ VegetableTopping ให้ disjoint ออกจากตัวอื่นๆ

  45. แหล่งอ้างอิง • Protege Ontology Libraries • http://protegewiki.stanford.edu/index.php/Protege_Ontology_Library • แหล่งความรู้ Protege • http://www.co-ode.org/resources/tutorials/ • เว็บไซต์ Protege • http://protege.stanford.edu/doc/users.html • http://protege.stanford.edu/

More Related