ซอฟแวร์จัดการโปรแกรมประยุกต์ฐานความรู้ออนโทโลยี (OAM Framework)

ที่มาและความสำคัญ

      การพัฒนาโปรแกรมประยุกต์ที่ใช้ประโยชน์จากเทคโนโลยีเว็บเชิงความหมายและออนโทโลยี แต่เดิมนั้นผู้พัฒนาระบบจำเป็นต้องเรียนรู้โปรแกรมเครื่องมือหลากหลาย และต้องมีทักษะความสามารถในการเขียนโปรแกรมสูง ซึ่งเป็นอุปสรรคที่สำคัญในการนำเทคโนโลยีดังกล่าวมาประยุกต์อย่างแพร่หลาย ห้องปฎิบัติการ LST จาก NECTEC จึงได้พัฒนาซอฟต์แวร์แพล็ตฟอร์มสำหรับจัดการโปรแกรมประยุกต์ออนโทโลยี หรือ OAM (Ontology Application Management Framework) ขึ้นเพื่อช่วยลดความซับซ้อนในการพัฒนาโปรแกรมประยุกต์ของเทคโนโลยีเว็บเชิงความหมายและออนโทโลยี โดยผู้ใช้สามารถนำเข้าฐานข้อมูล (database) ที่มีอยู่ในระบบสารสนเทศเดิม ออกแบบและนำเข้าออนโทโลยีเฉพาะสาขา (domain ontology) กำหนดกฏที่ใช้แนะนำข้อมูล (recommendation rules) กำหนดตั้งค่าที่เกี่ยวข้อง (configuration) และเข้าถึงข้อมูลผ่านแม่แบบโปรแกรมประยุกต์ (application template) โดยมีวัตถุประสงค์เพื่อช่วยให้นักวิจัยในสาขาอื่นๆ สามารถนำเทคโนโลยีดังกล่าวไปประยุกต์อย่างแพร่หลายให้เกิดประโยชน์มากยิ่งขึ้น โดยผู้ใช้ไม่จำเป็นต้องมีทักษะในการเขียนโปรแกรม ในปัจจุบันได้มีนักศึกษาและนักวิ จัยจากหลายหน่วยงานและสถานศึกษาได้นำซอฟต์แวร์นี้ไปสนับสนุนการทำวิจัยในหลากหลายสาขา 


จุดเด่นของ OAM Framework

     OAM เป็น Application Framework ที่เน้นการประหยัดเวลาและภาระในการเขียนโปรแกรมของนักพัฒนา เนื่องจากในปัจจุบัน ทรัพยากรของบริษัทพัฒนาซอฟแวร์มีจำกัด ไม่ว่าจะเป็นเรื่องของเวลา ที่งานพัฒนาซอฟแวร์ต้องส่งมอบเร็ว และจำนวนโปรแกรมเมอร์ที่มีไม่เพียงพอกับปริมาณงานพัฒนาที่มีอยู่ นอกจากนี้ปัญหาสำคัญที่พบในการพัฒนาซอฟแวร์อีกประการคือ การดูแลรักษาซอฟแวร์ (software maintenance) ซึ่งหากมีการเปลี่ยนโปรแกรมเมอร์ การแก้ไขโปรแกรมอาจต้องเขียนใหม่ อีกทั้งตรรกะทางธุรกิจ (Business logic) ของโปรแกรมฝังอยู่ในโปรแกรม ซึ่งทำให้มีช่องว่างในการสื่อสารระหว่างนักวิเคราะห์ระบบ (system analyst) กับโปรแกรมเมอร์ เมื่อต้องมีการเปลี่ยนแปลง Business logic ของโปรแกรมไม่สามารถทำได้อย่างรวดเร็ว

     OAM จึงถูกพัฒนาให้อยู่ในรูปแบบของ Application Framework ซึ่งวัตถุประสงค์ของ Application Framework นั้น เพื่อลดงานของโปรแกรมเมอร์ โดยส่วนฟังก์ชันที่ใช้งานบ่อยๆ จะทำให้อยู่ในแบบของซอฟแวร์โมดูลที่ใช้ซ้ำได้ (Reusable module) ประหยัดเวลาในการเขียนโปรแกรมโดยไม่ต้องเริ่มเขียนเองใหม่ทุกครั้ง และช่วยให้การดูแลรักษาโปรแกรมได้ง่ายขึ้นโดยแยกส่วนข้อมูลที่ปรับเปลี่ยนได้ (customize) ออกจากโปรแกรม เช่น มีส่วนการตั้งค่า (config file) อยู่นอกโปรแกรม ซึ่งทำให้โปรแกรมที่เขียนครั้งเดียว สามารถนำไปประยุกต์ใช้ได้หลายสาขาโดยการเปลี่ยนค่าในไฟล์การตั้งค่าได้ตามการใช้งาน เป็นต้น

     OAM เป็น Application Framework ที่ช่วยในการพัฒนาโปรแกรมประยุกต์ที่ใช้ความรู้ในการตัดสินใจ (knowledge-based application) ได้ง่ายยิ่งขึ้น ลดเวลาพัฒนา โดยมิจำเป็นต้องเขียนโปรแกรมในการพัฒนาโปรแกรมต้นแบบ ผู้พัฒนาเพียงเชื่อมโยงข้อมูลที่มีอยู่เข้ากับโครงสร้างข้อมูลแบบออนโทโลยี (ontology) เท่านั้น ก็จะสามารถใช้โปรแกรมประยุกต์สำเร็จรูป (application template) ในการเข้าถึงข้อมูลได้ในหลากหลายรูปแบบ ซึ่งในปัจจุบัน OAM Framework สนับสนุนโปรแกรมประยุกต์ในแบบของ ระบบสืบค้นข้อมูลเชิงความหมาย (Semantic Search system) ระบบแนะนำข้อมูล (Recommender system) เป็นหลัก รูปที่ 1 แสดงแนวคิดของการพัฒนา Application Framework สำหรับการพัฒนาโปรแกรมประยุกต์ของออนโทโลยี (Ontology-based Application)

รูปที่ 1. แนวคิดของ Application Framework สำหรับการพัฒนาโปรแกรมประยุกต์ของออนโทโลยี (Ontology-based Application)


เทคโนโลยีที่ใช้

     OAM Framework ได้นำซอฟแวร์สำหรับการประมวลผลข้อมูลตามมาตรฐานเว็บเชิงความหมายที่มีอยู่ในปัจจุบัน มาบูรณาการการทำงานกันภายใต้ Application Framework ที่กำหนดขึ้น ซอฟแวร์หลักที่ใช้งาน ได้แก่

     1) Apache Jena เป็น Java Framework สำหรับการพัฒนาโปรแกรมประยุกต์ของเว็บเชิงความหมาย
     2) D2RQ เป็นซอฟแวร์ที่ประกอบด้วยภาษาสำหรับการแปลงข้อมูลระหว่างโครงสร้างข้อมูลของฐานข้อมูลแบบสัมพันธ์ (relational database schema) กับข้อมูลในแบบของออนโทโลยีตามมาตรฐาน OWL และ RDF Schema ที่พัฒนาขึ้นโดย University of Berlin ประเทศเยอรมัน
     3) Apache Jena TDB เป็นซอฟแวร์การจัดการฐานข้อมูลชนิด RDF (RDF database management system) ที่รองรับการจัดเก็บและค้นคืนข้อมูล RDF ด้วยภาษา SPARQL ผ่าน Jena API และ Jena Fuseki (เป็นส่วนหนึ่งของ Apache Jena)
     4) Apache Jena Inference Engine เป็นซอฟแวร์สำหรับประมวลผลเชิงอนุมานตามข้อมูลฐานกฏ (Rule-based Inference Engine) ที่ใช้สำหรับข้อมูลชนิด RDF (เป็นส่วนหนึ่งของ Apache Jena)

     ซึ่ง OAM Framework จะช่วยให้นักพัฒนาไม่จำเป็นต้องมีทักษะในการเขียนโปรแกรมติดต่อกับซอฟแวร์เหล่านี้ด้วยตนเอง และไม่จำเป็นต้องมีความรู้เกี่ยวกับมาตรฐาน RDF, SPARQL, OWL แต่สามารถใช้งานซอฟแวร์เหล่านี้ผ่าน การตั้งค่าในส่วนต่างของ OAM Framework รูปที่ 2 แสดงการเปรียบเทียบแนวทางการพัฒนาโปรแกรมประยุกต์ของเว็บเชิงความหมายโดยไม่ใช้ OAM Framework กับ การพัฒนาโดยผ่าน OAM Framework

a) พัฒนาโดยใช้ OAM Framework


b) พัฒนาโดยไม่ใช้ OAM Framework

รูปที่ 2 แสดงการเปรียบเทียบแนวทางการพัฒนาโปรแกรมประยุกต์ของเว็บเชิงความหมายโดยไม่ใช้ OAM Framework กับ การพัฒนาโดยผ่าน OAM Framework


องค์ประกอบของระบบ

     OAM ประกอบไปด้วย 3 ส่วนหลักได้แก่

     1) ส่วนจัดการข้อมูลจากฐานข้อมูลผู้ใช้ (Data Management Component)

      เป็นส่วนที่ทำหน้าที่แปลงข้อมูลจากฐานข้อมูลผู้ใช้ให้อยู่ในแบบ RDF โดยมีโครงสร้างตามออนโทโลยีของโดเมนที่กำหนด (Domain Ontology) โดยการทำงานในระดับโมเดลจะประกอบไปด้วยการกำหนดตั้งค่า 2 ส่วน ได้แก่ ส่วนตั้งค่าการแปลงโครงสร้างข้อมูล (Schema mapping) และ ส่วนตั้งค่าการแปลงคำศัพท์ (Vocabulary mapping) ที่อิงกับออนโทโลยี

     2) ส่วนจัดการข้อมูลคำแนะนำ (Recommendation Management Component)

     เป็นส่วนจัดการข้อมูลฐานกฏเพื่อใช้ในการสร้างคำแนะนำข้อมูล (recommendation rules)

     3) ส่วนจัดการโปรแกรมประยุกต์ (Application Management Component)

     เป็นส่วนของแม่แบบโปรแกรมประยุกต์ (Application Template) ที่จัดเตรียมไว้ โดยผู้ใช้สามารถกำหนดเฉพาะในส่วนการตั้งค่า (Application configuration) ประโยชน์ของ Application Template ที่สำคัญคือ ช่วยให้นักวิจัยสามารถใช้ในการทำต้นแบบอย่างรวดเร็ว (rapid prototyping) โดยหลังจากขั้นตอนนี้แล้ว นักวิจัยสามารถใช้ OAM API ในการพัฒนาต่อ ยอด Application Template ให้เป็นโปรแกรมประยุกต์ที่มีความซับซ้อนมากยิ่งขึ้นได้

     โดยแนวทางการออกแบบแบ่งเป็นลำดับชั้น (layer) ของการทำงานเพื่อให้ระบบมีความยืดหยุ่น สะดวกต่อการปรับเปลี่ยนซอฟต์แวร์ โดยแต่ละลำดับชั้นมีหน้าที่ดังนี้

  • ระดับโมเดล (Model layer) เป็นส่วนของโครงสร้างข้อมูลการตั้งค่า (config) ที่ไม่ขึ้นกับซอฟต์แวร์ที่อยู่ในระดับพื้นฐาน (Infrastructure layer) ที่จะมารองรับ จึงทำให้มีความยืดหยุ่นมากขึ้น โดยจะต้องพัฒนาส่วนแปลงข้อมูลระหว่างโมเดลกับแต่ละซอฟต์แวร์ที่อยู่ในระดับฐาน (Wrapper layer)
  • ระดับตัวควบคุม (Controller layer) เป็นส่วนที่เชื่อมโยงข้อมูลและการทำงานในส่วนโมเดลของแต่ละส่วนของระบบให้สามารถทำงานร่วมกันได้ รวมถึงการออกแบบเป็น OAM API เพื่อให้ส่วนของโปรแกรมเครื่องมือและโปรแกรมประยุกต์สามารถเชื่อมต่อเพื่อให้ผู้ใช้สามารถจัดการข้อมูลภายในระบบได้
  • ระดับส่วนติดต่อกับผู้ใช้ (UI layer) เป็นส่วนที่พัฒนาขึ้นเพื่อให้ผู้ใช้สามารถจัดการข้อมูลการตั้งค่าและใช้งานข้อมูลภายในระบบผ่านตัวอย่างโปรแกรมประยุกต์ (Application Template) หรือ โปรแกรมที่พัฒนาขึ้นใหม่เอง (customized application) โดยการพัฒนา UI ดังกล่าวจะเรียกใช้ฟังก์ชันการจัดการผ่าน OAM API 

ดังมีรายละเอียดแสดงในรูปที่ 3

รูปที่ 3 ภาพรวมองค์ประกอบของแพล็ตฟอร์มสนับสนุนการพัฒนาโปรแกรมประยุกต์ฐานความรู้ออนโทโลยี


การประยุกต์ใช้งาน

       ตัวอย่างระบบที่พัฒนาโดยใช้ OAM Framework สามารถแบ่งได้เป็น 2 กลุ่ม หลัก ได้แก่ ระบบแนะนำข้อมูล และ ระบบสืบค้นข้อมูล


Semantic KM และ OAM Framework


OAM Framework

การพัฒนาโปรแกรมประยุกต์ที่ใช้ประโยชน์จากเทคโนโลยีเว็บเชิงความหมายและออนโทโลยี แต่เดิมนั้นผู้พัฒนาระบบจำเป็นต้องเรียนรู้โปรแกรมเครื่องมือหลากหลาย และต้องมีทักษะในการเขียนโปรแกรมสูง ซึ่งเป็นอุปสรรคที่สำคัญในการนำเทคโนโลยีดังกล่าวมาประยุกต์อย่างแพร่หลาย ห้องปฎิบัติการ LST จาก NECTEC จึงได้พัฒนาซอฟต์แวร์แพล็ตฟอร์มสำหรับจัดการโปรแกรมประยุกต์ออนโทโลยี หรือ OAM (Ontology Application Management Framework) ขึ้นเพื่อช่วยลดความซับซ้อนในการพัฒนาโปรแกรมประยุกต์ของเทคโนโลยีเว็บเชิงความหมายและออนโทโลยี


Semantic KM

บทความนี้เป็นการแนะนำให้รู้จักกับเทคโนโลยีการจัดการความรู้ในอีกรูปแบบหนึ่ง คือการจัดการความรู้เชิงความหมาย (Semantic Knowledge Management) ซึ่งเป็นรูปแบบการจัดการความรู้ในเชิงลึก (Deep Knowledge) โดยมีจุดมุ่งหมายเพื่อการนำองค์ความรู้เฉพาะสาขา (Domain Knowledge) ไปใช้งานในโปรแกรมคอมพิวเตอร์ เพื่อให้เกิดการประมวลผลที่ชาญฉลาดได้อย่างอัตโนมัติ


Semantic Web

เว็บความหมาย หรือ Semantic Web เป็นวิสัยทัศน์ของทิศทางการพัฒนาเทคโนโลยีเว็บในยุคถัดไป หรือเทคโนโลยีเว็บ 3.0 ซึ่งคาดว่าจะเกิดขึ้นในทศวรรษหน้า (ทศวรรษ 2010) ที่ข้อมูลมีการเชื่อมโยงกันมากยิ่งขึ้น ในลักษณะของเครือข่ายเชิงความหมาย (Semantic Network) เพื่อนำไปสู่การพัฒนาโปรแกรมประยุกต์ที่มีความชาญฉลาดมากยิ่งขึ้น เช่น โปรแกรมตัวแทนอัจฉริยะ (Intelligent Agent) การสืบค้นข้อมูลที่อิงตามความหมาย (Semantic Search) เป็นต้น


สงวนลิขสิทธิ์ © 2012:: ห้องปฏิบัติการวิจัยเทคโนโลยีภาษาธรรมชาติและความหมาย
ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ