Protege Protege คืออะไร Protege เป็น โอเพ่นซอส ที่ใช้หลักการสร้าง

Download Report

Transcript Protege Protege คืออะไร Protege เป็น โอเพ่นซอส ที่ใช้หลักการสร้าง

Protege
Protege
คือProtege
อะไร
เป็ น โอเพ่นซอส ที่ใช้หลักการสร้างโดเมนและ
การประยุกต์ใช้ knowledge-based ด้วย Protege
พิสยั ของ Ontologies ได้ จากการจำาแนกประเภท,
database schemas ไปสูท่ ฤษฏีที่เป็ นจริ งอย่างเต็ม
รูปแบบ(กฎหรื อหลักเกณฑ์ที่เป็ นที่ยอมรับ)
ontologies ขณะนี้มีศูนย์กลางในการประยุกต์ใช้
จำานวนมาก เช่น ทางเข้าสู่ ความรู ้ทางวิทยาศาสตร์
(scientific knowledge portals) การจัดการข้อมูลและการ
บูรณาการระบบ(information management and integration
systems)
การค้าขายทางอิเล็กทรอนิกส์และการบริ การเว็บ(electronic
commerce and web services)
การติดตัง้ Protege
การติดตั้งทำาได้โดยขั้นตอนต่อไปนี้
1.ไปที่
http://protege.stanford.edu/doc/owl/getting-started.htmlและ
ทำาการดาวน์โหลด protege (version 3.x)
2. ทำาการติดตั้ง Protege OWL(Web Ontology Language)
ระหว่างการติดตั้งให้เลือกอ็อฟชัน่ Basic+OWL
3. ศึกษารายละเอียดเพิม่ เติมที่
http://protege.stanford.edu/doc/owl/getting-started.html
หลักการสร้างแบบจำาลองโดยใช้ Pro
มีสองวิธีหลักของการสร้ างแบบจำาลอง ontologies ดังนี ้
1. Frame-based
2.OWL(Web Ontology Language)
แต่ละส่วนประกอบด้ วย user interface ดังนัน้
1.Frame-based
Frame-based ซึ่งจะมีองค์ ประกอบดังนี ้
- คลาส(Classes)
- ช่องทางสำาหรับคุณสมบัติและความสัมพันธ์ (Slots for
properties and relationships)
- ค่าคงตัวสำาหรับคลาส(Instances for class)
1.Frame-based(ต่อ)
การตั้งชื่อคลาส
ไปที่แทบคลาส
จะเห็นว่าคลาสของต้นไม้จะว่างอยู่ ประกอบด้วยคลาสหนึ่งคลาส
เรี ยกว่า owl:Thing ภายในจะมี subclass ต่างๆอยู่
สร้าง subclasses โดยให้สร้าง subclasses ที่มีชื่อว่า
Pizza PizzaTopping และ PizzaBase ให้เป็ น subclasses ของ
owl:Thing
1.Frame-based(ต่อ)
ชื่อที่ใช้ประชุม
- ชื่อธรรมดาทัว่ ไป(no special naming convention)
- ชื่อที่ไม่เปลี่ยนแปลง(consistency)
OWL(Web Ontology Language)
องค์ประกอบของ OWL(Web Ontology Language) มีดงั นี ้
- คลาส(Classes)
- คุณสมบัติ (Properties)
- ค่าคงที่(Instances)
- ความเป็ นเหตุเป็ นผล(reasoning)
ขัน
้ ตอนการสร้าง OWL Ontol
มีข้นั ตอนดังนี้
- เริ่ม protege
- ไปที่เมนู File เลือก New Project
- เลือก OWL/RDF files – Ontology URI
(http://www.pizza.com/ontologies/pizza.owl) – OWL DL –
Properties View
- ได้ Protege-OWL ที่ว่างมา จากนัน้ ก็สามารถสร้ างโปรเจ็คได้
- บันทึกไว้ ในแฟ้มของคุณชื่อ pizza.owl
การทำา Disjoint
classes
ขั้นตอนการทำามีดงั นี้
1. เลือก class Pizza
2. กดปุ่ ม add siblings บนเครื่ องมือ Disjoint classes
3. เพิ่ม PizzaBase and PizzaTopping
4.เลือกคลาส PizzaTopping
5.เพิ่ม Pizza and PizzaBase ที่ disjoint class
การสร้างกลุ่มของ
คลาส
ขั้นตอนการทำามีดงั นี้
1. สร้ าง ThinAndCrisyBase และ DeepPanBase เป็ น
subclasses ของ PizzaBase ให้ แต่ละอันต้ องมีdisjointed
2. คลิกขวาที่เมาส์ตรง PizzaBase แล้ วเลือก create subclasses
3. ตามด้ วยตัวช่วยสร้ างที่สร้ าง 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
Select SeafoodTopping
เพิ่ม disjoint ให้ subclasses ได้ แก่
TunaTopping, AnchovyTopping and
PrawnTopping
คุณสมบัติ OWL(Web
Ontology
Language
คุณสมบัติ OWL(Web
Ontology Language))
แสดงความสัมพันธ์ระหว่าง 2 อ๊อฟเจ๊ก
มีสองคุณสมบัติสาำ คัญ คือ
-Object properties: ลิงค์ object กับ object
-datatype properties: ลิงค์ object กับ XML
Schema datatype หรื อ rdf:literal
OWL(Web Ontology Language) มี
คุณสมบัติอื่น ๆ ถ้ าจะใช้ จะต้ องมีการ
เพิ่มคำาอธิบายที่สำาคัญที่คลาสนันๆ
้
แต่บคุ คลและคุณลักษณะ
สร้างคุณลักษณะของอ๊อฟเจ๊ก
- เปลี่ยนไปที่แทบ 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
- จากนั้นความสัมพันธ์การผกผันมีการตั้งค่า
เลือก hasBase
- สร้ าง isBaseOf ให้ เป็ น inverse
property ของ hasBase
- ทำาไม isBaseOf เป็ น property
ย่อย ของ isIngredientOf
เลือก hasTopping
- สร้ าง isToppingOf เป็ น inverse property
- ทำาไม isToppingOf เป็ น subproperty
ของ isIngredientOf
Functional Properties
ถ้ า property เป็ น functional สำ าหรับบุคคลทีก่ าำ หนด
สามารถมีเพียงอย่างเดียวทีเ่ ป็ นบุคคลสำ าคัญทีม่ คี วาม
สั มพันธ์ โดย property นี้
สำาหรับการกำาหนดโดเมนช่วงจะต้องไม่ซากั
้ำ น
Functional properties มีค่าเพียงแค่ค่าเดียว
Inverse Functional Properties
ถ้า property เป็ น inverse functional เมื่อนั้น
property ของ inverse property เป็ น functional
สำาหรับการกำาหนดช่วง โดเมนจะต้องไม่ซากั
้ำ น
Functional กับ inverse functional properties
โดเมน
Functional
Property
ช่วง
สำาหรับการกำาหนด ช่วงจะต้ องไม่ซ้ำา
โดเมน
กัน
ตัวอย่าง
hasFather: A
hasFather B, A
hasFather C B=C
InverseFunctional โดเมนจะต้ องไม่ซ้ำา สำาหรับการกำาหนด hasID: A hasID B,
กัน
ช่วง
Property
C hasID B A=C
การส่ งผ่ าน 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) ใช้โดเมนและ
ช่วงที่เป็ นหลักการในการให้เหตุผล
วิธีการระบุช่วงของ hasTopping ทีต่ ้ องการ
ขั้นตอนการระบุช่วงมีดงั นี้
1. การเลือก hasTopping
กดปุ่ มเลือกช่วงที่ตอ้ งการ
2. เลือก PizzaTopping
3. เลือกปุ่ ม OK
จะปรากฏ PizzaTopping ในช่วงรายการ
- เมื่อหลายคลาสที่มีการเพิม่ ช่วงซึ่งเป็ นตัวแทนของการ
ร่ วมของคลาสทั้งหมด
การกำาหนด Pizza ใหเเป็ นโดเมนทีม่ คี ุณสมบัตขิ อง
hasTopping
- การเลือก hasTopping
กดปุ่ มในช่วง
เลือก Pizza
เลือกปุ่ ม OK
Pizzaจะปรากฏในรายชื่อโดเมน
เมื่อหลายคลาสที่จะถูกเพิม่ เป็ นโดเมนและโดเมนเหล่านี้
จะรวมกันของคลาสดังกล่าว
การกำาหนดโดเมนและช่ วงสำ าหรับคุณสมบัติ ของ
isToppingOf
- เลือกคุณสมบัติของ Topping
- การตั้งค่าคุณสมบัติของโดเมน isToppingOf เพื่อเลือก
PizzaTopping
- ตั้งค่าช่วงของคุณสมบัติ isToppingOf ในการเลือก
Pizza
การระบุโดเมนและช่ วงสำ าหรับคุณสมบัตขิ อง hasBase
และคุณสมบัตขิ อง isBaseOf ทีม่ คี ุณสมบัตติ รงกันข้ าม
- การเลือกคุณสมบัติที่ hasBase
กำาหนดโดเมนเป็ น Pizza
ระบุช่วงเป็ น PizzaBase
- การเลือกคุณสมบัติที่ isBaseOf
กำาหนดโดเมนเป็ น PizzaBase
กำาหนดช่วงเป็ น Pizza
การสร้ างขอบเขตุของคุณสมบัติ
Web Ontology Language คุณสมบัติที่ใช้ในการสร้างขอบเขต
- ขอบเขตจะถูกใช้เพื่อ การ จำากัด เฉพาะรายอยูใ่ นคลาสเดียวกัน
- ขอบเขตQuantifier(ขอบเขตของตัวบ่งปริ มาณ)
Existential quantifier
Universal quantifier
- ขอบเขต cardinality(จำานวนสมาชิกในเซ็ตทางคณิ ตศาสตร์ที่
ให้มา)
- ขอบเขต hasValue
การเพิม่ ขอบเขตุ ให้ กบั Pizza
เป็ นการเพิม่ ขอบเขต ให้กบั Pizzaซึ่ งระบุวา่ จะต้องมี PizzaBase
เป็ นองค์ประกอบด้วย
- เลือก pizza
- เลือกตัวเลือกที่จาำ เป็ นเพื่อสร้างเป็ นเงื่อนไขที่จาำ เป็ น
- เลือกสร้างตัวช่วยเพื่อสร้างขอบเขต
เลือก HasBaseเป็ นคุณสมบัติที่ถูก จำากัด
เลือก someValueFrom เป็ นขอบเขต
ใส่ ลงใน ฟิ ลว์ PizzaBase
การเพิม่ ขอบเขตุ ให้กบั Pizza
การสร้ างชนิดทีแ่ ตกต่ างกันของพิซซ่ า (Topping ของพิซซ่ า
ทีม่ ีหน้ าตาต่ างกันออกไป)
- สร้าง Subclass ของ pizza เรี ยกว่า NamedPizza และ
subclass ของ NamedPizza เรี ยกว่า MargheritaPizza
- เพิ่มความคิดเห็นเพื่อ MargheritaPizza : Pizza ที่มีเพียง
Mozarella และ Tomato toppings
การเพิม่ ขอบเขตุ ในส่ วนของ MargheritaPizza
- การระบุวา่ MargheritaPizza มีอย่างน้อยหนึ่ง MozzarellaTopping
เลือก MargheritaPizza
ไปที่ "ยืนยันเงื่อนไข(Asserted Conditions) " สร้างข้อจำากัด
ใหม่
เลือก someValueFrom
เลือก hasTopping เป็ นคุณสมบัติที่จะถูก จำากัด
ใส่ MozzarellaTopping ลงไป
กดปุ่ ม OK
ดังภาพ
การเพิม่ ขอบเขตุในส่ วนของ MargheritaPizza
ในการระบุวา่ MargheritaPizza มี TomatoTopping
อย่างน้อยหนึ่งตัวเลือก
- เลือก MargheritaPizza
ไปที่"ยืนยันเงื่อนไข (Asserted Conditions) "สร้างข้อ
จำากัด ใหม่ เลือกsomeValueFrom
เลือก hasTopping ซึ่งเป็ นคุณสมบัติที่จะถูก จำากัด
ใส่ TomatoTopping ลงไป
กดปุ่ ม OK
การสร้ าง AmericanPizza
- สร้าง AmericanPizza ให้มีรสชาติของ pepperoni, mozzarella
และTomato
- การโคลนและการปรับเปลี่ยนรายละเอียดของ MargheritaPizza
เลือก MargheritaPizza
เลือก Select create clone
เพิ่มข้อจำากัด เพิ่มเติมเพื่อ AmericanaPizza เพิ่ม PepperoniTopping
กดปุ่ ม OK
การสร้ าง AmericanHotPizza และ SohoPizza
- AmericanHotPizza เหมือนจะเป็ นเช่นเดียวกับ
AmericanaPizza แต่มี JalapenoPepperTopping เป็ นองค์
ประกอบ
- SohoPizza คล้ายกับ MargheritaPizza แต่มีเพิม่ เติมตรง
OliveTopping และ ParmezanTopping
การสร้ าง subclasses ของ NamedPizza เพือ่ กำาหนดให้ มีความ
แตกต่ างจากคลาสอืน่ ๆ
เลือก MargheritaPizza
กด"add all siblings"ปุ่ มที่"Disjoints widget"เพื่อให้ พิซซ่ามี
เอกลักษณ์ที่แตกต่างจากแต่ละรายการอื่น ๆ
การใช้ Reasoner(การใช้ เหตุผล)
Ontology อธิบายไว้ใน OWL - DL สามารถประมวลผลโดย
Reasoner(การใช้เหตุผล)
โดยไปที่ต้ งั ค่า Owl เพื่อตรวจสอบว่าได้มีการเลือก DL ไว้แล้ว
หรื อไม่
หลักการทำางานที่นาำ เสนอโดย Reasoner คือการทดสอบหรื อการ
ไม่เป็ นคลาสที่เป็ น subclass ของคลาสอื่น
โดยการดำาเนินการทดสอบดังกล่าวในคลาสนั้นมันเป็ นไปได้
สำาหรับ Reasoner เพื่อคำานวณ ontology ลำาดับชั้นของคลาสที่
อ้างถึง
หลักการให้เหตุผลอีกประการหนึ่งคือตรวจสอบความ
สอดคล้อง – เพื่อตรวจสอบหรื อ ทดสอบความเป็ นไปได้ของ
คลาสในแต่ละกรณี
คลาส A จะถือว่าจะไม่สอดคล้องกันถ้าไม่มีความเกี่ยวข้องกับ
กรณี ใดๆ
การใช้ Racer (การแข่งขัน)
เพื่อให้เหตุผลมากกว่า ontology ใน Protege - OWLซึ่งเป็ นไป
ตามมาตรฐาน DIG Reasoner ควรที่จะติดตั้งและเริ่ มต้นการ
ใช้งาน
ในการสอน วิธีการ racer จะใช้
ดาวน์โหลดได้ที่:
http://www.racer-systems.com/products/download/index.phtml
ดับเบิ้ลคลิ๊ก “ RacerPro to start Racer”
การเรียกใช้ Reasoner
การเริ่ มต้น Racer ซึ่งเป็ น ontologyที่สามารถส่ งไปยัง
Reasoner โดยอัตโนมัติคาำ นวณการจำาแนกลำาดับชั้นและ
ยังตรวจสอบความสอดคล้องเชิงตรรกะของ ontology
ใน Protege, ลำาดับชั้นที่สร้างขึ้นด้วยตนเองจะเรี ยกว่า
ลำาดับชั้นของการยืนยัน ที่คาำ นวณโดยอัตโนมัติและที่สร้าง
ขึ้นโดย Reasoner จะเรี ยกว่าลำาดับชั้นของอนุมาน
ไปที่OWL -- การจำาแนกอนุกรมวิธาน – จะถูกเรี ยกว่า
Reasoner
ถ้าคลาสได้รับการจัดประเภทรายการใหม่แล้วชื่อคลาสจะ
ปรากฏในสี ฟ้าในลำาดับชั้นที่อา้ งถึง
ไปที่OWL -- ตรวจสอบความสอดคล้อง -- เพื่อที่จะ
เรี ยก Reasoner
ถ้าคลาสที่ได้รับพบความไม่สอดคล้องกัน ไอคอนจะเป็ น
วงกลมสี แดง
การคำานวณลำาดับ คลาสอ้างถึงเป็ นที่รู้จกั ในการจำาแนก
Ontology
วิธีการเรี ยก Reasoner
คลาสทีไ่ ม่ สอดคล้องกัน
เพื่อแสดงถึงการใช้งานของ Reasoner ในการตรวจสอบ
ความไม่สอดคล้องกันใน ontology ที่เราจะสร้าง
คลาสProbeInconsistentTopping
- ซึ่ งเป็ น subclass ของ CheeseTopping
- เลือก ProbeInconsistentTopping ไปที่เงื่อนไข
การยืนยันที่จะเพิม่ คลาสที่มีชื่อ
ให้เลือก
ดังรู ป
VegetableTopping แล้วกดตกลง
- ไปที่OWL – ตรวจสอบความสอดคล้อง
การแบ่ ง ontology อีกครั้ง
หากต้ องการดู ProbeInconsistentTopping ทีไ่ ม่ สอดคล้ องกัน
การลบคำาสั่ งที่ disjoint
การทำางานระหว่าง CheeseTopping และ VegetableTopping เพื่อดูวา่
เกิดอะไรขึ้น
- เลือก CheeseTopping
-ไปที่ disjoint ส่ วนหนึ่ง
-เลือก VegetableTopping, คลิกขวาและ" Delete the selected row
(ลบแถวที่เลือก)"
-จัดอนุกรมวิธาน
-คลาสที่ไม่สอดคล้องกันนั้นถูกลบออกไป
การแก้ ไข ontology
คือการทำาให้ CheeseTopping และ
VegetableTopping มีความต้องการที่แตกต่างจาก
ส่ วนอื่นๆ ที่มี
แหล่ งข้ อมูล
Protege Ontology Libraries
http://protegewiki.stanford.edu/index.php/Prote
ge_Ontology_Library
เอกสารการบรรยาย Protege
http://www.co-ode.org/resources/tutorials/
Protege Website
http://protege.stanford.edu/doc/users.html
http://protege.stanford.edu/
จัดทำาโดย
นางสาว อารดา บุตรรัตน์ รหัสนิสิต 51535631
เอก วิทยาการคอมพิวเตอร์ ภาค พิเศษ