帥皓天 楊靜



摘 ?要: 傳統(tǒng)的教科書致力于系統(tǒng)地向學習者傳授專業(yè)知識,而大部分教科書通常以印刷或電子版等純文本的方式整書出版,數(shù)據(jù)難以被計算機理解并有效利用。以數(shù)學學科中的線性代數(shù)為例,展示了一種基于知識管理和多用戶管理的開放型智能電子教科書系統(tǒng)。該系統(tǒng)以細粒度數(shù)據(jù)管理為出發(fā)點,通過圖數(shù)據(jù)庫存儲知識數(shù)據(jù)及其相互關系,并基于混合軟件架構實現(xiàn)了編輯和瀏覽細粒度教科書內容與知識結構的交互功能。
關鍵詞: 圖數(shù)據(jù)庫;教科書;信息化;混合應用;知識管理
中圖分類號: TP391.41 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.06.009
本文著錄格式:帥皓天,楊靜. 智能電子教科書系統(tǒng)的設計原理與實現(xiàn)[J]. 軟件,2020,41(06):3946
【Abstract】: Traditional textbooks are used for systematically disseminating professional knowledge to learners. Most of them are published in print or digit edition, which makes it difficult for computer to interprete and apply the knowledge effectively. In this paper, we present an open intelligent textbook system in linear algebra based on knowledge management and multi-user management. With knowledge data with their relation fine-grained and stored in graph database, a software using the hybrid architecture is designed and built for browsing and editing knowledge interactively.
【Key words】: Graph database; Textbook; Informationize; Hybrid application; Knowledge management
0 ?引言
在現(xiàn)行的教育模式中,教科書的主要功能是系統(tǒng)地向學習者傳授專業(yè)知識,在知識傳播過程中扮演著重要角色。而大部分教科書通常以純文本的方式整書出版,它們在數(shù)據(jù)庫里的存儲和檢索方式大多基于元數(shù)據(jù)(如標題、作者、出版社和關鍵字等),這樣的數(shù)據(jù)組織、存儲和檢索的方式難以被計算機理解和利用。如何解決傳統(tǒng)的純文本存儲方式中難以高效地對知識進行概括或抽象描述的問題,有效地存儲和使用知識點一直是知識表示和知識管理研究中的熱點和難點。
伴隨著計算機的發(fā)展,大量電子教材隨之出現(xiàn),電子教材的優(yōu)缺點以及它能否取代傳統(tǒng)教材一直是討論的熱點[1,2]。目前常見的電子教材大多是靜態(tài)文檔,僅是在文檔電子化的基礎上提供文檔的瀏覽功能。智能的電子教科書系統(tǒng)應該是能夠自動根據(jù)用戶需求動態(tài)調整并生成所需文檔,可以在細粒度的知識數(shù)據(jù)管理上重建知識間的關系,并通過科學計算軟件實現(xiàn)知識的自動推理和自動計算。在電子教科書領域,王東明課題組開發(fā)的幾何電子教科書吸取了動態(tài)軟件的理念,專門為交互式處理幾何知識點編寫了一套用于幾何知識推理、圖表可視化、多版本教科書生成和一致性檢測的軟件工具[3,4]。這套幾何電子教科書系統(tǒng)描繪了一個具有沖擊性的、讓人耳目一新的智能教科書范本——具備眾包化、可視化、適宜型、交互型和智能型等特征的電子教科書[5]。在信息記錄方面,交互式的數(shù)學電子文檔MathDox實現(xiàn)了同時記錄書本內容信息和用戶個人信息的功能[6]。此外還有通過加入知識表達和問題解答系統(tǒng)的電子教科書——Inquire Biology[7],它是專門為了回答用戶問題而設計的。智能教輔系統(tǒng)在近幾年也得到大力的研究和發(fā)展,這類系統(tǒng)可以給學生提供個性化的學習方式和及時的數(shù)據(jù)反饋,同時綜合領域知識、問題求解方法、教學方法、學生資質和個人信息進行交互測驗[8]。
近幾年隨著移動設備的大量普及和互聯(lián)網(wǎng)的高速發(fā)展,網(wǎng)頁應用由于其學習成本低、不依賴平臺的特性得到了高速發(fā)展[9]。但隨著移動設備的激增和移動平臺的碎片化,應用開發(fā)的方式急需一種更加高效統(tǒng)一的框架,混合應用便是為解決這樣的問題而提出的一種新框架[10],這種應用框架在某些方面的表現(xiàn)要優(yōu)于傳統(tǒng)應用框架[11]。
在前人研究的基礎上,我們啟動了一個名為LaText(Linear Algebra Textbook system)的項目,旨在結合計算機科學領域中新興的混合應用架構設計一套基于知識管理和知識存儲的智能電子教科書軟件。該系統(tǒng)在細粒度知識數(shù)據(jù)管理上能根據(jù)用戶需求自動生成書本內容。本文主要研究知識體系的語義表示、知識在圖數(shù)據(jù)庫中的存儲方式以及實驗性軟件系統(tǒng)的實現(xiàn)等問題。
1 ?知識數(shù)據(jù)模型設計
1.1 ?知識描述方法
知識的內容豐富、形式多樣且關系復雜。傳統(tǒng)的電子教科書僅是存儲了沒有語義信息的電子化書本內容,這對于計算機理解和利用知識數(shù)據(jù)是不利的。因此智能電子教科書系統(tǒng)需要一種高效、統(tǒng)一的知識數(shù)據(jù)模型來管理和存儲知識數(shù)據(jù)。這樣的管理方式使得數(shù)據(jù)庫中的數(shù)學知識模型數(shù)據(jù)可以滿足未來研究的需求,也便于知識的融匯聚合、自由擴展和按需索取。
語義對于數(shù)學知識的存儲、管理和理解非常重要。為了能夠準確地刻畫數(shù)學知識的內在關系、嚴格地描述數(shù)學知識對象的結構,我們使用本體語言的概念來設計這套知識數(shù)據(jù)的概念模型。在計算機科學和人工智能領域,本體語言(ontology language,又稱本體論語言)是指用于構建本體的形式語言。此類語言能夠對有關特定領域的知識進行編碼,且常包括處理這些知識之間關系的推理規(guī)則。本體語言通常為描述性語言(又稱表述型語言或說明性語言),大多屬于框架語言的泛化形式,且一般都基于一階邏輯或描述邏輯[12,13]。
本體語言是對特定領域中某套概念及相互關系的形式化表達,其概念依賴于特定領域,多用于描述由對象、屬性及其關系所構成的一套模型,如語義網(wǎng)、生物醫(yī)學信息等。就現(xiàn)有的本體語言而言,其具體結構具有很大的相似性,大多數(shù)本體語言都包含類、個體、屬性、關系等要素,有些還包括約束、規(guī)則、公理等。類是對象或事物的種類,個體是類的一個實例,屬性是類或個體可能具有的特性等,關系是類或個體之間可能具有的聯(lián)系方式。
1.2 ?類設計
我們從語義層面、表現(xiàn)層面、標注層面三個維度設計了領域知識的結構。目前知識數(shù)據(jù)的概念模式包括三大類:知識(Knowledge)、資源(Resource)、元數(shù)據(jù)(Metadata)。所有概念模型在數(shù)據(jù)庫設計中皆是使用英語來標識,且每一個類包含了描述該類所需的屬性。類以及其包含子類如圖1所示,包含屬性示例如圖2所示。
知識(Knowledge)類是用于刻畫知識內涵的基本單位,稱為知識對象(或知識節(jié)點)。每個本體概念除了特有的屬性外都有一個唯一標識用的ID屬性,同一種本體概念的ID互不相同,但多個不同的本體概念可以使用相同的ID。這樣的設計可以在精確編號數(shù)據(jù)的同時簡化ID的命名,也有利于人工檢查、維護和理解。如圖2所示行列式的概念數(shù)據(jù)和名稱數(shù)據(jù)使用了同一個名為determinant的id。
資源(Resource)類是可刻畫知識點的表現(xiàn)形式,描述了知識點除語義外的具體內容是使用什么類型的資源進行表示。元數(shù)據(jù)(Meta)類,刻畫知識對象和資源在界面中顯示的標簽,用于多語言顯示,系統(tǒng)使用的標簽,每一個都設為一個對象,系統(tǒng)加載是自動選擇配置文件。如圖2行列式這個概念有定義,定義具體的內容是id為determinant的文本資源類;行列式這個概念有名字,名字的具體內容是id為determinant的名稱元數(shù)據(jù)類。
1.3 ?知識關系設計
除了類和屬性外,完整的知識數(shù)據(jù)模型還應包含類之間的關系。為了充分記錄知識類之間的關系,在領域知識的結構中設計了知識與知識之間的關系、知識與資源之間的關系和知識與元數(shù)據(jù)之間的關系。其常見關系如圖3所示。
2 ?服務器設計
2.1 ?知識存儲設計
在智能電子教科書項目中,首先將課本文本知識按照知識結構的存儲模型進行拆解,然后按照知識的類型和關系將其存入數(shù)據(jù)庫,以便后續(xù)進行管理和調用。項目初期按照知識語義拆分的工作需要人工完成,后期可以借助人工神經(jīng)網(wǎng)絡進行拆分。
數(shù)據(jù)庫一般分為關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫。傳統(tǒng)的關系型數(shù)據(jù)庫在存儲和查找表型數(shù)據(jù)方面具有顯著的優(yōu)勢,但是用在本項目設計的數(shù)學知識存儲結構中卻不太合適。這是因為關系型數(shù)據(jù)庫需要使用額外的表來存儲每一條數(shù)據(jù)之間的關系,這樣的存儲方式不夠直觀且不便管理。相比于關系型數(shù)據(jù)庫,非關系型數(shù)據(jù)庫種類繁多,其中有一類數(shù)據(jù)庫稱為圖數(shù)據(jù)庫。在圖數(shù)據(jù)庫中,數(shù)據(jù)不是按照表的方式而是按照圖的方式存儲的。圖的存儲方式中包含節(jié)點和邊,正好對應知識模型中的類和關系。使用這類數(shù)據(jù)庫不需要為固化知識數(shù)據(jù)進行額外的模型設計或改動,也為大量基于關系進行查詢的事務提供了效率保障。
本文選用較為知名的開源項目Neo4j[14]作為智能電子教科書的圖數(shù)據(jù)庫。Neo4j作為開源軟件擁有龐大的社區(qū),便于資料查閱和后期維護,也能保證項目的質量和長期運作。作為高性能的圖數(shù)據(jù)庫,Neo4j的底層數(shù)據(jù)存儲通過圖而不是一般的數(shù)據(jù)庫表來實現(xiàn),這為基于大量關系型的查找提供了性能保障。基于Java的Neo4j可以跨平臺運行在不同的服務器平臺,甚至是樹莓派這樣的嵌入式平臺,這也會對實驗性研究提供極大的幫助。Neo4j不僅包括了一般數(shù)據(jù)庫的特性,同時也是一個小型數(shù)據(jù)庫系統(tǒng),具備了如安全驗證、用戶登錄、web交互管理界面等企業(yè)級的特性,為電子教科書系統(tǒng)的開發(fā)提供了極大的便利。
2.2 ?文檔生成模塊設計
智能電子教科書的最終目標是能夠根據(jù)用戶需求自動生成個性化的書本內容。例如,在學生通過智能電子教科書學習線性代數(shù)時,則其中的內容可以根據(jù)學生的能力自動做出適當調整。學習能力強、表現(xiàn)不錯的學生在書本內容上就可以上展示更多的擴展內容,習題上也可以挑選難度較高的題目;成績一般的學生在書本內容上就可以按照夠用原則適當取舍,習題挑選簡單和中等難度的題目,這樣既可以滿足練習需求也可以培養(yǎng)學習興趣;接受能力偏弱的學生,在題目上可以多選取簡單的題目,在保證學習知識的前提下不打擊學習興趣。
在目前的軟件實現(xiàn)中先考慮如何利用知識模型自動生成文檔。在知識模型的設計中,除了一般的知識類之外,還有如Aggregation這樣的章節(jié)信息類。在現(xiàn)階段的知識點錄入中,知識數(shù)據(jù)是基于現(xiàn)有的紙質線性代數(shù)教科書進行人工語義解構得到的,章節(jié)信息類也一同參考原書進行錄入。在解構原書章節(jié)及文檔內容時,發(fā)現(xiàn)章節(jié)、文檔結構的信息類相互之間表現(xiàn)為樹狀結構,遂以節(jié)點樹記錄原書的章節(jié)和文檔結構,且該結構也有利于已有知識節(jié)點的快速重復利用。
為了保存用于生成文檔的知識節(jié)點樹以便多次使用,在智能電子教科書中使用JSON文件記錄知識節(jié)點樹,將每一個知識點以樹的層級方式進行存儲。圖4展示了具有層級關系的知識節(jié)點在線性代數(shù)第一章的結構。圖5展示了章節(jié)點的實際構成節(jié)點,這些節(jié)點皆是知識模型數(shù)據(jù)。
2.3 ?服務器架構設計
服務器的操作系統(tǒng)選用Linux的一個發(fā)行版本Debian。該操作系統(tǒng)具有良好的軟件支持,易于部署和更新維護,且兼容項目中所需的運行庫。服務器代碼運行在Node.js平臺上.Node.js是一個基于Chrome V8引擎的JavaScript運行環(huán)境。由于使用了事件驅動、非阻塞式I/O的模型,它具備輕量又高效的優(yōu)點,同時擁有十分活躍的社區(qū)[15]。本小節(jié)討論智能電子教科書服務器框架的選用,功能模塊的設計,服務器多用戶控制和日志系統(tǒng)的實現(xiàn)。
服務器通過面向對象的編程方式將所需要的功能封裝成模塊,在服務器主程序中調用。客戶端調用服務器是基于Express框架實現(xiàn)的RESTful風格API?;诖孙L格設計的軟件更為簡潔、富有層次,易于實現(xiàn)緩存等機制,且有利于服務器和客戶端相互脫耦,便于進行長期維護[21]。該項目的RESTful API結構設計如圖6所示。
服務器的用戶登錄、會話保持與權限控制通過JSON Web Tokens(JWT)實現(xiàn)。JWT是一種用于安全表示雙方請求的開源工業(yè)級標準(RFC7519)[16]。服務器通過對npm[17](Node.js包管理器)中的JWT官方庫[18]進行適當封裝,并配合Express路由進行操作權限的認證和過濾。用戶數(shù)據(jù)在服務器中通過MongoDB進行存儲。在服務器平臺部署MongoDB的服務端后,智能電子教科書服務器通過封裝MongoDB在npm上的官方庫對此服務端進行連接調用。
用戶權限管理是服務器安全穩(wěn)定運行的重要保障,它可以保證數(shù)據(jù)的安全和滿足特殊的訪問需求。在智能電子教科書系統(tǒng)中,最重要的數(shù)據(jù)是Neo4j圖數(shù)據(jù)庫中存儲的知識模型數(shù)據(jù),而涉及的數(shù)據(jù)操作權限可概括為數(shù)據(jù)庫的讀權限與寫權限。此外,由于知識模型數(shù)據(jù)在閱讀者使用時會由服務器自動合成為所需文檔緩存在服務器中。為了保證文檔緩存在一定時期內具有一致性,所以還需為文檔緩存的數(shù)據(jù)操作提供讀取和刷新的權限。每種權限設計時要保持與其他權限的互斥,這樣便可以用二進制的一個比特位來代表一種權限。例如,第一位表示數(shù)據(jù)庫的讀取權限、第二位表示數(shù)據(jù)庫的寫入權限、第三位表示文檔緩存的讀取權限、第四位表示文檔緩存的刷新權限。在一個典型的電子教科書系統(tǒng)中,用戶角色通常包括管理員、老師和學生。其中,管理員擁有全部權限,其對應的十六進制權限碼是0xF,即四位比特全部為1;老師擁有知識模型的讀寫權限和文檔緩存的讀取權限,即二進制比特位的第一、二和三位應置為1,對應的十六進制權限碼是0x7;學生只具有讀取文檔緩存的權限,所以十六進制權限碼是0x3。權限碼作為用戶數(shù)據(jù)的一個屬性記錄在數(shù)據(jù)庫中,在生成JWT時放入載荷中以便于用戶訪問時進行權限驗證。
為保障服務器的正常運行,智能教科書系統(tǒng)還需要提供一個輕量級的日志系統(tǒng)來監(jiān)控服務器的運行狀態(tài)和敏感權限的操作。本項目中用JavaScript在Node.js下開發(fā)了一個具有多日志、日志分塊、日志舍棄和多級別信息功能的日志模塊。該日志模塊的UML結構如圖7所示。日志模塊在日志寫入超出單個日志文件大小時,會將當前日志文件加上序號并新建一個新的日志文件繼續(xù)寫入。在日志文件總數(shù)超過最大數(shù)量約束后,日志模塊會刪除最舊的日志文件。這樣的寫入邏輯既保證了日志系統(tǒng)僅占用固定的磁盤大小,同時也保障了系統(tǒng)故障之后一定時間內的日志可追溯性。
綜上所述,智能電子教科書的服務器整體架構如圖8所示。
3 ?客戶端設計
客戶端選用的開發(fā)框架是Ionic,它是一個基于Angular 和Cordova的混合應用架構。Ionic底層通過Cordova實現(xiàn)與平臺無關的硬件調用,前端基于Angular的數(shù)據(jù)雙向綁定和模塊化實現(xiàn)了大量美觀的控件。該混合應用架構通過將響應式網(wǎng)頁內容部署到瀏覽器,再將傳統(tǒng)應用中的硬件訪問接口通過瀏覽器容器暴露給網(wǎng)頁內容,從而實現(xiàn)一次開發(fā)、跨平臺應用[22]。
智能電子教科書客戶端通過混合架構技術,將具有較高性能需求的任務(如復雜的文檔生成、推理演算等)交給高性能的云服務器,將對運算性能要求較低、面向使用者交互的功能(如文檔渲染、知識模型數(shù)據(jù)編輯等)通過Cordova封裝在不同平臺的客戶端以提供相同的用戶體驗。這樣的架構可以減少用戶對于高性能硬件的需求,但又可以提供相同的用戶體驗。此外,服務端沒有像移動端那樣的軟硬件限制,可以更好地實現(xiàn)各類算法,也可引用其他成熟軟件作為補足。
客戶端需提供文檔的渲染和編輯功能。渲染是將服務器生成的帶有語義的文檔緩存通過處理生成適合閱讀且美觀的HTML文檔,同時在渲染的過程中還需在每個知識節(jié)點處加入跳轉的錨記和編輯的按鈕。編輯功能通過使用編輯器庫CKEditor[19]實現(xiàn)數(shù)學公式友好的知識點編輯。文檔渲染和編輯預覽中的數(shù)學公式渲染由MathJax庫[20]完成??蛻舳丝蚣軋D和模塊結構圖如圖9和圖10所示。
4 ?系統(tǒng)展示
4.1 ?數(shù)據(jù)庫展示
數(shù)據(jù)庫存儲了智能電子教科書系統(tǒng)中重要的用戶信息、知識模型數(shù)據(jù)。本項目使用的數(shù)據(jù)庫包括用于存儲用戶數(shù)據(jù)的MongoDB分布式文件數(shù)據(jù)庫和用于存儲知識模型數(shù)據(jù)的Neo4j圖數(shù)據(jù)庫,其中Neo4j存儲的知識模型數(shù)據(jù)是本項目的關鍵數(shù)據(jù)。圖11展示了用于構建線性代數(shù)第一章知識模型數(shù)據(jù)的節(jié)點拓撲圖,圖12展示了圖11中所圈數(shù)據(jù)節(jié)點的詳細結構。
4.2 ?客戶端展示
客戶端使用響應式布局,其應用界面根據(jù)平臺和分辨率分為桌面端界面和移動端界面。在主界面中左側是功能菜單,右側是文檔目錄。主界面如圖13所示。
知識模型數(shù)據(jù)的編輯界面和搜索界面具有一定的相似性,這是因為編輯是對各知識類及其相應關系的編輯,搜索也是基于知識類的各種屬性、內容和關系進行檢索。編輯界面和搜索界面的桌面版如圖14所示。
客戶端界面中最重要的功能是文檔渲染。渲染所需數(shù)據(jù)來源于服務器根據(jù)JSON結構樹自動生成的文檔緩存。文檔緩存經(jīng)由HTTP協(xié)議傳輸?shù)娇蛻舳撕髣討B(tài)渲染為文檔頁面??蛻舳宋臋n的渲染效果如圖15所示。
編輯功能是智能電子教科書客戶端所應具備的重要功能之一。它在支持即時的數(shù)學公式編輯預覽的基礎上,能夠讓具有編輯權限的用戶(如老師)通過編輯按鈕對知識點及時進行補充修訂。客戶端的編輯界面如圖16所示。
此外,客戶端還實現(xiàn)了關鍵詞的搜索和高亮功能,極大地滿足了使用者對于信息檢索的需求。搜索高亮界面如圖17所示。
5 ?總結與展望
本論文中我們以線性代數(shù)為例,從知識模型、服務器和客戶端設計三個方面對智能電子教科書系統(tǒng)的實現(xiàn)原理展開研究,實現(xiàn)了一個初級版本的智能電子教科書系統(tǒng),用于展示智能電子教科書的核心理念和設計框架。目前最新版本的智能電子教科書系統(tǒng)已經(jīng)能夠為用戶提供知識點的增刪查改、知識點數(shù)據(jù)的拓撲圖瀏覽以及知識點的檢索等功能,同時能夠根據(jù)用戶需求自動生成書本內容并將其渲染展示。為了實現(xiàn)教科書內容的精確查詢、數(shù)學表達式的自動計算和書本內容的自動生成等功能,今后智能電子教科書系統(tǒng)的研究將致力于設計和開發(fā)一種介于自然語言和軟件可識別語言之間的中間語言,用于完成知識數(shù)據(jù)在兩種語言間的互相轉換,進而實現(xiàn)用戶友好的文檔展示和軟件工具的自動計算與自動推理。此外,利用互聯(lián)網(wǎng)的群體協(xié)作能力可以調動大量用戶的群體智慧參與到知識內容的創(chuàng)作中。隨著教科書內容的不斷完善,還可針對特定領域通過科學計算工具(如WolframAlpha,Maple等)實現(xiàn)自動計算、自動推理等功能,在此基礎 ? ?上可針對教育領域開發(fā)自動測評和反饋的功能,并根據(jù)反饋信息自動生成符合用戶需求的書本和測試內容。
未來軟件的全平臺或跨平臺趨勢已經(jīng)不可阻擋,云應用就是一個很好的例子。近年來混合應用經(jīng)過快速發(fā)展已經(jīng)達到與傳統(tǒng)應用平分秋色的水平,甚至之前只有傳統(tǒng)應用才能實現(xiàn)的手寫筆壓感功能,在混合應用的容器中也有了相應的接口獲取其壓感和傾斜屬性。本文除了對知識存儲和知識管理等理論展開研究外,也是一次理論研究與工程實踐的結合,通過混合應用技術來實現(xiàn)前景廣闊的智能電子教科書系統(tǒng)。本文實現(xiàn)的智能電子教科書系統(tǒng)只是一個初級版本,希望這些理論和項目基礎可以為后續(xù)研究做出貢獻。
參考文獻
[1] Shepperd J A, Grace J L, Koch E J. Evaluating the electronic textbook: is it time to dispense with the paper text?[J] Teaching of Psychology, 2008, 35(1): 2-5.
[2] 李林, 王冬, 覃文圣, 張淑琴, 高栩. 論電子教材取代紙質教材發(fā)展趨勢的必然性[J]. 中國信息界, 2011, (5): 42- 44.
[3] Chen X. Electronic geometry textbook: a geometric textbook knowledge management system[C]. Proc. of ICM 2010. Springer, Berlin, Heidelberg, 2010: 278-292.
[4] Chen X, Wang DM. Towards an electronic geometry text-book[C]. In: Proc. of ADG 2006. Springer, Berlin, Heidelberg, 2006.
[5] Quaresma, Pedro. Towards an intelligent and dynamic geo-metry book[J]. In: Mathematics in Computer Science, 2017, 11(3-4), 427-437.
[6] Cohen A M, Cuypers H, Verrijzer R. Mathematical context in interactive documents[J]. Mathematics in Computer Science, 2010, 3(3): 331-347.
[7] Chaudhri V K, Cheng B, Overtholtzer A, Roschelle J, Spaulding A, Clark P, Greaves M, Gunning D. Inquire biology: a textbook that answers questions[J]. AI Magazine, 2013, 34(3): 55-72.
[8] Nkambou R, Azevedo R, Vassileva J (eds.). Intelligent tutoring systems[M]. Proc. of ITS 2018. Springer, Charm, 2018.
[9] Al-Fedaghi S. Developing web applications[J]. International journal of software engineering and its applications, 2011, 5(2): 57-68.
[10] Pinto C M, Coutinho C. From native to cross-platform hybrid development[C]. Proc. of IS 2018. IEEE, 2018: 669-676.
[11] Huynh M Q, Ghimire P, Truong D. Hybrid app approach: could it mark the end of native app domination?[J] Issues in Informing Science and Information Technology, 2017, 14: 049-065.
[12] 鄧志鴻, 唐世渭, 張銘, 楊冬青, 陳捷. Ontology研究綜述[J]. 北京大學學報(自然科學版), 2002, 38(5): 730-738.
[13] Nicola A D, Missikoff M, Navigli R. A software engineering approach to ontology building[J]. Information Systems, 2009, 34(2): 258-275.
[14] Neo4j Graph Platform-The Leader in Graph Databases. [DB/OL]. https://neo4j.com/.
[15] Node. js.[DB/OL] https: //nodejs. org/.
[16] JSON Web Tokens-jwt.io.[DB/OL]. https: //jwt. io/.
[17] npm Documentation.[DB/OL] https: //docs. npmjs. com/.
[18] auth0/node-jsonwebtoken: JsonWebToken implementation for node. js.[DB/OL] https://github.com/auth0/node-jsonwebtoken.
[19] CKEditor | Smart WYSIWYG HTML editor | Collaborative rich text editor.[DB/OL] https://ckeditor.com/.
[20] MathJax | Beautiful math in all browsers.[DB/OL]. https:// www.mathjax.org/.
[21] Riva C, Laitkorpi M. Designing web-based mobile services with REST[C]. Proc. of ICSOC 2007. Springer, Berlin, Heidelberg, 2007: 439-450.
[22] Huynh M Q, Ghimire P, Truong D. Hybrid app approach: could it mark the end of native app domination?[J]. Issues in Informing Science and Information Technology, 2017, 14: 049-065.