Ontology Development 101: A Guide to Creating Your First Ontology

Download Report

Transcript Ontology Development 101: A Guide to Creating Your First Ontology

Ontology Development 101: A Guide to
Creating Your First Ontology
ทำำไมต้ องพัฒนำ ontology?
เหตุผลที่ตอ้ งพัฒนา ontology มีดงั นี้
• เพื่อที่จะแบ่งปันความรู้ความเข้าใจในโครงสร้างของข้อมูลระหว่างคน
หรื อตัวแทนซอฟต์แวร์ (software agents)
• เพื่อที่จะสามารถนำาองค์ความรู้ของโดเมนกลับมาใช้ใหม่ได้
• เพื่อสร้างสมมติฐานของโดเมนอย่างชัดเจน
• เพื่อแยกแยะองค์ความรู้ของโดเมนจากองค์ความรู ้เชิงปฏิบตั ิ
• เพื่อวิเคราะห์องค์ความรู้ของโดเมน
อะไรอยู่ใน Ontology ?
ในข้อกำาหนดของการปฏิบตั ิ การพัฒนา ontology นั้นประกอบไปด้วย
• การกำาหนดคลาสต่าง ๆ ใน ontology
• การจัดลำาดับคลาสต่าง ๆ ในอนุกรมวิธานลำาดับขั้น
(super class - subclass)
• การกำาหนดสล๊อตต่าง ๆ และการอธิบายค่าของสล๊อตเหล่านี้
• การกรอกค่าลงสล๊อต สำาหรับเหตุการณ์ต่างๆ (instances)
อะไรอยู่ใน Ontology ? (ต่ อ)
รูปที่ 1 แสดงคลาสและกรณี บางส่ วน และความสัมพันธ์ระหว่างคลาสในองค์ความรู ้เรื่ องไวน์ ให้
คลาสต่าง ๆ แทนด้วนสี ดาำ และเหตุการณ์ต่าง ๆ (instances) แทนด้วยสี แดง ลิ้งค์ที่ช้ ีจะอธิ บายถึง
ช่องต่าง ๆ และลิ้งค์ภายใน เช่น เป็ นกรณี ของ... และ เป็ นคลาสย่อยของ...
วิธีการสร้ างองค์ ความรู้ อย่ างง่ าย ๆ
แบ่งออกเป็ น 7 ขั้นตอน ดังนี้
ขั้นตอนที่1 กำาหนดโดเมน และขอบเขตของ ontology
กำาหนดด้ วยคำาถามด้ านความสามารถ (Competency questions)
- ลักษณะพิเศษอะไรของไวน์ที่มีผลในการพิจารณาเลือกไวน์?
- ไวน์ Bordeaux (บอร์โด) เป็ นไวน์แดงหรื อไวน์ขาว?
- ไวน์ Cabernet Sauvignon (คาเบอร์เน่ โซวินอง) จะเข้ากันได้ดีกบั อาหารทะเล
หรื อไม่?
- ไวน์อะไรที่เป็ นตัวเลือกที่ดีที่สุดในการทำาเนื้ อย่าง?
- ลักษณะพิเศษใดของไวน์ที่ส่งผลให้มนั มีความเหมาะสมกับอาหาร?
- กลิ่นหอมหรื อส่ วนประกอบที่เป็ นลักษณะพิเศษของไวน์จะเปลี่ยนไปตามปี ที่
กลัน่ เหล้าองุ่นหรื อไม่? เป็ นต้น
ขั้นตอนที่ 2 พิจารณานำา ontologies ทีม่ อี ยู่กลับมาใช้ อกี
ตัวอย่างเช่น อาจจะมีพ้ืนฐานความรู้ของไวน์ฝรั่งเศสอยูแ่ ล้ว ถ้าเราสามารถนำา
ความรู้น้ ี และ ontology มาเป็ นพื่นฐาน เราจะไม่ใช่แค่แบ่งประเภทของไวน์ฝรั่งเศษได้
เท่านั้น แต่เรายังสอบผ่านการแบ่งประเภทตามลักษณะของไวน์ที่ใช้แยกแยะและระบุ
ไวน์ ซึ่งรายการคุณสมบัติของไวน์อาจจะมีอยูบ่ นเว็บไซต์เชิงการค้า ที่ช่วยให้ลกู ค้าใช้
ในการพิจารณาเลือกซื้ อไวน์
ขั้นตอนที่ 3 กำรแจกแจงขอบเขตทีส่ ำ ำคัญใน ontology
ตัวอย่ ำงขอบเขตทีเ่ กีย่ วข้ องกับไวน์
- ประเภทของไวท์
- สี ของไวน์
- โรงกลัน่
- รสชาดของไวน์
ำ
- สถานที่จดั เก็บ
- ปริ มาณน้าตาล
ขั้นตอนที่ 4 กำาหนดคลาสและลำาดับชั้น
การพัฒนาลำาดับชั้นของคลาส
• Top-down หรื อ การพัฒนาจากบนลงล่าง เริ่ มจากการสร้างคลาส
ทัว่ ๆ ไปของไวน์ และค่อย ๆ ไล่ลงไปยังคลาสย่อย ๆ
• bottom-up หรื อ การพัฒนาจากล่างขึ้นบน จะเริ่ มต้นจากการ
กำาหนดคลาสย่อย ๆ แล้วค่อย ๆ ลำาดับชั้นขึ้นไปสร้างคลาสแม่
(superclass)
ขั้นตอนที่ 4 กำาหนดคลาสและลำาดับชั้น(ต่ อ)
จากรู ปจะแสดงลำาดับชั้นของคลาสในแต่ละชั้น
ขั้นตอนที่ 5 กำำหนดคุณสมบัติของคลำสและสล็อต (classes and slots)
ชนิดของคุณสมบัติของวัตถุทสี่ ำมำรถกลำยเป็ นสล็อตใน ontology
• คุณสมบัติ "ภายใน" เช่นรสชาดของไวน์
• คุณสมบัติ "ภายนอก" เช่น ชื่อของไวน์ และสถานที่ผลิตไวน์
• ส่ วนประกอบต่าง ๆ ถ้าวัตถุถกู ประกอบโครงสร้าง ส่ วนปรกอบเหล่านี้
สามารถป็ นได้ท้ งั ได้ทางกายภาพ และนามธรรม (เช่น สูตรของอาหาร)
• ความสัมพันธ์กบั บุคคลอื่น ๆ คือ ความสัมพันธ์ระหว่างบุคคลที่เป็ นสมาชิก
ของคลาสกับรายการอื่น ๆ (เช่น ผูผ้ ลิตไวน์แสดงความสัมพันธ์ระหว่างไวน์กบั
โรงกลัน่ ไวน์และที่มาขององุ่นที่ใช้ทาำ ไวน์)
ขั้นตอนที่ 6 กำรกำำหนดมุมมองของสล็อต
สล๊อตนั้นสามารถมีมุมมองที่แตกต่างกันในการอธิบายชนิดของค่า, จำานวนของ
ค่า (การกำาหนดจำานวน หรื อ cardinality) และคุณลักษณะอื่น ๆ ของค่าที่สล๊อตจะ
สามารถมีได้
ตัวอย่ ำง เช่น
ค่าในสล๊อตของชื่อ (เช่น "ชื่อไวน์") เป็ นสตริ งหนึ่ง นัน่ คือ ชื่อ เป็ นสล๊อตที่มีชนิด
เป็ นสตริ ง (String) สล๊อตของผู้ผลิต (เช่น "โรงกลัน่ ไวน์ที่ผลิตไวน์เหล่านี้") สามารถ
มีได้หลายค่าและค่าเหล่านั้นเป็ นเหตุการณ์ (instances) ของคลาสไวน์ นัน่ คือ ผูผ้ ลิต
เป็ นสล๊อตที่มีชนิดของค่าเป็ นเหตุการณ์ (instance) กับไวน์ที่เป็ นคลาส
ขั้นตอนที่ 7 การสร้ างเหตุการณ์ หรือกรณี (instances)
การสร้างเหตุการณ์ (instances) ของคลาสต่าง ๆ ในลำาดับชั้น การกำาหนด
เหตุการณ์ส่วนบุคคลของคลาสมีข้นั ตอนดังนี้
(1) เลือกคลาส,
(2) สร้างเหตุการณ์ (instance) ของคลาสนั้น ๆ
(3) กรอกค่าลงในช่อง
Body: Light
Color: Red
Flavor: Delicate Tannin level: Low
Grape: Gamay (แกมเมย์) (instance ของคลาส Wine grape)
Maker: Chateau-Morgon (ชาโตว์ มอร์กอน)(instance ของคลาส Winery )
Region: Beaujolais (โบโชเล) (instance ของคลาส Wine-Region )
Sugar: Dry (ระดับความหวาน: จืด/ไม่หวาน)
ขั้นตอนที่ 7 การสร้ างเหตุการณ์ หรือกรณี (instance) (ต่ อ)
อธิบายถึงตัวอย่างของคลาส Beaujolais (โบโชเล) ซึ่ง instance ก็คือ Chateaux
Morgon (ชาโตว์ มอร์กอน) Beaujolais จากพื้นที่ Beaujolais, ผลิตภัณฑ์ที่ทาำ มาจาก
องุ่น Gamay (แกมเมย์), โดยโรงกลัน่ เหล้าองุ่น Chateau Morgon
กำรกำำหนด classes และโครงสร้ ำงลำำดับชั้น (class hierarchy)
1.การรับประกันความถูกต้องของโครงสร้างลำาดับชั้น
2.การวิเคราะห์ลาำ ดับญาติ (siblings) ในคลาสแบบลำาดับชั้น
3.การสื บทอดแบบหลายลำาดับชั้น
4.เมื่อไหร่ ที่ตอ้ งเพิ่มคลาสใหม่(หรื อไม่เพิ่ม)
5.คลาสใหม่ หรื อคุณสมบัติของค่า?
6.เป็ นเหตุการณ์ (instance) หรื อคลาส ?
7.การจำากัดขอบเขต
8.คลาสย่อยแบบไม่ต่อเนื่อง
กำรกำำหนด classes และโครงสร้ ำงลำำดับชั้น (class hierarchy) (ต่ อ)
1.กำรรับประกันควำมถูกต้ องของโครงสร้ ำงลำำดับชั้น
1.1 ควำมสั มพันธ์ แบบ “is-a”
คือ คลาส A จะเป็ นคลาสย่อย (subclass) ของคลาส B ถ้าทุก ๆ เหตุการณ์ของคลาส A นั้นเป็ น
เหตุการณ์ของคลาส B ด้วย อย่างเช่น Chardonnay เป็ นคลาสย่อยของไวน์ขาว
1.2 ไวน์ ไม่ ได้ เป็ นคลำสย่ อยของไวน์ ท้งั หมด
เพราะไวน์เป็ นชื่อเรี ยก ไม่ได้เป็ นชนิดหนึ่งของไวน์ท้ งั หมด ทางออกที่ดีที่สุดในการหลีกเลี่ยงความ
ผิดพลาดดังกล่าวคือต้องเลือกใช้ชื่อเอกพจน์ หรื อพหูพจน์อย่างใดอย่างหนึ่งในการตั้งชื่อคลาส
1.3 คุณสมบัตถิ ่ ำยทอดของควำมสั มพันธ์ แบบลำำดับชั้น
ถ้ า B เป็ นคลาสย่ อยของ A และ C เป็ นคลาสย่ อยของ B แล้ ว C เป็ นคลาสย่ อยของ A ด้ วย
กำรกำำหนด classes และโครงสร้ ำงลำำดับขั้น (class hierarchy) (ต่ อ)
1.4 วิวฒ
ั นำกำรของลำำดับชั้นของคลำส
ลำาดับชั้นของคลาสที่สอดคล้องกันอาจจะกลายเป็ นความท้าทายในการพัฒนาขอบเขตความรู ้
(domain) เช่น กลุ่มไวน์กหุ ลาบที่จดั อยูใ่ นกลุ่มย่อยไวน์แดง แต่ปัจจุบนั มีการทำาไวท์กหุ ลาบขาว
เราเลยต้องมีสร้างกลุ่มไวน์กหุ ลาบที่มี่สีขาวจัดเป็ นกลุ่มย่อยของไวน์กหุ ลาบ
1.5 คลำสและชื่อของคลำส
คลาสแสดงถึงแนวคิดของขอบเขตความรู ้ (domain) และไม่มีคาำ ใดๆ ที่จะอธิบายถึงแนวคิด
เหล่านี้ได้ ชื่อของคลาสอาจเปลี่ยนแปลงได้ถา้ หากเราเลือกคำาศัพท์เฉพาะทางที่ไม่เหมือนกัน แต่
ขอบเขตของมันจะแสดงถึงวัตถุบนโลกที่มีอยูต่ ามความเป็ นจริ ง
กำรกำำหนด classes และโครงสร้ ำงลำำดับชั้น (class hierarchy) (ต่ อ)
1.6 กำรหลีกเลีย่ งวงจรของคลำส
เมื่อบางคลาสของ A เป็ นคลาสย่อยของ B และในขณะเดียวกัน B ก็เป็ นคลาสแม่
(superclass) ของคลาส A การสร้างวงจรในลำาดับชั้นเปรี ยบเสมือนได้ประกาศว่า คลาส
A เท่ากับ คลาส B ซึ่งอธิ บายได้วา่ ทุกเหตุการณ์ของ A คือเหตุการณ์ของ B และ
เหตุการณ์ท้ งั หมดของ B คือ เหตุการณ์ของ A ด้วย ความจริ งแล้ว เมื่อ B เป็ นคลาสย่อย
ของ A เหตุการณ์ท้ งั หมดของ B ต้องเป็ นเหตุการณ์ท้ งั หมดของคลาส A และในทางกลับ
กันเมื่อ A เป็ นคลาสย่อยของ B เหตุการณ์ท้ งั หมดของ A ต้องเป็ นเหตุการณ์ของ B ด้วย
เช่นเดียวกัน
กำรกำำหนด classes และโครงสร้ ำงลำำดับชั้น (class hierarchy) (ต่ อ)
2.การวิเคราะห์ siblings ในคลาสแบบลำาดับชั้น
2.1 ญาติ (Siblings) ในลำาดับชั้นของคลาส
ญาติท้ งั หมดในลำาดับชั้น (ยกเว้น root) จะต้องอยูใ่ นระดับเดียวกันตามหลักการทัว่ ๆ ไป
ตัวอย่ างเช่ น
ไวน์ขาว (White wine) และ Chardonnay (ชาร์โดเนย์) ไม่ควรจะเป็ นคลาสย่อยของคลาส
เดียวกัน (คือคลาสของไวน์ (Wine) และ ไวน์ขาว (White wine) เป็ นแนวคิดที่กว้างกว่า
ำ าบรรทัดเดียวกัน
Chardonnay (ชาร์โดเนย์) ดังนั้นสายญาติน้ นั ควรจะแสดงแนวคิดที่อยูต่ ่ากว่
กำรกำำหนด classes และโครงสร้ ำงลำำดับชั้น (class hierarchy) (ต่ อ)
2.2 จำำนวนเท่ ำไหร่ ทมี่ ำกเกินไป และจำำนวนเท่ ำไหร่ ทนี่ ้ อยเกินไป
- ถ้าคลาสมีคลาสย่อยโดยตรง (direct subclass) เพียงหนึ่งคลาส อาจจะทำาให้เกิดรู ปแบบที่
เป็ นปัญหาหรื อ ontology ไม่สมบูรณ์
-ถ้ามีคลาสย่อยโดยตรง (direct subclass) มากกว่า12 คลาสย่อยต่อคลาส อาจจะต้องเพิม่ ลำาดับ
ชั้นที่อยูร่ ะหว่างกลาง
กำรกำำหนด classes และโครงสร้ ำงลำำดับชั้น (class hierarchy) (ต่ อ)
ตัวอย่างเช่น ไวน์ Red Burgundy (เบอร์กนั ดี) ก็คือ ไวน์ Côtes d’Or (โก๊ตดอร์)
สมมติวา่ เราต้องการที่จะแสดงเพียงแค่ชนิดที่เป็ นที่นิยมของไวน์ Burgundy เราควรจะ
สร้างคลาสไวน์ Red Burgundy แล้วตามด้วยคลาสย่อย Côtes d’Or แต่ในตัวอย่างของเรา
นั้น ไวน์ Red Burgundy และ ไวน์ Côtes d’Or มีค่าที่เหมือนกัน (หมายถึง ไวน์ Red
Burgundy ก็คือไวน์ Côtes d’Or และไวน์ Côtes d’Or ก็คือไวน์ Red Burgundy) การสร้าง
คลาส Cotes d’Or นั้นจึงไม่จาำ เป็ นและไม่ควรจะเพิ่มข้อมูลใหม่ใด ๆ ลงไปใน instance
ถ้าเราลองใส่ ไวน์ Côtes Chalonnaise (โก๊ต ชาลอนแนส) ที่เป็ นไวน์ที่มีราคาถูกกว่าไวน์
Burgundy ลงไปใต้คลาส Côtes d’Or จะทำาให้เกิดสองคลาสย่อยของคลาส Red Burgundy
คือ คลาสย่อย Cotes d’Or และคลาสย่อย Cotes Chalonnaise
กำรกำำหนด classes และโครงสร้ ำงลำำดับชั้น (class hierarchy) (ต่ อ)
3. การสื บทอดจากหลาย ๆ คลาส
ระบบการแทนความรู ้(knowledge-representation systems) ส่ วนใหญ่น้ นั ยอมให้มี
การสื บทอดได้หลาย ๆ คลาส คือ คลาสหนึ่งสามารถเป็ นคลาสย่อยของหลาย ๆ คลาส
นัน่ เอง สมมติวา่ เราอยากจะสร้างคลาสแยกของไวน์หวาน (dessert wines) แล้วไวน์ Port
นั้นเป็ นได้ท้ งั ไวน์แดง (red wine) และไวน์หวาน (dessert wine) ดังนั้น เราจะกำาหนด
คลาสของไวน์ Port ให้มีคลาสแม่ (superclass) สองคลาสนัน่ ก็คือ คลาสไวน์แดง และ
คลาสไวน์หวาน เหตุการณ์ (instances) ทั้งหมดของคลาสไวน์ Port จะเป็ นเหตุการณ์ของ
คลาสไวน์แดง และไวน์หวานทั้งคู่ คลาส ไวน์ Port จะสื บทอดสล๊อตต่าง ๆ ของมันจาก
ทั้งสองคลาสบรรพบุรุษ ดังนั้นมันก็จะสื บทอดค่า SWEET จากสล๊อต Suger ของคลาส
ไวน์หวาน และค่าสี จากสล๊อต tannin levelของคลาสไวน์แดง
กำรกำำหนด classes และโครงสร้ ำงลำำดับชั้น (class hierarchy) (ต่ อ)
4. เมือ่ ไหร่ ทตี่ ้ องเพิม่ คลำสใหม่ (หรือไม่ เพิม่ )?
เป็ นเรื่ องยากที่ตอ้ งตัดสิ นใจ เมื่อมีการสร้างคลาสใหม่ จึงมีหลักเกณฑ์ที่มาช่วยใน
การช่วยตัดสิ นใจในการสร้างคลาสใหม่ในลำาดับชั้นคลาสย่อย ๆ ของคลาสทัว่ ๆ ไป
โดยที่คลาสย่อย (Subclass) ของคลาสโดยทัว่ ไปนั้น จะต้อง
(1) มีการเพิ่มคุณสมบัติที่คลาสแม่ (superclass)ไม่มี
(2 ) มีการกำาหนดที่แตกต่างจากคลาสย่อยอื่น ๆ ของคลาสแม่ (superclass)
(3) มีส่วนร่ วมในความสัมพันธ์อื่นที่แตกต่างจากคลาสแม่ (superclass)
กำรกำำหนด classes และโครงสร้ ำงลำำดับชั้น (class hierarchy) (ต่ อ)
5. คลำสใหม่ หรือค่ ำคุณสมบัติ ?
ถ้าความแตกต่างนั้นมีความสำาคัญใน domain และเราคิดว่า object ต่าง ๆ มีค่าที่
ต่างกัน โดยแยกแยะจากชนิดที่ต่างกันของ object ดังนั้นเราก็ควรจะสร้างคลาสใหม่
เพื่อความแตกต่าง โดยพิจารณาคุณสมบัติแต่ละชนิดของคลาสเพื่อใช้ประโยชน์ใน
การตัดสิ นใจว่า ควรที่จะต้องขึ้นชั้นใหม่หรื อไม่ ซึ่ งสมาชิกของค่าในแต่ละคลาสนั้น
ไม่ควรที่จะเปลี่ยนแปลงบ่อย ๆ
ตัวอย่างเช่น ไวน์แช่เย็นนั้นไม่ควรนำามาเป็ นคลาสใน ontology คุณสมบัติแช่เย็นนั้น
ควรจะเป็ นแค่เพียง attribute ของไวน์ที่อยูใ่ นขวด เพราะ เหตุการณ์ (instance)ของ
ไวน์แช่เย็นนั้นเป็ นเหตุการณ์ที่สามารถสิ้ นสุดได้ (ซึ่งก็คือ หายเย็นแล้ว นัน่ เอง)
กำรกำำหนด classes และโครงสร้ ำงลำำดับชั้น (class hierarchy) (ต่ อ)
6.เป็ นเหตุกำรณ์ (instance) หรือคลำส?
การตัดสิ นว่าเป็ นคลาสใน ontology หรื อเป็ นเหตุการณ์ (instance)นั้นขึ้นอยูก่ บั ว่าอะไรคือ
แอพลิเคชัน่ ที่มีอยูข่ อง ontology การตัดสิ นใจว่าคลาสจะสิ้ นสุ ดตรงไหน และเหตุการณ์จะเริ่ มตรง
ำ ่สุดของหน่วยย่อยในระบบ ระดับชั้นของหน่วยย่อยจะอยู่
ไหนด้วยการตัดสิ นว่าอะไรเป็ นชั้นที่ต่าที
ในลำาดับที่ถกู กำาหนดไว้โดยแอพลิเคชัน่ ที่มีอยูข่ อง ontology
ถ้าเราต้องการที่จะจัดเก็บรายการสิ นค้าไวน์ของร้านอาหารในฐานความรู ้ (knowledge base) ของ
ไวน์กบั อาหารที่เข้าคู่กนั ขวดแต่ละขวดของไวน์อาจจะเป็ นเหตุการณ์ (instances) ในฐานความรู ้
ของเรา และในทำานองเดียวกัน ถ้าเราต้องการบันทึกคุณสมบัติที่ต่างกันของระยะเวลาการบ่มไวน์
ระยะเวลาการบ่มไวน์กจ็ ะเป็ นเหตุการณ์ (instance) ในฐานความรู ้
ในหลักการอื่น ๆ สามารถเปลี่ยนเหตุการณ์ (instances) เฉพาะบางเหตุการณ์ไปเป็ นเซตของคลาส
ได้ ถ้ าแนวความคิดเป็ นรู ปแบบลำาดับชั้นของธรรมชาติ ดังนั้นเราก็ควรจะทำาให้ มนั เป็ นคลาส
กำรกำำหนด classes และโครงสร้ ำงลำำดับชั้น (class hierarchy) (ต่ อ)
7.กำรจำำกัดขอบเขต
ontology นั้นไม่ควรจะมีขอ้ มูลที่เป็ นไปได้ท้ งั หมดเกี่ยวกับโดเมน คือ เราไม่จาำ เป็ นต้อง
กำาหนดขอบเขตให้มากเกินไปกว่าที่ตอ้ งใช้ในแอพลิเคชัน่ ของเรา
สำาหรับตัวอย่างของไวน์และอาหาร เราไม่ได้ตอ้ งการจะรู ้วา่ ใช้กระดาษอะไรทำาฉลากสิ นค้า หรื อ
จะปรุ งอาหารที่ใช้กุง้ ได้อย่างไร เช่นเดียวกับ ontology ที่ไม่จาำ เป็ นต้องมีคุณสมบัติที่เป็ นไปไม่ได้
ของคลาสในลำาดับขั้น
ใน ontology ของเรานั้น เราไม่ได้ใส่ คุณสมบัติท้ งั หมดที่ไวน์หรื ออาหารอาจจะมี เราแค่แสดงคุณ
สมบัตที่เด่น ๆ ของคลาสของสิ่ งที่อยูใ่ น ontology ของเรา ถึงแม้วา่ หนังสื อเกี่ยวกับไวน์จะต้องการ
บอกเราถึงขนาดขององุ่น แต่เราก็ไม่ได้ใส่ ความรู ้น้ ีเข้าไป
กำรกำำหนด classes และโครงสร้ ำงลำำดับชั้น (class hierarchy) (ต่ อ)
8.คลำสย่ อยแบบไม่ ต่อเนื่อง
หลาย ๆ ระบบยอมให้เราระบุอย่างชัดเจนว่า หลาย ๆ คลาสนั้นไม่ต่อเนื่องกัน คลาส
ต่าง ๆ จะไม่ต่อเนื่องถ้ามันไม่มีเหตุการณ์ (instance)ใด ๆ ร่ วมกัน เช่น
ไวน์หวานและไวน์ขาวที่อยูใ่ น Ontology ของเรานั้นไม่ต่อเนื่องกัน เพราะมีหลาย ๆ ไวน์ที่
เป็ นเหตุการณ์ (instance) ของทั้งคู่ ในขณะเดียวกัน คลาสไวน์แดง (red wine) และไวน์
ขาว (white wine)ก็ไม่ต่อเนื่องกัน เพราะไม่มีไวน์ชนิดใด ที่สามารถเป็ นได้ท้ งั สี ขาว และสี
แดงในเวลาเดียวกัน การระบุวา่ คลาสต่าง ๆ นั้นไม่ต่อเนื่องกันจะทำาให้ระบบ ontology
สมบูรณ์ข้ ึน ถ้าเราประกาศว่าคลาสไวน์แดง (red wine) และคลาสไวน์ขาว (white wine)
นั้นไม่ต่อเนื่องกัน แล้วต่อมาเราสร้างคลาสที่เป็ นคลาสย่อย (subclass) ของทั้ง Riesling (ค
ลาสย่อยของไวน์ขาว) และ Port (คลาสย่อยของไวน์แดง) ระบบก็จะสามารถบอกได้วา่ มัน
เป็ นการออกแบบที่ไม่ถกู ต้อง
การกำ
า
หนดรายละเอี
ย
ดของคุ
ณ
สมบั
ต
ิ
1 สล๊ อต (slot) ทีต่ รงกันข้ ำม
ค่าของสล๊อต (slot) นี้อาจขึ้นอยูก่ บั ค่าของช่องอื่นๆ ตัวอย่างเช่น ถ้าไวน์ผลิตมาจาก โรงกลัน่
ไวน์ และโรงกลัน่ ไวน์กเ็ ป็ นผูผ้ ลิตไวน์น้ ี สิ่ งนี้จะมีอยูส่ องความสัมพันธ์ คือ ผูส้ ร้างและผูผ้ ลิต
เรี ยกว่า ความสัมพันธ์แบบผกผัน การจัดเก็บข้อมูลนั้นจะเป็ นไปใน “ทิศทางเดียวกัน”
2 ค่ ำเริ่มต้ น
หลาย ๆระบบที่มีขอบเขตเป็ นพื้นฐาน (frame-based systems) ยอมให้ใส่ รายละเอียดของ
ค่าที่เป็ นมาตรฐานในสล๊อตได้ ถ้าค่าของสล๊อตนั้น ๆ เป็ นเหมือน ๆ กันสำาหรับเหตุการณ์
(instance) ส่ วนใหญ่ของคลาส เราสามารถกำาหนดให้ค่านี้เป็ นค่ามาตรฐานของสล๊อต ดังนั้น เมื่อ
มีการสร้างเหตุการณ์ใหม่ของคลาสที่มีสล๊อตนี้ ข้ ึนมา ระบบก็จะเติมค่ามาตรฐานนี้ให้โดย
อัตโนมัติ โดยเราสามารถเปลี่ยนค่าไปเป็ นค่าอื่น ๆ ได้
ตัวอย่างเช่น full-bodied wines เราสามารถเติมคำาว่า full ให้เป็ นค่ามาตรฐานสำาหรับความเข้มข้น
ของไวน์
อะไรอยู่ในชื่อ
คุณลักษณะต่อไปนี้ของระบบแทนความรู ้ที่มีผลต่อทางเลือกของการตั้งชื่อ
ระบบมีชื่อของคลาส, สล๊อต, หรื อเหตุการณ์ (instances)ที่เหมือนกันหรื อเปล่า?
ถ้าใช่ ระบบจะยอมให้มีคลาสและสล๊อตเป็ นชื่อเดียวกันหรื อไม่?
●
●
ระบบนั้นสนใจตัวพิมพ์เล็ก-ใหญ่หรื อไม่ (case-sensitive)?
●
เครื่ องหมายคัน่ อะไรที่ระบบยอมให้อยูใ่ นชื่อได้บา้ ง? เช่น คอมม่า, ดอกจันทร์ , ฯลฯ
แหล่ งข้ อมูลอืน่ ๆ
ปัจจุบนั นักวิจยั ไม่ได้ให้ความสำาคัญเพียงแค่การพัฒนา ontology เท่านั้น แต่ยงั ให้ความ
สำาคัญกับการวิเคราะห์ ontology อีกด้วย เช่นเดียวกับที่ ontology ต่าง ๆ ก็มีเพิ่มมากขึ้นและ
ถูกนำาไปใช้มากขึ้น และเครื่ องมือที่จะช่วยในการวิเคราะห์ ontology ก็จะมีเพิม่ มากขึ้น
Chimaera (McGuinness et al. 2000) ได้จดั เตรี ยมเครื่ องมือสำาหรับการวิเคราะห์ ontology
การวิเคราะห์ที่ Chimaera ได้ทาำ นั้นประกอบไปด้วยการตรวจสอบความถูกต้องทางตรรกะ
ของ ontology และ การวินิจฉัยข้อผิดพลาดในการออกแบบ ontology
นักออกแบบ ontology อาจจะต้องการทำาการวินิฉยั ของ Chimaera มากกว่า การค่อย ๆ
พัฒนา ontology เพือ่ กำาหนดโครงสร้างในการดำาเนินการออกแบบ ontology
ข้ อสรุป
ในคู่มือนี้ ได้อธิ บายถึงวิธีการพัฒนา ontology เพือ่ อธิ บายระบบที่มีขอบเขตเป็ นพื้นฐาน
(frame-based systems) มีการลำาดับขั้นตอนในกระบวนการพัฒนา ontology และจัดการ
ปัญหาที่ซบั ซ้อนของการกำาหนดคลาสตามลำาดับขั้นและคุณสมบัติ (properties) และ
เหตุการณ์ (instances) ของคลาสต่าง ๆ
อย่างไรก็ตาม หลังจากที่ทาำ ตามเงื่อนไขและคำาแนะนำาต่าง ๆ หนึ่งในสิ่ งที่สาำ คัญที่สุดที่ตอ้ งจำา
ก็คือ “ไม่ได้มี ontology เดียวที่ถกู ต้องสำาหรับโดเมนใด ๆ” การออกแบบ ontplogy เป็ น
กระบวนการสร้าง และไม่มีทางที่สอง ontology ที่ถกู ออกแบบโดยบุคคลที่ไม่ใช่คนเดียวกัน
จะมีรูปแบบที่เหมือนกัน แอพลิเคชัน่ ต่าง ๆ ที่มีอยูข่ อง ontology และความเข้าใจของนัก
ออกแบบ และมุมมองของโดเมนจะมีผลต่อทางเลือกในการออกแบบ ontology อย่างแน่นอน
“The proof is in pudding” (หลักฐานอยูใ่ นขนมพุดดิ้ง) เปรี ยบเหมือนกับเราสามารถกำาหนด
คุณภาพของ ontology ของเราได้ เพียงแค่ใช้มนั ในแอพลิเคชัน่ ที่เราออกแบบเอง
ิ ในกลุม
สมาชก
่
50531450
50531818
50531931
50532068
50532723
50532853
50532945
50534116
50534215
50534321
นางสาวกาญติมา
นายวณพล
นายสุทธิศักดิ์
นางสาวอัจฉรา
นางสาวจินดา
นายนฤดล
นางสาวรดา
นายชวี ะ
นางสาวนันทิกา
นางรณภพ
หลวงอุดร
อินทร์สวุ รรณ์
นิรมล
เรืองศาสตร
ต ้องทำากิจ
แย ้มโภคา
ภาสริ ะกุล
คล่องดี
นามนนท์
ตันวุฒบ
ิ น
ั ฑิต