Introduction to Ontology Sudarsun S Director – Research Checktronix India Chennai 600010 แปลและเรียบเรียงโดย บรรเจิด วิโรจน์วุฒิกุล คณะวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
Ontology คืออะไร? สาขาปรัชญา – แขนงหนึ่งของปรัชญา ที่ว่าด้วยธรรมชาติและองค์กรของความจริง การศึกษาเกี่ยวกับการดำรงอยู่ (ปรัชญาว่าด้วยความจริงในธรรมชาติ) ทดลองหาคำตอบของคำถามที่ว่า : อะไรคือคุณลักษณะของการดำรงอยู่? ในที่สุดแล้วดำรงอยู่อย่างไร? แบ่งแยกสายสิ่งต่างๆอย่างไร?
Ontology in Computers Ontology คือ สิ่งประดิษฐ์ทางวิศวกรรม ที่ประกอบด้วย คำศัพท์ที่จะอธิบายถึงขอบเขต (ของสิ่งที่เจาะจง) ข้อมูลจำเพาะที่ชัดเจน ของความหมายคำศัพท์ ข้อจำกัดของการเพิ่มความรู้ใหม่เข้าไปในขอบเขต ในอุดมคติแล้ว an ontology ควรจะ : เข้าถึงความเข้าใจทั่วไป ของขอบเขตที่สนใจ เตรียมรูปแบบ และ แบบจำลองที่เครื่องจักรจัดการได้ ของขอบเขตที่สนใจ
Example คำศัพท์ และ ความหมาย (การนิยาม) ช้าง เป็นสมาชิกหนึ่งของ สัตว์ สัตว์กินพืช เป็นสมาชิกของ สัตว์ ซึ่ง กินเฉพาะพืช หรือส่วนหนึ่งของพืช ช้างโตเต็มวัย เป็นสมาชิกของ ช้าง ซึ่ง มีอายุมากกว่า 20 ปี เบื้องหลังของความรู้/ข้อจำกัดบนขอบเขต (กฎเกณฑ์ที่ยอมรับกันทั่วไป) ช้างโตเต็มวัย หนัก อย่างต่ำ 2000 กิโลกรัม ช้างทุกตัว เป็น ช้างแอฟริกัน หรือ ช้างอินเดีย ไม่มี สิ่งมีชีวิตใด เป็นได้ทั้ง สัตว์กินพืช และ สัตว์กินเนื้อ
Example Ontology (Protégé)
What??
Why Ontology? เพื่อแชร์ความเข้าใจพื้นฐานของโครงสร้างข้อมูล ระหว่างคนและSoftware agents เพื่อทำให้นำขอบเขตความรู้เดิมกลับมาใช้ใหม่ได้ เพื่อสร้างขอบเขตที่สมมุติขึ้นมาให้มีความชัดเจน เพื่อแยกขอบเขตความรู้ออกจากความรู้ทั่วไปได้ เพื่อวิเคราะห์ขอบเขตของความรู้
Few Applications e-Science, ตัวอย่างในด้าน Bioinformatics Databases 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 Languages XML,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 ตั้งค่า ว่า 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 ได้อัตโนมัติอย่างสมบูรณ์
Mapping, Merging, Alignment
Approaches การแก้ปัญหาขัดแย้งหลังจาก merging ผลลัพธ์โดยตรง เกิดการปกคลุมของข้อมูล ยากที่จะทำซ้ำ เปลี่ยนรูปก่อนทำการ merging กระบวนการสามารถทำซ้ำได้ ไม่เป็นผลลัพธ์โดยตรง ใช้เครื่องมือปรับโดยตรงให้เหมาะสม สามารถได้ผลลัพธ์โดยตรงจากการปรับเปลี่ยน ยากที่จะทำซ้ำ แต่เป็นไปได้
SMART Algorithm
Merge Classes (contd..)
Merge Classes (contd..)
Suggestions (contd..)
Source – Car Rental
Source –Airline Reservation
Features ผลที่ตอบสนองกับผู้ใช้ ดูแลรักษาจุดที่สนใจ คำชี้แจง กระบวนการแก้เมื่อเกิดปัญหา ดูแลรักษาจุดที่สนใจ ปรับปรุงการให้ข้อแนะนำ สร้างข้อมูลชั่วคราวเพื่อยืดเวลาสำหรับการแก้ปัญหา การสะกดรอยความสัมพันธ์ เก็บความสัมพันธ์ที่อ้างอิงถึง เก็บข้อมูลอย่างย่อไว้
Ontology Languages - RDF RDF คือ Resource Description Framework เป็น W3C candidate recommendation (http://www.w3.org/RDF RDF เป็น graphical formalism (+XML syntax + semantics) เพื่อเป็นตัวแทนข้อมูลที่อธิบายถึงข้อมูลอีกชุดหนึ่ง เพื่ออธิบายถึงความหมายของข้อมูลในสิ่งที่เครื่องจักรเข้าใจได้ RDFS extends RDF กับ “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
<< plain litteral >> 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
<< Palani Ramasamy >> RDF Syntax -- Graph << Palani Ramasamy >> Ex: name _: xxx rdf: type Ex: Person
<< Palani Ramasamy >> 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
RDFS
RDFS RDFS vocabulary adds constraints on models, e.g.: x,y,z type(x,y) subClassOf(y,z) type(x,z)
RDFS RDFS vocabulary adds constraints on models, e.g.: x,y,z type(x,y) subClassOf(y,z) type(x,z) Ex: Person Ex: Animal rdf: subClassof
RDFS RDFS vocabulary adds constraints on models, e.g.: x,y,z type(x,y) subClassOf(y,z) type(x,z) Ex: Person Ex: Animal rdf: subClassof Ex: John rdf: type Ex: Person
RDFS RDFS vocabulary adds constraints on models, e.g.: x,y,z type(x,y) subClassOf(y,z) type(x,z) Ex: Person Ex: Animal rdf: subClassof Ex: John rdf: type Ex: Person rdf: type Ex: Animal
Problems with RDFS RDFS อ่อนในการที่จะอธิบายทรัพยากรในรายละเอียดที่เพียงพอ ไม่มีข้อบังคับ ของการจำกัดวง range และ domain ไม่สามารถบอกได้ว่า ขอบเขตของ hasChild คือ person เมื่อประยุกต์เป็น person and elephant และเมื่อประยุกต์เป็น elephants ไม่มีข้อจำกัด existence/cardinality ไม่สามารถบอกได้ว่า ทุกๆกรณีของ person มี 1 mother นั่นคือ mother เป็น 1 person เช่นกัน หรือ person มี 2 parents ได้อย่างถูกต้อง ไม่มีคุณสมบัติ transitive, inverse หรือ symmetrical ไม่สามารถบอกได้ว่า isPartOf คือคุณสมบัติ transitive, isPartOf คือ inverse ของ isPartOf และ touches คือ symmetrical ความยากในการจำแนก เหตุผลสนับสนุน ไม่มี “native” reasoners สำหรับ เหตุผลที่ไม่ใช่มาตรฐาน May be possible to reason via FO axiomatisation
Axiomatisation An Axiomatisation สามารถถูกใช้ฝัง RDFS ใน FOL, ตัวอย่าง: Triple x P y translated as holds2 (P,x,y) Axioms capture ในส่วนความหมายของ language ปัญหาการ axiomatisations include จะต้องการ set ที่ใหญ่และซับซ้อน ของ axioms ยากที่จะพิสูจน์ความหมายให้เป็นการ captured อย่างถูกต้อง Axiomatisation จะเพิ่มภาระการคำนวณอย่างมาก complexity RDFS → undecidable (subset of) FOL ไม่มี interoperability นอกจาก ทุกภาษาที่ axiomatised เช่นเดียวกัน เช่น C subClassOf D equivalent to แต่ต้อง axiomatise เช่น holds2(subClass, C, D)
RDF to OWL สองภาษาที่ถูกพัฒนาโดย extending(ส่วนหนึ่งของ) RDF OIL : Ontology Inference Layer DAML-ONT : DARPA Agent Markup Language ความพยายามMerged เพื่อสร้าง DAML+OIL Extends (“DL subset” of) RDF DAML+OIL Web-Ontology(WebOnt) Working Group formed WebOnt group ถูกพัฒนาโดย OWL Language based on DAML+OIL OWL language now a W3C Proposed Recommendation
Description Logics ครอบครัวหนึ่งของ logic based Knowledge Representation formalisms สืบทอดมาจาก semantic networks และ KL-ONE อธิบายขอบเขตในรูปแบบของ concepts(classes), roles(properties, relationships) และ individuals มีลักษณะเด่นคือ Formal semantics (แบบจำลองอย่างเป็นแบบฉบับตามหลักทฤษฎี) ตัดสินใจได้ในส่วนที่แยกจาก FOL มีความเกี่ยวข้องอย่างใกล้ชิดกับ Prepositional Model & Dynamic Logics การจัดเตรียมของ inference services การตัดสินใจใช้กระบวนการสำหรับการแก้ไขปัญหา (ความพึงพอใจ, การสมมติฐาน, ฯลฯ) Implemented systems (highly optimized)
DL Basics Concept คือ สิ่งที่เทียบได้กับ unary predicates โดยทั่วไป, concepts จะเท่ากับ สูตรที่มีตัวแปรอิสระ 1 ตัว Role คือ สิ่งที่เทียบได้กับ binary predicates โดยทั่วไป, roles จะเท่ากับ สูตรที่มีตัวแปรอิสระ 2 ตัว Individual คือสิ่งที่เทียบได้กับ ค่าคงที่ Operators จำกัดความได้ว่า : ภาษาตัดสินใจได้ และ ถ้าเป็นไปได้, มีความซับซ้อนน้อย ไม่ต้องการที่จะใช้ตัวแปรอย่างชัดเจน จำกัดความจาก และ (ติดต่อกันโดยตรงด้วย < > และ [ ]) ลักษณะ เหมือนกับ การนับที่สั้นกระชับว่องไว
DL System Architecture
DL Family ถูกใช้บ่อยสำหรับ ใน transitive roles(R+) Additional letters บ่งบอกถึง extensions อื่นๆ ตัวอย่างเช่น + R+ + role hierachy + inverse + QNR = is the basis for W3C’s OWL Web Ontology Language OWL DL extended with nominal (นั่นคือ ) OWL Lite with only functional restrictions (นั่นคือ )
DL Knowledge Base A TBox is a set of “schema” axioms(sentences) ตัวอย่าง An ABox is a set of “data” axioms (ground facts) A Knowledge Base (KB) คือการรวมของ TBox บวก ABox
DL Reasoning W marriedTo hasChild HappyParrent J M ~Doctor hasChild
DL Reasoning ตัวอย่าง : KB: W marriedTo hasChild HappyParrent J M ~Doctor hasChild
DL Reasoning ตัวอย่าง : KB: W marriedTo hasChild HappyParrent J M ~Doctor hasChild
DL Reasoning ตัวอย่าง : KB: W marriedTo hasChild HappyParrent J M ~Doctor hasChild
DL Reasoning ตัวอย่าง : KB: W marriedTo hasChild HappyParrent J M ~Doctor, (Doctor _ hasChild.Doctor), hasChild.Doctor hasChild
DL Reasoning ตัวอย่าง : KB: W marriedTo hasChild HappyParrent J M ~Doctor, (Doctor _ hasChild.Doctor), hasChild.Doctor hasChild hasChild ? Doctor
OWL 3 สายพันธุ์ ของ OWL Semantic layering OWL full เป็น union ของ OWL syntax และ RDF OWL DL ซึ่งมีขอบเขตใน FOL fragment ( DAML+OIL) OWL Lite คือ “simpler” subset ของ OWL DL Semantic layering OWL DL OWL full ภายใน DL fragment OWL DL พื้นฐานบน Description Logic ในความเป็นจริง มีค่าเทียบได้กับ DL OWL DL ผลประโยชน์ที่ได้จากการวิจัย DL เป็นเวลาหลายปี ง่ายในการนิยาม semantics Formal properties ง่ายต่อการเข้าใจ (ความซับซ้อน, ความสามารถในการตัดสินใจ) รู้จัก reasoning algorithms Implemented systems (ใช้ให้เหมาะสมได้ดี)
OWL constructors
OWL constructors XMLS datatypes และ classes ใน P.C และ P.C ตัวอย่าง hasAge.nonNegativeInteger
OWL constructors XMLS datatypes และ classes ใน P.C และ P.C ตัวอย่าง hasAge.nonNegativeInteger ไม่มีกฎเกณฑ์ที่ซับซ้อน nesting ของ constructors ตัวอย่าง Person hasChild.Doctor hasChild.Doctor
RDFS Syntax
RDFS Syntax
OWL Axioms
OWL Axioms
References
Thanks ติดต่อผู้เขียนได้ที่ sudar@burning-glass.com Checktronix India Pvt Ltd, 9 Ramanathan Street, Kilpauk, Chennai 600010 Phone: 044 30570028-32 ที่ปรึกษาเรียบเรียงบทความ อ.ธวัชชัย เอี่ยมไพโรจช์