ตัวอย่างเช่น

Download Report

Transcript ตัวอย่างเช่น

Ontology Development 101:
A Guide to Creating Your
First Ontology
1 ทำไมต้ องพัฒนำ ontology ?
ในปี ที่ผา่ นมา การพัฒนา Ontology ได้มีการกาหนดข้อตกลงที่ชดั เจนขึ้น ในส่วนของ
โดเมนและความสัมพันธ์ ในกลุ่มของผูพ้ ฒั นา (Gruber 1993) – การพัฒนา ontology ได้
เปลี่ยนจากขอบเขตของ Artificial-Intelligence ไปสู่ขอบเขตของเครื่ องคอมพิวเตอร์ของ
ผูพ้ ฒั นา Ontology กลายมาเป็ นสิ่ งพื้นฐานบน World Wide Web โดย Ontology
ทาไมบางคนต้องการที่จะพัฒนา ontology? เหตุผลบางประการคือ :
- การแบ่งปันความเข้าใจร่ วมกันของโครงสร้างของข้อมูลของผูใ้ ช้หรื อ
ตัวแทนซอฟต์แวร์(agents)
- เพื่อให้สามารถนาโดเมนความรู้มาใช้ใหม่
- เพื่อให้สมมติฐานโดเมนชัดเจน
- เพื่อแยกความรู้จากโดเมน ออกจากความรู้จากการปฏิบตั ิ
- การวิเคราะห์โดเมนความรู้
Ontology ส่วนใหญ่มกั จะไม่มีเป้ าหมายในตัวเอง การพัฒนา ontology
เกี่ยวข้องกันกับการกาหนดเซตของข้อมูลและโครงสร้างสาหรับโปรแกรมอื่นที่ใช้
วิธีการแก้ปัญหา, การประยุกต์ใช้งานโดเมนอิสระและตัวแทน Software (Software
Agent) ใช้ Ontology และฐานความรู้สร้างจาก ontology และฐานความรู้ที่สร้างจาก
ข้อมูลที่เป็ น ontology ตัวอย่างเช่น ในบทความนี้พวกเราได้พฒั นา Ontology ของไวน์ ,
อาหาร และส่วนผสมของอาหารที่เข้ากันได้กบั ไวน์ Ontology นี้สามารถนาไปใช้
ประโยชน์ได้ใน Application พื้นฐานของอันใน ชุดเครื่ องมือการจัดการร้านอาหาร
(ภัตตาคาร) หนึ่ง Application ควรจะนาเสนอไวน์สาหรับเมนูของแต่ละวัน
2. อะไรอยู่ใน ontology ?
ในปัญญาประดิษฐ์ ได้มีการนาเอา ontology ไปบรรจุไว้ คานิยามเหล่านี้กม็ ี
สิ่ งหนึ่งที่แตกต่างกันออกไป จุดประสงค์ในการแนะนา ontology นี้มีรูปแบบที่ชดั เจน
คาอธิบายแนวคิดในโดเมน (class(บางครั้งเรี ยกว่าแนวคิด)) คุณสมบัติของแนวคิด
การอธิบายคุณสมบัติและคุณลักษณะต่างๆของแนวคิด และการถูกกาหนดภายใน
กรอบแคบๆ ontology รวมกับกลุ่มของตัวอย่างของคลาส นามาสร้างเป็ นฐานความรู้
ในความเป็ นจริ ง มีการหาเส้นทางที่จะไปถึงจุดสิ้นสุดของ ontology และการเริ่ มต้น
จากความรู้พ้ืนฐาน
คลาสส่วนมากจะมีจุดสนใจอยูท่ ี่ ontology คลาสจะอธิบายความคิดใน
โดเมน ยกตัวอย่างเช่น คลาสของไวน์ จะบ่งบอกถึงไวน์ท้งั หมด และจะเจาะจงที่
ประเภทของไวน์ เช่นไวน์ Bordeaux ซึ่งเป็ นตัวแทนของประเภทของไวน์ Bordeaux
ซึ่งคลาสแม่ จะสามารถมี subclass ที่แสดงถึงแนวความคิดที่เฉพาะเจาะจงมากกว่า
superclass เราสามารถแบ่งคลาสของไวน์ท้งั หมดเป็ น ไวน์แดง, ไวน์ขาว, ไวน์โรส
นอกจากนี้ยงั สามารถแบ่งคลาสของไวน์เป็ นแบบที่ทาให้มีชีวิตชีวา และไวน์ที่ไม่มี
ชีวิตชีวา
ในด้านการปฏิบตั ิพฒั นา ontology ประกอบด้วย :
- กาหนดคลาสใน ontology
- จัดเตรี ยมคลาสต่างๆ เป็ นกลุ่มตามลาดับ (คลาสแม่-คลาสลูก)
- กาหนดช่อง และคาอธิบาย ที่จะใส่ลงในช่องนั้น
- ใส่ค่าในแต่ละช่องสาหรับแต่ละกรณี
เราสามารถสร้างฐานความรู้ โดยกาหนดจากกรณี ของแต่ละคลาส โดยการใส่ค่าข้อมูล
และเพิ่มช่องของกฎ
รู ปที่ 1 คลาสต่าง, อินสแตนต่างๆ และความสัมพันธ์ระหว่าง ขอบข่ายของไวน์ เราใช้เส้น
สี ดาสาหรับคลาสต่างๆ และเส้นสี แดงสาหรับอินสแตน เราใช้เส้นในการแสดงช่อง และ
การเชื่อมต่อภายใน เช่น อินสแตน-ของ และ คลาสย่อย-ของ
3.กระบวนกำรพืน้ ฐำนของ Knowledge-Engineering
ในอดีตนั้นถ้าพูดถึงเรื่ องนี้ คงไม่มีวิธีการหรื อกระบวนการใดที่จะสามารถพัฒนา
Ontologies ให้ตอบโจทย์ได้ดีที่สุด ดังนั้นเราจึงได้ปรึ กษากันถึงผลประโยชน์ที่จะ
ได้รับถ้าทาให้เรื่ องดังกล่าวบรรลุผล และได้ทาการนาเสนอหนึ่งในกระบวนการที่
อาจจะสามารถตอบโจทย์ดงั กล่าวได้ เพื่อนาไปวิเคราะห์และพัฒนาต่อยอด ซึ่ งเราจะ
อธิบายเกี่ยวกับรอบของกระบวนการพัฒนาดังกล่าว ดังนี้ :
1. เริ่ มต้นด้วยการวางโครงร่ างอย่างหยาบๆ ก่อน
2. ต่อจากนั้นจึงค่อยๆ ปรับปรุ ง แก้ไข และพัฒนาให้ดีข้ ึนตามลาดับ
3. จบด้วยการเพิ่มเติมรายละเอียดปลีกย่อยลงไปภายหลัง
โดยข้ อสำคัญ ก็คือ คุณควรที่จะให้ความสาคัญกับกฎข้อบังคับหรื อเงื่อนไข
ของการออกแบบ Ontology บ้าง เพราะคุณอาจได้ใช้มนั ในภายหลัง แม้เงื่อนไข
ดังกล่าวอาจจะยังไม่ได้รับการพิสูจน์มากนักก็ตาม แต่มนั ก็สามารถช่วยให้งานของคุณ
มีประสิ ทธิภาพมากขึ้นได้ โดยมีเงื่อนไขต่างๆ ดังนี้
1) ไม่มีวิธีการแก้ปัญหาใดที่จะถูกต้องเสมอ –การแก้ปัญหาที่ดี โดยมากแล้ว
มักจะขึ้นอยูก่ บั แนวคิด และจุดประสงค์ที่ตอ้ งการมากกว่า
2) สิ่ งที่สาคัญที่สุดในการพัฒนา Ontology นัน่ ก็คือ กระบวนการวนซ้ า
หรื อวัฏจักรของกระบวนการ
3) แนวคิดของ Ontology เปรี ยบเสมือนแนวคิดเชิงวัตถุ (กายภาพ
และตรรกกะ) และเชื่อมโยงกันด้วยขอบเขตของเรื่ องที่สนใจ ซึ่งโดยมากแล้วจะเปรี ยบ
ได้เป็ นนาม(คือ วัตถุ) หรื อกริ ยา(คือ ความสัมพันธ์กนั ) ซึ่งเป็ นประโยคที่ใช้ในการ
อธิบายขอบเขต
จากนั้นต้องหาข้อสรุ ปว่าจะนา Ontology ไปใช้ทาอะไร และรายละเอียดหรื อ
แบบร่ างเบื้องต้นของโมเดลควรเป็ นอย่างไร ท่ามกลางกระบวนการที่หลากหลาย หนึ่ง
ในปัจจัยที่จะสามารถตัดสิ นได้วา่ วิธีการใดดีกว่าสาหรับแต่ละงานนั้น ต้องอาศัยทั้ง
สัญชาตญาณ และตรวจสอบจากผลลัพธ์ของกระบวนการ ว่ามีความคงทนหรื อไม่ โดย
จะต้องไม่ลืมว่า Ontology นั้นเป็ นโมเดลที่ได้มาจากโลกแห่งความเป็ นจริ ง ดังนั้น
จะต้องสามารถสะท้อนกลับให้เห็นถึงความเป็ นจริ งก่อนหน้าได้
หลังจากที่ได้มีการกาหนดเวอร์ชนั เริ่ มต้นของ Ontology เรี ยบร้อยแล้ว ควรทา
การวิเคราะห์และประเมินเพื่อแก้ไขจุดบกพร่ องต่างๆ โดยใช้โปรแกรม, กระบวนการ
แก้ปัญหา หรื อปรึ กษาผูเ้ ชี่ยวชาญของเรื่ องนั้นๆ สังเกตได้จากคาตอบที่ได้ส่วนใหญ่น้ นั
จะต้องได้รับการปรับปรุ งอยูเ่ สมอ โดยเฉพาะตอนเริ่ มแรกของกระบวนการ โดย
กระบวนการทั้งหมดที่ได้กล่าวมานั้นจะดาเนินการวนซ้ าไปเรื่ อยๆ รวมเรี ยกว่า “วัฏ
จักรชีวิต หรื อ lifecycle” ของ Ontology นัน่ เอง
ขั้นตอนที1่ กำหนดขอบเขตและกรอบของ ontology
คาแนะนาเบื้องต้นของการพัฒนา Ontology ควรเริ่ มจากการกาหนดกรอบและ
ขอบเขตเสี ยก่อน
คำถำมเชิงประเมินคุณภำพ
หนึ่งในวิธีที่จะกาหนดกรอบของ Ontology นัน่ ก็คือการร่ างรายการของคาถามที่
ความรู้พ้ืนฐานของ Ontology ควรจะสามารถหาคาตอบให้ได้ โดยต้องเป็ นคาถามที่
เป็ นการทดสอบประสิ ทธิภาพด้วย (Groninger and Fox 1995)
เช่น ข้อมูลอะไรบ้างที่ควรจะถูกบรรจุไว้บน Ontology เพื่อใช้ตอบคาถาม
ประเภทต่างๆ ? อะไรคือคาตอบที่ถูกต้องที่สุด สาหรับคุณสมบัติของคาถามที่ตอ้ งการ
? โดยคาถามวัดประสิ ทธิภาพเหล่านี้ในขั้นตอนนี้เป็ นเพียงแบบร่ างเท่านั้น ยังไม่
ต้องการความพิถีพิถนั มากนัก
โดยคาถามที่มกั จะพบบ่อยๆ ก็คือ:
- อะไรคือขอบเขตที่ Ontology ต้องครอบคลุมถึง ?
- จุดประสงค์ของการสร้าง Ontology ?
- คาถามแบบใดที่ขอ้ มูลใน Ontology ควรจะหาคาตอบให้ได้ ?
- ใครเป็ นผูใ้ ช้และทาหน้าที่ดูแลรักษา Ontology ?
คาตอบของคาถามอาจเปลี่ยนแปลงได้ระหว่างกระบวนการออกแบบของ
Ontology ขึ้นอยูก่ บั ช่วงเวลา โดยคาตอบที่ได้มกั จะเป็ นตัวกาหนดขอบเขตของโมเดล
ลองพิจารณาตัวอย่างจาก Ontology ของเรื่ อง ”ไวน์และอาหาร” ที่ได้กล่าวนาไว้
ก่อนหน้านี้ ซึ่งได้มีการนาอาหารและไวน์ชนิดต่างๆ มาเป็ นขอบเขตของ Ontology
โดยมีจุดมุ่งหมายที่จะนาไปใช้กบั งานที่ตอ้ งการคาแนะนาเกี่ยวกับเรื่ อง “ไวน์กบั ความ
เข้ากันของอาหารชนิดต่างๆ”
ยกตัวอย่างคาถามให้ได้มาซึ่งขอบเขตที่เกี่ยวข้องของเรื่ อง “ไวน์กบั อาหาร”
นั้น แนวโน้มของคาถามที่เป็ นไปได้ มีดงั นี้ :
- อะไรคือสิ่ งที่ควรคานึงถึงในการเลือกซื้อไวน์ ?
- Bordeaux คือชื่อของไวน์แดง หรื อไวน์ขาว ?
- ไวน์ Cabernet Sauvignon มีรสชาติที่เข้ากันกับอาหารทะเลหรื อไม่ ?
- อะไรคือตัวเลือกของไวน์ที่ดีที่สุด ที่คู่ควรกับเนื้อย่าง ?
- ลักษณะของไวน์ที่สามารถสังเกตได้ เมื่อเกิดความไม่เข้ากันกับอาหาร
บางอย่าง ?
- ลักษณะของกลิ่น หรื อคุณสมบัติของไวน์ที่ผกผันตามเวลาที่หมักบ่ม ?
- เวลาที่เหมาะสมที่สุดสาหรับการหมักบ่มไวน์ Napa Zinfandel ?
ข้อสรุ ปที่ได้จากชุดของคาถาม จะเป็ นหัวข้อของข้อมูลไวน์นาเข้า ซึ่งจะเห็นได้วา่
มีความหลากหลาย เช่น คุณสมบัติเฉพาะตัว ประเภทของไวน์ ปี ที่ผลิต ว่าเหมาะสม
หรื อไม่, ชนิดของอาหารที่จะเลือกมารับประทานคู่กบั ไวน์ รวมถึงข้อมูลการ
ผสมผสานของไวน์ที่ลงตัวกับอาหารประเภทต่างๆ
โดยทัว่ ไปแล้วโมเดลของแนวคิดจะต้องมีความหลากหลาย เช่น ชนิดของ
ไวน์ ชนิดของอาหารมื้อหลัก ความคิดเห็นเกี่ยวกับไวน์และความเข้ากันหรื อไม่เข้า
กันกับอาหารชนิดนั้นๆ ซึ่งจะถูกนาไปใช้เป็ นโครงร่ างสาหรับประกอบขึ้นเป็ น
Ontology ขณะเดียวกันก็อาจจะสอดแทรกแนวคิดสาหรับการจัดการคลังสิ นค้า
และลูกค้าภายในร้านอาหารซึ่งมีแนวคิดที่ค่อนข้างคล้ายคลึงกันเพิ่มเติมลงไปได้อีก
ด้วย
ขั้นตอนของการออกแบบนั้น จะออกแบบโดยให้ใช้มาตรฐานภาษาธรรมชาติ
ของบทความบนนิตยสารไวน์ต่างๆ ซึ่งเป็ นเรื่ องที่สาคัญมาก เช่น ด้านของ
ความหมาย และการออกเสี ยง
ขั้นตอนที่ 2 พิจำรณำ ontology ทีม่ อี ยู่
เลือกพิจารณาข้ อมูลสิง่ ที่มีอยูแ่ ล้ ว ตรวจสอบว่าเราสามารถปรับแต่งและขยายสิง่ ที่มี
อยู่ให้ เหมาะสาหรับงานของเราได้ อย่างไร เพื่อตอบสนองต่อขอบเขตและงานของเราให้
สามารถทางานได้ ดีกว่า
การนา Ontology ที่มีอยู่แล้ วมาใช้ นั ้น อาจมีเหตุผลเนื่องมาจากความต้ องการของ
ระบบ เช่น ระบบของเรานั ้นอาจจาเป็ นที่ต้องเชื่อมต่อกับโปรแกรมอื่นที่มี Ontology
เฉพาะของตัวเองอยูก่ ่อนหน้ านี ้แล้ ว ซึง่ อาจมีอกั ขระหรื อรูปแบบที่ตายตัว
ตัวอย่ างเช่ น ข้ อมูลความรู้พื ้นฐานของไวน์ฝรั่งเศสที่มีอยู่ก่อนหน้ านี ้ ถ้ าเกิดเรา
สามารถรวบรวมข้ อมูลความรู้เหล่านั ้นและจัดทาเป็ น Ontology ขึ ้นมาได้ โดยเราจะ
ไม่แค่เพียงจัดประเภทให้ กบั ไวน์ฝรั่งเศสเท่านั ้น แต่เราต้ องวิเคราะห์ถึงคุณสมบัติพิเศษ
เพื่อนาไปวินิจฉัยและเขียนอธิบายออกมา คุณสมบัติของไวน์ที่ได้ ออกมานั ้นอาจได้ รับ
ความสนใจและนาไปใช้ จริงในเชิงการค้ าบนเว็บไซต์ได้ เช่น เว็บไซต์
www.wines.com เพื่อช่วยลูกค้ าในการตัดสินใจที่จะซื ้อสินค้ าต่อไป
ข้ อเสนอแนะ ควรนึกไว้ เสมอว่า Ontology ที่มีอยู่แล้ วนั ้นไม่จาเป็ นที่จะต้ องถูก
เสมอไป โดยก่อนอื่นเราควรนาข้ อมูลความรู้ดงั กล่าวมาตรวจสอบ และพัฒนาเสียก่อน
เพื่อไม่ให้ สง่ ผลกระทบต่อหลักของแนวคิด และประสิทธิภาพของงาน
ขั้นที่ 3 แจกแจงควำมสำคัญของแต่ ละลำดับ
ขั้นใน ontology
Ontology จะสามารถถูกนาไปใช้ ประโยชน์ได้ ถ้าเราเขียนโดยแบ่งเป็ นชั ้น(term) และ
ทาการอธิบายให้ ผ้ ใู ช้ เข้ าใจ เช่น
- ชั ้นนี ้แสดงเกี่ยวกับเรื่ องอะไร ?
- อะไรคือคุณสมบัติที่ชั ้นนี ้มี ?
- ชั ้นนี ้ต้ องการจะบอกอะไร ?
ตัวอย่ างเช่ น ความสัมพันธ์ของไวน์ ประกอบด้ วย ชื่อ การหมักบ่ม สถานที่ผลิต สี
ลักษณะ อัตราส่วนประกอบต่างๆ เช่น แป้ง และน ้าตาล อีกทั ้งความเข้ ากันของอาหาร
เช่น เนื ้อปลา และเนื ้อสันใน ชนิดของไวน์ เช่น ไวน์ขาว และอื่นๆ
โดยขั ้นต้ นนั ้นเป็ นเรื่ องที่สาคัญมากที่จะต้ องทาการรวบรวมข้ อมูลให้ ได้ ครอบคลุมครบ
ทั ้งหมดก่อน โดยอาจจะยังไม่ต้องคานึงถึงแนวคิด, คุณสมบัติ หรื อความสัมพันธ์ต่างๆ
ของแต่ละชั ้นก่อนก็ได้
สองขั ้นตอนถัดมา --- พัฒนาลาดับขั ้นของคลาสและกาหนดคุณสมบัติของแนวคิด
(slots) ควบคู่ไปด้ วยกัน ซึง่ โดยปกติจะทาการสร้ างคานิยามให้ กบั ชั ้นของลาดับขั ้นนั ้นๆ
ต่อจากนั ้นจึงค่อยอธิบายถึงรายละเอียดของนิยามแนวคิดนี ้ต่อไป ทาเช่นนี ซ้ ้าไปเรื่ อยๆ
โดยทั ้งสองขั ้นตอนนี ้ถือว่าสาคัญมากในกระบวนการออกแบบ โดยเราจะอธิบายนิยาม
ของแนวคิดแต่ละชั ้นแบบย่อเท่านั ้น หลังจากนั ้นส่งให้ ขั ้นตอนที่ 2 เพื่อทาการประชุม
วิเคราะห์ ถึงผลที่จะได้ รับ ซึง่ ขั ้นตอนนี ้มีความเสี่ยงสูง จึงต้ องตัดสินใจให้ รอบคอบที่สดุ
ขั้นตอนที่ 4 กำหนดคลำสและลำดับขั้น
มีหลากหลายวิธีการที่จะทาให้ สามารถบรรลุเป้าหมายในการพัฒนาลาดับขั ้นของคลาสได้
(Uschold and Gruninger 1996):
กระบวนการพัฒนาแบบบน-ล่ าง เริ่มต้ นด้ วยคานิยามโดยทัว่ ไปที่พบมากที่สดุ
ตามแนวคิดในโดเมนและจากความเชี่ยวชาญนาไปเป็ นแนวทางความคิด
ตัวอย่างเช่น เราสามารถเริ่มต้ นด้ วยการสร้ างคลาสสาหรับแนวคิดโดยทัว่ ไปของไวน์
และอาหาร แล้ วเมือ่ เรามีความเชี่ยวชาญในคลาสของไวน์
แล้ วเราก็จะสร้ าง
รายละเอียดย่อย ๆ(subclasses)ในคลาสนัน่ : ไวน์ขาว ไวน์แดง โรสไวน์ อีกทั ้ง
เรายังสามารถเพิ่มรายละเอียดได้ อีกเช่น เป็ น Syrah(ซีรา), Red Burgundy(
เรด บูร์กนั ดี), Cabernet Sauvignon (การ์ แบร์ เน โซวีญง)และอื่นๆ
การพัฒนาแบบล่ าง-บน
เริ่มต้ นด้ วยคานิยามของความจาเพาะมากที่สดุ ในใบของคลาสโดยมีการจัดกลุ่มตาม
ลักษณะสิง่ เหล่านี ้ซึง่ เป็ นแนวคิดที่กว้ างมากขึ ้น ตัวอย่างเช่นเราเริ่มต้ นด้ วยการกาหนด
ลักษณะของคลาส สาหรับไวน์ Pauillac (โปอีลกั )และ Margaux (มาโก)
จากนั ้นเราจะสร้ าง superclass ทัว่ ไปสาหรับทั ้งสองประเภท - Medoc (เมด็
อก)ซึง่ จะเป็ น subclass ของ Bordeaux (บอร์ กโด)
การพัฒนาแบบผสมผสาน
คือการรวมกันของการพัฒนาแบบบน-ล่างและแบบล่าง-บน เรากาหนดให้ นาแนวคิดที่มี
ความสาคัญมากนามาพูดคุยกันก่อนและเลือกแนวความคิดจากความชานาญเฉพาะ
เป็ นพิเศษของพวกเขาอย่างเหมาะสม อาจเริ่มจากลาดับชั ้นที่สงู ที่สดุ บางตัวก่อน เช่น
ไวน์ และลงรายละเอียดไปที่ไวน์ที่ชื่อ Margaux (มาโก)ซึง่ สามารถใช้ เชื่อมโยงไปยัง
ชั ้นของ middle-level ได้ เช่น Medoc (เมด็อก)หลังจากนั ้นถ้ าต้ องการที่จะ
ทราบเกี่ยวกับรายละเอียด และจานวนชนิดของไวน์ท้องถิ่นฝรั่งเศสก็ยงั สามารถทาได้
อีกด้ วย
รูปที่ 2 แสดงการแยกส่วนย่อยๆ ในคลาสต่างๆ ของคุณลักษณะทัว่ ๆไป โดยใช้ ไวน์ เป็ น
แนวคิดหลัก โดยมี ไวน์แดง ไวน์ขาวและโรสไวน์เป็ นลาดับขั ้น ขั ้นแรกในแนวคิดนี ้
คือไวน์ Pauillac (โปอีลกั )และไวน์ Margaux (มาโก)ซึง่ มีลกั ษณะเฉพาะมากที่สดุ ใน
ลาดับชั ้น (หรื อแนวคิดระดับล่าง)
ทั ้งสามกระบวนการที่กล่าวมานั ้น ไม่มีกระบวนการใดเลยที่สามารถรองรับได้
ทุกแนวคิดเสมอไป แต่วิธีการจะประสบผลสาเร็จหรื อไม่นั ้นขึ ้นอยู่กับมุมมองของ
แต่ละบุคคล
ไม่ว่าคุณจะเลือกกระบวนการใดก็ตาม ก็ต้องเริ่มด้ วยการสร้ างและกาหนด
คลาสเสมอ จากแผนผังลาดับขั ้นที่ถกู สร้ างขึ ้นในขัน้ ตอนที่ 3 นั ้น สังเกตว่าเราจะ
เลือกส่วนของข้ อมูลที่เป็ นอิสระ หรื อเป็ นลักษณะพิเศษมากที่สดุ ก่อน มากกว่าที่จะ
เลือกส่วนของข้ อมูลที่ดเู ป็ นวัตถุมากจนเกินไป เนื่องจากข้ อมูลดังกล่าวจะถูกนาไป
เป็ นคลาสภายใน Ontology แล้ วยังต้ องเป็ นลาดับชั ้นของความลึกลาดับ
สุดท้ าย หรื อเรี ยกง่ายๆ ว่าตัวปิ ดของลาดับชั ้นอีกด้ วย
ถ้า class A เป็ น superclass ของ class B จากนัน้ สมาชิ กทุกตัวของ
class B ก็จะเป็ นสมาชิ กของ class A ด้วย
หรื อ class B จะมีแนวความคิดพื ้นฐานของ class A นัน่ เอง
รูปที่ 3 slots สาหรับคลาสของไวน์และแต่ละมุมมองของ slots โดย "I" เป็ นไอคอน
ถัดจาก maker เป็ น slots ที่ระบุว่าช่วงที่มีการย้ อนกลับ(Section 5.1)
ขั้นตอนที่ 5 กำหนดคุณสมบัติของคลำส – สล็อต
การมีคลาสเดียวนัน้ จะไม่ให้ ข้อมูลที่เพียงพอต่อการตอบคาถามที่มี
ศักยภาพได้ จากขันตอนที
้
่ 1 เมื่อเราได้ กาหนดบางคลาสแล้ ว เราต้ อง
อธิบายถึงโครงสร้ างของแนวความคิดด้ วย
เมื่อเราได้ เลือกคลาสจากรายการเงื่อนไขที่เราสร้ างในขันตอนที
้
่ 3 นัน้
โดยส่วนมากคาที่เหลือจะมีแนวโน้ มต่อการเป็ นคุณสมบัติของคลาสพวกนี ้
เงื่อนไขเหล่านี ้จะประกอบไปด้ วยตัวอย่างเช่น สีของไวน์ ลักษณะ รสชาติ
และปริ มาณน ้าตาล รวมถึงที่ตงของโรงงานกลั
ั้
น่ องุ่น
สาหรับแต่ละคุณสมบัตใิ นรายการนั ้น เรามักจะต้ องกาหนดคลาสด้ วยคาอธิบาย ซึง่
คุณสมบัติเหล่านี ้เป็ นสล็อตที่ติดกันกับคลาส ดังนั ้น คลาสของไวน์จะมีสล็อตดังต่อไปนี ้ :
สี รูปร่าง รสชาติ และ น ้าตาล และคลาสของโรงกลัน่ จะมีสถานที่ของสล็อตด้ วย
โดยทัว่ ไปแล้ วจะมีคณ
ุ สมบัติวตั ถุอยู่หลาย ๆ ประเภทที่สามารถจะเป็ นสล็อตใน
ontology :
“intrinsic” คุณสมบัติภายในเช่น รสชาติของไวน์
“extrinsic” คุณสมบัติภายนอกเช่น ชื่อ และพื ้นที่ที่มาจาก
ถ้ าวัตถุเป็ นโครงสร้ างเหล่านี ้จะสามารถเป็ นได้ 2 อย่างคือ physical และ abstract
“parts”(เช่น สูตรของอาหาร)
ความสัมพันธ์กบั บุคคลอื่นๆ เหล่านี ้จะมีความสัมพันธ์ระหว่างบุคคลสมาชิกของ
class และรายการอื่นๆ (เช่น ผู้ผลิตไวน์ เป็ นตัวแทนความสัมพันธ์ระหว่างไวน์ กับ
โรงกลุน่ องุ่น และองุ่นที่ทาไวน์)
ดังนั ้น นอกเหนือจากคุณสมบัติที่เราได้ ระบุไว้ ก่อนหน้ านี ้แล้ วนัน้ เราจะต้ องเพิ่ม
slot ดังต่อไปนี ้ใน class ไวน์ ก็คือ ชื่อ , เขตที่ตั ้ง , ผู้ผลิต , องุ่น โดยรูปที่ 3 จะ
แสดง slot สาหรับ class
ทุกsubclass จะสืบทอด slot ของ class นั ้นๆ สาหรับตัวอย่างคือ ทุก slot
ของ classไวน์ จะสืบทอดโดย subclasses ของไวน์ ประกอบด้ วยไวน์แดงและ
ไวน์ขาว เราจะมีการเพิ่ม slot นั ้นคือ tannin level (ต่า , กลาง , สูง) ต่อ
class ไวน์แดง โดยslot ของ tannin level นั ้นจะถูกสืบทอดโดยทุก class ที่
มีการแสดงไวน์สีแดง (เช่น Bordeaux (บอร์ กโด)และ Beaujolais(โบโชเล))
slot ควรจะติดกับคลาสทัว่ ไปมากที่สดุ ถึงจะมีคณ
ุ สมบัติของ class
ตัวอย่างเช่น รูปร่างและสีของไวน์ควรจะติดกับ class ของไวน์ เนื่องจากเป็ นที่ยอมรับ
ของ class ทัว่ ไปมากที่สดุ นัน่ ก็คือลักษณะและสี
ขั้นตอนที่ 6 กำหนดมุมมองของสล็อต
slot นั ้นสามารถมีการอธิบาย facet ที่แตกต่างกันตามชนิดของค่า , ค่าที่
ได้ รับ , จานวนค่า(จานวนแถวแต่ละข้ อมูลในแต่ละรี เลชัน่ หรื อcardinality นั ้นเอง) และ
คุณสมบัติอื่นๆของค่าที่ slot สามารถได้ รับ สาหรับตัวอย่างคือ ค่าในslot Name (เช่น
ให้ ชื่อว่า “ชื่อของไวน์”) คือ 1สตริง นั ้นคือจะได้ ชื่อของ slot กับค่าที่เป็ นชนิดของสตริง
slot อีกหนึ่งคือ slot produces(เช่น “โรงกลัน่ เหล้ าองุ่นผลิตไวน์เหล่านี ้”) นั ้นสามารถที่
จะมีหลายค่าและเป็ นInstance ของclass ไวน์นี ้ นั ้นคือ produces เป็ นslot หนึ่ง ที่มี
ชนิดค่าเป็ น Instance กับไวน์ที่ class ได้ รับ
slot cardinality
slot cardinality ของสล็อตถูกกาหนดด้ วยจานวนค่าสล็อตที่สามารถมีได้
บางระบบจะถูกแยกออกซึง่ เป็ นบางระบบเท่านั ้น ซึง่ จะแยกระหว่าง ความสาคัญเดียว
(ยอมรับให้ มากที่สดุ ในค่า ๆ หนึ่ง) และความสาคัญหลาย ๆค่า (ยอมรับหลายจานวน
ของค่า) รูปร่างของไวน์จะเป็ นจานวนสล็อตเดี่ยว (ไวน์สามารถมีรูปร่างได้ เพียงแบบ
เดียว) ไวน์ที่ผลิตจากโรงกลัน่ โดยเฉพาะจะเติมใน หลาย ๆ ส่วนที่สาคัญของ
ผลิตภัณฑ์สล็อตสาหรับคลาสของไวน์
บางระบบยอมให้ คณ
ุ สมบัติของ cardinality มีต่าสุดและมีสงู สุดในการบอก
ลักษณะจานวนค่า slot ให้ แน่นอนมากขึ ้น cardinality ขั ้นต่า N หมายถึง slot จะมีค่า
N เป็ นค่าที่น้อยที่สดุ ตัวอย่างเช่น slot องุ่นของไวน์มี cardinality ขั ้นต่าคือ 1 นั ้นคือ
แต่ละไวน์จะทาองุ่นที่มีความหลากหลายอย่างน้ อย 1 นั ้นเอง cardinality สูงสุด M
หมายถึง slot สามารถมีได้ สงู สุดค่า M โดย cardinality สูงสุด slot องุ่นสาหรับไวน์
พันธุ์เดียวคือ 1 : ไวน์เหล่านี ้ทาจากองุ่นที่มีความหลากหลายเป็ น 1 เท่านั ้น บางครัง้
อาจจะใช้ ประโยชน์โดยตั ้งค่าให้ cardinality สูงสุดเป็ น 0 การตั ้งค่านี ้จะแสดงให้ เห็น
ว่า slot ไม่สามารถมีค่าใดๆสาหรับรายการ subclass
ประเภทของค่ ำสล็อต
String เป็ นประเภทของค่าที่ง่ายที่สดุ คือจะใช้ สาหรับสล็อต เช่น ชื่อ ที่เป็ นค่าสตริงที่ง่ายที่สดุ
Number (ในบางครัง้ ค่าอาจจะมีความเฉพาะเจาะจงประเภทของค่า ทศนิยม(Float) และจานวน
เต็ม(Integer) จะถูกนามาใช้ ) อธิบายถึงสล็อตด้ วยค่าตัวเลข ยกตัวอย่างเช่น ราคาของไวน์สามารถมี
ค่าทศนิยมได้ ด้วย
Boolean เป็ นสล็อตที่ง่ายคือจะมีธง yes – no ยกตัวอย่างเช่น ถ้ าเราเลือกที่จะไม่แสดงความ
แตกต่างของไวน์ที่ประกายเป็ นคลาสที่ใช้ ในการแยก หรื อไวน์ที่ไม่เป็ นประกายจะมีการแสดงเป็ นค่าของ
สล็อตแบบ บูลีน : ถ้ าค่าเป็ น "true"("yes") ไวน์เป็ นประกายและถ้ าค่าเป็ น" false"("no") ไวน์
ไม่เป็ นประกายก็จะแยกออกมาอีกคลาสหนึง่
Enumerated สล็อตที่ระบุอยู่ในรายการเป็ นค่าที่ยอมรับสาหรับสล็อต ยกตัวอย่าง เราสามารถ
ระบุ รสชาติ สามารถใช้ เวลาหนึง่ ในสามของค่าที่เป็ นไปได้ : แบบหยาบ ปานกลาง และ ละเอียด ในใบ
คุ้มครอง – 2000 การแจกแจงสล็อตเป็ นประเภทของสัญลักษณ์
Instance ประเภทของสล็อตให้ คานิยามของความสัมพันธ์ระหว่างบุคคลกับสล็อตด้ วยค่าประเภทที่
ได้ ดาเนินการมักจะต้ องกาหนดรายการของคลาสที่ได้ การยอมรับจากสิ่งที่ดาเนินการมาแล้ ว ยกตัวอย่าง
เช่น สล็อตของผลิตภัณฑ์สาหรับคลาสของโรงกลัน่ มักจะมีการดาเนินการของคลาสไวน์ด้วยค่าของมันเอง
รูปที่ 4 นิยามของสล็อตผลิตภัณฑ์ที่อธิบายถึงการผลิตไวน์มาจากโรงกลัน่
เหล้ าองุ่น สล็อตมีความสาคัญหลายอย่าง ประเภทของค่า และคลาสของ
ไวน์ด้วยการยอมรับคลาสสาหรับค่าของมันเอง
โดเมนและช่ วงของสล๊ อต
ชนิดของคลาสตัวอย่างที่มีการเรี ยกใช้เป็ นประจามักจะถูกเรี ยกว่า ช่วงของสล๊อต
ดังตัวอย่างในรู ปที่ 4ซึ่งเป็ นคลาสไวน์ โดยที่ระบบบางระบบจะมีการจากัดช่วงของ
สล๊อต เมื่อ สล๊อต นั้นแนบมากับรายการ class ( particular class)
class ที่ slot แนบมา หรื อ class ที่มีคุณสมบัติบอกลักษณะ slot จะเรี ยกว่า โดเมน
ของ slot นั้นๆ
กฎพื้นฐานในการพิจารณาโดเมนและช่วงของสล๊อตมีดงั นี้
เมื่อกาหนดโดเมนหรื อช่วงสาหรับสล๊อต แล้วจะพบclass ที่general มากที่สุด
หรื อคลาสที่มีลาดับโดเมนหรื อช่องสาหรับช่วงสล๊อตในอีกทางไม่มีการกาหนดโดเมน
หรื อช่วงที่มีมากเกินไป
สล๊อตและกรณี ต่างๆของคลาสในช่วงของสล๊อตสามารถเกิดขึ้นได้
ทุกช่องโดเมน เราจะไม่ตอ้ งระบุช่วงของ slot
ในแง่ระบุเพิ่มเติม รายการทั้งหมดที่เป็ นคลาสย่อยนั้น แทนด้วยคลาส
ไวน์แต่ในขณะเดียวกันเราก็ไม่ตอ้ งการระบุช่วงชั้นทัว่ ไปของสล๊อตสิ่ งใน ontology ที่
ระบุขอ้ มูลเพิ่มเติม
หากรายการของคลาสที่กาหนดช่วงหรื อโดเมนของสล๊อต ที่ประกอบไป
ด้วย class และ subclass เราจะต้องลบ subclass ออกไป
ถ้าช่วงของสล๊อตซึ่งมีท้งั คลาสไวน์ และ ไวน์แดง เราสามารถ
ลบไวน์แดงจากช่วง เนื่องจากไม่ได้เพิ่มข้อมูลใหม่ เนื่องจากไวน์แดงเป็ น คลาสย่อย
ของไวน์ เพราะฉะนั้น ช่วงของสล๊อตที่เกิดก่อนหน้านี้แล้วโดยรวมเป็ นคลาสย่อยอื่น
ๆ ของคลาสไวน์
ถ้าหากรายการของคลาสกาหนดช่วงหรื อโดเมนของสล๊อตที่บรรจุ subclassทั้งหมด
โดยเป็ นคลาสย่อยของคลาส A, แต่ไม่ใช่ คลาส A ของตัวมันเอง, ช่วงควรมีเพียงแค่คลาส A
เท่านั้นและไม่ตอ้ งบรรจุ subclass อื่นๆเลย
การกาหนดช่วงที่มีการแทนซึ่งใน slot นั้นประกอบไปด้วยsubclass ไวน์แดง , ไวน์
ขาว , ไวน์โรส
หากรายชื่อของ class มีการกาหนดช่วงหรื อกาหนดโดเมนของ slot ที่บรรจุ
ทั้งหมด แต่มี subclass เพียงเล็กน้อยที่เป็ นของ class A ก็ให้พิจารณาหาก class A ทาก็พิจารณาหา
ช่วงที่เหมาะสมกับคานิยามของตัวมันเอง
ในระบบที่ต่อสล๊อตนั้นเป็ นเหมือนการเพิ่มระดับสล๊อตของโดเมน ซึ่ง
เหมือนกับกฎการเชื่อมต่อสล๊อต
ในอีกทางหนึ่งเราก็ควรทาแบบทัว่ ไปให้ได้มากที่สุด และในทางตรงกันข้าม
เราก็จะต้องแน่ใจด้วยว่าแต่ละคลาสที่เรานั้นมีความแน่นอนแล้วว่ามีคุณสมบัติที่ slot
สามารถแสดงถึง และเราสามารถแนบ slot tannin level ให้กบั แต่ละ class ที่แสดงถึงไวน์
แดง (เช่น Bordeaux, Merlot, Beaujolais ฯลฯ)
แต่เนื่องจากไวน์แดง ทั้งหมดมีคุณสมบัติ tannin-level เราควรแทนสล๊อตที่
ต่อกันนี้ดว้ ยคลาสทัว่ ไปมากกว่าไวน์แดง สรุ ปได้วา่ โดเมนของslot tannin-level ขยาย
ออกไป(โดยการแนบไปยัง class ไวน์แทน) นั้นไม่ถูกต้องเนื่องจากเราไม่ได้ใช้ tanninlevel ในการอธิบายไวน์อื่นๆ เช่นไวน์ขาว
ขั้นตอนที7่ กำรสร้ ำงตัวอย่ ำง
ขั้นตอนสุดท้ายคือการสร้างตัวอย่างในแต่ละคลาสในลาดับชั้น โดยจะมีการกาหนด
ตัวอย่างในแต่ละชั้นที่เราต้องการ (1) การเลือกคลาสและตัดสิ นใจ (2)สร้างตัวอย่างของแต่
ละคลาส (3)ใส่ค่าสล๊อต ตัวอย่างเช่นเราสามารถสร้างตัวอย่างของไวน์ได้ ดังนี้
Chateau - Morgon – Beaujolais แทนค่าชนิดเจาะจงของไวน์ Beaujolais
Chateau - Morgon - Beaujolais เป็ นตัวอย่างของคลาส Beaujolais ทาหน้าที่
แทนทั้งหมดของไวน์ Beaujolais
ตัวอย่างต่อไปนี้เป็ นการกาหนดค่าสล๊อต (รู ปที่ 5):
Body: สี สว่าง
Color: แดง
Flavor:ละเอียดอ่อน
Tannin level: ต่า
Grape: Gamay (ตัวอย่างของคลาสไวน์องุ่น)
Maker: Chateau-Morgon (ตัวอย่างจาก class โรงกลัน่ องุ่น)
Region: Beaujolais (ตัวอย่างจาก class ไวน์-Region)
Sugar: แห้ง
รู ปที่ 5 นิยามของตัวอย่างคลาส Beaujolais เป็ น Chateaux Morgon Beaujolais จาก
ขอบเขตของ Beaujolais ผลิตมาจาก องุ่น
Gamay โดยโรงงานกลัน่ องุ่นที่ Chateau Morgon มีรูปร่ างเป็ นสี สว่าง
รสชาติละเอียดอ่อน สี แดง และระดับ tannin ต่า และมันเป็ นไวน์แห้ง
4 คลำสและกำรกำหนดลำดับชั้นของคลำส
ในส่วนนี้จะกล่าวถึงสิ่ งที่ตอ้ งระวังและข้อผิดพลาดที่ซ่ ึงจะสามารถทาได้ง่าย
เมื่อกาหนด class และลาดับชั้นของ class (ขั้นตอนที่ 4 จาก ส่วนที่ 3) อย่างที่ได้กล่าวถึง
มาก่อน ลาดับชั้นจะขึ้นอยูก่ บั ความเป็ นไปได้ของ ontology ระดับของการตั้งค่า
รายละเอียดที่จาเป็ นสาหรับการนาไปประยุกต์ใช้เพื่อเป็ นแนวทางในการพัฒนาต่อไป
หลังจากที่มีการกาหนดคลาสใหม่เป็ นจานวนมากจะเป็ นประโยชน์ที่กลับมาดูและ
ตรวจสอบลาดับชั้นที่เกิดขึ้นใหม่เพื่อที่จะสอดคล้องกับหลักเกณฑ์เหล่านี้
4.1 กำรตรวจสอบควำมถูกต้ องในลำดับชั้นของคลำส
ความสัมพันธ์แบบ is-a
ลาดับชั้นของ class นั้นแสดงถึงความสัมพันธ์แบบ is-a
คลาส A เป็ นคลาสย่อยของคลาส B ถ้าทุกๆกรณี ของคลาส A ตัวอย่าง
ทุก Chardonnay เป็ นคลาสย่อยของไวน์ขาว หรื อสามารถที่จะมองความสัมพันธ์
เป็ นแบบ kind-of
Class ย่ อยของ class แสดงถึง แนวคิดที่เป็ นชนิดหนึ่งของ แนวคิดที่แสดงถึงclass หลัก
ไวน์ ชนิดหนึ่งไม่ เป็ นคลำสย่ อยของไวน์ ท้งั หมด
การจาลองความผิดพลาดมีการรวมทั้งเอกพจน์และพหูพจน์
ของรุ่ นเดียวกัน แนวคิดก่อนหน้านี้ทาให้คลาสย่อยมีความผิดพลาดเพื่อ
กาหนดคลาสไวน์เป็ นคลาสย่อยของไวน์ ถ้าหากคิดถึงความสัมพันธ์แบบ kind of
ก็จะสามารถมองข้อผิดพลาดได้ชนั เจนขึ้น
เช่น ไวน์หนึ่งชนิดไม่ได้เป็ นชนิดหนึ่งของไวน์ท้งั หมด ทางที่ดีที่สุดที่
จะสามารถหลีกเลี่ยงข้อผิดพลาดนี้ได้คือการใช้ชื่อ class ที่เป็ นเอกพจน์
หรื อพหูพจน์ อย่างใดอย่างหนึ่ง
คุณสมบัตกิ ำรถ่ ำยทอดของควำมสั มพันธ์ แบบลำดับชั้น
Class ย่อยนั้นเป็ นการถ่ายทอดคุณสมบัติถา้ B เป็ น คลาสย่อยของ A และ
C เป็ น คลาสย่อย ของ B แล้ว C เป็ น คลาสย่อย ของ A ด้วย
ตัวอย่างเช่น เราสามารถกาหนดให้ class ไวน์ข้ ึนมา แล้วกาหนด class ไวน์ขาวเป็ น
class ย่อยของไวน์ จากนั้นก็กาหนด class Chardonnay ให้เป็ น class ย่อยของไวน์ขาว
จะเห็นคุณสมบัติถ่ายทอดของความสัมพันธ์ class ย่อยคือ class Chardonnay นั้นเป็ น
class ย่อยของไวน์ดว้ ย บางครั้งเราสามารถแยกระหว่าง class ย่อยโดยตรง กลับ class
ย่อยทางอ้อมได้ โดย class ย่อยโดยตรงเป็ น class ย่อยที่ใกล้ชิดกับclass พ่อแม่ที่สุด
จะไม่มี class ใดๆที่อยูร่ ะหว่าง class พ่อแม่ กับ class ย่อย และไม่มี class ใดๆ
ที่อยูร่ ะหว่างตัวมันเองกับ class พ่อแม่ของมัน ตัวอย่างเช่น Chardonnay
เป็ น class ย่อยโดยตรงของ class ไวน์ขาว และไม่ใช่class ย่อยโดยตรงกับ class ไวน์
วิวฒ
ั นำกำรของลำดับชั้น
ลาดับชั้นที่สอดคล้องกัน อาจกลายเป็ นความท้าทาย ขณะที่โดเมนค่อยๆ
มีการพัฒนาขึ้น เช่น เป็ นเวลาหลายปี ไวน์ Zinfandel ทั้งหมดเป็ นไวน์แดง
ดังนั้นเราจึงกาหนดระดับของไวน์ Zinfandel เป็ นคลาสย่อยของคลาสไวน์แดง
บางครั้งผูผ้ ลิตไวน์ เริ่ มคั้นน้ าองุ่น และเริ่ มนาสี ที่เป็ นผลผลิตจากองุ่นออก
ดังนั้นจึงเกิดการปรับปรุ งสี ของไวน์ข้ ึน จึงเกิดไวน์ขาว Zinfandel
ซึ่งมีสีดอกกุหลาบ
ดังนั้นเราจึงต้องแบ่ง class Zinfandel ไวน์ออกเป็ นสอง class ได้แก่ Zinfandel ขาว
และ Zinfandel แดงและจัดจาแนกมันให้เป็ น class ย่อยของ ไวน์สีดอกกุหลาบ
และไวน์แดง ตามลาดับ
คลำสและชื่อของคลำส
การแยกระหว่าง class กับชื่อ class นั้นเป็ นสิ่ งสาคัญ Class แสดงถึงแนวคิดภายใน
ขอบเขตซึ่งไม่ใช่คาที่จะแสดงถึงแนวคิด
ชื่อของคลาสอาจเปลี่ยนแปลง ถ้าเราเลือกคาศัพท์ที่แตกต่างกัน ตัวอย่างเช่น เราอาจ
สร้างคลาสของกุง้ class Shrimps แล้วเปลี่ยนชื่อให้เป็ นคลาสของกุง้ Prawn เห็นได้วา่ ถึงแม้ชื่อจะ
เปลี่ยนแต่ class นี้กย็ งั แสดงถึงแนวคิดเดิม
คาพ้องสาหรับแนวคิดเดียวกันไม่แสดงคลาสที่แตกต่างกัน
คาพ้องที่แตกต่างกันเป็ นเพียงแนวคิดหรื อคา ดังนั้นเราจึงไม่ควรมี ที่ใช้ชื่อว่า Shrimp และ class ที่
ใช้ชื่อว่า Prawn และอาจเป็ น Crevette
ทางที่ดี ควรเลือกใช้อย่างใดอย่างหนึ่ง ไม่ Shrimp ก็ Prawn ในหลายๆ ระบบอนุญาตให้มีการ
เชื่อมโยงรายการคาพ้อง,การแปล,หรื อการนาเสนอชื่อด้วย class ถ้าระบบไม่อนุญาตให้มีการ
เชื่อมโยงดังกล่าว คาพ้องสามารถถูกทารายการในเอกสารของ class
หลีกเลีย่ ง คลำส cycles
เราควรหลีกเลี่ยงควำมสัมพันธ์ ที่เป็ นวงกลมในลาดับชั้นของคลาส
ความสัมพันธ์ใน class จะเป็ นวงกลมได้น้ นั ก็ต่อเมื่อ class A มี class ย่อยเป็ น class B
และในเวลาเดียวกันนั้น B ก็คือ class พ่อแม่ของ A ด้วย
การสร้างความสัมพันธ์แบบวงกลมในลาดับชั้นนั้นสามารถพูดได้วา่ class A และ
class B นั้นเท่ากัน เช่น ทุกๆส่วนของ A เป็ น ส่วนของ B และ ทุกๆส่วนของ B เป็ นส่วนของ A ที่
จริ งแล้ว ถ้า B เป็ น class ย่อยของ A ทุกๆส่วนของ B ก็ตอ้ งเป็ นส่วนของ class A และ ถ้า A เป็ น
class ย่อยของ B ทุกๆส่วนของ A ก็ตอ้ งเป็ นส่วนของ class B
4.2 กำรวิเครำะห์ ควำมสัมพันธ์ แบบพีน่ ้ องในลำดับชั้นของคลำส
หมายถึง class ที่เป็ น class ย่อยโดยตรงของ
class เดียวกัน (ดูได้ในส่ วนที่ 4.1 )
ความสัมพันธ์แบบพี่นอ้ งทั้งหมดในลาดับชั้น(ยกเว้น root โหนด)
ต้องอยูท่ ี่ระดับเดียวกันในลาดับชั้น
ตัวอย่างเช่นไวน์ขาวและ Chardonnay ไม่ควรเป็ น class ย่อยของ class
เดียวกัน (classไวน์) ไวน์ขาวเป็ นแนวคิดที่กว้างกว่า Chardonnay
จำนวนเท่ ำไรถึงจะเรียกว่ ำมำกไป และจำนวนเท่ ำไรถึงจะเรียกว่ ำน้ อยไป
ไม่มีกฎที่เคร่ งครัดสาหรับจานวนของ class ย่อยโดยตรงที่ class ควรมี
อย่างไรก็ตาม หลายโครงสร้างของ ontology ที่ดีจะมีจานวนระหว่าง สองถึงสิ บสอง
class ย่อยโดยตรงดังนั้น คือ
ถ้า class มีเพียงหนึ่ง class ย่อยโดยตรง อาจเป็ นการออกแบบที่มีปัญหาหรื อ
ontology ไม่สมบูรณ์ : ถ้ามีมากกว่าสิ บสอง class ย่อยสาหรับ class ที่กาหนด
แล้วประเภทที่ใช้สาหรับเป็ นสื่ อกลางก็อาจจาเป็ นที่ตอ้ งเพิ่ม
สมมติวา่ เราเขียนรายการชนิดของไวน์ท้งั หมดที่เป็ น class ย่อยโดยตรงของ
็ นิ ดที่มีความ
class ไวน์ รายการดังกล่าวก็จะได้แก่ชนิ ดทัว่ ๆไปของไวน์ หรื อไม่กช
เฉพาะเจาะจงกว่า class ไวน์กจ็ ะมี class ย่อยโดยตรงที่มากเกินไป และที่จริ งแล้ว
สาหรับ ontology เพื่อวิเคราะห์ ชนิดของไวน์ที่ต่างกัน ในลักษณะที่เป็ นระเบียบมาก
ขึ้น Medoc ควรที่จะเป็ น class ย่อยของ Bordeaux และ Côtes d’Or ควรเป็ น
class ย่อยของ Burgundy และยังควรมีความสัมพันธ์ระหว่างประเภทเช่น ไวน์แดง
กับ ไวน์ขาว จะแสดงถึงโครงแบบแนวคิดของขอบเขตไวน์ ที่บุคคลส่วนใหญ่มี (รู ปที่
6b) ในการจัดกลุ่มแนวคิดในลักษณะพี่นอ้ งก็ไม่มีความจาเป็ นที่จะต้องสร้าง class
เทียมขึ้น เพียงแค่ปล่อยไว้ในลักษณะที่เป็ น
หลังจากนั้น ontology ก็จะเป็ นสิ่ งที่ใช้สะท้อนโลกความจริ ง และถ้าไม่มี
การแบ่งแยกประเภทอยูใ่ นโลกความเป็ นจริ งแล้ว Ontology ก็ควรที่จะแสดงสิ่ งนั้น
ออกมาก
รู ปที่ 6 คลำสย่ อย ของคลำส ไวน์ แดง กำรมีคลำสย่ อยเพียงหนึ่งสำมำรถแสดงถึงปัญหำในกำรออกแบบ
คลาสไวน์มีคลาสย่อยโดยตรงมากเกินไป และแท้จริ งสาหรับ
ontology เพื่อสะท้อนประเภทของไวน์ ยังมีประเภทกลาง
เช่นไวน์แดงและสี ขาว ไวน์กจ็ ะแสดงรู ปแบบความคิดของโดเมนของไวน์
ที่หลายคนมี (รู ป 6b) อย่างไรก็ตาม ถ้าไม่มีคลาสปกติอยูก่ บั กลุ่มของ
แนวคิดในรายการก็ไม่ตอ้ งสร้างคลาสเทียม เพียงแค่ทิ้งคลาสพวกนั้น
หลังจากที่ ontology คือผลสะท้อนของโลกแห่งความเป็ นจริ ง
รู ปที่ 7 กำรจำแนกประเภทของไวน์ ประกอบไปด้ วยไวน์ ท้งั หมด และชนิดของไวน์ เทียบกับหลำยๆระดับ
ของกำรแยกประเภท
4.3 การถ่ายทอดแบบมากกว่าหนึ่ง
ระบบที่ใช้ ในการแสดงความรู้ หลายๆระบบ ยอมรับการถ่ายทอดแบบมากกว่าหนึง่
ในลาดับชั ้นของ class เช่น class ใดสามารถเป็ น class ย่อยของหลายๆ class
ได้ สมมติว่าเราอยากสร้ าง class ที่เกิดจากการแบ่ง class ไวน์ประเภทหวาน
ไวน์องุ่นที่มีสีแดงจะเป็ นได้ ทั ้ง ไวน์แดงและไวน์ประเภทหวาน ดังนั ้น เราสามารถ
กาหนดให้ class ไวน์องุ่นที่มีสีแดง ให้ มี class พ่อแม่สอง class คือ class ไวน์
แดงและ class ไวน์ประเภทหวาน ทุกๆส่วนของ ไวน์องุ่นที่มีสีแดง จะเป็ นส่วนของ
ไวน์แดง และไวน์ประเภทหวานด้ วย class ไวน์องุ่นที่มีสีแดง จะถ่ายทอดทั ้งจานวน
คุณสมบัติและมุมมองต่างๆจาก class พ่อและแม่ทั ้งคู่ ดังนั ้น จะมีการถ่ายทอด ค่า
ความหวาน สาหรับคุณสมบัติ น ้าตาลจาก ไวน์ประเภทหวาน และคุณสมบัติ ระดับ
ของ tannin และค่าสีของมัน จากคุณสมบัติสี จาก class ไวน์แดง
4.4 เมื่อใดที่จะต้องมีการแนะนาคลาสใหม่
การตัดสินใจที่ยากที่สดุ ในระหว่างการออกแบบคือ เมื่อใดที่จะต้ องมีการแนะนา class
ใหม่ หรื อเมื่อใดที่จะต้ องมีการแสดงถึงความแตกต่างจากค่าของคุณสมบัตทิ ี่ต่างกัน ความ
ยากนั ้นเกิดขึ ้นเมื่อต้ องการหาเส้ นทางทั ้ง ลาดับชั ้นที่มีลาดับย่อยมากๆ ซึง่ มี class ที่ไม่พงึ
ประสงค์มาก และ ลาดับชั ้นที่ไม่ซบั ซ้ อนซึง่ มี จานวน class น้ อยมาก แต่มีข้อมูลจานวนมาก
อยู่ในคุณสมบัติ การหาความสมดุลที่เหมาะสมนั ้นทาได้ ยาก
มีกฎหลายกฎที่จะช่วยในการตัดสินใจว่าเมื่อใดที่จะต้ อง แนะนา class ใหม่ในลาดับชั ้น
Class ย่อยของ class ใดๆ ทีม่ กั จะ (1) มีคณ
ุ สมบัติเพิ่มเติ มโดยที ่ class พ่อแม่ไม่มี
หรื อ(2) มีข้อจากัดทีแ่ ตกต่างจากา class พ่อแม่ หรื อ (3) มีความสัมพันธ์ ที่แตกต่างกว่า
class พ่อแม่
ไวน์แดงสามารถมีระดับของ tannin ที่ต่างกัน ในกรณีที่คณ
ุ สมบัตินั ้นไม่ได้ ใช้ สาหรับ
อธิบายไวน์ในแบบทัว่ ไป ค่าสาหรับคุณสมบัติน ้าตาลของ ไวน์ประเภทหวานนั ้นคือ “หวาน”
โดยที่คณ
ุ สมบัตินี ้จะไม่จริงสาหรับ class พ่อแม่ของ ไวน์ประเภทหวาน ไวน์ Pinot Noir
อาจเข้ ากันได้ ดีกลับอาหารทะเลในขณะที่ไวน์แดงอื่นๆ ไม่เข้ ากัน เราอาจพูดได้ ว่า เราจะ
แนะนา class ใหม่ในลาดับชั ้นก็ต่อเมื่อมีบางสิง่ ที่สามารถพูดถึงใน class ใหม่ที่ไม่สามารถ
พูดถึงได้ ใน class พ่อแม่
ในการใช้ งานจริงนั ้น แต่ละ class ย่อยควรมีคณ
ุ สมบัติใหม่เพิ่มเข้ าไป หรื อไม่ก็มีการ
กาหนดค่าใหม่ให้ กบั คุณสมบัติ หรื อเพิ่มมุมมองใหม่ทบั ของเดิมในคุณสมบัติที่ถกู ถ่ายทอด
อย่างไรก็ตาม การสร้ าง class ใหม่ก็อาจเป็ นประโยชน์ได้ ถึงแม้ มนั จะไม่มีคณ
ุ สมบัติใหม่
ก็ตาม class ในลาดับชัน้ วิ ชาเรื ่องการใช้ถอ้ ยคา ไม่จาเป็ นต้องมีคณ
ุ สมบัติใหม่
ตัวอย่ างเช่ น ontology บางตัว ได้ รวมลาดับดับชั ้นที่ใช้ ในการอ้ างถึงเพื่อใช้ ใน
ขอบเขตที่กาหนดด้ วยเช่น ontology ที่เกี่ยวกับ เครื่ องมือบันทึกทางการแพทย์แบบ อาจ
รวมการจัดจาแนกประเภทของโรคเข้ าไปด้ วย การจัดจาแนกนี ้อาจเป็ นเพียงลาดับชั ้นซึง่ ไม่มี
คุณสมบัติ(หรื ออาจมีคณ
ุ สมบัติชดุ เดียวกัน) ในกรณีนี ้ ก็ยงั เป็ นประโยชน์ที่จะใช้ ในการจัด
ระเบียบคาอยู่ในลาดับชั ้น มากกว่า การสร้ างรายการตรงๆ เพราะว่า (1) สามารถที่จะตรวจดู
และไล่ลาดับได้ ง่าย และ (2) ทาให้ หมอสามารถเลือกระดับกว้ างๆของคาซึง่ เหมาะสมกับ
สถานการณ์ ได้ ง่าย
เหตุผลอื่นๆ ที่จะต้ องมีการแนะนา class ใหม่โดยไม่ต้องมีคณ
ุ สมบัติใหม่ก็คือ เพื่อ
ออกแบบแนวคิดท่ามกลางผู้เชี่ยวชาญ จะสร้ างความแตกต่างขึ ้น ถึงแม้ ว่าเราออกแบบ
ขึ ้นมาไม่ใช่เพื่อการออกแบบความแตกต่าง ตั ้งแต่เราใช้ ontology เพื่ออานวย
ความสะดวกในการสือ่ สามท่ามกลางผู้เชี่ยวชาญ
,ระหว่างผู้เชี่ยวชาญ,และระบบ
ฐานความรู้ เราต้ องการที่จะสะท้ อนมุมมองของผู้เชี่ยวชาญออกมาใน ontology
สุดท้ ายแล้ ว เราไม่ควรสร้ าง class ย่อยของ class ใดๆ สาหรับแต่ละข้ อจากัด
ตัวอย่างเช่น เราแนะนา class ไวน์แดง,ไวน์ขาว และไวน์กหุ ลาบ เพราะว่า ความ
แตกต่างนี ้เป็ น เป็ นสิง่ ที่เป็ นหนึ่งในโลกของไวน์ เราจะไม่แนะนา class ไวน์ที่
ละเอียดอ่อน ,ไวน์ที่ปานกลาง เมื่อทาการกาหนดลาดับของ class เป้าหมายคือเพื่อ
กาหนด ความสมดุลระหว่างการสร้ าง class ใหม่ที่มีประโยชน์สาหรับการจัดระเบียบ
class กับการสร้ าง class ที่มากเกินความจาเป็ น
4.5 คลาสใหม่หรื อค่าของคุณสมบัติ
เมื่อทาการออกแบบขอบเขต ก็มีความจาเป็ นที่จะต้ องออกแบบความแตกต่างที่
เฉพาะเจาะจง(เช่น ไวน์ขาว,ไวน์แดง,ไวน์กหุ ลาบ) ให้ เป็ นค่าของคุณสมบัติหรื อให้ เป็ นชุด
ของ class ใหม่อีกครัง้ นั ้นขึ ้นอยู่กบั ความครอบคลุมของขอบเขตและงานที่ต้องรับผิดชอบ
ดังนั ้นเราควรต้ องสร้ าง class ไวน์ขาวหรื อเราเพียงแค่สร้ าง class ไวน์แล้ วเพิ่มเติม
ค่าที่แตกต่างลงในคุณสมบัติสี คาตอบนั ้นอยู่ในขอบเขตที่เราได้ ออกแบบไว้ สาหรับ
ontology แนวคิดของ ไวน์ขาวในขอบเขตที่ตั ้งไว้ มีความสาคัญเพียงใด ถ้ าไวน์นั ้นมี
ความสาคัญน้ อยนิดในขอบเขตและ ไม่มีความนัยที่เฉพาะเจาะจงสาหรับความสัมพันธ์
ของมันไปยังวัตถุอื่นๆแล้ ว เราไม่ควรที่จะแบ่งแยก class สาหรับไวน์ขาว
สาหรับ
โครงสร้ างของขอบเขตที่ใช้ ในกระบวนการผลิตฉลากไวน์ กฎสาหรับฉลากของไวน์สาหรับสี
ใดนั ้นเหมือนกันและความแตกต่างนั ้นไม่สาคัญ นอกจากนั ้น สาหรับการแสดงถึงไวน์,
อาหาร,และส่วนผสมที่เหมาะสมนั ้น ไวน์แดงจะมีความแตกต่างกับไวน์ขาวอย่างมาก เช่น
จะถูกจับคู่ด้วยอาหารที่ต่างกัน มีคณ
ุ สมบัติที่ต่างกัน สีของไวน์นัน้ เป็ นสิง่ สาคัญสาหรับ
ฐานความรู้ในเรื่ องของไวน์ ซึง่ ใช้ สาหรับ ระบุลาดับการทดสอบไวน์ ดังนัน้ สาหรับกรณีนี ้เรา
จะแบ่งแยก class ไวน์ขาว
ถ้าแนวคิ ดทีม่ ีค่าของคุณสมบัติทีแ่ ตกต่างกันกลายมาเป็ นข้อจากัดของคุณสมบัติที่
ต่างกันใน class อืน่ ๆ แล้วเราควรสร้าง class ใหม่สาหรับแยกความแตกต่าง
เหมือนดังเช่น ontology ของไวน์ class เช่น Red Merlot และ White
Merlot ซึง่ เหมาะสมกว่าการใช้ class เดียวสาหรับไวน์ Merlot ทั ้งหมด red
Merlots และ white Merlots นั ้นเป็ นไวน์ที่ต่างกันอย่างเห็นได้ ชดั (ทาจากองุ่น
ชนิดเดียวกัน) และถ้ าหากเราทาการสร้ างรายละเอียดของ ontology ของไวน์แล้ ว ความ
แตกต่างดังกล่าวเป็ นเรื่ องสาคัญ
ถ้าความแตกต่างเป็ นเรื ่องสาคัญในขอบเขตทีก่ าหนด และวัตถุนนั้ ทีค่ ่าทีแ่ ตกต่างกัน
สาหรับใช้
แยกความแตกต่าง ให้วตั ถุนนั้ มีชนิ ดทีต่ ่างกัน แล้ว เราควรสร้าง class ใหม่เพือ่
แยกความแตกต่าง
การพิจารณาศักยภาพของส่วนที่เป็ นตัวแทนเกี่ยวกับบุคคลของ class นั ้นอาจมี
ประโยชน์ในการออกแบบว่าควรหรื อไม่ควรสร้ าง class ใหม่
Class ใดๆทีม่ ีส่วนทีเ่ ป็ นตัวแทนของทีเ่ กี ่ยวกับบุคคลอยู่ดว้ ยกันไม่ควรเปลีย่ นบ่อย
โดยทัว่ ไป เมื่อเราใช้ คุณสมบัติที่ไม่สาคัญ แทนที่จะใช้ คณ
ุ สมบัติ ที่สาคัญของแนวคิด
เพื่อจะแยกความแตกต่างท่ามกลาง class ส่วนที่เป็ นตัวแทนของ class เหล่านั ้น
จาเป็ นต้ องย้ ายจาก class หนึ่งไปอีก class หนึ่งบ่อยๆ ตัวอย่ างเช่ น ไวน์ที่ถกู แช่เย็นไม่
ควรเป็ น class ใน ontology ที่ใช้ อธิบายขวดไวน์ในร้ านอาหาร คุณสมบัติ ถูกแช่เย็น
นั ้นควรเป็ นคุณสมบัติของไวน์ที่อยู่ในขวด เนื่องจากส่วนที่เป็ นตัวแทนของไวน์ที่ถกู แช่แข็งนั ้น
สามารถที่จะไม่เป็ นได้ ง่ายๆ และสามารถกลับมาเป็ นได้ อีก
โดยทัว่ ไปนั ้น จานวน,สี,ที่ตั ้ง, เป็ นคุณสมบัติที่ไม่ทาให้ เกิดการสร้ าง class ใหม่ แต่
สาหรับไวน์เป็ นข้ อยกเว้ นที่สงั เกตได้ เนื่องจากสีของไวน์นั ้น เป็ นส่วนสาคัญที่ใช้ ในการ
อธิบายไวน์
สาหรับตัวอย่างอื่นๆ เช่น พิจารณา ontology เกี่ยวกับกายวิภาค มนุษย์ เมื่อเรา
ต้ องการแสดงถึงซี่โครง เราจาเป็ นต้ องสร้ าง class สาหรับแต่ ซี่โครงข้ างซ้ ายอันดับที่ 1 ,
ซี่โครงข้ างขวาอันดับที่ 2 หรื อไม่ หรื อเราจะมี class ซี่โครงที่มีคณ
ุ สมบัติบง่ บอกว่าเป็ น
ซี่โครงลาดับที่เท่าใด ตาแหน่งซ้ ายหรื อขวา ถ้ าหากข้ อมูลเกี่ยวกับซี่โครงแต่ละชิ ้นที่เราแสดง
ถึงใน ontology นั ้นมีความแตกต่างกันอย่างเห็นได้ ชดั แล้ วเราถึงควรที่จะ สร้ าง
class สาหรับซี่โครงแต่ละชิ ้นไปเลย ถ้ าเราต้ องการที่จะแสดงถึง รายละเอียดและข้ อมูล
ของสถานที่ตั ้ง(ซึง่ จะแตกต่างกันสาหรับซี่โครงแต่ละชิ ้น) รวมไปถึง หน้ าที่ที่เฉพาะเจาะจง
ของซี่โครงแต่ละชิ ้น ว่ามีหน้ าที่ปกป้องอวัยวะอะไร เราก็จาเป็ นต้ องสร้ าง class ถ้ าเรา
ออกแบบ กายวิภาค ในระดับที่ละเอียดเล็กน้ อยจากสภาพทัว่ ไป กระดูกซี่โครงทั ้งหมดจะมี
ลักษณะใกล้ เคียงกันมากเท่าๆกับศักยภาพของ application ที่ต้องพิจารณา (พูดถึง
เกี่ยวกับ กระดูซี่โครงชิ ้นไหนที่หกั บนเครื่ อง X-Ray โดยไม่ต้องสนใจส่วนอื่นของร่างกาย)
เราอาจต้ องการทาลาดับชั ้นให้ ง่ายขึ ้นและมีเพียง class กระดูกซี่โครงซึง่ มีเพียงสอง
คุณสมบัติคือ ตาแหน่งและ ลาดับ
4.6 instance หรื อคลาส
การตัดสินใจว่าแนวคิดที่เฉพาะเจาะจงเป็ นคลาสใน Ontology หรื อเป็ น แค่
instance เฉพาะนั ้นขึ ้นอยู่กบั application ของ Ontologyว่ามีศกั ยภาพอะไรอยู่
การตัดสินใจว่าที่ใดที่ class จะสิ ้นสุดและ instance เฉพาะจะเริ่มนั ้น เริ่ มด้ วยการเลือก
ว่าอะไรคือระดับต่าสุดของของระบบที่มีลกั ษณะแยกกันคล้ ายเมล็ด ระดับของระบบดังกล่าว
จะถูกกาหนดโดย application ที่ศกั ยภาพของ Ontology กล่าวคือ ส่วนที่
เฉพาะเจาะจงที่สดุ ที่ถกู จะแสดงในฐานความรู้คืออะไร จากคาถามที่เราได้ ระบุไว้ ในขั ้นตอนที่
1 ส่วนที่ 3 แนวคิดเฉพาะเจาะจงที่สดุ นั ้นจะเป็ นคาตอบไปสูค่ าถามที่ดีมากๆ ในฐานความรู้
แต่ละ instance เป็ นแนวคิ ดเฉพาะส่วนใหญ่ทีแ่ สดงในฐานความรู้
ตัวอย่ างเช่ น ถ้ าเรากาลังจะพูดถึงการจับคู่ wine กับ food เราจะไม่สนใจลักษณะ
ทางกายภาพของขวดไวน์ ดังนั ้น Sterling Vineyards Merlot อาจจะเป็ นเงื่อนไข
เฉพาะส่วนใหญ่ที่เราใช้ กล่าวคือ คลาส wine ไม่ใช่การรวบรวมของแต่ละขวดของ wine
แต่จะเก็บเฉพาะ wine ที่ผลิตโดยเจาะจงไปที่โรงกลัน่ ไวน์มากกว่า ดังนั ้น Sterling
Vineyards Merlot จะเป็ น instance ในฐานความรู้
ในทางกลับกัน ถ้ าเราอยากจะรักษาสินค้ าคงคลังของไวน์ในร้ านอาหาร นอกจาก
ฐานความรู้ของการจับคู่ไวน์และอาหาร ในแต่ละขวดของ wine แต่ละชนิดอาจจะกลายเป็ น
แต่ละ instance ในฐานความรู้ได้
เสมือนว่า ถ้ าเราอยากบันทึกความแตกต่างของคุณสมบัติสาหรับเหล้ าองุ่นแต่ละละชนิด
ของ Sterling Vineyards Merlot แล้ วเหล้ าองุ่นของ wine เป็ น instance ใน
ฐานความรู้ และ Sterling Vineyards Merlot เป็ นคลาสที่มี instance สาหรับ
เหล้ าองุ่นทั ้งหมด
อีกหนึ่งกฎสามารถ “ย้ าย” instance แต่ละตัวเข้ าไปในชุดของคลาสได้
ถ้ารูปแบบแนวคิ ดของลาดับชัน้ เป็ นปกติ ดังนัน้ เราควรแสดงสิ่ งนีเ้ ป็ นคลาส
พิจารณา wine region แรกเริ่ม เราอาจกาหนด win region หลักๆ เช่น
France, United States, Germany และอื่นๆ เป็ นคลาสต่างๆ และ wine
region ที่เจาะจงภายใน region ขนาดใหญ่ให้ เป็ น instance ตัวอย่างเช่น
Bourgogne region เป็ น instance ของคลาส French region อย่างไรก็
ตาม เราจะกล่าวได้ ว่า Cotes d’Or region เป็ น Bourgogne region ดังนั ้น
Bourgogne region ต้ องเป็ นคลาส (เพื่อให้ มีคลาสย่อยหรื อ instance) อย่างไรก็
ตาม การทาคลาส Bourgogne region และ Cotes d’Or region ที่เป็ น
instance ของ Bourgogne region ดูเหมือนว่าจะไม่มีเหตุผล มันยากมากที่จะ
เข้ าใจความแตกต่างของ region ที่เป็ นคลาสและ instance ต่างๆ ดังนั ้น เราจะ
กาหนด wine region ทั ้งหมดให้ เป็ นคลาส Protégé-2000 อนุญาติให้ ผ้ ใู ช้
สามารถระบุคลาสบางคลาสให้ เป็ นนามธรรม บ่งชี ้ว่าคลาสไม่สามารถมี instance ได้
โดยตรง ในกรณีนี ้ คลาส region ทั ้งหมดเป็ นนามธรรม (รู ปภาพที่ 8)
รูปที่ 8 กำรจัดแบ่ งไวน์ ออกเป็ นแต่ ละพืน้ ที่ ตัว “A” บอกว่ำประเภทนั้นยังคลุมเครือและไม่ สำรถ
ควบคุมกำรเกิดกรณีตวั อย่ ำงได้
ลาดับชั ้นของคลาสที่เหมือนกันจะไม่ถกู ต้ อง ถ้ าเราได้ ละเว้ นคาว่า “region” จาก
ชื่อคลาส เราไม่สามารถพูดได้ ว่าคลาส Alsace เป็ นคลาสย่อยของคลาส France
ซึง่ Alsace ไม่ใช่ชนิดของ France อย่างไรก็ตาม Alsace region เป็ นชนิด
ของ French region
คลาสสามารถจัดให้ เป็ นลาดับชั ้นได้ เท่านั ้น ระบบการแทนความรู้ไม่มีแนวคิดของ
instance ย่อย ดังนั ้น ถ้ านัน่ คือลาดับชั ้นปกติตามเงื่อนไข เช่นใน ลาดับชั ้นวิชาที่ว่า
ด้ วยการบัญญัติศพั ท์ จากส่ วนที่ 4.2 เราควรจะกาหนดเงื่อนไขเหล่านี ้เป็ นคลาส
ถึงแม้ ว่าอาจจะไม่มี instance ของตนเอง
4.7 กำรจำกัดขอบเขต
การจากัดขอบเขตเป็ นสิ่ งสุดท้ายในการกาหนดโครงสร้างลาดับชั้น ติดตามด้วยชุดของกฎ
ทัว่ ไปที่เป็ นประโยชน์ในการตัดสิ นใจ เมื่อคาจากัดความของ ontology ครบสมบูรณ์
นัน่ คือ :
Ontology ไม่ควรจะประกอบด้วยข้อมูลที่เป็ นไปได้ท้งั หมดเกี่ยวกับขอบเขตของความรู้
ความคิด ความสนใจ : คุณไม่จาเป็ นต้องมีความเชี่ยวชาญมาก สาหรับการประยุกต์ใช้ของคุณเอง
สาหรับตัวอย่างไวน์และอาหาร เราไม่จาเป็ นต้องรู้วา่ กระดาษถูกใช้สาหรับติดฉลากหรื อ
วิธีการปรุ งอาหารที่ทาจากกุง้ ซึ่งคล้ายๆ กับ ontology ที่ไม่ควรจะประกอบด้วยคุณสมบัติที่เป็ นไป
ได้ท้งั หมดและความแตกต่างระหว่างโครงสร้างลาดับชั้น
4.8 subclasses ทีไ่ ม่ ต่อเนื่องหรือแยกจำกกัน
ระบบจานวนมากช่วยให้เราสามารถระบุคลาสต่างๆ อย่างชัดเจน คลาสที่แยกจากกันคือ
ไม่สามารถมีกรณี ใดที่เหมือนกัน ตัวอย่างเช่น ในเวลาเดียวกันคลาสของไวน์แดงและไวน์ขาวแยก
จากกัน : ไม่มีไวน์ที่สามารถเป็ นทั้งไวน์แดงและไวน์ขาวได้พร้อมๆ กัน
การระบุคลาสที่สามารถแยกจากกันได้จะช่วยให้ระบบการตรวจสอบ ontology ดี เช่น ถ้า
เรากาหนดคลาสของไวน์แดงและไวน์ขาวที่แยกจากกันและต่อมาสร้างคลาสที่ subclass ของทั้งสอง
ได้แก่ subclass ของไวน์ขาว และ subclass ของไวน์แดง
5. กำรกำหนดรำยละเอียดของคุณสมบัติ
5.1 สล็อตที่ตรงกันข้ ำม
ค่าของสล็อตอาจขึ้นอยูก่ บั ค่าของสล็อตอื่น ตัวอย่าง เช่น ถ้าไวน์ได้ผลิตโดยโรงกลัน่ เหล้า
องุ่น จากนั้นไวเนอรี่ ผผู้ ลิตไวน์ท้งั สองที่สมั พันธ์กนั ผูผ้ ลิตและผลิตผล เรี ยกว่า ความสัมพันธ์
ผกผัน การจัดเก็บข้อมูล “ในคาสัง่ ทั้งสอง" เป็ นสิ่ งที่ซ้ าซ้อน เมื่อเรารู้วา่ ไวน์ถูกผลิตโดยโรงกลัน่
เหล้าองุ่น ความเกี่ยวเนื่องโดยใช้ฐานความรู้ สามารถสรุ ปค่าความสัมพันธ์ผกผันที่โรงกลัน่ เหล้า
องุ่นผลิตไวน์ แต่จากมุมมองความรู้ ทัศนคติ ที่รวบรวมมาจะมีขอ้ มูลที่ชดั เจน วิธีน้ ีช่วยให้ผใู้ ช้
กรอกข้อมูลในกรณี ไวน์และโรงกลัน่ เหล้าองุ่น ระบบความรู้ทาการรวบรวมได้โดยอัตโนมัติ
แล้วกรอกค่าความสัมพันธ์ผกผัน insuring สอดคล้องของความรู้พ้ืนฐาน ตัวอย่างนี้ มีคู่ของสล็อต
ผกผัน : สล็อตผูผ้ ลิตของคลาสไวน์และสล็อตผลิตภัณฑ์ของคลาส Winery เมื่อผูใ้ ช้สร้างกรณี
ของคลาสไวน์และเติมค่าสล็อตของผูผ้ ลิต ระบบจะเพิ่มการสร้างขึ้นใหม่โดยอัตโนมัติ เช่น
ในช่วงของการผลิตในกรณี Winery ที่ตรงกัน ตัวอย่าง เช่น เมื่อเราบอกว่า Sterling Merlot ผลิต
โดยโรงกลัน่ เหล้าองุ่น Sterling Vineyard ระบบอัตโนมัติจะทาการเพิ่ม Sterling Vineyard ไป
ยังรายการของไวน์ที่ Sterling Vineyard winery ได้ผลิต (ดังรู ปที่ 9)
รู ปที่ 9 กรณี ที่มีสล็อตผกผัน ผลิตภัณฑ์สล็อตสาหรับคลาส Winery เป็ นสิ่ งที่ผกผัน
ของสล็อตผูผ้ ลิตสาหรับคลาสไวน์ ขณะกรอกในช่องหนึ่งๆ นั้นจะเรี ยกการ update โดย
อัตโนมัติ
5.2 ค่ ำเริ่มต้ น
ระบบ frame-based จานวนมากอนุญาตให้ระบุค่ามาตรฐานสาหรับสล็อตต่างๆ หากค่า
ในช่วงใดช่วงหนึ่งเหมือนกัน สาหรับกรณี ส่วนใหญ่ของคลาส เราสามารถกาหนดค่านี้ เป็ น
ค่าเริ่ มต้นสาหรับสล็อต จากนั้นเมื่อแต่ละ instance ใหม่ของคลาสที่มีช่วงนี้ จะสร้างระบบเติมค่า
เริ่ มต้นโดยอัตโนมัติ เราสามารถเปลี่ยนเป็ นค่าอื่นๆ ได้
ค่าที่เป็ นปัญหาจะช่วยให้ค่าเริ่ มต้นมีความเหมาะสม : คือไม่มีการบังคับใช้ขอ้ จากัดใหม่ๆ
ในโครงสร้างหรื อเปลี่ยนรู ปแบบใดๆ ตัวอย่าง เช่น ถ้าเราจะหารื อเกี่ยวกับโครงสร้างไวน์ เราจะให้
คาว่า " full " เป็ นค่าเริ่ มต้นสาหรับตัวของไวน์ หรื อพูดในทางตรงข้ามว่าเราจะกาหนดไวน์ให้มี
ระดับแอลกอฮอล์เต็ม สิ่ งนี้จะแตกต่างจากค่าสล็อต คือ ค่าสล็อตไม่สามารถเปลี่ยนแปลงได้
6. ชื่อคืออะไร?
ข้อตกลงสาหรับแนวคิดชื่อใน ontology เป็ นสิ่ งที่ทาให้ ontology เข้าใจง่าย และ
ยังช่วยหลีกเลี่ยงข้อผิดพลาดทัว่ ไปของบางแบบจาลอง มีหลายทางเลือกในการตั้งชื่อนี้ เรา
จาเป็ นต้องประชุมเพื่อกาหนดการตั้งชื่อสาหรับคลาสและสล็อตและเพื่อยึดมัน่ และปฏิบตั ิ
ตามนั้น
คุณลักษณะที่มีผลต่อข้อตกลงการตั้งชื่อ : ระบบจะมีชื่อที่คล้ายๆ กันสาหรับคลาส สล็อต
และแล้วแต่กรณี ซึ่งก็คือ ระบบจะอนุญาตให้มีคลาสและสล็อตที่มีชื่อเดียวกัน (เช่นคลาส
winery และสล็อต winery)
ระบบแยกแยะตัวพิมพ์ใหญ่-เล็ก (หมายถึง อักษรตัวเล็ก ตัวใหญ่ มีผล)เป็ นอย่างไร คือ
ระบบที่กระทากับชื่อที่แตกต่างเท่านั้น ในกรณี ที่เป็ นชื่ออื่น (เช่น Winery และ winery)
ระบบจะยอมรับตัวที่จะใช้แยกคาอันไหนในชื่อ อาจเป็ นช่องว่าง จุลภาค เครื่ องหมายดอกจัน
และอื่นๆ
Protege-2000 เป็ นเครื่ องมือในการพัฒนา Ontology ในรู ป Graphical
สามารถสร้าง Knowledge model ได้ดีและที่สาคัญเป็ น Open source ที่
มหาวิทยาลัย Stanford พัฒนาให้ผตู้ อ้ งการใช้งาน Download มาใช้งานได้
เหมาะ
สาหรับการทา Knowledge model เพื่อการตัดสิ นใจหรื อแนวทางการแก้ปัญหาต่างๆ ได้
ดี ที่สาคัญเป็ นเครื่ องมือในการจัดเก็บความรู้จากคนสู่ระบบ computer
ผ่าน Knowledge System developer ระดับมือสมัครเล่นทุกคนก็สามารถทาได้
case-sensitive คือ ระบบแยกแยะตัวพิมพ์ใหญ่-เล็ก (หมายถึง อักษรตัวเล็ก ตัวใหญ่
มีผล) เราจึงไม่สามารถมีคลาส Winery (ตัวพิมพ์ใหญ่) และสล็อต wineryได้ ในอีกทาง
หนึ่งคือใช้รูปแบบดั้งเดิมคือ กรณี ที่ไม่เป็ น case-sensitive และคงแตกต่างของชื่อสาหรับ
คลาสและสล็อต ในกรณี น้ ีกข็ ้ ึนอยูก่ บั มุมมองของระบบที่จะเลือกวิธีในการตั้งชื่อคลาสและสล็อต
6.1 ตัวทีจ่ ะใช้ แยกคำ
เมื่อแนวคิดชื่อมีมากกว่าหนึ่งคา (เช่น Meal course) เราต้องคัน่ คา ทางเลือกที่
เป็ นไปได้ในการแยกคา คือ
ใช้ Space : Meal course ( ระบบต่างๆ รวมถึง Protege ยอมให้มี
ช่องว่างในกรอบความคิดชื่อ)ในการดาเนินการกับคาติดๆ กัน ให้เขียนหรื อพิมพ์
ตัวอักษรตัวใหญ่ในแต่ละคาใหม่ : MealCourseใช้ขีดล่างหรื อขีดหรื อตัวคัน่ อื่นๆ
ในชื่อ : Meal_Course, Meal_course, Meal-Course, Mealcourse (ถ้าใช้ตวั คัน่ เราจะต้องตัดสิ นใจว่าจะใช้ตวั อักษรเป็ นตัวพิมพ์ใหญ่หรื อ
ตัวพิมพ์เล็ก)
6.2 เอกพจน์ หรือพหูพจน์
ชื่อคลาสนั้นคือ ชุดของวัตถุ ตัวอย่าง เช่น คลาส Wine ตามความเป็ นจริ งทาหน้าที่แทนไวน์
ทั้งหมด สาหรับนักออกแบบจะเรี ยกคลาส Wines มากกว่าคลาส Wine ไม่มีอนั ไหนดีกว่า
หรื อแย่กว่า (แม้วา่ เอกพจน์สาหรับชื่อคลาสถูกใช้บ่อยในทางปฏิบตั ิ) แต่ทวั่ ทั้ง ontology ควรที่
จะมีความสอดคล้องกัน โดยในการทางานควรใช้รูปแบบเดียวกันตลอดทั้งหมด วิธีน้ ียงั ช่วยป้ องกัน
การออกแบบที่อาจเกิดความผิดพลาดได้
6.3 ข้ อตกลงของคำนำหน้ ำและคำต่ อท้ ำย
บางฐานความรู้มีวิธีการแนะนาให้ใช้คานาหน้าและคาต่อท้ายในข้อตกลงของชื่อเพื่อแยก
ระหว่างคลาสและสล็อตมีสองวิธีคือ เพิ่มข้างหน้า has- หรื อต่อท้าย –of ที่ชื่อสล็อต
หากเราเลือกแบบ has- สล็อตจะกลายเป็ น has-maker และ has-winery
หากเราเลือกแบบ of- สล็อตจะกลายเป็ น maker-of และ winery-of
วิธีน้ ีจะช่วยให้ทุกคนมองขอบเขตเพื่อตัดสิ นใจว่าเป็ นคลาสหรื อสล็อต แต่ขอบเขตชื่อที่
เหมาะสมจะยาวอีกเล็กน้อย
6.4 พิจำรณำกำรตั้งชื่ออืน่
ข้อมูลเพิ่มเติมที่ควรพิจารณาเมื่อระบุในข้อตกลงการตั้งชื่อคือ
อย่าเพิ่มสตริ ง เช่น "class", “property”, “slot”และอื่นๆ ที่เป็ นกรอบ
แนวคิดชื่อ นอกจากนี้ยงั ใช้ขอ้ ตกลงชื่อที่แตกต่างกันสาหรับคลาสและสล็อต ชื่อของตัวเอง
จะแสดงให้เห็นถึงสิ่ งที่เป็ นแนวคิด
โดยปกติควรหลีกเลี่ยงคาย่อในกรอบแนวคิดชื่อ (ที่ใช้ Cabernet Sauvignon
มากกว่า Cab)
ชื่อของ subclasses ของ class ควรจะรวมเข้าทั้งหมดหรื อไม่กร็ วมชื่อของ
superclass
ตัวอย่างเช่น ถ้าเรากาลังสร้าง subclasses 2 subclasses ของคลาส Wine
ที่แสดงถึงไวน์แดงและไวน์ขาว ชื่อ subclass ทั้งสองควรจะเป็ น Red Wine
และ White Wine หรื อ Red และ White แต่ไม่ใช่
Red Wine และ
White
7. แหล่ งข้ อมูลอืน่ ๆ
เราใช้ Protege-2000 ในฐานะการพัฒนา ontologyสาหรับตัวอย่างนี้ ซึ่ ง
Protege เป็ น Editor รองรับคาต่างๆ ที่ผา่ นกระบวนการวิธีคิดแบบ ontology
มาเก็บไว้ในรู ปแบบความสัมพันธ์ของคลาสต่างๆ แล้วให้สล็อตเป็ นตัวบ่งบอกถึง
คุณสมบัติของคลาสนั้นๆ และตัวโปรแกรม Protege จะบันทึกคาถามเกี่ยวกับเรื่ องที่
เราทาการวิจยั ไว้ในส่วนของ Queryเพื่อที่จะสามารถตอบคาถามเกี่ยวกับเรื่ องนั้นๆ ได้
ในทันทีที่คาถามนั้นมีอยูใ่ นรายการของ Query ที่ทาไว้ และถ้าพบกับคาถามที่ไม่มีอยู่
ใน Query ที่ทาไว้ แต่ตรงกับขอบเขตของงานที่ทาอยูน่ ้ นั เราก็สามารถใส่ คาถามนั้น
เพิ่มเข้าไป เพื่อนาเอาคาตอบที่เก็บไว้ใน Protege ออกมาตอบได้ต่อไป
ขณะนี้นกั วิจยั ไม่เพียงแต่เน้นการพัฒนา ontology แต่ยงั เน้นการวิเคราะห์
ontology โดย ontologyนี้เป็ นสิ่ งที่ถกู สร้างขึ้นและนากลับมาใช้ใหม่ เครื่ องมือที่
เพิ่มเติมนี้จะสามารถช่วยวิเคราะห์ ontology ตัวอย่างเช่น Chimaera
(McGuinness et al. 2000) มาช่วยวิเคราะห์ ontology ในตรวจสอบตรรกะ
ความถูกต้องของ ontology และการวินิจฉัยข้อผิดพลาดของการออกแบบ
ontology ทัว่ ไป นักออกแบบอาจต้องการใช้ Chimaera ในการค่อยๆ พัฒนาเพื่อ
กาหนดความสอดคล้องกับการสร้างแบบจาลองทัว่ ไป
8. สรุป
ในคู่มือนี้เราได้อธิบายวิธีการพัฒนา ontology เพื่อแสดงให้เห็นระบบ
framebased เราได้ทาขั้นตอนในกระบวนการการพัฒนาontologyและการจัดการกับปัญหาที่
ซับซ้อนของการกาหนดโครงสร้างลาดับชั้นและคุณสมบัติของคลาสและยกตัวอย่างต่างๆ อย่างไร
ก็ตามหลังจากนี้กฎและคาแนะนา หนึ่งสิ่ งที่สาคัญที่สุดคือ : ไม่มี ontology ใดถูกต้อง สาหรับ
โดเมนใดๆ ในการออกแบบ ontology เป็ นเพียงการสร้างกระบวนการและไม่มีontology
ใด ที่ถูกออกแบบโดยคนละคนจะมีโอกาสเหมือนกัน การออกแบบขึ้นอยูก่ บั ความเข้าใจของนัก
ออกแบบและมุมมองของโดเมน เราสามารถประเมินคุณภาพของ ontology ของเราโดยใช้
ความเกี่ยวข้องเพื่อที่จะออกแบบสิ่ งนั้น
รายชื่อสมาชิก
นางสาวกรรณิการ์
นางสาวเขมจิรา
นางสาวกนกอร
นางสาวนาฏนภา
นางสาวเบญจวรรณ
เนวะนิตย์
จันทร์ บญ
ุ ศรี
ศิริอานาจ
เป้าปราณี
จิตรถวิล
50033763
50034487
50036153
50036290
50036313