500 likes | 744 Views
Protege Tutorial. การเรียนการสอน Protege ด้วยเว็บไซต์. protege คืออะไร. Protege เป็น Open-source ฟรีเป็นแหล่งที่มาของการสร้างแบบจำลองแบบเต็มรูปแบบและการประยุกต์ใช้กับฐานความรู้ซึ่งเกี่ยวข้องกับ ontologies
E N D
Protege Tutorial การเรียนการสอน Protege ด้วยเว็บไซต์
protegeคืออะไร • Protege เป็น Open-source ฟรีเป็นแหล่งที่มาของการสร้างแบบจำลองแบบเต็มรูปแบบและการประยุกต์ใช้กับฐานความรู้ซึ่งเกี่ยวข้องกับ ontologies • Ontologies ในช่วงตั้งแต่อนุกรมวิธาน การจำแนกประเภท database schemas กับทฤษฎี Axiomatized อย่างเต็มรูปแบบ • Ontologies ในขณะนี้มีศูนย์กลางในการใช้งานจำนวนมาก อาทิเช่น ความรู้ทางวิทยาศาสตร์ การจัดการข้อมูลแบบพอร์ทัลและระบบบูรณาการ พาณิชย์อิเล็กทรอนิกส์และบริการเว็บ เป็นต้น
การติดตั้ง protege • ไปที่ http://protege.stanford.edu/doc/owl/getting-started.html เพื่อดาวน์โหลด protege (version 3.x) • protege จะถูกติดตั้งอย่างเต็มรูปแบบ ระหว่างการติดตั้งให้เลือกBasic+OWL • สำหรับรายละเอียดเพิ่มเติมศึกษาได้จาก http://protege.stanford.edu/doc/owl/getting-started.html
protege • การสร้างแบบจำลอง ontologies มีสองวิธีหลัก ดังนี้ • Frame-based • OWL • แต่ละส่วนสามารถติดต่อกับผู้ใช้งานได้ • การแก้ไข Protege Frames สามารถช่วยให้ผู้ใช้งานสามารถสร้างและเติม ontologies ตามกรอบมาตรฐาน OKBC ได้ (การเชื่อมต่อฐานความรู้กับ Protocol)
protege • Classes • Slots สำหรับคุณสมบัติและความสัมพันธ์ • Instances สำหรับ class • การแก้ไขProtege OWL สามารถช่วนให้ผู้ใช้สร้าง Ontology สำหรับความหมายของเว็บ โดยเฉพาะเว็บ OWL • Classes • Properties (คุณสมบัติ) • Instances • Reasoning (เหตุผล)
การสร้างOWL Ontology • การสร้าง project OWL • เริ่มต้น Protege • ไฟล์-สร้างโครงการใหม่-ไฟล์ OWL/RDF-URI Ontology(http://www.pizza.com/ontologies/pizza.owl) OWL DL – ดูคุณสมบัติ • โครงการ Protege ถูกสร้างขึ้น • บันทึกโครงการไว้ในแฟ้มชื่อ pizza.owl
ชื่อของ classes • ไปที่แท็บ Classes ของ OWL • class ที่ว่างเปล่า 1 class เรียกว่า owl ซึ่งเป็น super class ของทุกอย่าง • สร้างคลาสของพิซซ่า ส่วน Pizza Topping และ Pizza Base เหล่านี้เป็น subclasses ของ owl • การตั้งชื่อในการประชุม • การตั้งชื่อในการประชุม ที่ธรรมดาไม่มีความพิเศษ • ความมั่นคง
disjoint classes • วิธีการของพิซซ่าในส่วน Pizza Topping และ Pizza Base จะเป็น disjoint • เลือกคลาสของพิซซ่า • กด “add siblings” บนเครื่องมือของคลาส • เพิ่ม Pizza Base และ Pizza Topping • เลือกคลาสในส่วนของ Pizza Topping • เพิ่มพิซซ่า และ Pizza Base ในคลาส disjoint
สร้างกลุ่มของClasses • สร้าง ThinAndCrisyBase และ DeepPanBase เป็นคลาสของ Pizza Base โดยไม่ปะติดปะต่อกัน • เลือก Pizza Base คลิกขวาเลือก “create subclasses” • ทำตามขั้นตอนที่ปรากฏ เพื่อสร้างคลาสทั้งสองของ disjoint • มันจะประหยัดเวลามากเมื่อมีความจำเป็นต้องสร้างคลาส disjoint จำนวนมากๆ
สร้างคลาสย่อยบางส่วนของ Pizza Topping • เลือก Pizza Topping • สร้าง subclasses เป็น Meat Topping, Vegetable Topping, Cheese Topping และ Seafood Toppingตรวจสอบให้แน่ใจว่าคลาสเหล่านี้จะมี disjoint • เลือกคลาส Meat Topping • เพิ่มคลาสที่ disjoint เป็น SpicyBeefTopping, Pepperoni Topping, Salami Topping และ Ham Topping
สร้างคลาสย่อยบางส่วนของ Pizza Topping • เลือก Vegetable Topping • เพิ่มคลาสที่ disjoint เป็น Tomato Topping, Olive Topping, Mushroom Topping, Pepper Topping, Onion Topping และ Caper Topping
การสร้างคลาสที่ disjoint • เลือก Pepper Topping • เพิ่มคลาสที่ disjoint เป็น RedPepperTopping, GreenPepperTopping และ JalapenoPepperTopping • เลือก Cheese Topping • เพิ่มคลาสที่ disjoint เป็น MozzarellaTopping และ ParmezanTopping • เลือก SeafoodTopping • เพิ่มคลาสที่ disjoint เป็น TunaTopping, AnchovyTopping และ PrawnTopping
OWL Properties • คุณสมบัติของ OWL แสดงความสัมพันธ์ระหว่างสอง Object • ซึ่งมีคุณสมบัติ 2 อย่าง คือ • คุณสมบัติของ Object เชื่อมโยงระหว่าง Object กับ Object • ประเภทของคุณสมบัติ เชื่อมโยง Object ไปยัง XML Schema ประเภทข้อมูลหรือ RDF • OWL มีคุณสมบัติอื่น ๆ คือ คุณสมบัติของการบันทึกที่ใช้เพื่อเพิ่มข้อมูลประกอบใน classes individuals และproperties
การสร้างคุณสมบัติของ object • เปลี่ยนไปที่แท็บ Properties • ใช้ “สร้าง Object Property” เพื่อสร้างปุ่ม object property ใหม่ • เปลี่ยนชื่อเป็น Ingredient
การสร้าง sub-properties • การเลือกคุณสมบัติของ Ingredient • การเพิ่มส่วน Topping และส่วนฐานเป็น Subproperties
คุณสมบัติแบบ Inverse • แต่ละคุณสมบัติของ object อาจจะมีคุณสมบัติที่สอดคล้องแบบ Inverse • ถ้าบางจุดที่เชื่อมโยงกันในแต่ละจุดจาก A ถึง B อาจจะผกผันกับจุดที่เชื่อมโยงจากจุด B ถึง A
การสร้างคุณสมบัติแบบ Inverse • สร้างคุณสมบัติของวัตถุใหม่ที่เรียกว่า Ingredient • กดปุ่ม “Set inverse property” • เลือก “Ingredient” • จากนั้นความสัมพันธ์แบบ Inverse จะได้รับการตั้งค่า • เลือกส่วน Base • สร้างส่วน Base ให้มีคุณสมบัติแบบ Inverse • ทำไมส่วน Base ถึงเป็นคุณสมบัติย่อยของส่วน Ingredient
การสร้างคุณสมบัติแบบ Inverse • เลือกส่วน Topping • สร้างส่วน Topping เป็น inverse property • ทำไมส่วนของ Topping คือ subproperty ของ subproperty
คุณสมบัติของฟังก์ชั่นคุณสมบัติของฟังก์ชั่น • ถ้าคุณสมบัติเป็นฟังก์ชั่นสำหรับการได้รับ individual ซึ่งมีมากกว่า 1 individual ที่เกี่ยวข้องกับproperty • สำหรับช่วงโดเมนที่กำหนด ต้องไม่ซ้ำกัน • คุณสมบัติของฟังก์ชั่นจะเป็นที่รู้จักเป็นเพียง 1 properties
คุณสมบัติของฟังก์ชั่นแบบ Inverse • ถ้าคุณสมบัติของฟังก์ชั่นทำงานแบบ inverse โดย property เป็นฟังก์ชั่น • สำหรับช่วงโดเมนที่กำหนด ต้องไม่ซ้ำกัน
คุณสมบัติของฟังก์ชั่นและ inverse ฟังก์ชั่น • Functional Property และ Inverse Functional Property
คุณสมบัติ Transitive • คุณสมบัติคือ transitive และ คุณสมบัติ related individual จาก A ไปยัง B และ ไปยัง C และเราสามารถสรุปได้ว่า คุณสมบัติ related individual C ผ่านไปยัง P
คุณสมบัติสมมาตร • ถ้า P มีคุณสมบัติสมมาตร และคุณสมบัติการ individual ของ A ไปยัง B แล้ว B จะมีคุณสมบัติเกี่ยวข้องกับการ individual ผ่านไปยัง P
การทำให้ Ingredient มีคุณสมบัติเกี่ยวกับtransitive • การเลือกคุณสมบัติที่มีส่วนประกอบ • การทำเครื่องหมายในกล่อง • การเลือกคุณสมบัติ Ingredient และการตรวจสอบให้แน่ใจว่ามีการทำเครื่องหมายในกล่องหรือเปล่า
การทำให้ Base property functional • การเลือกคุณสมบัติที่เป็น Base • การทำเครื่องหมาย "ฟังก์ชั่น" ในกล่อง • OWL-DL ไม่อนุญาตให้มี datatype เป็นคุณสมบัติของการสมมาตรหรือมีคุณสมบัติแบบ inverse
Property domains และ ranges • คุณสมบัติของการเชื่อมต่อจาก domain ไปยัง range • OWL ใช้ domain และ range ในการให้เหตุผล
การระบุในช่วงของ range ในส่วนของ Topping • การเลือกส่วน Topping • กดในช่วงของ range • เลือก Pizza Topping • กดปุ่ม OK • Pizza Topping จะปรากฏ list ในช่วงของ range • เมื่อ multiple classes มีการเพิ่มช่วงของ range มันจะแทนเป็น classes ทั้งหมด
ระบุพิซซ่าเป็นโดเมน • การเลือกคุณสมบัติ Topping • กดปุ่ม add domain • เลือกพิซซ่า • กด OK • พิซซ่าจะปรากฏใน list ของ domain • เมื่อ multiple classes มีการเพิ่มช่วงของ domain มันจะแทนเป็น classes
ระบุช่วงของ domain และ range สำหรับส่วน Topping ของ property • การเลือกคุณสมบัติของ Topping • การตั้งค่าโดเมนของคุณสมบัติของ Topping ถึง Pizza Topping • ตั้งค่าช่วงของคุณสมบัติส่วน Topping ของพิซซ่า
การระบุ domain และ range สำหรับ Base property และ inverse property • การเลือกคุณสมบัติของ Base property • ระบุโดเมนของ Pizza • ช่วง range ของ Pizza • การเลือกคุณสมบัติของ Base สำหรับ property • การระบุ domain ของ Pizza • การระบุ range ของ Pizza
การจำกัดคุณสมบัติ • คุณสมบัติที่ใช้ในการสร้างข้อจำกัดของ OWL • ข้อจำกัดจะถูกใช้ใน class • ข้อจำกัด 3 อย่าง • ข้อ จำกัด Quantifier • Existential quantifier ( ) • Universal quantifier ( ) • ข้อ จำกัด cardinality • ข้อ จำกัด Value
การเพิ่มข้อจำกัดของ Pizza • การระบุและเพิ่มข้อจำกัดให้กับ Pizza • เลือก Pizza • เลือกหัวที่จำเป็นเพื่อสร้างเป็นเงื่อนไขที่จำเป็น • เลือกสร้างตัวช่วยสร้างที่มีข้อจำกัด • เลือก Base restricted property • เลือกค่าจากเป็นข้อ จำกัด บางอย่าง • ใส่ลงใน Pizza
การเพิ่มข้อจำกัดให้กับ Pizza
การสร้างชนิดที่แตกต่างจาก Pizzas • สร้าง subclass ของ Pizza เรียกว่า Named Pizzaและ subclass ของ Named Pizza ที่เรียกว่า Margherita Pizza • เพิ่มความคิดเห็นเพื่อ Margherita Pizza, Pizza ที่มีเพียง Mozarellaและรสชาติมะเขือเทศ
การเพิ่มข้อจำกัดให้กับ Margherita Pizza • ในการระบุว่า Margherita Pizza มีอย่างน้อยหนึ่ง Mozzarella Topping • เลือก Margherita Pizza • ไปที่ "ยืนยันเงื่อนไข" สร้างข้อจำกัดใหม่ • เลือกค่าจากบางส่วน • เลือก Topping ที่จำกัดเป็น property • ใส่ Mozzarella Topping • กดปุ่ม OK
การเพิ่มข้อจำกัดใน Margherita Pizza • ในการระบุว่า Margherita Pizza มีอย่างน้อยหนึ่ง Tomato Topping • เลือก Margherita Pizza • ไปที่ "ยืนยันเงื่อนไข" สร้างข้อจำกัดใหม่ • เลือกค่าจากบางส่วน • เลือก Topping ที่ถูกจำกัด • ใส่ Tomato Topping • กดปุ่ม OK
การสร้าง American Pizza • สร้าง American Pizza กับรสชาติของ pepperoni mozzarella และมะเขือเทศ • ผ่านการ cloning และการปรับเปลี่ยนรายละเอียดของ Margherita Pizza • เลือก Margherita Pizza • เลือกสร้าง clone • เพิ่มข้อจำกัดเพิ่มเติมให้กับ Americana Pizza • เพิ่ม Pepperoni Topping • กดปุ่ม OK
สร้าง American Hot Pizza และ Soho Pizza • American Hot Pizza มันจะเหมือนกับ American Pizza แต่มี Jalapeno Pepper Topping เพิ่ม • Soho Pizz จะเหมือนกัน Margherita Pizza แต่จะเพิ่ม Olive Topping และ Parmezan Topping
ให้ subclasses ของ Named Pizza เคลื่อนจากที่อื่นๆ • เลือก Margherita Pizza • กดปุ่ม “add all siblings” บน “Disjoints widget” จะทำให้ pizzas เคลื่อนที่จากที่อื่นๆ
การใช้ Reasoner • คำอธิบายของ ontology ใน OWL - DL สามารถประมวลผลโดย Reasoner • ไปตั้งค่าที่ owl เพื่อให้แน่ใจว่า OWL-DL ถูกเลือก • การให้บริการหลักที่นำเสนอโดย Reasoner คือการทดสอบหรือไม่ก็ 1 class เป็น subclass ของclass อื่น • โดยการดำเนินการทดสอบดังกล่าวในทุก classes เป็นไปได้สำหรับ Reasoner เพื่อคำนวณ ontology ลำดับชั้นของ classes ที่อ้างถึง • การให้เหตุผลในการให้บริการอีกประการหนึ่ง คือ การตรวจสอบความสอดคล้อง เพื่อตรวจสอบหรือไม่ก็เป็นไปได้สำหรับ class กรณีต่างๆ • คลาส A จะถือว่าจะไม่สอดคล้องกัน ถ้ามันไม่เป็น instances
Using Racer • เพื่อให้เหตุผลมากกว่า ontology ใน Protege - OWL ซึ่งเป็นไปตามมาตรฐาน DIG Reasoner ควรจะติดตั้งและเริ่มต้น • ใน tutorial นี้เราจะใช้ Racer • Download ได้ที่ : http://www.racer-systems.com/products/download/index.phtml • ดับเบิลคลิกที่ RacerProเพื่อเริ่มต้นการใช้ Racer
Invoking the reasoner • ต้องเริ่มต้น Racer ontology สามารถส่งไปยัง Reasoner โดยอัตโนมัติ การคำนวณจำแนกลำดับชั้นและยังตรวจสอบความสอดคล้องเชิงตรรกะของ ontology • ใน Protege ลำดับชั้นที่สร้าง class จะเรียกว่า asserted hierarchy ที่คำนวณอัตโนมัติโดย Reasoner จะเรียกว่า inferred hierarchy • ไปที่ OWL – classify taxonomy เพื่อเรียก Reasoner • ถ้า class ได้รับการจัดประเภทรายการใหม่แล้วชื่อ class จะปรากฏเป็นสีฟ้าในการสรุปลำดับชั้น • ไปที่ OWL ตรวจสอบความสอดคล้อง ซึ่งเรียกโดย reasoner • ถ้า class ได้รับการพบ inconsistent ไอคอนมันจะเป็นวงกลมสีแดง • การคำนวณ class อ้างถึงเป็นที่รู้จักกันในการจำแนก ontology
ความไม่สอดคล้องของ Class • เพื่อแสดงถึงการใช้งานของ Reasoner ในการตรวจสอบความไม่สอดคล้องกันใน ontologyเราจะสร้าง Probe Inconsistent Topping ขึ้นใน Class • เป็น subclass ของ Cheese Topping • เลือก Probe Inconsistent Topping ไปยืนยันเงื่อนไขของการเพิ่ม Classในระดับ Vegetable Topping แล้วเลือกกดตกลง • ไปที่ OWL เพื่อตรวจสอบความสอดคล้อง
การแยกประเภทของ ontology อีกครั้ง • หากต้องการดูส่วน Topping ที่ไม่สอดคล้องกัน
คำสั่งในการลบ • ระหว่าง Cheese Topping และ Vegetable Topping เพื่อดูว่าเกิดอะไรขึ้น • เลือก Cheese Topping • ไปที่ disjoint • เลือก Vegetable Topping คลิกขวาและ "ลบแถวที่เลือก" • แยกประเภทอนุกรมวิธาน • ความไม่สอดคล้องกันนั้นจะหายไป
การแก้ไข ontology • โดยการทำให้ Cheese Topping และ Vegetable Topping เคลื่อนจากแต่ละที่
แหล่งข้อมูล • 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/