680 likes | 927 Views
Ontology Development 101 A Guide to Creating Your First Ontology. Natalya F. Noy and Deborah L. McGuinness Stanford University, Stanford, CA, 94305 noy@smi.stanford.edu and dlm@ksl.stanford.edu. Why develop an ontology?.
E N D
Ontology Development 101 A Guide to Creating Your First Ontology Natalya F. Noy and Deborah L. McGuinness Stanford University, Stanford, CA, 94305 noy@smi.stanford.edu and dlm@ksl.stanford.edu
Why develop an ontology? • ในปีที่ผ่านมาการพัฒนา ontology ได้มีการกำหนดข้อตกลงที่ชัดเจน ในส่วนของโดเมนและความสัมพันธ์ในกลุ่มของผู้พัฒนา (Gruber 1993) การพัฒนา ontology ได้ถูกย้ายจากขอบเขตของ Artificial-Intelligence ไปสู่ขอบเขตของผู้พัฒนา ontology • มีขอบเขตตั้งแต่การจัดหมวดหมู่ของ web ที่มีขนาดใหญ่ ตัวอย่างเช่น Yahoo ไปจนถึงการจัดหมวดหมู่ของสินค้าที่ต้องการขาย และคุณสมบัติของสินค้า ตัวอย่างเช่น Amazon.com • WWW Consortium (W3C) เป็นผู้พัฒนา Resource Description Framework (Brickley และ Guha 1999) ซึ่งเป็นภาษาสำหรับการเข้ารหัสความรู้ที่อยู่บนหน้า Web เพื่อทำให้ผู้ค้นหาข้อมูลในทาง electronic สามารถเข้าใจ
Why develop an ontology? • The Defense advanced Research Projects Agency (DARPA) ได้ร่วมกับ W3C ในการที่จะพัฒนา DARPA Agent Markup Language (DAML) โดยการเพิ่ม RDF กับ การแสดงออกทางโครงสร้างของวัตถุประสงค์ที่มากขึ้น เพื่ออำนวยความสะดวกในการติดต่อตัวแทนใน Web(Hendlerและ McGuinness 200) • ในหลายสาขาวิชาในขณะนี้ ได้พัฒนามาตรฐานของ ontology ที่ผู้เชี่ยวชาญสามารถใช้ร่วมกัน และใช้เพื่ออธิบายข้อมูลในส่วนของตัวเอง ตัวอย่างเช่น Medicine (ยา) ที่มีการผลิตออกมามาก ,มาตรฐาน , โครงสร้างคำศัพท์ เช่น SNOMED (Price และ Spackman 200) และความหมาย network ของ Unified Medical Language System(Humphreys and Lindberg 1993) • วัตถุประสงค์ของ ontology อย่างกว้าง ๆ ที่เกิดขึ้นใหม่ เช่น , The United Nations Development Program and Dun & Bradstreet รวมกับความพยายามที่จะพัฒนา ontologyUNSPSC ซึ่งมีคำศัพท์สำหรับผลิตภัณฑ์ และบริการ (www.unspsc.org)
Why develop an ontology? • ทำไมจึงมีคนที่ต้องการจะพัฒนา ontology? บางเหตุผลคือ : • เพื่อที่จะแบ่งปันความเข้าใจของโครงสร้างของข้อมูลในกลุ่มประชากรหรือ software agent (ตัวแทน software) • -เพื่อนำความรู้ในโดเมนกลับมาใช้ใหม่ • -เพื่อทำสมมติฐานในโดเมนให้ชัดเจนขึ้น • -เพื่อแยกความรู้จากโดเมน ออกจากความรู้จากการปฏิบัติ • -เพื่อวิเคราะห์โดเมนความรู้
About this guide • พวกเขาเขียนจากประสบการณ์ของพวกเขาโดยใช้ Protégé 2000(protege 2000) , Ontolingua (Ontolingua 1997) และ Chimaera (Chimaera 2000) เป็นตัวแก้ไข ontolgyในบทแนะนำนี้พวกเขาใช้ Protégé 2000 ในการยกตัวอย่าง ตัวอย่างของไวน์และอาหารที่เราใช้มาตลอดนี้เป็นตัวอย่างเพียงคร่าว ๆ ของตัวอย่างฐานความรู้ในการนำเสนอรายละเอียดของ CLASSIC ในบทความนี้ – ระบบการแทนความรู้ใน description-logics approach(Brachman et al 1991) • บางครั้ง การออกแบบ ontology ก็ได้แนวคิดมาจาก วรรณกรรมการออกแบบของ object-oriented (Rumbaugh et al. 1991; Booch et al. 1997) อย่างไรก็ตาม การออกแบบ ontology ก็แตกต่างจากการออกแบบ class และความสัมพันธ์ในการเขียนโปรแกรมแบบ object-oriented (การเขียนโปรแกรมเชิงวัตถุ) การเขียนโปรแกรมเชิงวัตถุมีหลักการใกล้เคียงกับวิธีการของ class
About this guide • นักเขียนโปรแกรมออกแบบพื้นฐานการตัดสินใจบนคุณสมบัติที่ใช้งานได้ของ class. ในทางตรงข้ามผู้ออกแบบ ontology สร้างพื้นฐานการตัดสินใจบนโครงสร้างคุณสมบัติของ class เป็นผลให้โครงสร้างของ class และความสัมพันธ์ของ class ใน ontology แตกต่างจากโครงสร้างสำหรับโดเมนเดียวกันในการเขียนโปรแกรมเชิงวัตถุ • มันเป็นไปไม่ได้ที่จะครอบคลุมประเด็นทั้งหมดในการพัฒนา ontology บางทีอาจจะต้องหาเพิ่มเติมเอาเอง ซึ่งเราจะไม่กล่าวในบทแนะนำนี้ พวกเราพยายามที่จะหาจุดเริ่มต้น คำแนะนำเริ่มต้นที่จะช่วยออกแบบ ontology เพื่อที่จะพัฒนา ontology ในตอนท้ายเราแนะนำสถานที่ที่จะหาคำอธิบายโครงสร้างที่ซับซ้อนมากขึ้น และออกแบบกลไกหากโดเมนมีความต้องการ • สุดท้ายนี้ มันไม่ได้มีวิธีการออกแบบ ontology ที่ถูกต้องเพียงวิธีการเดียว และพวกเราไม่ได้ตั้งสมมติฐานเพื่อกำหนดเพียงอันใดอันหนึ่ง วิธีการที่นำเสนอนี้เป็นเพียงวิธีการเดียวที่พวกเราพบว่าเป็นประโยชน์จากประสบการณ์การพัฒนา ontology ของพวกเรา ในตอนท้ายของคำแนะนำนี้ พวกเราขอแนะนำรายการอ้างอิง สำหรับหลักการทางเลือก
What is in an ontology? • ในหมวดของ Artificial-Intelligence ให้คำจำกัดความสำหรับ ontology ไว้หลายคำ ในความหมายเหล่านี้ มีอยู่หลายคำที่ขัดแย้งกับคำอื่น ๆ สำหรับจุดประสงค์ในการแนะนำ ontology นี้ คือการอธิบายอย่างเป็นทางการถึงแนวความคิดของโดเมนของวาทกรรม(classes (บางครั้งเรียกว่า แนวคิด) เป็นคุณสมบัติของแต่ละแนวคิด อธิบายหน้าตา(feature)ที่แตกต่างกันและคุณสมบัติที่แตกต่างกัน(attribute)ของแต่ละแนวคิด(slot บางครั้งเรียกว่า บทบาท (role) หรือคุณสมบัติ(property)) และข้อจำกัดในแต่ละบทบาทหรือคุณสมบัติ (facet บางครั้งเรียกว่า ข้อจำกัดบทบาท) Ontology รวมกับเซตของ instance เฉพาะของแต่ละ class ถือว่าเป็น ฐานความรู้
What is in an ontology? • Classes เป็นจุดสำคัญใน ontology ส่วนใหญ่ Classes ใช้เพื่ออธิบายแนวคิดในโดเมน ตัวอย่างเช่น class ของไวน์ซึ่งใช้แทนไวน์ทั้งหมด ไวน์ชนิดหนึ่งจะเป็นตัวอย่างของ class นี้ ไวน์ Bordeaux ในแก้วที่วางอยู่เบื้องหน้าคุณในขณะที่คุณอ่านเอกสาร เป็นตัวอย่างของการจัด class ของ Bordeaux. Class แต่ละตัวสามารถมี subclass ที่แทนแนวความคิดที่มีรายละเอียดมากกว่า superclassตัวอย่างเช่น พวกเราสามารถแบ่ง class ของไวน์เป็น ไวน์แดง ไวน์ขาว และไวน์ชมพู(rose) หรือเราสามารถแบ่ง class ของไวน์ทั้งหมดเป็น sparkling wine และ non-sparkling wine • Slot อธิบายคุณสมบัติของ Class และในกรณี: Château Lafite Rothschild , Pauillac wine เป็นตัวเต็ม มันเป็นผลิตภัณฑ์ของโรงกลั่นเหล้าองุ่นชื่อ Château Lafite Rothschildพวกเรามี 2slot ที่ใช้เพื่ออธิบายไวน์ในตัวอย่างนี้ : body slot ที่มีค่าเป็น full กับ slot ของผู้ผลิตที่มีค่าเป็นโรงกลั่น Château Lafite Rothschild ที่ระดับของ class พวกราสามารถกล่าวถึง class ของไวน์ เราสามารถแบ่ง slot ได้เป็น flavor,body,sugarlevel,maker และอื่น ๆ
What is in an ontology? • จากตัวอย่างทั้งหมดของไวน์ที่กล่าวมา Classของไวน์ และ subclass Pauillacมีค่าของ slot maker เป็นตัวอย่างของ class ของโรงกลั่น ในทุกกรณีของ Class ของโรงกลั่นจะมี slot ที่เป็น Produce (ผลิตภัณฑ์) เป็นตัวที่ใช้อ่างถึงไวน์แต่ละตัว (ในตัวอย่างนี้มีไวน์เป็น subclass) ที่เป็นผลิตภัณฑ์ของโรงกลั่น ในด้านการปฏิบัติ การพัฒนา ontology ประกอบไปด้วย : • 1.กำหนด class ใน ontology • 2.จัดเรียง class ในลำดับอนุกรมวิธาน (แบ่ง subclass – superclass) • 3.กำหนด slot และแบ่งรายละเอียดของค่าต่าง ๆ ของ slot • 4.กรองค่าใน slot ในแต่ละกรณี
What is in an ontology? • เราสามารถสร้างฐานความรู้ได้โดการกำหนดกรณีเฉพาะของ classes filling ในค่าเฉพาะของ slotและเพิ่มข้อจำกัดของ slot รูปที่ 1. ความสัมพันธ์ทั้งหมดของ ไวน์โดเมน เราใช้สีดำสำหรับ class และสีแดงสำหรับกรณี (instance) การเชื่อมโยงโดยตรงใช้แทน slot และ การเชื่อมโยงภายในเป็น instance-of และ subclass-of
A Simple Knowledge-Engineering Methodology อย่างแรก เราต้องการย้ำถึงกฎพื้นฐานของการออกแบบ ontology บางข้อ ซึ่งเราจะอ้างถึงในหลาย ๆ ครั้ง กฎเหล่านี้อาจดูค่อนข้างจะไม่มีเหตุผล หรือไร้ข้อพิสูจน์ พวกมันช่วยได้ อย่างไรก็ตาม ในการที่จะออกแบบการตัดสินใจในหลาย ๆ กรณี 1.ไม่ได้มีเพียงวิธีการเดียวที่ถูกต้องในการที่จะออกแบบโดเมน มันมักจะมีทางเลือกอื่นเสมอ วิธีการแก้ปัญหาที่ดีที่สุดมักจะขึ้นอยู่กับ applicationที่คุณรู้และส่วนขยายที่คุณต้องการ 2.การพัฒนา ontology คือการที่ต้องทำกระบวนการเดิมซ้ำ ๆ หลาย ๆรอบ 3.แนวคิดของ ontology ควรจะทำให้ใกล้กับวัตถุ (ทางกายภาพหรือทางตรรกะ) และมีความสัมพันธ์ในโดเมนที่คุณสนใจ ส่วนใหญ่มักจะเป็นคำนาม (วัตถุ) หรือกริยา (ความสัมพันธ์) ในประโยคที่อธิบายถึงโดเมนของคุณ
Step 1. การหาโดเมนและขอบเขตของ ontology เราจะเริ่มแนะนำontologyโดยการนิยามโดเมนและขอบเขต ซึ่งนั่นคือ คำตอบของคำถามพื้นฐาน ดังนี้ • อะไรคือโดเมนที่ครอบคลุม ontology • เราใช้ ontology ไปเพื่ออะไร • อะไรคือประเภทคำถามของข้อมูลใน ontology และเราควรจะได้รับคำตอบอย่างไร • ใครเป็นผู้ใช้และดูแล ontology คำตอบของคำถามเหล่านี้อาจจะมีการเปลี่ยนแปลงได้ในกระบวนการออกแบบ ontology แต่อาจจะต้องใช้เวลาในการจำกัดขอบเขตของโมเดล
พิจารณา ontology ของไวน์และอาหาร อาหารและไวน์ คือ โดเมนของ ontology เราวางแผนว่าจะใช้ ontology สำหรับApplicationนี้ ที่ใช้ในการแนะนำอาหารและไวน์ที่ดี • แนวความคิดที่จะอธิบายประเภทไวน์และอาหารที่เกี่ยวกับการจัดชุดไวน์และอาหารที่ดี และไม่ดี จะช่วยให้เราเห็นภาพภายใน ontology ของเรา ในขณะเดียวกัน ontology จะประกอบขึ้นจากหลายความคิดที่จะสร้างขึ้นมาจากนักดื่มไวน์หรือพนักงานในภัตตาคาร ความคิดต่าง ๆ จากสิ่งเหล่านี้มีความสัมพันธ์เกี่ยวข้องกับของไวน์และอาหาร
ในการหาขอบเขตของ Ontology คือ การร่างรายการของคำถามต่างๆ โดยคำถามของฐานความรู้บน Ontology อาจจะมีได้หลายคำตอบ คำถาม • 1. ontology สามารถที่จะมีข้อมูลที่เพียงพอสำหรับการตอบคำถามต่าง ๆ เหล่านี้หรือไม่ • 2. คำตอบต่าง ๆ ต้องการรายละเอียดหรือการแสดงที่พิเศษหรือไม่ คำถามที่มีความสมบูรณ์เหล่านี้เป็นการร่างขึ้นมาไม่จำเป็นต้องละเอียดในโดเมนของไวน์และอาหาร
ลักษณะใดของไวน์ที่เราควรจะเลือกหรือพิจารณาลักษณะใดของไวน์ที่เราควรจะเลือกหรือพิจารณา • เป็นไวน์แดงหรือไวน์ขาวที่มาจากเมืองBordeaux(บอร์โด)หรือไม่ • เป็นไวน์ที่เหมาะกับอาหารทะเลหรือไม่ • ไวน์อะไรที่เหมาะกับการกินเนื้อวัวย่างที่สุด • ลักษณะของไวน์ใดที่เหมาะกับอาหารใด • รสชาติหอมหรือลักษณะเฉพาะของไวน์ • ฤดูไหนบ้างที่ดีหรือเหมาะต่อการทำไวน์ การพิจารณาจากรายการของคำถาม ontology จะรวมข้อมูลต่าง ๆ เกี่ยวกับลักษณะและประเภทของไวน์ เช่น ปีที่มีไวน์ดี หรือไม่ดี , อาหารต่าง ๆ ที่เหมาะกับไวน์ เป็นการแนะนำอาหารและไวน์
Step 2. พิจารณาการนำ ontology กลับมาใช้ใหม่ เป็นการพิจารณาที่มีคุณค่า ถ้ามีอะไรบางอย่างที่ใช้งานได้อยู่แล้ว และเราสามารแก้ไขให้ดีขึ้นและขยายข้อมูลที่มีอยู่ในส่วนของโดเมนและงานการใช้ ontology ได้ ถ้าระบบของเราต้องโต้ตอบกับแอฟพลิเคชั่นอื่น หลาย ontology อยู่ในรูปของอิเล็กทรอนิกส์และสามารถนำเข้ามาในสภาพแวดล้อมการพัฒนา ontology ได้ หลักการของ ontology จะถูกแสดงออกชัดเจน เพราะระบบแทนความรู้ สามารถนำเข้าและส่งออก ontology ได้
อย่างเช่น พื้นฐานความรู้ของไวน์ฝรั่งเศสอาจจะมีอยู่แล้ว ถ้าเรานำฐานความรู้นี้มาใช้จะทำให้เป็นความรู้พื้นฐานที่เรามีอยู่ได้ เราไม่ได้ทำการแบ่งแต่ประเภทของไวน์ แต่เราจะแยกประเภทของไวน์จากลักษณะของมัน โดยใช้สิ่งที่แตกต่างกันในการแยกและอธิบายรายละเอียดของไวน์ รายการคุณสมบัติของไวน์อาจจะมีอยู่แล้วในเว็บไซต์ เช่นwww.wines.com ซึ่งลูกค้าสามารถเลือกไวน์ที่ตนเองต้องการได้ จากคำแนะนำนี้ เราจะสมมติว่าความสัมพันธ์กับ ontology ที่มีอยู่แล้วนั้นไม่มี และเริ่มพัฒนา ontology จากการเขียน
Step 3. ความสำคัญการระบุเทอม ontology • ประโยชน์ที่ทำการบันทึกรายการในบรรดาเทอม คือ เราใช้ ในการทำประโยค (Statement) หรือ อธิบายผู้ใช้ให้เข้าใจได้ และ อะไรคือเทอมที่เราจะพูดถึง อะไรคือคุณสมบัติที่เทอมนั้นมี อะไรคือเรื่องที่เราจะพูดถีงเกี่ยวกับเทอมต่าง ๆ ตัวอย่าง คือ ความสำคัญความสัมพันธ์ของไวน์ ประกอบด้วย ไวน์ , องุ่น , สถานที่ผลิต , สีของไวน์ , ความเข้ม,รสชาติ และความหวาน , อาหารที่แตกต่าง เช่น ปลา , เนื้อที่มีสีแดง ชนิดของไวน์ เช่น ไวน์ขาว , ไวน์แดง และอื่น ๆ
ในตอนเริ่มต้น ความสำคัญในการที่จะทำการรวมรายการของเทอมทั้งหมด ความสัมพันธ์ในเทอมต่าง ๆหรือแนวคิดพื้นฐานต่าง ๆ ที่มีได้ หรือมีแนวคิดที่เป็นคลาสหรือสล็อต 2 ขั้นตอนต่อไป คือ การพัฒนาลำดับขั้นของคลาส (class hierarchy) และการนิยามคุณสมบัติของสล๊อต มันเป็นเรื่องยากในช่วงแรก และต่อมาก็ทำได้ตามปกติ เราสามารถสร้างนิยาม 2 - 3 นิยามของแนวคิดในลำดับชั้น และอธิบายคุณสมบัติของแนวคิดเหล่านี้ 2 ขั้นตอนนี้เป็นขั้นตอนที่มีความสำคัญในการกระบวนการออกแบบ ontology
Step 4. กำหนดคลาสและลำดับชั้นของคลาส วิธีการแบบ top-down • เป็นกระบวนการที่เริ่มต้นด้วยการกำหนดแนวคิดทั่วไปของโดเมน ต่อมาก็กำหนดแนวคิดแบบเฉพาะ เช่น เราสามารถเริ่มต้นสร้างคลาสสำหรับแนวคิดของไวน์และอาหารที่เฉพาะเจาะจงเป็นคลาสย่อย (Subclass)เช่น ไวน์ขาว , ไวน์แดง, ไวน์กุหลาบ เป็นต้น
วิธีการแบบ bottom-up • เป็นกระบวนการที่เริ่มต้นด้วยการกำหนดสิ่งที่เฉพาะเจาะจงในคลาส ต่อมาก็ทำการรวมคลาสเหล่านี้ให้เป็นกลุ่มลงในแนวคิด เช่น เราเริ่มต้นด้วยการกำหนดคลาสของไวน์ Pauillac , Margauxแล้วเราก็สร้างคลาสแม่ (super class) เป็น 2 คลาส Medoc จะเป็นคลาสย่อย (subclass)ของ Bordeaux วิธีการแบบ combination • เป็นกระบวนการที่รวมวิธีการของทั้งสองแบบ คือ top-down และ bottom-up เรากำหนดจุดเด่นของแนวคิดต่าง ๆ ในตอนแรกและก็ทำการ generalize และ specialize ให้เหมาะสม โดยเริ่มต้นจากแนวคิดแบบ top-level และให้มีความสัมพันธ์กันแบบ middle-level
รูปที่ 2 แสดงการแยกส่วนย่อยๆ ในระดับต่างๆ ของคุณลักษณะทั่วๆไป รูปที่ 2. ระดับความแตกต่างของอนุกรมวิธานของ wine : ไวน์เป็นแนวคิดโดยทั่วไปมากที่สุด ไวน์แดง, ไวน์ขาว และ ไวน์สีกุหลาบ เป็นระดับความคิดทั่วไป Pauillacและ Margauxเป็นคลาสที่ถูกระบุมากที่สุดในลำดับชั้น (หรือแนวความคิดระดับล่าง)
ทั้งสามวิธีไม่มีอะไรดีที่สุด วิธีการขึ้นอยู่กับโดเมนแต่ละบุคคล หากนักพัฒนามีระบบ top - downของโดเมนดู ก็อาจจะง่ายต่อการใช้วิธีการจากบนลงล่าง วิธีการผสมมักจะเป็นวิธีที่ง่ายที่สุดสำหรับนักพัฒนาหลาย ontology ตั้งแต่แนวคิดระดับกลางมักจะเป็นแนวคิดแบบขึ้น
ถ้า class A เป็น superclassของ class B ดังนั้นทุกตัวอย่างของ B เป็นตัวอย่างของ Aในคำอื่น ๆ class B เป็นการแสดงแนวคิดที่เป็น “ ลักษณะของ A " ตัวอย่างเช่น ทุกอย่างที่เป็นส่วนประกอบของ ไวน์ Pinot Noir จำเป็นต้องเป็นไวน์แดง ดังนั้น Pinot Noir class เป็น subclass ของคลาสไวน์แดงรูปที่ 2 แสดงส่วนหนึ่งของลำดับชั้นเรียนสำหรับ ontology ไวน์ มาตรา 4 มีการสนทนารายละเอียดของสิ่งที่มองหาเมื่อมีการกำหนดลำดับชั้น รูปที่ 3 ช่องสำหรับชั้นไวน์และ facets สำหรับช่องนี้ "I" เป็นไอคอนถัดจาก maker เป็นช่องที่ระบุว่าช่วงที่มีความผกผัน (Section 5.1)
Step 5. นิยามคุณลักษณะของ Classslot • ชั้นที่อยู่เพียงชั้นเดียวจะมีข้อมูลไม่เพียงพอที่จะสามารถตอบคำถาม • จากขั้นตอนที่ 1 เมื่อเราได้กำหนดบางชั้นแล้ว เราต้องอธิบายโครงสร้างภายในของแนวคิดเราได้เลือกชั้นจากรายการของ items ที่เราสร้างในขั้นตอนที่ 3 ที่สุดแล้วจำนวนที่เหลือมีแนวโน้มที่จะเป็นคุณสมบัติของชั้นเหล่านั้น • สำหรับคุณสมบัติในแต่ละรายการ เราจะต้องอธิบายและตรวจสอบได้ว่า คุณสมบัติเหล่านี้เป็น slots ของชั้น ดังนั้นชั้นของไวน์จะมี slots ดังต่อไปนี้ คือ สี รูปร่าง รสและน้ำตาล และจะมีตำแหน่งชั้นของ โรงงานผลิตด้วย • Subclass ทั้งหมดของคลาสสืบทอด slot ของคลาส เช่นทุกๆ slots ของชั้นไวน์จะสืบทอดให้ subclass ของไวน์ รวมทั้งไวน์แดงและไวน์ขาว เราจะเพิ่มอีก slotsในระดับของ tannin (ต่ำ,ปานกลาง,สูง) เพื่อชั้นไวน์แดง slotระดับ tannin จะถูกสืบทอดโดยทุกชั้นที่แสดงไวน์แดง (เช่น Bordeaux และ Beaujolais)
ขั้นที่6 : มุมมองของการกำหนดช่องตาราง • ในการกำหนดตารางสามารถอธิบายได้อย่างหลากหลาย มีทั้งประเภทของค่าตัวแปร ตัวแปรสำรองให้จำนวนค่าและตัวแปรอื่นๆของค่าสล็อตที่สามารถกำหนดตารางได้ ตัวอย่างเช่น ตัวแปรที่เป็นชื่อของช่องตารางในหนึ่งสตริง โดยระบุชื่อตัวแปรสตริง แล้วสร้างหลายๆตัวแปร ยกตัวอย่างตัวแปรของคลาสไวน์
กำหนดของคาร์ดิเนลิตี้กำหนดของคาร์ดิเนลิตี้ • กำหนดจำนวนค่าสล็อต ระบบบางระบบจะจำแนกความแตกต่างเท่านั้น ระหว่างคาร์ดิเนลิตี้แบบเดี่ยว (สำรองได้มากสุดหนึ่งค่า) และแบบหลายคาร์ดิเนลิตี้(สำรองตัวเลขใดๆของตัวแปรอย่างไม่จำกัด) ในส่วนของบอดี้คลาสไวน์จะใช้คาร์ดิเนลิตี้แบบเดี่ยวในช่องตาราง(ไวน์สามารถมีได้เพียงหนึ่งตัว) ไวน์สร้างไวน์รี่แต่งตั้งในแบบหลายๆคาร์ดิเนลิตี้ของช่องตารางสำหรับคลาสของไวน์รี่ • ระบบบางระบบจะยอมรับข้อจำกัดคาร์ดิเนลิตี้อย่างต่ำสุดและสูงสุด ในการอธิบายตัวเลขของตัวแปรในตาราง ค่าคาร์ดิเนลิตี้ต้องมีความแม่นยำ จะต้องมีค่า N จะมีความหมายว่าสล็อตมักจะมีตัวแปรN
กำหนดของคาร์ดิเนลิตี้กำหนดของคาร์ดิเนลิตี้ • ยกตัวอย่าง : สล็อตองุ่นของไวน์ที่มีคุณสมบัติขั้นต่ำ 1: ไวน์ทำมาจากองุ่น คาร์ดิเนลิตี้สูงสุดของความหมายM คือ สล็อตสามารถมีได้สูงสุด คาร์ดิเนลิตี้ที่มีจำนวนมากสำหรับสล็อตองุ่น สำหรับไวน์ชนิดเดี่ยว คือ 1: ไวน์ทำมาจากองุ่นชนิดเดียวเท่านั้น บางครั้งอาจจะเป็นประโยชน์ในการตั้งค่าคาร์ดิเนลิตี้ที่สูงสุดเป็นศูนย์ การตั้งค่านี้ แสดงว่าสล็อตช่วงนี้ไม่สามารถมีค่าใดๆของซับคลาสเฉพาะ
รูปแบบของสล็อตตัวแปร • รูปแบบตัวแปรที่สามารถเติมในสล็อต นี้คือรายการรูปแบบตัวแปรที่เกิดขึ้น : • สตริง คือรูปแบบตัวแปรพื้นฐานFloatและจำนวนเต็ม • ตัวเลข (บางครั้งรูปแบบเฉพาะของตัวแปรfloatและจำนวนเต็ม) อธิบายสล็อตด้วยค่าตัวเลข ยกตัวอย่างเช่น ราคาของไวน์ นับเป็นตัวแปรูปแบบFloat • ช่องบูลีน สล็อตในตัวอย่าง yes-no ยกตัวอย่างเช่น ถ้าเราเลือกที่ไม่แสดงไวน์ให้เห็นว่า การแยกไวน์จะแสดงค่าบูลีน หรือทั้งสองอย่าง • สามารถแสดงให้ตัวแปรของสล็อตบูลีน: ถ้าในตัวแปรtrue (yes) ไวน์จะเป็นประกาย และถ้าตัวแปรfalse (no) ไวน์จะไม่เป็นประกาย
รูปแบบของสล็อตตัวแปร • การแจกแจง สล็อตกำหนดรายการในการสำรองตัวแปรสำหรับสล็อต ยกตัวอย่าง เช่น เราสามารถกำหนดที่ช่องรสชาติ สามารถใช้เวลาหนึ่งในสามค่าที่เป็นไปได้ : แข็งแรง ปานกลาง ละเอียดอ่อน ผู้ดูแลในการแจกแจงสล็อต คือ ซิมโบล • ยกตัวอย่าง– รูปแบบสล็อตได้กำหนดคำนิยาม ความสัมพันธ์ระหว่างแต่ละบุคคล สล็อตที่เกี่ยวกับรูปแบบตัวแปรตัวอย่างอาจจะกำหนดของการแสดงรายการออกเป็นคลาสจาก กรณี ยกตัวอย่าง สล็อตในการสร้างคลาสของผู้ทำไวน์ อาจจะดำเนินการของคลาสไวน์ในตัวแปร
รูปแบบของสล็อตตัวแปร • โดเมนและช่วงของสล็อต • กำหนดคลาสของสล็อตในกรณีตัวแปรโดยเรียกใช้เรนจ์ของสล็อตเสมอ ในตัวอย่างรูปที่4 คลาสไวน์ เรนจ์จะสร้างสล็อต บางระบบจะกำหนดการยับยั้งของเรนจ์ เมื่อใดที่สล็อตมีความสัมพันธ์เกี่ยวกับคลาสโดยเฉพาะ
รูปแบบของสล็อตตัวแปร • กฎพื้นฐานของการทำโดเมนและเรนจ์ของสล็อตที่เหมือนกัน • เมื่อไหร่ที่โดเมนหรือเรนจ์ สำหรับสล็อต จะพบคลาสได้ทั่วไปมากหรือคลาสที่สามารถทำอย่างเป็นลำดับในโดเมน ถ้าทำอย่างอื่น จะไม่พบโดเมนและเรนจ์ที่มากเกิน ในทุกๆคลาส โดเมนของสล็อตจะบรรยายสล็อตและในกรณีคลาสในเรนจ์ทั้งหมด หากไม่มีการเลือกทั่วๆไปของคลาสเรนจ์ แต่จะมีความต้องการเลือกคลาสรวมไปถึงผู้ที่บรรจุด้วย แทนการฟังปัญหาซับคลาสทั้งหมดของคลาสไวน์ สำหรับเรนจ์ในการสร้างสล็อต ในเวลาใกล้เคียงกัน เราไม่ต้องการกำหนดเรนจ์ของสล็อตTHING ของคลาสออทูโลยี
รูปแบบของสล็อตตัวแปร • การกำหนดเวลาอื่นๆ • ถ้ารายการของคลาส หรือการกำหนดช่วงโดเมนของสล็อตจะมีคลาสและซับคลาส ถ้าสล็อตช่วงการมีทั้งชั้นไวน์และไวน์ชั้นสีแดง เราสามารถเอาไวน์แดงจากช่วงนั้น เนื่องจากไม่ได้เพิ่มข้อมูลใหม่ ไวน์สีแดงเป็นซับคลาสของไวน์ ดังนั้นช่วงสล็อตโดยปริยาย รวมไปถึงเป็นทั้งหมดของซับคลาสอื่นๆของคลาสไวน์ • ถ้ารายการของคลาสหรือการกำหนดช่วงโดเมนของสล็อต มีซับคลาสทุกชั้น แทนการกำหนดช่วงของการรวมไวน์แดง ไวน์ขาว และไวน์กุหลาบ(แจกแจงทุกซับคลาสโดยตรง) เราสารถจำกัดตัวมันเองในช่วงของไวน์ • ถ้ารายการของคลาสหรือการกำหนดช่วงโดเมนของสล็อตมีทั้งหมด แต่ซับคลาสพิจารณาถ้าชั้นที่ทำมากขึ้นเป็นช่วงที่เหมาะสม • ในระบบให้ชั้นเป็นเหมือนการเพิ่มระดับที่สล็อตของโดเมน กฎการแนบช็อต ในแง่หนึ่งเราควรพยายามทำได้ทั่วไปที่สุด ในทางตรงกันข้ามเราต้องแน่ใจว่าแต่ละชั้นที่เราแนบสล็อต สามารถมีคุณสมบัติเป็นสล็อตที่แนบช่องเสียบแทนแต่ละระดับชั้นเรียนที่แสดงไวน์แดง
ช่วงที่7 การสร้างอินสแตนท์ • ขั้นตอนสุดท้ายคือการสร้างตัวอย่างแต่ละคลาสในลำดับชั้น กำหนดตัวอย่างแต่ละคลาสต้องประกอบไปด้วย 1. การเลือกและตัดสินใจ • 2. สร้างตัวอย่างในแต่ละคลาส • 3. กรอกค่าสล็อต ตัวอย่างเช่น เราสามารถสร้างบุคคล เช่น chateau – morgon – Beaujolais แทนประเภทเฉพาะของไวน์
4. คลาสและการกำหนดลำดับชั้น • ส่วนนี้จะกล่าวถึงสิ่งที่ระวังและข้อผิดพลาดที่ง่ายต่อการทำ เมื่อเรียนกำหนดและลำดับชั้น กล่าวถึงการไม่มีชั้นลำดับชั้นเดียวที่ถูกต้องสำหรับโดเมนใดก็ตาม ลำดับชั้นขึ้นอยู่กับการใช้เป็นไปได้ของออนทูโลจี ระดับของการตั้งค่ารายละเอียดที่จำเป็นสำหรับการใช้ส่วนบุคคล และความต้องการบางครั้งก็เข้ากันได้กับรุ่นอื่นๆ แต่เราจะหาแนวทางต่างๆเพื่อทราบการพัฒนาลำดับชั้น หลังจากที่กำหนดเป็นจำนวนมากการเรียนใหม่จะเป็นประโยชน์ที่ตรวจสอบว่าลำดับชั้นที่เกิดขึ้นนั้นสอดคล้องกับหลักเกณฑ์เหล่านี้
4.1 แน่ใจว่าลำดับชั้นมีความถูกต้อง • - ไวน์เดียวไม่ซับคลาสของไวน์ทั้งหมด แบบจำลองข้อผิดพลาดที่รวมทั้งเอกพจน์และพหูพจน์ในความคิดเดียวกันของลำดับชั้น ทำให้อดีตของซับคลาส ตัวอย่างเช่นการกำหนดไวน์ และชั้นไวน์ซับคลาสของลำดับชั้นแทนชนิดและความสัมพันธ์ของความผิดพลาดแบบจำลองชัดเจน วิธีที่ดีที่สุดเพื่อหลีกเลี่ยงข้อผิดพลาดดังกล่าวเสมอคือ ใช้ทั้งเอกพจน์หรือพหูพจน์ในการตั้งชื่อคลาส
4.2 Analyzing siblings in a class hierarchy • โครงสร้างของ Siblings ในลำดับชั้นคลาส • Siblings ในลำดับชั้นมีคลาสที่คลาสย่อยหลายๆคลาสโดยตรงและอยู่ใน class เดียวกัน (ยกเว้นราก) จะต้องมีคุณลักษณะเหมือนกันกันและในระดับเดียวกันเช่น White wine กับ Chardonnay ต้องไม่เป็นคลาสย่อยชั้นเดียวกัน กล่าวคือ White wine เป็นแนวคิดทั่วไปมากกว่า ChardonnaySiblings ควรทำหน้าที่แทน “along the same line” ในลักษณะเดียวกับที่ส่วนระดับเดียวกัน ในหนังสืออยู่ในระดับเดียวกันทั่วๆในความหมายที่ต้องการสำหรับลำดับชั้น คล้ายกับข้อกำหนดในการร่างหนังสือ แนวคิดที่รากของลำดับชั้น อย่างไรก็ตาม (ซึ่งมักจะเป็นผู้แทนโดยตรง subclasses ชั้นทั่วไปบางอย่างเช่น Thing) หมายถึงหน่วยงานที่สำคัญของโดเมนและไม่ต้องมีแนวคิดที่คล้ายกัน
มีจำนวนมากไปหรือว่าน้อยไปหรือเปล่า ? ไม่มีกฎเหล็กสำหรับจัดการจำนวนในคลาสย่อยที่คลาสทุกคลาสต้องมี อย่างไรก็ตาม โครงสร้างของ ontology ที่ดีต้องมีคลาสย่อยอย่างน้อยระหว่าง 2 ถึง 12 คลาส ดังนั้นจึงมีแนวทางสองแนวทางดังนี้ • ถ้าคลาสมีเพียงหนึ่งคลาสย่อย อาจเกิดปัญหาในการสร้างแบบจำลองหรือ ontology ไม่สมบูรณ์ • หากมีคลาสย่อยมากกว่า 12 คลาสที่กำหนดเพิ่มเติมแล้ว อาจจำเป็นต้องหาจุดตรงกลาง
มีจำนวนมากไปหรือว่าน้อยไปหรือเปล่า ? รูปที่ 6 คลาสย่อย (Subclasses) ของคลาส Red Burgundy จะมีคลาสย่อยเดียว คลาสปกติชี้ไปที่ปัญหาในการสร้างแบบจำลอง • สมมุติว่าเราแสดงประเภทของไวน์แบบคลาสย่อยโดยตรงของคลาสไวน์ รายการนี้นั้นควรจะเพิ่มประเภทของไวน์เข้าไปเช่น Beaujolais , Bordeaux หรือที่คล้ายกับ Paulliac, Margauxเพราะว่าคลาสนี้มีตำนวนคลาสย่อยโดยตรงที่แท้จริงสำหรับ Ontology เพื่อสะท้อนให้เห็นถึงความแตกต่างของประเภทของไวน์มากกว่านี้ เช่น Medoc ควรจะเป็นคลาสย่อยของคลาส Bordeaux และ Cotes d’Or ควรเป็นคลาสย่อยของ Burgundy และยังมีประเภทของไวน์ขาวและไวน์แดงอีกหลายๆ ประเภทที่แสดงให้เห็นถึงแนวคิดต่างๆในโดเมนของไวน์ที่ผู้คนมีอยู่ อย่างไรก็ตาม ถ้าไม่มีคลาสธรรมดาที่มีแนวคิดเดียวกับความคล้ายคลึงกันเราก็ไม่ควรสร้างคลาสเทียม ก็จะแสดงให้เห็นถึงความเป็นโลกแห่งความจริงมากขึ้น
มีจำนวนมากไปหรือว่าน้อยไปหรือเปล่า ? รูปที่ 7 จัดประเภทของไวน์ มีไวน์ทุกชนิดและ ประเภทของไวน์ที่มีหลายระดับ
4.3 Multiple inheritance การสืบทอดหลายๆ ครั้ง • ความรู้หลายๆ ความรู้นั้นที่แสดงในระบบยอมรับการสืบทอดแบบหลายๆครั้ง ในคลาสแบบมีลำดับชั้น คือ คลาสสามารถมีคลาสย่อยในคลาสเดียวกัน เช่นถ้าเราต้องการสร้างคลาสที่แยกไวน์ทานเล่น ดังนั้นเรานิยามคลาส Port จะต้องมี 2 Superclass คือไวน์แดงและไวน์ทานเล่น ทุกๆกรณีของ Port คลาสจะต้องเป็นทุกๆ กรณีของไวน์แดงและไวน์ทานเล่นด้วย ซึ่งจะสืบทอดข้อเท็จจริงมาจากคลาสทั้งสอง
4.4 When to introduce a new class (or not) จะสร้างคลาสใหม่หรือไม่ • หนึ่งในการตัดสินใจที่ยากที่สุดในระหว่างการสร้าง Model ก็คือเมื่อมีการสร้างคลาสใหม่หรือแทนข้อมูลที่มีความแตกต่างกันของค่าใน Properties การยากที่จะนำคลาสทั้งสองมาซ้อนกันในลำดับชั้นจึงจะทำให้ข้อมูลมีมากกมาย การหาทางที่เหมาะสมนั้นเป็นการยาก คือเรามีกฏมาหมายที่จะช่วยตัดสินเมื่อเราจะสร้างคลาสใหม่ในคลาสแบบมีลำดับชั้น คลาสย่อยของคลาสนั้นโดยทั่วไป
4.4 When to introduce a new class (or not) จะสร้างคลาสใหม่หรือไม่ มีหลักเกณฑ์อยู่หลายอย่างที่ช่วยในการแบ่ง class ใหม่ให้เป็นลำดับชั้น • ประเภทย่อยของ class ทั่วๆไป • มีคุณสมบัติเพิ่มที่ class ใหญ่ไม่มี • มีข้อจำกัดต่างจาก class ใหญ่ • มีส่วนในความสัมพันธ์ที่แตกต่างจาก class ใหญ่
4.4 When to introduce a new class (or not) จะสร้างคลาสใหม่หรือไม่ • ไวน์แดงสามารถมีระดับความแตกต่างกันขณะที่คุณสมบัตินี้ไม่เคยได้ถูกอธิบายมาก่อนสำหรับไวน์ทั่วๆไป ระดับน้ำตาลของ Dessert Wine คือ SWEET ขณะที่ไม่เป็นจริงใน Superclass Dessert Wine และไวน์ Pinot Noir ก็อาจจะเข้าได้กับอาหารทะเล ในขณะที่ไวน์แดงชนิดอื่นๆ นั้นไม่เป็น เราจะแนะนำให้สร้างคลาสใหม่ในคลาสแบบมีลำดับชั้นเมื่อเรามีค่าบางอย่างที่บอกในคลาสได้แต่ไม่สามารถระบุใน Superclass ได้
4.4 When to introduce a new class (or not) จะสร้างคลาสใหม่หรือไม่ • ในทางปฏิบัตินั้นคลาสย่อยดังกล่าวนั้นควรมีช่องทางให้เลือกสำหรับที่จะเพิ่ม หรือมีการนิยามใหม่ หรือสืบทอดความจริง อย่างไรก็ตามบางครั้งนั้นควรที่จะสร้างคลาสใหม่เมื่อเราจะต้องสร้างคุณสมบัตินั้น ตัวอย่างเช่น ในบาง Ontology นั้นมีเพิ่มลำกับชั้นมากมายในโดเมนซึ่งตัวอย่างนี้นั้นเป็นต้นแบบของอุปกรณ์อิเล็คทรอนิกส์ซึ่งจะรวบรวมการจำแนกอาการต่างๆมากมาย การจำแนกอาการนี้เป็นการสร้างลำดับชั้นโดบปราศจากคุณสมบัติ ในกรณีนี้นั้นมันยังคงเต็มไปด้วยโครงสร้างลำดับชั้นที่แทนที่จะแสดงรายการออกมาเนื่องจากง่ายต่อการสำรวจ และทำให้แพทย์สามารถเลือกได้ง่ายในระดับทั่วๆไปของสถานการณืที่เหมาะสม เหตุผลอื่นๆ ที่จะสร้างคลาสใหม่โดยปราศจากคุณสมบัตินั้นคือโมเดลที่มีแนวคิดแบบผู้เชี่ยวชาญให้มีความแตกต่างถึงแม้ว่าจะมีการตัดสินใจที่ไม่แตกต่างกันในตัวของมันเอง เนื่องจากเราใช้ Ontology เพื่ออำนวยความสะดวกในการสื่อสารระหว่างผู้เชี่ยวชาญ หรือ ระหว่างผู้เชี่ยวชาญกับระบบฐานความรู้เราจึงต้องสะท้อนให้เห็นถึงมุมมองของผู้เชี่ยวชาญใน Ontology
4.4 When to introduce a new class (or not) จะสร้างคลาสใหม่หรือไม่ สุดท้ายนี้เราไม่ควรสร้าง Superclass สำหรับการเพิ่มเติมข้อจำกัด ตัวอย่างเช่น เราสร้างคลาสไวน์แกง ไวน์ขาว และ ไวน์กุหลาย เพราะว่า นี้คือความแตกต่างโดยธรรมชาติในตัวอยู่แล้ว เราจึงไม่ต้องสร้างคลาสที่มีความละเอียดอ่อนเราเลือกที่จะทแนเพียง Red Port Ontology } White Port Ontology เมื่อกำหนดลำดับชั้นคือการสร้างความสมดุลระหว่างคลาสใหม่ที่มีประโยชน์สำหรับโครงสร้างของคลาส
4.5 A new class or a property value? เมื่อจำลองโดเมนแล้วต้องตัดสินใจว่าจะเป็นตัวอย่างเฉพาะด้านที่ต่างกัน(อย่างเช่น ไวน์แดง ไวน์ขาว หรือไวน์กุหลาบ) เช่นปริมาณส่วนประกอบ หรือประเภทชุดเดิม ขึ้นอยู่กับขอบเขตที่เราสนใจและความสามารถสร้างประเภทไวน์ขาวไหม่หรือว่าเราจะทำเป็นประเภทไวน์ทั่วไปและค่อยเพิ่มค่าความต่างเช่นสี คำตอบมักจะอยู่ในขอบเขตที่เรากำหนดใน Ontology ขอบเขตของไวน์ขาวที่เราสนใจมีจุดเด่นอย่างไร ถ้าเป็นไวน์ที่ไม่มีจุดเด่น หรือไวน์ขาวที่ไม่ได้มีจุดเด่นเฉพาะเจาะจง เราก็ไม่ควรที่จะแบ่งมันออกเป็นประเภทไวน์ขาว สำหรับไวน์ที่ผลิตในโรงงานนั้น ไวน์จะมีสีที่เหมือนกันและไม่มีจุดเด่นอะไรเลย วิธีการสำหรับการดำเนินการกับไวน์ วัตถุดิบ เพื่อนำผสมกับไวน์แดงนั้นต่างจากไวน์ขาวโดยสิ้นเชิง มันใช้วัตถุดิบไม่เหมือนกัน และมีส่วนประกอบที่ต่างกัน ดังนั้นสีของไวน์เป็นจุดเด่นสำหรับแทนหน่วยความรู้พื้นฐาน knowledge base ของไวน์ เราจึงอาจจะกำหนดรสชาติของไวน์ ดังนั้นเราจึงต้องสร้าง class แยกไว้สำหรับไวน์ขาว ถ้าขอบเขตที่เราสนใจกลายเป็นตัวกำหนดของความแตกต่างของ class เราควรจะสร้าง class ใหม่เพื่อให้แตกต่างกัน ไม่อย่างนั้นแล้วเราจะไม่สามารถแสดงให้เห็นถึงความต่างกันได้
ในทำนองเดียวกัน ontology ไวน์ที่เราศึกษามีการแบ่งเป็นประเภทเช่น RedMerlotและ White Merlot มันน่าจะมีมากกว่าประเภทเดียวสำหรับไวน์ Merlot ทั้งหมด red Merlots และ white Merlots จริงๆแล้วเป็นไวน์ที่ต่างกัน ( แต่ทำจากองุ่นเหมือนกัน ) ถ้าเราพัฒนา ontology รายละเอียดที่มีจุดเด่นต่างกัน ของไวน์นี้ ถ้าความแตกต่างกันเป็นจุดสำคัญ และคำนึงถึงเป้าหมายสำคัญที่ต่างกัน เช่นประเภทของเป้าหมายที่ต่างกันถ้าเป็นแบบนั้นเราควรจะแบ่ง class ใหม่เพื่อกำหนดความแตกต่าง ในบางครั้งการแบ่งประเภทประโยชน์ช่วยในการตัดสินใจ Class นั้นไม่ควรจะมีการเปลี่ยนแปลงบ่อยๆ โดยปกติเมื่อเราใช้ส่วนประกอบภายนอกมากกว่าส่วนประกอบหลัก ในกรณีนี้ประเภทมีการโยกย้ายบ่อยจากประเภทหนึ่งไปประเภทอื่นๆ ตัวอย่างเช่น ไวน์ Chilled ในร้านอาหารจะไม่แบ่งเป็นประเภทต่างหาก ลักษณะของ chilled อาจจะมีส่วนประกอบเหมือนไวน์ทั่วๆไป โดยปกติ หมายเลข สี สถานที่ตั้ง ไม่ใช่สาเหตุที่ทำให้เกิดประเภทใหม่ขึ้น
ตัวอย่างอื่นที่พิจารณา ontology มนุษย์กายวิภาคศาสตร์ เมื่อเราแสดงซี่โครงเราจะสร้าง class สำหรับแต่ละ" ซี่โครงซ้าย 1"2 ซี่โครงซ้าย"และอื่น ๆ ? เราหรือมีชั้น Rib มีช่องสำหรับการสั่งซื้อและตำแหน่งด้านข้าง (ขวาซ้าย) ? 5 หากข้อมูลเกี่ยวกับแต่ละซี่โครงที่เราแสดงใน ontology จะแตกต่างกันแล้วเราแน่นอนควรสร้างชั้นสำหรับแต่ละซี่โครง คือถ้าเราต้องการแสดงรายละเอียดถ้อยคำและข้อมูลสถานที่ตั้ง (ซึ่งแตกต่างกันสำหรับแต่ละซี่โครง) เป็นหน้าที่เฉพาะที่แต่ละPlaya ซี่โครงและอวัยวะที่ปกป้องเราต้องการเรียน ถ้าเราจำลองกายวิภาคที่เล็กน้อยระดับน้อย ๆ ทั่วๆไปและกระดูกทั้งหมดจะคล้ายกันมากเท่าที่โปรแกรมศักยภาพของเราเกี่ยวข้อง (เราก็พูดคุยเกี่ยวกับที่ซี่โครงเสียใน X - Ray ไม่มีความหมายสำหรับส่วนอื่น ๆ ของร่างกาย) เราอาจต้องการความสะดวกและลำดับชั้นของเรามีเพียงชั้น Rib, มีสองช่อง : ตำแหน่งด้านข้างคำสั่ง
4.6 An instance or a class? การตัดสินใจว่าแนวคิดที่เฉพาะเจาะจงเป็นคลาสใน ontology หรือเป็น แค่instance เฉพาะนั้นขึ้นอยู่กับ application ของ ontologyว่ามีศักยภาพอะไรอยู่ การตัดสินใจว่าที่ใดที่ class จะสิ้นสุดและ instance เฉพาะจะเริ่มนั้น เริ่มด้วยการเลือกว่าอะไรคือระดับต่ำสุดของของระบบที่มีลักษณะแยกกันคล้ายเมล็ด ระดับของระบบดังกล่าวจะถูกกำหนดโดย application ที่ศักยภาพของ ontology กล่าวคือ ส่วนที่เฉพาะเจาะจงที่สุด ที่ถูกจะแสดงในฐานความรู้คืออะไร จากคำถามที่เราได้ระบุไว้ในขั้นตอนที่ 1 ส่วนที่ 3 แนวคิดเฉพาะเจาะจงที่สุดนั้นจะเป็นคำตอบไปสู่คำถามที่ดีมากๆ ในฐานความรู้