คู่มือเรียน protege จัดทำโดย นางสาวชลิตา เล็กชะอุ่ม รหัสนิสิต 51535204

Download Report

Transcript คู่มือเรียน protege จัดทำโดย นางสาวชลิตา เล็กชะอุ่ม รหัสนิสิต 51535204

ค่ ูมือเรี ยน protege
จัดทำำโดย
นำงสำวชลิตำ เล็กชะ
อุม
่
รหัสนิสิต 51535204
กลุ่ม 3401
Protege คืออะไร
- Protege เป็ น โอเพ่นซอส ที่ใช้ หลักการสร้ างโดเมนและ
การประยุกต์ใช้ knowledge-based ด้ วย โปรแกรม
Protege
- พิสยั ของ Ontologies ได้ จากการจำาแนกประเภท,
database schemas ไปสูท่ ฤษฏีที่เป็ นจริ งอย่างเต็มรูป
แบบ(กฎหรื อหลักเกณฑ์ที่เป็ นที่ยอมรับ)
Protege คืออะไร(ต่ อ)
- ontologies ขณะนี ้มีศนู ย์กลางในการประยุกต์ใช้
จำานวนมาก เช่น วิธีการเข้ าสูค่ วามรู้ทาง
วิทยาศาสตร์ (scientific knowledge portals)
การจัดการข้ อมูลและการบูรณาการระบบ(information
management and integration systems) การ
ค้ าขายทางอิเล็กทรอนิกส์และการบริ การเว็บ(electronic
commerce and web services)
การติดตัง้ Protege
-เข้ าไปที่ http://protege.stanford.edu/doc/
owl/getting-started.html
(version 3.x)
ดาวโหลด
protege
- ทำาการติดตัง้ Protege OWL(Web Ontology
Language) ระหว่างการติดตังให้
้ เลือกอ็อฟชัน่ Basic
+OWL
การติดตัง้ Protege(ต่ อ)
- ศึกษำรำยละเอียดเพิ่มเติมที่
http://protege.stanford.edu/doc/owl/
getting-started.html
Protege ประกอบด้ วยสองวิธีหลัก ซึ่ง
สองวิธีหลักของการสร้ างแบบจำาลอง
ontologies มีดังนี ้
- Frame-based
- OWL(Web Ontology Language)
องค์ ประกอบของ Frame-based
- คลาส(Classes)
- ช่องทางสำาหรับคุณสมบัตแิ ละความสัมพันธ์ (Slots
for properties and relationships)
- ค่าคงตัวสำาหรับคลาส(Instances for class
)
องค์ ประกอบของ OWL
(Web Ontology Language)
- คลาส(Classes)
- คุณสมบัติ (Properties)
- ค่าคงที่(Instances)
- ความเป็ นเหตุเป็ นผล(reasoning)
การสร้ าง OWL Ontology
- สร้ าง protege ใหม่
- ไปที่ File เลือก New Project –เลือก OWL/
RDF files – Ontology URI
(http://www.pizza.com/ontologies/pizza.owl)
– OWL DL – Properties View
การสร้ าง OWL Ontology(ต่ อ)
- ได้ Protege-OWL ที่วา่ งมา จากนันก็
้ สามารถสร้ าง
โปรเจ็กได้
- บันทึกไว้ ในแฟ้มของคุณชื่อ pizza.owl
กำรสร้ำ ง ชื่อ คลำส
- ไปที่แทบคลำส
- คลำสของต้นไม้จะว่ำงอยู่ ประกอบด้วย
คลำสหนึ่งเรียก owl:Thing - - ภำยในจะมี
subclass ต่ำงอยู่
- สร้ำง subclasses โดยสร้ำง Pizza
PizzaTopping และ PizzaBase ให้เป็น
subclasses ของ owl:Thing
กำรสร้ำ ง ชื่อ คลำส(ต่อ )
- ชือ
่ ที่ใช้ประชุม ประกอบด้วย
- ชือ
่ ธรรมดำทั่วไป(no special naming
convention)
- ชือ
่ ที่ไม่เปลี่ยนแปลง(consistency)
การสร้ าง Disjoint classes
วีธีการที่ทาำ ให้ PizzaTopping and PizzaBase
เป็ น disjoint ของ class Pizza
- เลือก class Pizza
- กดปุ่ ม add siblings บนเครื่ องมือ Disjoint classes
การสร้ าง Disjoint classes(ต่ อ)
- เพิ่ม PizzaBase and PizzaTopping
- เลือกคลาส PizzaTopping
- เพิ่ม Pizza and PizzaBase ที่ disjoint class
กำรสร้ำ งกลุ่ม ของคลำส
- สร้ำง ThinAndCrisyBase และ
DeepPanBase เป็น subclasses ของ
PizzaBase ให้แต่ละอันมีdisjointed
กำรสร้ำ งกลุ่ม ของ
คลำส(ต่อ )
- คลิกขวำที่เมำส์ตรง PizzaBase แล้วเลือก
create subclasses
- ตำมด้วยตัวช่วยสร้ำงที่สร้ำง disjoint
สำำหรับสองคลำสนี้
มันจะประหยัดเวลำเมื่อมีควำมต้องกำร
สร้ำง disjoint คลำส
จำำนวนมำกๆ
การสร้ าง subclasses ของ
PizzaTopping
เลือก PizzaTopping
- สร้ าง subclaesses ได้ แก่ MeatTopping,
VegetableTopping, CheeseTopping
และSeafoodTopping โดยที่แต่ละคลาสนี ้จะต้ องมี
disjoint
การสร้ าง subclasses ของ
PizzaTopping(ต่ อ)
เลือกคลาส MeatTopping
- เพิ่ม disjoint ให้ subclasses ได้ แก่
SpicyBeefTopping, PepperoniTopping,
SalamiTopping และ HamTopping
การสร้ าง subclasses ของ
PizzaTopping(ต่ อ)
เลือก VegetableTopping
- เพิ่ม disjoint ให้ subclasses ได้ แก่
TomatoTopping, OliveTopping,
MushroomTopping, PepperTopping,
OnionTopping, CaperTopping
การสร้ าง disjoint subclasses
เลือก PepperTopping
- เพิ่ม disjoint ให้ subclasses ได้ แก่
RedPepperTopping,
GreenPepperTopping,
JalapenoPepperTopping
การสร้ าง disjoint subclasses(ต่ อ)
เลือก CheeseTopping
- เพิ่ม disjoint ให้ subclasses ได้ แก่
MozzarellaTopping, ParmezanTopping
การสร้ าง disjoint subclasses(ต่ อ)
เลือก SeafoodTopping
- เพิ่ม disjoint ให้ subclasses ได้ แก่
TunaTopping, AnchovyTopping and
PrawnTopping
คุณสมบัติ OWL(Web Ontology
Language)
คุณสมบัต ิ OWL(Web Ontology
Language) แสดงควำมสัม พัน ธ์ร ะหว่ำ ง
2 object
มีสองคุณสมบัตส
ิ ำำคัญ คือ
- Object properties: ลิงค์ object กับ object
- datatype properties: ลิงค์ object กับ XML
Schema datatype หรือ rdf:litera
l
คุณสมบัติ OWL(Web Ontology
Language)(ต่ อ)
- OWL(Web Ontology Language) มีคณ
ุ สมบัติ
อื่น ๆ ถ้ าจะใช้ จะต้ องมีการเพิ่มคำาอธิบายที่สำาคัญที่
คลาสนันๆ
้ ให้ แต่ละบุคคลและแต่ละคุณลักษณะ
กำรสร้ำ งคุณ ลัก ษณะของ
object
- เปลี่ยนไปที่แทบ Properties
- ใช้ ปมุ่ Create Object Property” สร้ าง object
property ขึ ้นมาใหม่
- เปลี่ยนชื่อเป็ น hasIngredient
การสร้ าง sub-properties
- เลือก Select hasIngredient property
- เพิ่ม hasTopping และ hasBase ที่
subproperties
คุณ สมบัต ิผ กผัน
- แต่ละ object property อาจจะตรงกันกับ inverse
property
- ถ้ าบาง property เชื่อมโยงบุคคล a กับ บุคคล b แล้ ว
inverse property จะเชื่อมโยงระหว่าง บุคคล a กับ
บุคคล b
การสร้ าง inverse properties
- สร้ำง object property ใหม่ชอ
ื่
isIngredientOf
- กดปุ่ม Set inverse property
- เลือก hasIngredient
แล้วควำมสัมพันธ์กำรผกผันมีกำร
ตั้งค่ำเสร็จสิ้น
การสร้ าง inverse properties(ต่ อ)
เลือก hasBase
- สร้ าง isBaseOf ให้ เป็ น inverse property ของ
hasBase
การสร้ าง inverse properties(ต่ อ)
เลือก hasTopping
- สร้ าง isToppingOf เป็ น inverse property
Functional Properties
- ถ้ำ property เป็น functional สำำหรับ
บุคคลที่กำำหนด สำมำรถมีเพียงอย่ำง
เดียวที่เป็นบุคคลสำำคัญที่มีควำมสัมพันธ์
โดย property นี้
- สำำหรับกำรกำำหนดโดเมนช่วงจะต้องไม่
ซำ้ำกัน
Functional properties มีค่ำเพียงแค่ค่ำ
Inverse Functional Properties
- ถ้ำ property เป็น inverse functional
เมื่อนั้น property ของ inverse
property เป็น functional
- สำำหรับกำรกำำหนดช่วง โดเมนจะต้อง
ไม่ซำ้ำกัน
Functional กับ inverse
functional properties
การส่ งผ่ าน Propertive
(Transitive Properties)
- ถ้ า Propertive เป็ น Transitive และ
Propertive มีความสัมพันธ์จาก a ไป b และจาก b
ไป c สามารถสรุปได้ วา่ a มีความสัมพันธ์กบั c โดย
ผ่าน P
คุณสมบัตสิ มมาตร (Symmetric
Properties)
- ถ้ า Properties สมมาตร และ Properties มี
ความสัมพันธ์จาก a ไป b แล้ ว b มีความสัมพันธ์ไป a
โดยผ่าน P
การทำา hasIngredient ส่ งผ่ าน
Properties
- เลือก hasIngredient property
- tick การส่งผ่านค่าใน tick box
- เลือก isIngredientOf property ตรวจสอบให้
แน่ใจว่า transitive tick box นันถู
้ ก tick แล้ ว
การทำา hasBase property
functional
- เลือก hasBase property
- Tick functional ใน tick box
- OWL-DL ไม่อนุญาตให้ datatype properties
ที่มีการส่งผ่าน, symmetric หรื อมี inverse
properties.
คุณ สมบัต ิข องโดเมนและช่ว ง
กำรทำำ งำน
- โดยจะมีคุณสมบัติของการเชื่อมโยงจากโดเมนไปยังช่วง
ของการทำางานของ OWL
- Web Ontology Language (OWL) ใช้โดเมน
และช่วงที่เป็ นหลักการในการให้เหตุผล
E 12: วิธีการระบุช่วงของ hasTopping
ทีต่ ้ องการ
- เลือก hasTopping
- กดปุ่มเลือกช่วงที่ต้องกำร
- เลือก PizzaTopping
E 12: วิธีการระบุช่วงของ hasTopping
ทีต่ ้ องการ(ต่ อ)
- เลือกปุ่ม OK
- จะปรำกฏ PizzaTopping ในช่วงรำยกำร
เมื่อหลำยคลำสที่มีกำรเพิ่มช่วงซึง่ เป็น
ตัวแทนของกำรร่วมของคลำสทั้งหมด
E 13:การกำาหนด Pizza ใหเเป็ นโดเมนทีม่ ี
คุณสมบัตขิ อง hasTopping
- กำรเลือก hasTopping
- กดปุ่มในช่วง
- เลือก Pizza
- เลือกปุ่ม OK
- Pizzaจะปรำกฏในรำยชือ
่ โดเมน
E 14: การกำาหนดโดเมนและช่ วงสำ าหรับ
คุณสมบัติ ของ isToppingOf
- เลือกคุณสมบัติของ Topping
- ตั้งค่าคุณสมบัติของโดเมน isToppingOf เพื่อเลือก
PizzaTopping
- ตั้งค่าช่วงของคุณสมบัติ isToppingOf ในการเลือก
Pizza
E15 : การระบุโดเมนและช่ วงสำ าหรับคุณสมบัติ
ของ hasBase และคุณสมบัตขิ อง
isBaseOf ทีม่ คี ุณสมบัตติ รงกันข้ าม
- การเลือกคุณสมบัติที่ hasBase
- กำาหนดโดเมนเป็ น Pizza
- ระบุช่วงเป็ น PizzaBase
- เลือกคุณสมบัติที่ isBaseOf
E15 : การระบุโดเมนและช่ วงสำ าหรับคุณสมบัติ
ของ hasBase และคุณสมบัตขิ อง
isBaseOf ทีม่ คี ุณสมบัตติ รงกันข้ าม(ต่ อ)
- กำาหนดโดเมนเป็ น PizzaBase
- กำาหนดช่วงเป็ น Pizza
กำรสร้ำ งขอบเขตของ
คุณ สมบัต ิ
- Web Ontology Language คุณสมบัติที่ใช้
ในกำรสร้ำงขอบเขต
- ขอบเขตจะถูกใช้เพือ
่ กำร จำำกัด เฉพำะ
รำยอยู่ในคลำสเดียวกัน
- ขอบเขต Quantifier(ขอบเขตของตัวบ่ง
ปริมำณ)
Existential quantifier (
)
กำรสร้ำ งขอบเขตของ
คุณ สมบัต ิ( ต่อ )
- ขอบเขต cardinality(จำำนวนสมำชิกใน
เซ็ตทำงคณิตศำสตร์ที่ให้มำ)
- ขอบเขต hasValue
E 16: การเพิม่ ขอบเขต ให้ กบั Pizza
เป็น กำรเพิ่ม ขอบเขต ให้ก บ
ั Pizzaซึ่ง
ระบุว ่ำ จะต้อ งมี PizzaBase เป็น องค์
ประกอบด้ว ย
- เลือก pizza
- เลือกตัวเลือกที่จำำเป็นเพือ
่ สร้ำงเป็น
เงื่อนไขที่จำำเป็น
- เลือกสร้ำงตัวช่วยเพือ
่ สร้ำงขอบเขต
E 16: การเพิม่ ขอบเขต ให้ กบั Pizza(ต่ อ)
- เลือก HasBaseเป็นคุณสมบัติที่ถูก จำำกัด
- เลือก someValueFrom เป็นขอบเขต
ใส่ลงใน ฟิลล์ PizzaBase
การเพิ่มขอบเขตุ ให้กบั Pizza
ปรากฏดังรู ป
E18 : การสร้ างชนิดทีแ่ ตกต่ างกันของพิซซ่ า
(Topping ของพิซซ่ าทีม่ ีหน้ าตาต่ างกันออก
ไป)
- สร้าง Subclass ของ pizza เรี ยกว่า NamedPizza
และ subclass ของ NamedPizza เรี ยกว่า
MargheritaPizza
- เพิ่มความคิดเห็นเพือ่ MargheritaPizza : Pizza ที่มี
เพียง Mozarella และ Tomato toppings
E 19 : การเพิม่ ขอบเขต ในส่ วนของ
MargheritaPizza
การระบุว่า MargheritaPizza มีอย่ างน้ อยหนึ่ง
MozzarellaTopping
- เลือก MargheritaPizza
- ไปที่ "ยืนยันเงื่อนไข(Asserted Conditions) " สร้าง
ข้อจำากัด ใหม่
E 19 : การเพิม่ ขอบเขต ในส่ วนของ
MargheritaPizza(ต่ อ)
- เลือก someValueFrom
- เลือก hasTopping เป็ นคุณสมบัติที่จะถูก จำากัด
- ใส่ MozzarellaTopping ลงไป
- กดปุ่ ม OK
E 19 : การเพิม่ ขอบเขต ในส่ วนของ
MargheritaPizza(ต่ อ)
จะปรำกฏกำรเพิม
่ ขอบเขตดังรูป
E 20 : การเพิม่ ขอบเขตในส่ วนของ
MargheritaPizza
- เป็ นการระบุวา่ MargheritaPizza มี
TomatoTopping อย่างน้อยหนึ่งตัวเลือก
- เลือก MargheritaPizza
- ไปที่"ยืนยันเงื่อนไข (Asserted Conditions) "สร้าง
ข้อจำากัด ใหม่ เลือกsomeValueFrom
E 20 : การเพิม่ ขอบเขตในส่ วนของ
MargheritaPizza(ต่ อ)
- เลือก hasTopping ซึ่ งเป็ นคุณสมบัติที่จะถูก จำากัด
- ใส่ TomatoTopping ลงไป
- กดปุ่ ม OK
E 21 : การสร้ าง AmericanPizza
- สร้าง AmericanPizza ให้มีรสชาติของ
pepperoni, mozzarella และTomato
- การโคลนและการปรับเปลี่ยนรายละเอียดของ
MargheritaPizza
- เลือก MargheritaPizza
E 21 : การสร้ าง AmericanPizza(ต่ อ)
- เลือก Select create clone
- เพิ่มข้อจำากัด เพิ่มเติมเพื่อ AmericanaPizza เพิ่ม
PepperoniTopping
- กดปุ่ ม OK
E 22 : การสร้ าง
AmericanHotPizza และ
SohoPizza
- AmericanHotPizza จะเหมือนกับ
AmericanaPizza แต่มี
JalapenoPepperTopping เป็ นองค์ประกอบ
ส่ วน SohoPizza คล้ายกับ MargheritaPizza แต่มี
เพิม่ เติมตรง OliveTopping และ
ParmezanTopping
E 23 : การสร้ าง subclasses ของ
NamedPizza เพือ่ กำาหนดให้ มคี วามแตกต่ าง
จากคลาสอืน่ ๆ
- เลือก MargheritaPizza
- กด"add all siblings"ปุ่ มที่"Disjoints widget"เพื่อ
ให้ พิซซ่ามีเอกลักษณ์ที่แตกต่างจากแต่ละรายการอื่น ๆ
การใช้ Reasoner(การใช้ เหตุผล)
-Ontology อธิบายไว้ใน OWL - DL สามารถ
ประมวลผลโดย Reasoner(การใช้เหตุผล)
โดยไปที่ต้ งั ค่า Owl เพื่อตรวจสอบว่าได้มีการเลือก DL
ไว้แล้วหรื อไม่
การใช้ Reasoner(การใช้ เหตุผล)(ต่ อ)
- หลักการทำางานที่นาำ เสนอโดย Reasoner คือการ
ทดสอบหรื อการไม่เป็ นคลาสที่เป็ น subclass ของคลาส
อื่น
- โดยการดำาเนินการทดสอบดังกล่าวในคลาสนั้นมันเป็ นไป
ได้สาำ หรับ Reasoner เพื่อคำานวณ ontology ลำาดับ
ชั้นของคลาสที่อา้ งถึง
การใช้ Reasoner(การใช้ เหตุผล)(ต่ อ)
- หลักกำรให้เหตุผลอีกประกำรหนึ่งคือ
ตรวจสอบควำมสอดคล้อง – เพื่อตรวจ
สอบหรือ ทดสอบควำมเป็นไปได้ของ
คลำสในแต่ละกรณี
- คลำส A จะถือว่ำจะไม่สอดคล้องกันถ้ำ
ไม่มีควำมเกีย
่ วข้องกับกรณีใดๆ
การใช้ Racer (การแข่ งขัน)
- เพื่อให้เหตุผลมากกว่า ontology ใน Protege OWLซึ่งเป็ นไปตามมาตรฐาน DIG Reasoner ควรที่
จะติดตั้งและเริ่ มต้นการใช้งาน
- ดาวน์โหลดได้ที่: http://www.racersystems.com/products/download/index.pht
ml
- ดับเบิ้ลคลิ๊ก “ RacerPro to start Racer”
การเรียกใช้ Reasoner
การเริ่ มต้น Racer ซึ่งเป็ น ontologyที่สามารถส่ งไป
ยัง Reasoner จะคำานวณอัตโนมัติโดยจำาแนกลำาดับชั้นและ
ยังตรวจสอบความสอดคล้องเชิงตรรกะของ ontologyใน
Protege, ลำาดับชั้นที่สร้างขึ้นด้วยตนเองจะเรี ยกว่าลำาดับ
ชั้นของการยืนยัน ที่คาำ นวณโดยอัตโนมัติและที่สร้างขึ้ นโดย
Reasoner จะเรี ยกว่าลำาดับชั้นของอนุมาน
การเรียกใช้ Reasoner(ต่ อ)
ไปที่OWL -- การจำาแนกอนุกรมวิธาน – จะถูกเรี ยกว่า
Reasoner
ถ้าคลาสได้รับการจัดประเภทรายการใหม่แล้วชื่อคลาสจะ
ปรากฏในสี ฟ้าในลำาดับชั้นที่อา้ งถึง
วิธีการเรี ยก Reasoner
E24: คลาสทีไ่ ม่ สอดคล้ องกัน
- เพื่อแสดงถึงการใช้งานของ Reasoner ในการตรวจ
สอบความไม่สอดคล้องกันใน ontology ที่เราจะสร้าง
คลาสProbeInconsistentTopping
- ซึ่ งเป็ น subclass ของ CheeseTopping
E24: คลาสทีไ่ ม่ สอดคล้องกัน(ต่ อ)
- เลือก ProbeInconsistentTopping ไปที่
เงื่อนไขการยืนยันที่จะเพิม่ คลาสที่มีชื่อให้เลือก
VegetableTopping แล้วกดตกลง
- ไปที่OWL – ตรวจสอบความสอดคล้อง
E24: คลาสทีไ่ ม่ สอดคล้องกัน(ต่ อ)
●
แสดงได้ ดงั รูป
E25 : การแบ่ง ontology อีกครั้ง
หากต้องการดู ProbeInconsistentTopping ที่ไม่
สอดคล้องกัน
E26: การลบคำาสั่ งที่ disjoint
- การทำางานระหว่าง CheeseTopping และ
VegetableTopping เพื่อดูวา่ เกิดอะไรขึ้น
- เลือก CheeseTopping
-ไปที่ disjoint ส่ วนหนึ่ง
-เลือก VegetableTopping, คลิกขวาและ" Delete
the selected row (ลบแถวที่เลือก)"
-จัดอนุกรมวิธาน
-คลาสที่ไม่สอดคล้องกันนั้นถูกลบออกไป
E27: การแก้ ไข ontology
- คือการทำาให้ CheeseTopping และ
VegetableTopping มีความต้องการที่แตกต่างจากส่ วน
อื่นๆ ที่มี
แหล่ง ข้อ มูล
- Protege Ontology Libraries
http://protegewiki.stanford.edu/index.php/Protege
_Ontology_Library
- เอกสารการบรรยาย Protege
http://www.co-ode.org/resources/tutorials/
- Protege Website
http://protege.stanford.edu/doc/users.html
http://protege.stanford.edu/