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/