摘要:討論采用TOVE方法論,以O(shè)WL作為元數(shù)據(jù)的描述語言,利用Protégé應(yīng)用程序創(chuàng)建就業(yè)領(lǐng)域共享的本體。在.NET集成開發(fā)環(huán)境下,利用基于XML文檔對象模型的編程接口實(shí)現(xiàn)對本體實(shí)例數(shù)據(jù)的加載,為本體操作提供了友好的人機(jī)交互界面。就業(yè)系統(tǒng)中,企事業(yè)單位與高校畢業(yè)生之間需求的相容匹配機(jī)制借助于RacerPro推理機(jī)和JBuilder集成環(huán)境。
關(guān)鍵詞:文檔對象模型; 本體; Web本體語言; 推理機(jī)
中圖分類號:B016; TP391文獻(xiàn)標(biāo)志碼:A
文章編號:1001-3695(2007)12-0235-03
隨著我國高等教育的迅猛發(fā)展,對教育信息化要求也越來越高,但國內(nèi)一般的就業(yè)服務(wù)網(wǎng)站只能提供就業(yè)人員和用人單位的就業(yè)信息及就業(yè)指導(dǎo)培訓(xùn)等信息。已建的高校畢業(yè)生就業(yè)服務(wù)信息系統(tǒng)一般以數(shù)據(jù)庫為基礎(chǔ),只能完成對高校畢業(yè)生就業(yè)的管理和統(tǒng)計(jì)工作,對系統(tǒng)智能化和自動化方面的研究與建設(shè)較少,沒有建立與其他省兄弟單位協(xié)作和交流的信息標(biāo)準(zhǔn)。本文通過對基于本體的高校畢業(yè)生就業(yè)綜合服務(wù)系統(tǒng)的開發(fā)與實(shí)踐,可以加緊就業(yè)領(lǐng)域內(nèi)各類信息標(biāo)準(zhǔn)、信息規(guī)范的建設(shè)。建立基于本體論的服務(wù)系統(tǒng),實(shí)現(xiàn)用人單位與高校畢業(yè)生之間信息的智能匹配,進(jìn)而推進(jìn)教育電子政務(wù)的建設(shè)。
1本體論
本體論原是來自西方哲學(xué)的一個(gè)術(shù)語,意指關(guān)于自然存在的理論。人工智能研究領(lǐng)域則將共享本體論視為對于應(yīng)用域概念化的清晰說明[1]。根據(jù)Uschold的解釋:“本體論是一個(gè)正式且明確的規(guī)格,旨在說明大家都能共同接受的概念。”[2]一個(gè)Web本體可能包含了類、屬性以及它們的實(shí)例描述。它是一種知識表示,支持上下文推理。在知識分享的問題上,本體占有非常重要的地位,不同的系統(tǒng)描述各自領(lǐng)域的概念和術(shù)語。本體是解決語義層次上Web信息共享和交換的基礎(chǔ),就Web而言,本體可以應(yīng)用在以下方面:a)提高搜索引擎的精確度。它只需根據(jù)元數(shù)據(jù)查找網(wǎng)頁,而不會像現(xiàn)在用語義含糊的關(guān)鍵詞進(jìn)行全文搜索。b)利用本體從Web頁面到相應(yīng)的知識結(jié)構(gòu)和推理規(guī)則的建立關(guān)系。c)本體可用于電子商務(wù)網(wǎng)站[3]。
本體既是知識處理的基礎(chǔ),又為人們提供了一種更為規(guī)范、更為系統(tǒng)的思維方法,這種方法正在被各行各業(yè)的技術(shù)人員所采用。本體為知識庫的建立提供了一個(gè)基本的結(jié)構(gòu),即提供一套概念和術(shù)語來描述某一領(lǐng)域,并且獲取該領(lǐng)域的本質(zhì)的概念結(jié)構(gòu),然后,知識庫就可以運(yùn)用這些術(shù)語去表達(dá)現(xiàn)實(shí)或者虛擬世界中的正確知識。知識處理較為可行的方案是由Berners-Lee提出的語義Web 結(jié)構(gòu)[4]。該結(jié)構(gòu)分為七層,如圖1所示。
本體語言(ontology language)是一種用來描述領(lǐng)域結(jié)構(gòu)的語言,即對領(lǐng)域本體進(jìn)行刻畫。這些結(jié)構(gòu)可以采用一定的概念(類)和屬性(關(guān)系)來描述,而本體就由這些結(jié)構(gòu)所表示的公理所組成。由于描述邏輯在語義、可判定性及面向?qū)ο蟮姆诸惐硎镜确矫娴膬?yōu)點(diǎn),一般的本體語言可以建立在描述邏輯的基礎(chǔ)之上。在語義Web上使用的本體語言包括RDF Schema、OIL、DAML+OIL[5]和OWL[6]等。
2創(chuàng)建高校畢業(yè)生就業(yè)本體
2.1本體論工程
在人工智能領(lǐng)域,本體論常被用來定義特定領(lǐng)域中明確且特定的基本觀念。現(xiàn)今在人工智能系統(tǒng)的發(fā)展上,越來越注重知識間共享與重復(fù)使用,本體論在此扮演重要角色。在建立專家知識庫時(shí)必須針對這個(gè)領(lǐng)域進(jìn)行抽象化,再以本體論的分類方式進(jìn)行分類。系統(tǒng)本體的建立一般參考Natalya[7] 構(gòu)造本體的理論方法,但其對本體論的驗(yàn)證缺乏說明。所以本文對畢業(yè)生就業(yè)領(lǐng)域本體的具體實(shí)現(xiàn)采用TOVE的本體方法論,取其驗(yàn)證本體論的方法來評估本體論是否符合用戶需求。
知識工程界所承認(rèn)的本體開發(fā)方法有如下幾種:Uschold的“骨架”法、Berneras方法、Methontology方法、Micheal Gru-ninger Mark. S Fox的企業(yè)建模法(TOVE)[8]。
TOVE是多倫多大學(xué)Enterprise Integration Laboratory的一個(gè)項(xiàng)目。該項(xiàng)目設(shè)計(jì)了一套創(chuàng)建和評價(jià)本體的方法Enterprise Modeling Methodology。其具體開發(fā)過程及該方法論包括六個(gè)步驟[9]如圖2所示。
2.2就業(yè)本體概念設(shè)計(jì)
本文中,高校畢業(yè)生就業(yè)領(lǐng)域的本體概念設(shè)計(jì)參考TOVE的本體方法論。具體的設(shè)計(jì)步驟如下:
a)決定高校畢業(yè)生就業(yè)本體的服務(wù)領(lǐng)域及其使用范圍。該本體所要涵蓋的范圍是浙江省教育領(lǐng)域內(nèi)高校畢業(yè)生就業(yè)問題所涉及的相關(guān)內(nèi)容,以此為基礎(chǔ)再擴(kuò)展到全國高校就業(yè)領(lǐng)域。暫由浙江省教育廳指定單位負(fù)責(zé)維護(hù),全省各個(gè)高校、用人單位及人事主管部門使用。該本體需要解答的問題有:畢業(yè)生對就業(yè)的需求有哪些?用人單位對畢業(yè)生的需求有哪些?就業(yè)領(lǐng)域本體有哪些類?就業(yè)領(lǐng)域本體各個(gè)類有哪些屬性,如何描述?用人單位與畢業(yè)生的信息如何匹配?
該本體主要解決的是高校畢業(yè)生與用人單位之間的雙向智能匹配問題,希望能以該本體為標(biāo)準(zhǔn),解決與兄弟省份畢業(yè)生就業(yè)相關(guān)信息的共享問題,更好地為高校畢業(yè)生、用人單位和教育主管部門服務(wù)。
b)是否有現(xiàn)存的本體論可延伸引用。2002年9月,中華人民共和國教育部發(fā)布了《教育管理信息標(biāo)準(zhǔn)化》條例作為教育行業(yè)的信息化行業(yè)標(biāo)準(zhǔn)。其中涉及高等學(xué)校管理信息。但該條例只是規(guī)范了數(shù)據(jù)庫設(shè)計(jì)的標(biāo)準(zhǔn)問題,沒有涉及教育本體建設(shè)方面的內(nèi)容。現(xiàn)在國內(nèi)還沒有教育領(lǐng)域相關(guān)的、合適的本體,更沒有關(guān)于就業(yè)領(lǐng)域內(nèi)本體規(guī)范。本文中的本體構(gòu)建參考《教育管理信息標(biāo)準(zhǔn)化》[10]條例內(nèi)容,規(guī)劃構(gòu)造就業(yè)領(lǐng)域本體的詞匯,構(gòu)建畢業(yè)生就業(yè)本體。
c)確定高校就業(yè)本體詞匯。高校畢業(yè)生就業(yè)本體的建設(shè),希望能將目前高校畢業(yè)生就業(yè)領(lǐng)域涉及的相關(guān)詞匯整理出來,并能符合教育部所規(guī)范的信息化標(biāo)準(zhǔn)的要求。所采用的詞匯以畢業(yè)生就業(yè)所需的基本資料為基礎(chǔ),再結(jié)合用人單位及相關(guān)領(lǐng)域的信息規(guī)范。系統(tǒng)設(shè)計(jì)的畢業(yè)生就業(yè)本體中主要的類別有學(xué)生(student)、用人單位(comprise)、高校(university)、專業(yè)(speciality)、企業(yè)主管部門(managerDepartment)、學(xué)生所在院系(department)、學(xué)生所在班級(studentClass)、地址(address)、單位(unit)、企業(yè)單位招聘信息(inviteJob)等。
d)定義領(lǐng)域類別及決定類別、子類別的階層關(guān)系。系統(tǒng)的本體間類別的關(guān)系比較簡單,類別student、speciality、address、studentClass、department為畢業(yè)生就業(yè)中一般類別;另外managerDepartment、fileManagerUnit、university、comprise為unit的子類別。因?yàn)闆]有現(xiàn)存的本體可以引用,本文采用自下而上的設(shè)計(jì)方法,利用三詞匯列表制訂特定的類別,再根據(jù)類別的共用性,制訂一般化的父類別。
e)定義本體的限制。只有分類和子類別的本體,并不足以表現(xiàn)系統(tǒng)資源之間的需求關(guān)系,需要進(jìn)一步利用特征屬性來描述該類別,如父母的類別存在的條件是一定要有大于等于一個(gè)的小孩數(shù)目(hasChild≥1)。在本文中表現(xiàn)為一個(gè)畢業(yè)生只能從一所高校畢業(yè);企業(yè)單位招聘信息類別存在的條件是必須要求招聘一個(gè)以上的畢業(yè)生。
在OWL本體論中屬性可分為兩種類別,即數(shù)據(jù)類型屬性和對象屬性。數(shù)據(jù)類型屬性描述對象與XSD數(shù)據(jù)類型之間的關(guān)系;對象屬性描述對象與對象之間的關(guān)系。在學(xué)生類的屬性中,employmentUnit為對象屬性,表示用人單位類別和畢業(yè)生類別間關(guān)系;hasNO為數(shù)據(jù)類型屬性,表示畢業(yè)生類別和XSD數(shù)值間的關(guān)系;具體畢業(yè)生就業(yè)本體學(xué)生類的主要屬性所在班級(hasStudentClass)、學(xué)歷代碼(hasDegree)、學(xué)號(hasNO)、姓名(hasName)、工資要求(hasPay)等。
2.3創(chuàng)建高校畢業(yè)生就業(yè)本體
根據(jù)2.2節(jié)對建立應(yīng)用領(lǐng)域的本體論方法和概念設(shè)計(jì)的討論,建立高校就業(yè)領(lǐng)域本體,再將現(xiàn)實(shí)世界的內(nèi)容作為實(shí)例加入到高校就業(yè)系統(tǒng)本體論中。該本體以O(shè)WL DL描述邏輯為基礎(chǔ),利用Protégé 3.1.1應(yīng)用程序作為本體的設(shè)計(jì)和開發(fā)工具,建立畢業(yè)生就業(yè)本體。本體屬性值形態(tài)為關(guān)系,若屬性為datatype,則填入需要遵守所限制的資料形態(tài),限制包括Any、Boolean、Integer、String、Float和Sysbol。只要符合限制條件的直接填入。若屬性限制為object,則依據(jù)屬性定義由類別或是實(shí)例中選取元素填入。本文實(shí)現(xiàn)的畢業(yè)生就業(yè)本體的概念模型符合OWL DL描述邏輯語言的規(guī)范。其中,有關(guān)畢業(yè)生的部分本體描述如下(其他略):
〈rdf:RDF
〈owl:Class rdf:ID=\"student\"/〉
〈owl:DatatypeProperty rdf:ID=\"hasPay\"〉
〈rdfs:range rdf:resource=\"http://www.w3.org/2001/XMLSchema#int\"/〉
〈rdfs:domain rdf:resource=\"#student\"/〉
〈/owl:DatatypeProperty〉
〈owl:DatatypeProperty rdf:ID=\"hasName\"〉
〈rdfs:range rdf:resource=\"http://www.w3.org/2001/XMLSchema#string\"/〉
〈rdfs:domain rdf:resource=\"#student\"/〉
〈/owl:DatatypeProperty〉
〈owl:DatatypeProperty rdf:ID=\" hasDegree\"〉
〈rdfs:range〉
〈owl:DataRange〉
〈owl:oneOf rdf:parseType=\"Resource\"〉
〈rdf:first rdf:datatype=\"http://www.w3.org/2001/XMLSchema#string\"〉大專〈/rdf:first〉
〈rdf:rest rdf:parseType=\"Resource\"〉
〈rdf:rest rdf:parseType=\"Resource\"〉
〈rdf:first rdf:datatype=\"http://www.w3.org/2001/XMLSchema#string\"〉研究生〈/rdf:first〉
〈rdf:rest rdf:resource=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#nil\"/〉
〈/rdf:rest〉
〈rdf:first rdf:datatype=\"http://www.w3.org/2001/XMLSchema#string\"〉本科〈/rdf:first〉
〈/rdf:rest〉
〈/owl:oneOf〉
〈/owl:DataRange〉
〈/rdfs:range〉
〈rdfs:domain rdf:resource=\"#student\"/〉
〈/owl:DatatypeProperty〉
……
〈/rdf:RDF〉
3利用XML DOM實(shí)現(xiàn)對本體操作
高校畢業(yè)生就業(yè)本體是以O(shè)WL作為元數(shù)據(jù)的描述語言,用Protégé應(yīng)用程序作為編輯工具。但Protégé用戶界面的友好性不夠,不能滿足用戶的需求,必須為系統(tǒng)建立友好的本體操作的用戶界面。OWL的語法是描述邏輯語法的XML表達(dá)方式。通過對系統(tǒng)建立的具體的畢業(yè)生就業(yè)系統(tǒng)中以XML為語法基礎(chǔ)的OWL本體內(nèi)容的分析可以知道,本體中student類的層次結(jié)構(gòu)片斷如下:
〈rdf:RDF〉
〈student rdf:ID=\"…\"〉
〈hasUnitSite rdf:datatype=\"…\"〉
……
〈/hasUnitSite〉
〈/student〉
〈/rdf:RDF〉
分析整個(gè)就業(yè)領(lǐng)域本體的分析,可構(gòu)造出本體中student類的樹型結(jié)構(gòu)層次,如圖3所示。
通過分析發(fā)現(xiàn),本體的相對XML根為〈rdf:RDF〉,student的實(shí)例為根下面的一棵子樹。在高校畢業(yè)生就業(yè)系統(tǒng)中,通過分析系統(tǒng)所構(gòu)建本體的XML格式的文本內(nèi)容的分析,可以直接在Microsoft .NET環(huán)境下,利用XML DOM編程接口編寫應(yīng)用程序?qū)崿F(xiàn)對本體實(shí)例的操作,實(shí)現(xiàn)對本體操作用戶界面的友好性。
XML DOM是由W3C組織推薦的一組編程接口,描述了用于在內(nèi)存中存儲層次文檔的對象模型。XML是一種層次數(shù)據(jù),一個(gè)數(shù)據(jù)元素可以嵌套在其他數(shù)據(jù)元素中,每一個(gè)數(shù)據(jù)元素也可以有依附于自己的屬性和子元素。DOM定義了一個(gè)對象層,可以充分將XML文件描述為一系列遞歸表,利用DOM解析XML文件的結(jié)果,就是在內(nèi)存中建立包容XML文件中所有數(shù)據(jù)的一個(gè)分層樹狀數(shù)據(jù)結(jié)構(gòu)。這樣對于那些需要對XML文檔的某些部分作重復(fù)或隨機(jī)訪問的應(yīng)用程序來說非常便捷。本文選擇利用XML文檔對象模型(DOM)加載系統(tǒng)本體,操作緩存中的基于XML的本體,為就業(yè)領(lǐng)域本體的操作建立友好的人機(jī)交互界面。本體錄入的部分代碼如下:
XmlDocument doc=new XmlDocument();
doc.Load(\"student.owl\");
XmlNode root=doc.DocumentElement;
XmlElement student=doc.CreateElement(\"student\");
root.AppendChild(student);
XmlAttribute attr=student.SetAttributeNode(\"ID\", \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\");
attr.Value=tb_Ontology.Text;
if (tb_Speciality.Text.Trim().CompareTo(\"\")!=0)
{
XmlElement hasSpeciality=doc.CreateElement(\"hasSpeciality\");
hasSpeciality.InnerText=tb_Speciality.Text;
XmlAttribute attrSpeciality=hasSpeciality.SetAttributeNode(\"datatype\",\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\");
attrSpeciality.Value=\"http://www.w3.org/2001/XMLSchema#string\";
student.AppendChild(hasSpeciality);
}
……
doc.Save(\"student.owl\");
4高校畢業(yè)生就業(yè)系統(tǒng)匹配推理
要實(shí)現(xiàn)高校畢業(yè)生就業(yè)系統(tǒng)中畢業(yè)生與用人單位信息互通、雙向選擇,除了要有便于人機(jī)均可理解的基于本體的數(shù)據(jù)表示方式,而且要有較好的推理機(jī)來實(shí)現(xiàn)用人單位與高校畢業(yè)生需求之間數(shù)據(jù)匹配。本文中針對OWL本體語言采用的推理機(jī)為RacerPro,系統(tǒng)調(diào)用RacerPro推理機(jī)服務(wù)器的工具語言為Java,支持具體數(shù)據(jù)間匹配的應(yīng)用程序的系統(tǒng)集成開發(fā)環(huán)境為JBuilder 2005。在Java語言環(huán)境中,客戶端調(diào)用RacerPro推理機(jī)服務(wù)器的應(yīng)用程序的代碼如下:
String ip=\"172.20.20.168\";
int port=8088;
RacerServer racer1=new RacerServer(ip,port);
try {
racer1.openConnection();
racer1.send(\"(full-reset)\");
//讀入OWL本體文件student.owl
System.out.println(racer1.send(\"(owl-read-file \\\"~/student.owl\\\")\"));
racer1.send(\"(add-role-assertions-for-datatype-properties)\");
……//具體的推理程序
}
catch (Exception e)
{e.printStackTrace();}
在上述的代碼程序中,只要加入對應(yīng)的符合RacerPro推理機(jī)服務(wù)器要求的代碼程序,即可完成用戶所需要的推理功能。
Racer作為針對本體語言的推理機(jī),OWL DL的概念可以直接輸入到諸如Racer這樣推理機(jī)進(jìn)行運(yùn)算,由提供企事業(yè)單位需求信息與高校畢業(yè)生所要求的信息進(jìn)行好匹配;通過Racer的重新分類,就可以識別出兩者之間的相關(guān)數(shù)據(jù)的匹配程度,返回最大連接匹配。在RacerPro 1.9中,第一次以Rule方式實(shí)現(xiàn)了對SWRL類型規(guī)則的支持,大大增強(qiáng)了系統(tǒng)推理機(jī)的推理能力。例如,匹配畢業(yè)生實(shí)體“jzy”所要求最低工資大于企事業(yè)單位所能提供的最高工資的所有企事業(yè)單位的實(shí)體名稱,代碼如下。
racer1.send(\"(retrieve (?x) (?x |http://www.owl-ontologies.com/unnamed.owl#jzy| (constraint |http://www.owl-ontologies.com/unnamed.owl#unitPay| |http://www.owl-ontologies.com/unnamed.owl#hasPay|〉)))\");
5結(jié)束語
基于本體的高校畢業(yè)生就業(yè)綜合服務(wù)系統(tǒng),面向語義Web 環(huán)境設(shè)計(jì)。與現(xiàn)有的常規(guī)畢業(yè)生就業(yè)平臺系統(tǒng)相比,本系統(tǒng)具有多種特點(diǎn):a)以本體論為基礎(chǔ);b)為本體的操作提供了友好的人機(jī)交互界面;c)建立了高校畢業(yè)生與用人單位間需求的相容匹配機(jī)制;d)系統(tǒng)的實(shí)現(xiàn)集成了.NET和JBuilder兩大開發(fā)平臺。本研究下一步的工作是完善企事業(yè)單位與高校畢業(yè)生之間需求的相容匹配機(jī)制,進(jìn)一步完善系統(tǒng)。
參考文獻(xiàn):
[1]GRUBE T R. A translation approach to portable ontology specifications[J]. Knowledge Acquisition, 1993,5(2):199-220.
[2]USCHOLD M, GRUENINGER M. Ontologies: principles, methods and applications[J]. Knowlege Sharing a Review,1996,11(2):93-155.
[3]GRUBER T. What is an ontology[EB/OL].[2005-08].http://www-ksl.stanford.edu/kst/what-is-an-ontology.
[4]BERNERS-LEE T,HANDLER J, LASSILA O. The semantic Web[J]. Scientific American,2001,184:34-43.
[5]DAML+OIL(March 2001) reference description[EB/OL].[2005-09].http://www.w3.org/TR/daml+oil-reference.
[6]OWL Web ontology language semantics and abstract syntax[EB/OL].[2005-10].http://www.w3.org/TR/owl-semantics.
[7]NOY N F, MCGUINNESS D L. Ontology development 101:a guide to creating your first ontology, SMI-2001-0880[R]. California: Stanford University, 2001.
[8]GRUNINGER M, FOX M S. The logic of enterprise modeling[M].[S.l.]: Chapman Hall, 1995.
[9]楊秋芬.Ontology方法學(xué)綜述[J].計(jì)算機(jī)應(yīng)用研究,2002,19(4):5-7.
[10]中華人民共和國教育部.教育管理信息化標(biāo)準(zhǔn)[S].北京:人民郵電出版社,2003.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”