790 likes | 989 Views
Introduction to Ontology. Sudarsun S Director – Research Checktronix India Chennai 600010 แปลและเรียบเรียงโดย บรรเจิด วิโรจน์วุฒิกุล คณะวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา. Ontology คืออะไร?. สาขาปรัชญา – แขนงหนึ่งของปรัชญา ที่ว่าด้วยธรรมชาติและองค์กรของความจริง.
E N D
Introduction to Ontology Sudarsun S Director – Research Checktronix India Chennai 600010 แปลและเรียบเรียงโดย บรรเจิด วิโรจน์วุฒิกุล คณะวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
Ontology คืออะไร? สาขาปรัชญา – แขนงหนึ่งของปรัชญา ที่ว่าด้วยธรรมชาติและองค์กรของความจริง • การศึกษาเกี่ยวกับการดำรงอยู่ (ปรัชญาว่าด้วยความจริงในธรรมชาติ) • ทดลองหาคำตอบของคำถามที่ว่า : • อะไรคือคุณลักษณะของการดำรงอยู่? • ในที่สุดแล้วดำรงอยู่อย่างไร? • แบ่งแยกสายสิ่งต่างๆอย่างไร?
Ontology in Computers • Ontology คือ สิ่งประดิษฐ์ทางวิศวกรรม ที่ประกอบด้วย • คำศัพท์ที่จะอธิบายถึงขอบเขต (ของสิ่งที่เจาะจง) • ข้อมูลจำเพาะที่ชัดเจน ของความหมายคำศัพท์ • ข้อจำกัดของการเพิ่มความรู้ใหม่เข้าไปในขอบเขต • ในอุดมคติแล้ว an ontology ควรจะ : • เข้าถึงความเข้าใจทั่วไป ของขอบเขตที่สนใจ • เตรียมรูปแบบ และ แบบจำลองที่เครื่องจักรจัดการได้ ของขอบเขตที่สนใจ
Example • คำศัพท์ และ ความหมาย (การนิยาม) • ช้าง เป็นสมาชิกหนึ่งของ สัตว์ • สัตว์กินพืช เป็นสมาชิกของ สัตว์ ซึ่ง กินเฉพาะพืช หรือส่วนหนึ่งของพืช • ช้างโตเต็มวัย เป็นสมาชิกของ ช้าง ซึ่ง มีอายุมากกว่า 20 ปี • เบื้องหลังของความรู้/ข้อจำกัดบนขอบเขต (กฎเกณฑ์ที่ยอมรับกันทั่วไป) • ช้างโตเต็มวัย หนัก อย่างต่ำ 2000กิโลกรัม • ช้างทุกตัว เป็น ช้างแอฟริกัน หรือ ช้างอินเดีย • ไม่มี สิ่งมีชีวิตใด เป็นได้ทั้ง สัตว์กินพืช และ สัตว์กินเนื้อ
Why Ontology? • เพื่อแชร์ความเข้าใจพื้นฐานของโครงสร้างข้อมูล ระหว่างคนและSoftware agents • เพื่อทำให้นำขอบเขตความรู้เดิมกลับมาใช้ใหม่ได้ • เพื่อสร้างขอบเขตที่สมมุติขึ้นมาให้มีความชัดเจน • เพื่อแยกขอบเขตความรู้ออกจากความรู้ทั่วไปได้ • เพื่อวิเคราะห์ขอบเขตของความรู้
Few Applications • e-Science, ตัวอย่างในด้าน Bioinformatics • The Gene Ontology (GO) • The Protein Ontology (MGED) • Databases • Schema design and integration • Query optimisation • User interfaces • The Semantic Web & so-called Semantic Grid
Importance towards E-Commerce • Taxonomies provide : • เข้ามาควบคุมในการใช้คำศัพท์ร่วมกัน(search engines, authors, users, databases, programs / ทุก agent ใช้ภาษาเดียวกัน) • Site ช่วยเหลือด้าน Organization และ Navigation • ถูกกำหนดให้เป็นมาตรฐาน (เช่น ตั้งไว้ที่โซนซ้ายของหลายๆเวปไซด์) • “Umbrella” ระดับโครงสร้างที่สูงขึ้น (เพื่อการ Extension) • ตัวช่วยค้นหา (แถบช่วยเหลือของ Yahoo!) • Sense disambiguation
Importance towards E-Commerce • ตรวจสอบความสอดคล้อง • การทำให้สมบูรณ์ • สนับสนุนการทำให้ข้อมูลในระบบต่างๆพูดคุยกันได้(Interoperability) • สนับสนุนองค์ประกอบภายนอก • เป็นโครงสร้าง, เปรียบเทียบเพื่อปรับปรุงการค้นหาข้อมูล • Generalization/ Specialization
Observations • Ontologies อย่างง่าย สามารถสร้างได้โดยไม่ต้องมีความชำนาญ โดยใช้ • Verity’s Topic Editor, Collaborative Topic Builder, GFP,Chimaeras, Protégé, OIL-ED,etc • Ontologies สามารถสร้างขึ้นได้แบบกึ่งอัตโนมัติ • โดยอ้างอิงจากเวปไซด์ เช่น yahoo!, Amazon, excite • Semi-structured sites can provide starting points • Ontologies มีการใช้เพิ่มขึ้นอย่างรวดเร็ว(โดยมีธุรกิจเป็นตัวผลักดัน) • เวปไซด์ทางธุรกิจส่วนมากใช้เช่น Amazon, Yahoo! Shopping • ธุรกิจที่เจริญรุ่งเรืองกำลังสนใจ • ภาษาที่ใช้กำลังเติบโต จำพวก Markup LanguagesXML,RDF • “Real” ontologies เหมาะสมที่จะเป็นศูนย์กลาง Application
Implications & Need • ไวยกรณ์และความหมายของ Ontology Language (DAML+OIL) • ทรัพยากรที่ใช้ในการสร้างและบำรุงรักษาของ Ontologies • ฝึกฝน (Conceptual Modeling,การอ้างเหตุผลของสิ่งที่เกี่ยวข้อง, ……)
Issues • การร่วมมือ ระหว่างกลุ่มที่เปิดเผยข้อมูล • การเชื่อมต่อระหว่างระบบหลายๆแห่งเข้าด้วยกัน • วิเคราะห์และวินิจฉัย • ประมาณ • แบบฉบับ • ความปลอดภัย • ง่ายต่อการใช้ • การฝึกหลากหลายระดับ / สนับสนุนผู้ใช้ • กลวิธีนำเสนอ • วงจรชีวิต • ความสามารถในการแพร่ขยายออก
Chimaera • An interactive web-based tool aimed at supporting: • วิเคราะห์ Ontology (ความถูกต้อง, ความสมบูรณ์, ลักษณะ, …) • Merging of ontological terms จากหลายแหล่งเข้าด้วยกันได้ • บำรุงรักษา ontologies ตลอดเวลา • การให้เหตุผลของข้อมูลเข้า • Features: multiple I/O languages, loading and merging into multiple namespaces, collaborative distributed environment support, integrated browsing/editing environment, extensible diagnostic rule language • ถูกใช้ในด้านการพาณิชย์และวิชาการ • แหล่งข้อมูล: www.ksl.stanford.edu/software/chimaera
Building Ontology • กำหนด classes • จัดเตรียมให้อยู่ในรูป Taxonomic hierarchy • sub-class/super-class model • เตรียม slots และ facets สำหรับ slots • กำหนดค่าสำหรับ slots ในแต่ละกรณี
Thumb-Rules • ไม่มีวิธีการที่ถูกต้องในการสร้างขอบเขต • มีช่องทางในการทำได้เสมอ • วิธีการที่ดีที่สุดขึ้นอยู่กับการนำไปใช้และขยายต่อ • กระบวนการทำซ้ำ • แนวความคิดใน Ontology คล้ายกับobjects(รูปธรรม/นามธรรม) และ relationships ในขอบเขตที่สนใจ • Objects คือ คำนามทั่วไป • Relationships คือ กริยาทั่วไปในประโยค
Step 1: Domain & Scope • อะไรคือขอบเขตที่สนใจ? • อะไรคือจุดประสงค์ของ Ontology นี้? • อะไรคือสิ่งคาดหวังของคำถาม? • ใครเป็นผู้ใช้และบำรุงรักษา Ontology ? • ตัวอย่างคำถาม: • ช้างเป็นสัตว์กินพืชหรือสัตว์กินเนื้อ? • ช้างกินอะไรเป็นอาหาร? • ช้างแอฟริกันมีนิสัยเป็นอย่างไร?
Step 2: Re-Use Existing Ontology • ถ้าเข้ากันได้ ก็สามารถใช้ได้แน่นอน • ปัญหาในการ merging Ontologies? • รูปแบบขัดแย้ง • แนวคิดเดียวกัน, การนำเสนอต่างกัน
Step 3: Enumerate Terms • Terms คืออะไร? • Properties ของ terms คืออะไร? • Relationships ของ terms คืออะไร? • ตัวอย่าง: • Animal, elephant, lion • ความสูง, น้ำหนัก, อาหารที่กิน • ช้างกับควาญช้าง, ช้างผสมพันธุ์กันเองได้, ช้างอยู่รวมกันเป็นกลุ่ม
Step 4: Define Classes & Hierarchy • Top-Down Approach • Bottom-Up Approach • Mixed • Object Oriented Programming Analogy • อะไรที่เราจะได้รับ? • การจัดเรียง Hierarchical ของ concepts • ถ้า class P is a super-class of class Q, และทุกๆกรณีของ B คือ หนึ่งในกรณีของ P • หมายความว่า : class Q represents a “kind-of” P
Step 5: Properties of Classes - Slots • “intrinsic” properties เช่น softness of silk • “extrinsic” properties เช่น bike’s model name • Parts, ถ้า object เป็นรูปแบบ Structured; สามารถกำหนดให้เป็น physical และ abstact parts ได้ • เช่น: เวลาหากินช่วงเช้าของช้าง • Relationships ระหว่างสมาชิกของ class • เช่น: ช้าง กับ ควาญช้าง, สามารถแสดงถึงความสัมพันธ์ระหว่าง ช้าง อ้างอิงถึงที่อยู่ของช้าง ผ่านทางควาญช้างได้
Step 6: Define Slots • จำนวน values ของ Slot • ตั้งค่า ว่า slot ควรจะมี values ได้กี่ค่า? • ใส่ค่าของ Slot • มีค่าอะไรที่สามารถใส่ได้บ้าง? • ค่ามาตรฐานทั่วไป: • String • Number • Boolean • Enumeration • Instance
Step 7: Create Instances • ยกตัวอย่างการสร้าง instance ชื่อ african_elephantซึ่งเป็น instance ของ class elephant • High : 400 cm • Weight : 6,500 Kg • Eat : fruit, leaf (instance of food class) • Behavioer:aggressive • Kind : Herbivore (instance of animal_type class)
Consistency Checks ?? • ทำให้แน่ใจว่า Class hierarchy ถูกต้อง • สิ่งที่อยู่ในระดับเดียวกันของ tree ควรจะมี สิ่งทั่วไปคล้ายๆกัน • classes ที่มีความหมายเหมือนกัน แต่แยกเป็นคนละ class • ตรวจความสัมพันธ์ “is-a” และ “kind-of” • สิ่งที่มากเกินไปหรือน้อยเกินไป • Multiple Inheritance
Consistency Checks ?? • เราจะเพิ่ม class ใหม่ได้เมื่อไหร่? • การเพิ่ม Subclass ของ class โดยทั่วไปจะ • มีคุณสมบัติเพิ่มเติมที่ super-class ไม่มี • มีข้อจำกัดที่แตกต่างจาก super-class • มีการอ้างอิง relationshipsมากกว่าใน super-class มี • Class ใหม่ หรือ property-value ใหม่? • class “african_elephant” หรือ class “elephant” ที่มี property type เป็น “african” ขึ้นอยู่กับจุดมุ่งหมายที่เราสนใจ • เป็น Instance หรือ Class? • Individual Instances เป็น การแสดงถึงกรณีเจาะจงในฐานความรู้ • ถ้า concept ที่สนใจเกิดจากการจำแนกโดยธรรมชาติ จะเป็น classes
Limiting the Scope • ต้องการที่จะไม่ใส่ข้อมูลที่เป็นไปได้ทั้งหมดที่เกี่ยวกับขอบเขต • ต้องการที่จะไม่ใส่กรณีทั่วไป หรือ กรณีเฉพาะ มากไปกว่าอะไรที่เราต้องการนำไปใช้ • ต้องการที่จะไม่ใส่ properties ที่เป็นไปได้ทั้งหมดและ สิ่งที่แตกต่าง ในหมู่ classes บน hierarchy
Ontology Merging/Alignment • สิ่งที่ต้องการ • การช่วยเหลือและคำแนะนำของของกระบวนการ • เครื่องมือพิเศษสำหรับ ontology merging and alignment • สิ่งที่ต้องการ (แต่ยังไม่สามารถทำได้) • เครื่องที่สามารถ merging and alignment ได้อัตโนมัติอย่างสมบูรณ์
Approaches • การแก้ปัญหาขัดแย้งหลังจาก merging • ผลลัพธ์โดยตรง • เกิดการปกคลุมของข้อมูล • ยากที่จะทำซ้ำ • เปลี่ยนรูปก่อนทำการ merging • กระบวนการสามารถทำซ้ำได้ • ไม่เป็นผลลัพธ์โดยตรง • ใช้เครื่องมือปรับโดยตรงให้เหมาะสม • สามารถได้ผลลัพธ์โดยตรงจากการปรับเปลี่ยน • ยากที่จะทำซ้ำ แต่เป็นไปได้
Features • ผลที่ตอบสนองกับผู้ใช้ • คำชี้แจง • กระบวนการแก้เมื่อเกิดปัญหา • ดูแลรักษาจุดที่สนใจ • ปรับปรุงการให้ข้อแนะนำ • สร้างข้อมูลชั่วคราวเพื่อยืดเวลาสำหรับการแก้ปัญหา • การสะกดรอยความสัมพันธ์ • เก็บความสัมพันธ์ที่อ้างอิงถึง • เก็บข้อมูลอย่างย่อไว้
Ontology Languages - RDF • RDFคือ Resource Description Framework • เป็น W3C candidate recommendation (http://www.w3.org/RDF • RDF เป็น graphical formalism(+XML syntax + semantics) • เพื่อเป็นตัวแทนข้อมูลที่อธิบายถึงข้อมูลอีกชุดหนึ่ง • เพื่ออธิบายถึงความหมายของข้อมูลในสิ่งที่เครื่องจักรเข้าใจได้ • RDFS extendsRDF กับ “schema vocabulary”ตัวอย่างเช่น • Class, Property • Type, subClassOf, subPropertyOf • Range, domain
RDF Syntax --Triples Subject Object Property Ex: Subject Ex: Object Ex: Property
RDF Syntax --Triples Subject Object Property Ex: Subject Ex: Object Ex: Property _: xxx
RDF Syntax --Triples Subject Object Property Ex: Subject Ex: Object Ex: Property _: xxx
RDF Syntax --Triples Subject Object Property Ex: Subject Ex: Object Ex: Property _: xxx _: yyy
RDF Syntax --Triples Subject Object Property Ex: Subject Ex: Object Ex: Property _: xxx _: yyy << plain litteral >>
RDF Syntax --Triples Subject Object Property Ex: Subject Ex: Object Ex: Property _: xxx _: yyy << plain litteral >> << lexical >>^^data type
RDF Syntax -- Graph _: xxx
RDF Syntax -- Graph << Palani Ramasamy >> Ex: name _: xxx rdf: type Ex: Person
RDF Syntax -- Graph << Palani Ramasamy >> Ex: name _: yyy _: xxx Ex: member-of rdf: type Ex: Person
RDF Syntax -- Graph << Palani Ramasamy >> << University of Madras >> Ex: name Ex: name _: yyy _: xxx Ex: member-of rdf: type rdf: type Ex: Organisation Ex: Person