1 / 46

Protege Tutorial

Protege Tutorial. Based on ProtegeOWLTutorial at protege website. อะไรคือ protege. Protégé เป็นสิ่งที่เป็นอิสระ เป็นพื้นฐานของการสร้างรูปแบบ domain และเป็ นโปรแกรมประยุกต์ใช้ฐานความรู้ด้วย ontologies

zoltan
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 • Protégé เป็นสิ่งที่เป็นอิสระ เป็นพื้นฐานของการสร้างรูปแบบ domain และเป็นโปรแกรมประยุกต์ใช้ฐานความรู้ด้วย ontologies • Ontologies range ตั้งแต่เรื่องของอนุกรมวิธาน การจำแนกประเภท โครงสร้างของฐานข้อมูลเป็นเรื่องที่สามารถเห็นได้อย่างง่ายๆ • ในปัจจุบัน Ontologies เป็นศูนย์กลางของโปรแกรมประยุกต์หลายโปรแกรมด้วยกัน เช่น โปรแกรมความรู้ทางวิทยาศาสตร์ โปรแกรมในระบบการจัดการและการรวบรวมข้อมูล electronic commerce และงานบริการพวก web services

  3. Install Protege • ไปที่http://protege.stanford.edu/doc/owl/getting-started.htmlเพื่อdownload protege (version 3.x) • Protege OWL editor เป็นสิ่งที่สร้างขึ้นในรูปแบบของ full installation of protegeตลอดขั้นตอนของการ install ให้เลือกตัวเลือกที่เป็น “Basic+OWL” • สามารถศึกษารายละเอียดเพิ่มเติมได้ที่ http://protege.stanford.edu/doc/owl/getting-started.html

  4. Protege รูปแบบของ ontologiesมี 2 รูปแบบหลักๆ คือ • Frame-based • OWL • แต่ละแบบจะมี user interface เป็นของตัวเอง Protege Frames editor : ช่วยให้ผู้ใช้สามารถที่จะสร้างและใช้ ontologiesที่เป็น frame-based ได้ และยังสอดคล้องกับ with OKBC (Open Knowledge Base Connectivity Protocol). ด้วย คือ • Classes • Slots for properties and relationships • Instances for class Protege OWL editor : ช่วยให้ผู้ใช้สามารถที่จะสร้าง ontologiesสำหรับ Semantic Webโดยเฉพาะอย่างยิ่งใน OWL เช่น • Classes • Properties • Instances • reasoning

  5. Building an OWL Ontology • E2:เป็นการสร้าง OWL project ใหม่ เริ่มจาก • เริ่มprotege • File – New Project – OWL/RDF files – Ontology URI (http://www.pizza.com/ontologies/pizza.owl) – OWL DL – Properties View • Protege-OWL project ใหม่ที่เป็นไฟล์เปล่าจะถูกสร้างขึ้นมา • Saveมันไว้ที่ local file ชื่อ pizza.owl

  6. Named Classes • ไปที่ OWL Classes tab • ใน class ว่าง 3 class จะประกอบด้วย class หนึ่งที่เรียกว่า owl:Thing : จะเป็น superclassของทุกสิ่ง • E3: สร้างsubclasses Pizza, PizzaTopping and PizzaBase. พวกนี้เป็นsubclasses of owl:Thing. • Naming convention หรือการตั้งชื่อ • ไม่มี naming convention พิเศษ • ต้องมีความถูกต้องเหมาะสม

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

  8. E5: สร้าง group of classes • สร้างThinAndCrisyBaseและDeepPanBaseที่ subclassesของPizzaBase, และแต่ละอันนั้นเป็น disjointed. • เลือกPizzaBase, คลิ๊กขวา, เลือก “create subclasses” • ตามด้วย wizard เพื่อที่จะสร้าง 2 disjoint classes นี้. • มันสามารถช่วยให้คุณประหยัดเวลาได้มากเมื่อคุณต้องการที่จะสร้างdisjoint classessหลายๆอัน.

  9. E6: สร้างsubclasses ของPizzaTopping • เลือกPizzaTopping, • สร้างsubclaessesชื่อMeatTopping, VegetableTopping, CheeseToppingและSeafoodTopping. ต้องมันใจว่าclasses นี้จะdisjoint กับclass อื่นๆ • เลือก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 and PrawnTopping

  11. OWL Properties • คุณสมบัติของOWL เป็นการแสดงความสัมพันธ์ของวัตถุ 2 สิ่ง • ซึ่งมีคุณสมบัติที่สำคัญอยู่ 2 คุณสมบัติหลักๆ คือ: • Object properties: เป็นการเชื่อมโยงระหว่างวัตถุกับวัตถุ • datatype properties: เชื่อมโยงระหว่างวัตุกับXML Schema datatypeหรือrdf:literal • OWL ยังมีคุณสมบัติอื่นๆอีก- Annotation propertiesใช้ในการเพิ่มคำอธิบายคุณสมบัติลงไปในแต่ละclasses , individuals, and properties

  12. E7: การสร้าง object property • Switch ไปยัง “Properties” tab, • ใช้ปุ่ม “Create Object Property” เพื่อสร้างobject property ใหม่ • เปลี่ยนชื่อเป็น hasIngredient

  13. E8: สร้าง sub-properties • เลือกhasIngredient property • เพิ่มTopping และhasBaseที่subproperties

  14. Inverse Properties • แต่ละ object property อาจจะมี inverse property ที่สอดคล้องกัน • เช่นบางpropertyจะเชื่อมโยงindividual a กับ individual b, ดังนั้น inverse property ของมันจะเชื่อม individual b to individual a.

  15. E9: สร้าง inverse properties • สร้าง object property ใหม่ที่ชื่อว่าisIngredientOf • กดปุ่ม “Set inverse property” • เลือก “hasIngredient” • จากนั้น inverse relation จะถูก set up. • เลือกhasBase • สร้าง isBaseOfที่เป็น inverse property ของhasBase • isBaseOfเป็น subpropertyของ isIngredientOf, why? • เลือกhasTopping • สร้างisToppingOfที่เป็น inverse property. • isToppingOfเป็นsubpropertyของisIngredientOf, why?

  16. Functional Properties • หากpropertyเป็นหน่วยที่สามารถทำงานได้อย่างอิสระ, มันจะสามารถมีเพียงหนึ่งเดียวเท่านั้นที่จะสัมพันธ์กับpropertyนั้นได้ • สำหรับ given domain, range จะต้องไม่เหมือนใคร • Functional properties รู้จักกันในชื่อ single valued properties.

  17. Inverse Functional Properties • ถ้า propertyเป็น inverse functional, ดังนั้น inverse propertyของมันก็คือ functional. • สำหรับ given range, domain ต้องไม่เหมือนใคร

  18. Functional vs. inverse functional properties • FunctionalPropertyvsInverseFunctionalProperty

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

  20. Symmetric Properties • ถ้า property P เป็นแบบ symmetric, และ property นั้นเชื่อมระหว่าง individual a ต่อ individual b, ดังนั้นindividual b ก็จะเชื่อมกับ individual a ผ่านทางproperty P. ด้วย

  21. E10: ทำ hasIngredient property transitive • เลือก hasIngredient property • Tick the transitive tick box • เลือก isIngredientOf property, ดูให้แน่ใจว่า transitive tick box ถูก ticked แล้ว

  22. E11: ทำ hasBase property functional • เลือก hasBase property • Tick the “functional” tick box • OWL-DL ไม่ได้รับการยอมรับให้มี datatype properties เป็น transitive, symmetric หรือมี inverse properties.

  23. Property domains and ranges • Properties เชื่อม individuals จาก domain ไปยังindividuals จาก range. • OWL ใช้ domain และ range ที่ axioms ในreasoning.

  24. E12: Specify the range of hasTopping • เลือกhasTopping • กด range button • เลือกPizzaTopping • กด OK button • PizzaToppingควรจะแสดงไว้ใน range list. • เมื่อ class หลายๆ class ถูกเพิ่มเข้าไปใน range, มันจะแสดงการทำงานที่สัมพันธ์กันของทุกclasses.

  25. E13: Specify Pizza as the domain of the hasTopping property • เลือกhasTopping property • กด add domain button • เลือก Pizza • กด OK • Pizza จะแสดงใน domain list. • เมื่อ class หลายๆ class ถูกเพิ่มเข้าไปใน domain, มันจะแสดงการทำงานที่สัมพันธ์กันของclasses นี้

  26. E14: Specify the domain and range for the isToppingOf property • เลือก isToppingOf property • ตั้งค่า domain ของ isToppingOf property ไปยังPizzaTopping • ตั้งค่า range ของ isToppingOf property ไปยัง Pizza.

  27. E15: Specify the domain and range for the hasBase property and its inverse property isBaseOf • เลือก hasBase property • ระบุ domain ชื่อ Pizza • ระบุ range ชื่อPizzaBase • เลือก isBaseOf property • ระบุ domain ชื่อPizzaBase • ระบุ range ชื่อ Pizza

  28. Property restrictions • In OWL, properties จะถูกนำมาใช้ในการสร้างข้อจำกัด. • ข้อจำกัดจะใช้เพื่อการจำกัด individual ที่เป็นของclass • ข้อจำกัด 3 ข้อคือ: • Quantifier restrictions หรือข้อจำกัดด้านจำนวน • Existential quantifier ( ) • Universal quantifier ( ) • Cardinality restrictions หรือข้อจำกัดด้านความสำคัญ • hasValue restrictions

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

  30. Add a restriction to Pizza

  31. E18: Creating different kinds of Pizzas • สร้าง subclassของ Pizzaชื่อ NamedPizza, และsubclass ของNamedPizzaชื่อMargheritaPizza. • เพิ่ม comment ไปยังMargheritaPizzaว่าเป็น pizza ที่มีเพียง Mozarella and Tomato toppings

  32. E19: Adding restrictions to MargheritaPizza • การระบุว่า MargheritaPizzaมีอย่างน้อย 1 MozzarellaTopping. • เลือกMargheritaPizza • ไปยัง “Asserted Conditions”, สร้างข้อจำกัดใหม่ • เลือกsomeValueFrom • เลือก hasToppingที่เป็น property ที่ต้องการให้มีข้อจำกัด • Enter MozzarellaToppingไปที่ filler • กด OK button

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

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

  35. E22: Create an AmericanHotPizza and a SohoPizza • AmericanHotPizzaค่อนข้างที่จะเหมือนกับAmericanaPizzaแต่มันมี JalapenoPepperToppingด้วย • SohoPizza is ค่อนข้างที่จะเหมือนกับ MargheritaPizza, แต่มีการเพิ่ม OliveToppingและParmezanToppingเข้ามาด้วย

  36. E23: Make subclasses of NamedPizza disjoint from each other • เลือกMargheritaPizza • กด“add all siblings” button บน“Disjoints widget” เพื่อสร้าง pizzas disjoint จากแต่ละอัน

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

  38. Using Racer • เพื่อที่จะอธิบายความหมายเหนือontology ในProtege-OWL, a DIG compliant reasonerควรที่จะ installed และ started. • ในการสอนนี้เราจะใช้Racer • Download ที่ : http://www.racer-systems.com/products/download/index.phtml • Double click RacerProเพื่อ start Racer.

  39. Invoking the reasoner • การเริ่ม Racer, ontology สามารถส่งไปยัง Reasoner เพื่อที่จะคำนวณแยกชั้นโดยอัตโนมัติและตรวจสอบ logical consistency ของ ontologyด้วย • ในProtege, ข้อจำกัด class ของผู้ใช้จะถูกเรียกว่า asserted hierarchy. การคำนวณ classโดยอัตโนมัติด้วย reasonerจะถูกเรียกว่า inferred hierarchy. • ไปที่ OWL – classify taxonomy – เพื่อที่จะเรียก reasoner • ถ้า class ได้รับการจัดประเภทใหม่, ชื่อ class จะแสดงเป็นสีฟ้า ในลำดับ class ที่ถูกอ้างถึง • ไปที่ OWL – Check consistency – เพื่อที่จะเรียก reasoner • หาก class ถูกพบว่าไม่สอดคล้องกัน, icon ของมันจะถูกวงด้วยสีแดง • การคำนวณ inferred class hierarchy หรือที่รู้จักกันในชื่อของ classifying the ontology.

  40. Invoke the reasoner

  41. E24: Inconsistent classes • เพื่อแสดงถึงการใช้งานของ Reasoner ในการตรวจสอบความไม่สอดคล้องกันใน ontology ที่เราจะสร้าง ProbeInconsistentTopping ชั้นเรียนWhich is the subclass of CheeseTopping • เลือก ProbeInconsistentTopping ไปที่สภาพการยืนยันที่จะเพิ่มชั้นเรียนที่มีชื่อให้เลือก VegetableTopping แล้วกดตกลง • ไปที่OWL – ตรวจสอบความสอดคล้อง

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

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

  44. E27: Fix the ontology • โดยการทำให้ CheeseTopping และ VegetableTopping เคลื่อนจากแต่ละอื่น ๆ

  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