Protege Tutorial th

Download Report

Transcript Protege Tutorial th

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
disjoint classes
สร้ างกลุ่มของ 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
domain
range
example
Functional
Property
For a given
domain
Range is
unique
hasFather: A hasFather
B, A hasFather C B=C
InverseFunctiona
lProperty
Domain is
unique
For a given
range
hasID: A hasID B, C
hasID B A=C
คุณสมบัติ 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
o Existential quantifier ( )
o 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.racersystems.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
Invoke the reasoner
ความไม่ สอดคล้องของ 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/