1 / 46

Protege Tutorial

Protege Tutorial. Based on ProtegeOWLTutorial at protege website. protege คืออะไร ?. Protege เป็นฟรี open-source แพลตฟอร์ม หรือแอพพลิเคชั่นที่ใช้สร้างรูปแบบหลัก หรือ องค์ความรู้ด้วย ontologies ช่วงของ Ontologies มาจากอนุกรมวิธาน , การจำแนกแยกแยะ , ฐานข้อมูลที่เต็มไปด้วยทฤษฎี

ziya
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 Based on ProtegeOWLTutorial at protege website

  2. protege คืออะไร? • Protege เป็นฟรี open-source แพลตฟอร์มหรือแอพพลิเคชั่นที่ใช้สร้างรูปแบบหลัก หรือ องค์ความรู้ด้วย ontologies • ช่วงของ Ontologies มาจากอนุกรมวิธาน, การจำแนกแยกแยะ, ฐานข้อมูลที่เต็มไปด้วยทฤษฎี • Ontologies ในเวลานี้ได้เป็นศูนย์กลางของหลายแอพพลิเคชั่น ไม่ว่าจะเป็นความรู้ทางวิทยาศาสตร์ ,การจัดการข้อมูล,ระบบบูรณาการพาณิชย์อิเล็กทรอนิกส์และการบริการเว็บ

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

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

  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 ว่างๆ ที่พร้อมสำหรับการเริ่มใช้งาน • ทำการ Save ชื่อไฟล์เป็น pizza.owl

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

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

  8. E5: การสร้างกลุ่มของ classes • สร้าง ThinAndCrisyBase และ DeepPanBase เป็นคลาสย่อยของ PizzaBase โดยแต่ละอย่างจะ disjointed กัน • เลือก PizzaBase โดยคลิดขวาที่เม้าส์แล้วเลือก “create subclasses” • ทำตามตัวช่วย เพื่อสร้าง 2 คลาสที่ Disjointed กัน • จะเป็นการประหยัดเวลาสำหรับการสร้าง disjoint classes หลายๆคลาส

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

  10. E6: การสร้าง disjoint subclasses • เลือก PepperTopping • เพิ่ม disjoint subclasses ได้แก่ RedPepperTopping, GreenPepperTopping, JalapenoPepperTopping • เลือก CheeseTopping • เพิ่ม disjoint subclasses ได้แก่ MozzarellaTopping, ParmezanTopping • เลือก SeafoodTopping • เพิ่ท disjoint subclasses ได้แก่ TunaTopping, AnchovyTopping และ PrawnTopping

  11. คุณสมบัติ OWL • OWL มีคุณสมบัติของการเป็นตัวแทนความสัมพันธ์ระหว่าง 2 objects. • มีคุณสมบัติหลัก 2 ประการ: • คุณสมบัติ Object : เชื่อมต่อ object กับ object • คุณสมบัติประเภทข้อมูล: เชื่อมต่อ object ไปที่ XML Schema datatype หรือ rdf:literal • คุณสมบัติอื่นๆของ OWL– ใช้ในการเพิ่มข้อมูลของ classes, individuals และ properties

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

  13. E8: การสร้าง sub-properties • เลือกคุณสมบัติ hasIngredient • เพิ่ม hasTopping และ hasBase เป็น subproperties

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

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

  16. คุณสมบัติการทำงาน • ถ้าคุณสมบัติเป็นในเรื่องของการทำงาน ที่ส่งไป individual จะมีเพียง 1 individual ที่สัมพันธ์กับคุณสมบัตินี้ • สำหรับโดเมนที่จะได้รับ ต้องเป็นช่วงที่ไม่ซ้ำกัน • คุณสมบัติการทำงาน จะรู้จักกันในชื่อของ single valued properties

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

  18. ฟังก์ชัน vs. คุณสมบัติฟังก์ชันแบบผกผัน • FunctionalProperty vs InverseFunctionalProperty

  19. คุณสมบัติ Transitive • ถ้าคุณสมบัติเป็นแบบ transitive และคุณสมบัติเชื่อมโยง individual a ไปยัง individual b อักทั้ง individual b ไปยัง individual c ดังนั้นแล้ว พวกเราสามารถสรุปได้ว่า individual a มีความสัมพันธ์กับ individual c โดย property P.

  20. คุณสมบัติแบบสมมาตร • ถ้าคุณสมบัติ P เป็นแบบสมมาตรและความสัมพันธ์ระหว่าง individual a ไปยัง individual b ดังนั้นแล้ว individual b ก็จะต้องมีความสัมพันธ์กับ individual a ด้วยโดย property P.

  21. E10: การทำ hasIngredient เป็นproperty transitive • เลือก hasIngredient property • กาที่ช่อง transitive tick box • เลือก isIngredientOf property เพื่อให้มั่นใจว่าถูกกาเรียบร้อยแล้ว

  22. E11: การทำ hasBase property เป็น functional • เลือก hasBase property • กาถูกที่ช่อง “functional” • OWL-DL จะไม่ติดตาม datatype properties เป็นtransitive, symmetric หรือมี inverse properties.

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

  24. E12: การระบุ range ของhasTopping • เลือก hasTopping • กดปุ่ม range • เลือก PizzaTopping • กดปุ่ม OK button • PizzaTopping จะแสดงใน range list. • เมื่อ multiple classes เพิ่ทใน range ก็จะเป็นตัวแทนของ class ทั้งหมด

  25. E13: การกำหนด Pizza เป็น domain ของhasTopping property • เลือก hasTopping property • กดปุ่ม add domain • เลือก Pizza • กด OK • Pizza จะแสดงออกมาใน domain list. • เมื่อ multiple classes ถูกเพิ่มเป็น domain ก็จะเป็นตัวแทนของ class ทั้งหมด

  26. E14: การระบุ domain และ range ของisToppingOf property • เลือก isToppingOf property • ตั้งค่า domain ของ isToppingOf property ไปยังPizzaTopping • ตั้งค่า range ของ isToppingOf property ไปยัง Pizza

  27. E15: การระยุ domain และ range สำหรับ hasBase property และinverse property isBaseOf • เลือก hasBase property • กำหนด domain เป็น Pizza • กำหนด range เป็น PizzaBase • เลือก isBaseOf property • กำหนด domain เป็น PizzaBase • กำหนด range เป็น Pizza

  28. Property restrictions • ใน OWL เรื่อง properties จะใช้ในการสร้างข้อจำกัด • ข้อจำกัดจะถูกใช้เพื่อจำกัด individuals ที่อยู่ใน class • 3 ข้อจำกัด : • ข้อจำกัดเรื่องของจำนวน • Existential quantifier ( ) • Universal quantifier ( ) • ข้อจำกัดเรื่อความสำคัญ • ข้อจำกัดเรื่องค่าต่างๆ

  29. E16: การเพิ่มข้อจำกัดของ Pizza • เพิ่มข้อจำกัดไปยัง Pizza ซึ่งการระบุ Pizza จำเป็นต้องมีPizzaBase • เลือก Pizza • เลือก Necessary header เพื่อสร้างเงือนไข necessary • เลือกสร้าง restriction wizard • เลือก hasBase เป็น restricted property • เลือก someValueFrom เป็น restriction • วาง PizzaBase ไปที่ filler

  30. Add a restriction to Pizza

  31. E18: การสร้างความแตกต่างของประเภท Pizzas • สร้างคลาสย่อยของ Pizza ชื่อว่า NamedPizza และคลาสย่อยของ NamedPizza ชื่อว่า MargheritaPizza. • เพิ่มข้อความไปยัง MargheritaPizza ว่า “A pizza that only has Mozarella and Tomato toppings”

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

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

  34. E21: การสร้าง AmericanPizza • สร้าง AmericanPizza กับ toppings ของ pepperoni, mozzarella และ tomato. • ผ่านการโคลนและการปรับเปลี่ยนรายละเอียดของMargheritaPizza • เลือก MargheritaPizza • เลือก clone • เลือกเพิ่มข้อจำกัดไปยัง AmericanaPizza • ทำการเพิ่ม PepperoniTopping • กด OK.

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

  36. E23: การทำ subclasses ของ NamedPizza disjoint จากตัวอื่นๆ • เลือก MargheritaPizza • กด “add all siblings” ที่อยู่ใน “Disjoints widget” โดย pizzas disjoint จากแต่ละอย่าง

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

  38. การใช้ 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

  39. การร้องขอการใช้ 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

  40. Invoke the reasoner

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

  42. E25: การจัด ontology อีกครั้ง • เพื่อดู ProbeInconsistentTopping ที่ไม่สอดคล้องกัน

  43. E26: การลบ disjoint statement • ระหว่าง CheeseTopping และ VegetableTopping เพื่อเก็นว่าเกิดอะไรขึ้น • เลือก CheeseTopping • ไปยัง Disjoint part • เลือก VegetableTopping คลิกขวาและ “Delete the selected row”. • ทำการจัดอนุวิธาน

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

  45. แหล่งข้อมูล • Protege Ontology Libraries • http://protegewiki.stanford.edu/index.php/Protege_Ontology_Library • Protege tutorial • http://www.co-ode.org/resources/tutorials/ • Protege Website • http://protege.stanford.edu/doc/users.html • http://protege.stanford.edu/

More Related