Protege Tutorial แนวทางการศึกษา protege บนพื้นฐานของ ProtegeOWL
Protege คือ - protege เป็น open-source ที่ใช้ฟรีไม่เสียค่าใช้จ่ายใดๆทั้งสิ้น เป็นแพลตฟอร์มที่ใช้ในการสร้าง แบบจำลองโดเมน - Ontologies เป็นการแบ่งประเภทตามรายการต่างๆที่อยู่ใน ฐานข้อมูลตามทฤษฎีของ axiomatized ได้อย่างถูกต้อง
การติดตั้ง Protege - สามารถหา Download ได้ที่ Protege OWL editor จะถูกสร้างขึ้นระหว่างการติดตั้ง โปรแกรม Protege ในระหว่างการติดตั้ง นี้ ให้เลือก “Basic+OWL - ดูรายละเอียดเพิ่มเติมได้ที่ protege.stanford.edu/doc/owl/getting-started.html
Protege - วิธีการสร้างแบบจำลอง ontologies มีดังนี้ Frame-based OWL - แต่ละวิธีมีส่วนติดต่อผู้ใช้ของตัวเอง Protege frames : ช่วยให้ผู้ใช้สามารถสร้างและเติม ontologies ตามกรอบใน OKBC (Open Knowledge Base Connectivity Protocol) Protege OWL editor : เพื่อช่วยให้ผู้ใช้สร้าง ontology สำหรับ เว็บโดยเฉพาะอย่าง OWL -Classes -reasoning -Properties -Instances
การสร้าง OWL Ontology - E2: สร้าง OWL project ขึ้นมาใหม่ 1. เปิดโปรแกรม Pretege ขึ้นมา 2. ไปที่ File –> New Project –> OWL/RDF files –> Ontology URI ( Protege สร้างขึ้นใหม่ 4. บันทึก.owl เช่น pizza.owl
ชื่อของคลาสต่างๆ - ไปที่แท็ป OWL Classes - มี class ว่างหนึ่ง class เรียกว่า owl ซึ่งเป็น superclass ของ ทั้งหมด - E3: สร้าง subclasses Pizza, PizzaTopping and PizzaBase. ทั้งหมดจะเป็น subclasses ของ owl - การตั้งชื่อ - การตั้งชื่อต้องไม่มีตัวอักษรพิเศษ (no special naming convention) - ความมั่นคง (consistency)
Disjoint classes - E4: วิธีการดูว่า คลาส Pizza, คลาส PizzaTopping และ คลาส PizzaBase เป็น disjoint 1. เลือกที่คลาส Pizza 2. เลือกที่ปุ่ม “ add siblings” บนแถบของ Disjoints 3. เพิ่ม PizzaBase และ PizzaTopping 4. เลือก PizzaTopping 5. เพิ่ม Pizza และ PizzaBase ไปที่ Disjoints
E5: สร้างกลุ่มของคลาส - สร้าง ThinAndCrisyBase and DeepPanBase เป็น subclasses ของ PizzaBase และแต่ละ subclasses จะไม่เกี่ยวข้องกัน - เลือก PizzaBase คลิกขวาเลือก “createsubclasses” - ตัวช่วยในการสร้าง 2 classes ที่ไม่เกี่ยวข้องกัน - ประหยัดเวลาเมื่อมีความจำเป็นต้องสร้าง classes จำนวนมาก
E6 : สร้างคลาสย่อย บางส่วนของ PizzaTopping - เลือก PizzaTopping สร้าง subclaesses เป็น MeatTopping, VegetableTopping, CheeseTopping และ SeafoodTopping. ตรวจสอบให้แน่ใจว่า classes เหล่านี้ไม่มีสมาชิกร่วมกัน - เลือก class MeatTopping, เพิ่ม disjoint subclasses: SpicyBeefTopping, PepperoniTopping, SalamiTopping and HamTopping - เลือก VegetableTopping: เพิ่ม disjoint subclasses: TomatoTopping, OliveTopping, MushroomTopping, PepperTopping, OnionTopping, CaperTopping
E6 : การสร้างคลาสที่ไม่ เกี่ยวข้องกัน - เลือก PizzaTopping : สร้างคลาสย่อยชื่อว่า MeatTopping, VegetableTopping, CheeseTopping และ SeafoodTopping - เลือกที่คลาส MeatTopping : เพิ่มคลาสย่อย disjoint : SpicyBeefTopping, PepperoniTopping, SalamiTopping และ HamTopping - เลือกที่คลาส VegetableTopping : เพิ่มคลาสย่อย disjoint : TomatoTopping, OliveTopping, MushroomTopping,PepperTopping, OnionTopping และ CaperTopping
คุณสมบัติของ OWL - คุณสมบัติของ OWL แสดงความสัมพันธ์ระหว่างสองวัตถุ - มีสองคุณสมบัติหลักคือ : วัตถุเชื่อมโยงไปยังวัตถุ วัตถุเชื่อมโยงไปยัง XML Schema ประเภทข้อมูล หรือ RDF เป็นแบบ อักษร - คุณสมับติอื่นๆ : การบันทึกใช้เพื่อเพิ่มข้อมูลคำอธิบาย ของคลาสต่างๆ, บุคคลต่างๆ และคุณสมบัติต่างๆ
E7 : สร้างคุณสมบัติของ วัตถุ - เปลี่ยนไปที่แถบ “Properties” - คลิกที่ปุ่ม “Create Object Property” เพื่อใช้สร้างคุณสมบัติ ของวัตถุใหม่ - ทำการเปลี่ยนชื่อเป็น hasIngredient
E8 : การสร้างคุณสมบัติ ย่อย - เลือก hasIngredient property - เพิ่ม hasTopping และ hasBase as the subproperties
คุณสมบัติการผกผัน - คุณสมบัติของแต่ละวัตถุที่มีความสอดคล้องกันอาจมีคุณสมบัติ ผกผันกันก็ได้ - เช่น การเชื่อมวัตถุ A ไปยังวัตถุ B ดังนั้นทิศทางตรงข้ามกันคือ วัตถุ B ไปยังวัตถุ A
E9 : สร้างคุณสมบัติที่ ผกผัน - การสร้างคุณสมบัติจองวัตถุใหม่ เรียกว่า isIngredientOf คลิกที่ปุ่ม “Set inverse property” เลือก “hasIngredient” แล้วความสัมพันธ์ของการผกผันก็จะได้รับการตั้งค่า - เลือก hasBase สร้าง isBaseOf ให้เป็นคุณสมับติการผกผันของ hasBase - เลือก hasTopping สร้าง ToppingOf ให้เป็นคุณสมับติการผกผันของ hasTopping
คุณสมบัติการทำงาน - ถ้าคุณสมบัติของฟังก์ชัน, สำหรับบุคคลที่กำหนด การเกี่ยวของ กันของแต่ละบุคคลต้องผ่านคุณสมบัติที่กำหนด สำหรับการกำหนดโดเมนช่วงที่กำหนดต้องไม่ซ้ำกัน - คุณสมบัติของฟังก์ชันจะต้องมีเพียงค่าเดียว
คุณสมบัติการทำงานแบบ ผกผัน - ถ้าคุณสมบัติเป็นผกผันการทำงานยังคงสามารถทำงานได้ - สำหรับ range ที่กำหนด domain จะต้องไม่ซ้ำกัน
คุณสมบัติของฟังก์ชัน กับ ฟังก์ชันผกผัน
คุณสมบัติการถ่ายทอด - ถ้าคุณสมบัติเป็นการถ่ายทอดและคุณสมบัติที่เกี่ยวข้องจาก A ไปยัง B และนอกจากนี้ยังมีจาก B ไปยัง C เราสามารถอนุมาน ว่า A มีความสัมพันธ์กับ C ด้วยตามคุณสมบัติ P.
คุณสมบัติสมมาตร - ถ้า P มีคุณสมบัติการสมมาตร และ คุณสมบัตินั้นมีสัมพันธ์ จาก a ไป b แล้ว b จะมีความสัมพันธ์กับ a โดยคุณสมบัติของ P
E10 : ตรวจคุณสมบัติการ ถ่ายทอด hasIngredient - การเลือกคุณสมบัติที่ hasIngredient - ทำเครื่องหมายที่ช่อง tick box - การเลือกคุณสมบัติที่ isIngredientOf ตรวจสอบให้แน่ใจว่า tick box เป็น ticked
E11 : ตรวจคุณสมบัติการ ทำงานของ hasBase - เลือก has Base property - คลิกเลือกที่ “functional” - OWL-DL ไม่อนุญาติให้ datatype มีคุณสมบัติของการถ่ายทอด การสมมาตร หรือ คุณสมบัติการผกผัน
คุณสมบัติของ domains และ ranges - คุณสมบัติของการเชื่อมโยงจากโดเมนไปยังช่วง - OWL ใช้ domains และ ranges เป็นหลักการในการให้เหตุผล
E12 : ระบุช่วงของ hasTopping - เลือก hasTopping 1. กดปุ่ม range 2. เลือก PizzaTopping 3. กดปุ่ม OK 4. PizzaTopping จะปรากฏในรายการช่วง 5. เมื่อหลาย classes เพิ่มช่วงเข้าไป จะแสดงให้เห็นจำนวน ของ classes ทั้งหมด
E13: Specify Pizza as the domain of the hasTopping property - เลือกคุณสมบัติ hasTopping 1. กดปุ่ม add domain 2. เลือก Pizza 3. กด OK 4.Pizza จะปรากฏในรายชื่อโดเมน - เมื่อหลาย classes เพิ่มช่วงเข้าไป จะแสดงให้เห็นจำนวนของ classes ทั้งหมด
E14 : ระบุโดเมนและช่วง สำหรับคุณสมบัติ isToppingOf - เลือก isToppingOf property - การตั้งค่าโดเมนของคุณสมบัติ isToppingOf เพื่อ PizzaTopping - ตั้งค่าช่วงของคุณสมบัติ isToppingOf เพื่อ Pizza.
E15: ระบุโดเมนและช่วงสำหรับ คุณสมบัติ hasBase และคุณสมบัติ การผกผันของ isBaseOf - Select the hasBase property - เลือก hasBase property ระบุโดเมน เป็น Pizza ระบุช่วงเป็น PizzaBase - เลือก isBaseOf property ระบุโดเมนเป็น PizzaBase ระบุช่วงเป็น Pizza
ข้อจำกัด ของการให้บริการ - OWL ใช้คุณสมบัติในการสร้างข้อจำกัด - ข้อจำกัดจะถูกใช้เพื่อจำกัดสิทธิที่อยู่ในคลาส - 3 ข้อ จำกัด : - ข้อจำกัดของ ตัวบ่งปริมาณ - ตัวบ่งปริมาณสำหรับตัวมี จ ริง - ตัวบ่งปริมาณต้องเป็นสากล - ข้อจำกัดจำนวนสมาชิกในเซ็ต - ข้อจำกัด hasValue
E16 : เพิ่มข้อจำกัด ไปที่ Pizza - เพิ่มข้อจำกัดให้กับ Pizza ที่ระบุว่าจะต้องมี PizzaBase - เลือก Pizza - เลือก header เพื่อสร้างเงื่อนไขที่จำเป็น - เลือกสร้างตัวช่วยสร้างข้อ จำกัด - เลือก hasBase เป็นคุณสมบัติที่ถูกจำกัด - เลือก someValueFrom เป็นข้อจำกัด - ใส่ลงใน PizzaBase
เพิ่มข้อจำกัดให้ Pizza
E18 : การสร้างชนิดที่ แตกต่างจาก Pizzas - สร้างคลาสย่อยของ PIZZA ที่เรียกว่า NamedPizza และสร้าง คลาสย่อยของ NamedPizza ที่เรียกว่า MargheritaPizza - เพิ่มความคิดเห็น MargheritaPizza : พิซซ่าที่มีเพียง Mozarella และรสชาติมะเขือเทศ
E19 : ข้อจำกัด การเพิ่ม MargheritaPizza - ในการระบุว่าเป็น MargheritaPizza ควรจะมี MozzarellaTopping อย่างน้อย 1 อย่าง 1. เลือก MargheritaPizza 2. ไปที่ “Asserted Conditions”, สร้างข้อจำกัดใหม่ 3. เลือก someValueFrom 4. เลือก hasTopping เป็นคุณสมบัติที่จะถูกจำกัด Enter ใส่ MozzarellaTopping เป็นฟิลเลอร์ 5. กดปุ่ม OK
E20 : การสร้าง AmericanPizza - สร้าง AmericanPizza with toppings of pepperoni, mozzarella and tomato. - การปรับเปลี่ยนรายละเอียดของ MargheritaPizza - เลือก MargheritaPizza เลือกสร้าง clone เพิ่มข้อ จำกัด เพิ่มเติมเพื่อ AmericanaPizza เพิ่ม PepperoniTopping กด OK.
E22 : การสร้าง SohoPizza AmericanHotPizza - AmericanHotPizza เกือบจะเหมือนกับ AmericanaPizza แต่มี JalapenoPepperTopping - SohoPizza เกือบเหมือน MargheritaPizza แต่มี OliveTopping และ ParmezanTopping เพิ่มเติม
E23: Make subclasses of NamedPizza disjoint from each other - เลือก MargheritaPizza - กดปุ่ม “add all siblings” บน Disjoints widget เพื่อทำให้ Pizzas แยกออกจากกันและกัน
การใช้ Reasoner - ontology อธิบายไว้ใน OWL - DL สามารถประมวลผลโดย Reasoner - ไปที่ owl—preference, เพื่อให้แน่ใจว่า OWL-DL ถูกเลือก - บริการหลักที่นำเสนอโดย Reasoner คือการทดสอบหรือหนึ่ง คลาสไม่เป็นคลาสย่อย ของคลาสอื่น - โดยการดำเนินการทดสอบดังกล่าวในทุกคลาสนั้นเป็นไปได้ สำหรับ Reasoner เพื่อคำนวณ ontology ลำดับชั้นของคลาสที่ อ้างถึง - บริการการให้เหตุผลอีกประการหนึ่งคือตรวจสอบความ สอดคล้อง -- เพื่อตรวจสอบหรือไม่ก็เป็นไปได้สำหรับการเรียน ที่จะมีกรณีใด ๆ - คลาส จะถือว่าจะไม่สอดคล้องกันถ้ามันไม่มีบางกรณี
การใช้ Racer - เพื่อให้เหตุผลที่มากกว่า ontology ใน Protege – OWL ซึ่ง เป็นไปตามมาตรฐาน DIG Reasoner ควรจะติดตั้งและเริ่มต้น - ในที่นี้ เราใช้ Racer - สามารถดาวน์โหลดที่ : systems.com/products/download/index.phtml - ดับเบิ้ลคลิกที่ RacerPro เพื่อเริ่มการใช้งาน Racer
การขอร้อง Reasoner - ต้องเริ่มต้นที่ Racer ที่ ontology สามารถส่งไปยัง Reasoner โดยอัตโนมัติคำนวณการจำแนกลำดับชั้นและยังตรวจสอบความ สอดคล้องเชิงตรรกะของ ontology - ใน Protege, ลำดับชั้นที่สร้างด้วยตนเองจะเรียกว่าลำดับชั้นของ การยืนยัน (asserted hierarchy) ที่คำนวณโดยอัตโนมัติโดย Reasoner จะเรียกว่าลำดับชั้นของอนุมาน (inferred hierarchy) - ไปที่ OWL – classify taxonomy – การเรียก reasoner - ถ้าชั้นได้รับการจัดประเภทรายการใหม่แล้วชื่อชั้นจะปรากฏ ในสีฟ้าในลำดับชั้นอ้างถึง - ไปที่ OWL – Check consistency – เพื่อเรียก Reasoner - ถ้าชั้นได้รับการพบที่จะปีนเกลียว, ไอคอนมันจะเป็นวงกลมสี แดง การคำนวณลำดับชั้นเรียนอ้างถึงเป็นที่รู้จักกันจำแนก ontology
Invoke the reasoner
E24: classes ที่ไม่สอดคล้อง กัน - เพื่อแสดงถึงการใช้งานของ Reasoner ในการตรวจสอบความไม่ สอดคล้องกันใน ontology ที่เราจะสร้าง class ProbeInconsistentTopping - ซึ่งเป็น subclass ของ CheeseTopping - เลือก ProbeInconsistentTopping ไปที่ยืนยันที่จะเพิ่ม class ที่มีชื่อให้เลือก VegetableTopping แล้วกดตกลง - ไปที่ OWL – check consistency
E25 : การแบ่ง ontology อีก ครั้ง - ทำเพื่อให้ ProbeInconsistentTopping ไม่สอดคล้องกัน
E26: ลบคำสั่งที่ผิดพลาด - ระหว่าง CheeseTopping และ VegetableTopping เพื่อเห็นว่า อะไรเกิดขึ้น - เลือก CheeseTopping - ไปที่ disjoint ส่วนหนึ่ง - เลือก VegetableTopping, คลิกขวาและ “ ลบแถวที่เลือก ” - จัด taxonomy - ความไม่สอดคล้องกันนั้นไม่มีอยู่แล้ว
E27: แก้ไข Ontology - ด้วยการทำให้ CheeseTopping และ VegetableTopping แยก ออกจากกันและกัน
แหล่งข้อมูล - Protege Ontology Libraries - _Library - Protege tutorial Protege Website