[OntoThesaHIMS,Web,Service,API及其應(yīng)用研究] MS應(yīng)用
發(fā)布時(shí)間:2020-03-07 來(lái)源: 人生感悟 點(diǎn)擊:
[摘要]描述中文敘詞表本體共建共享系統(tǒng)(OTCSS)所提供的Web ServiceAPI(OntoThesaurus-API)。OntoThesaums-API現(xiàn)有7類16個(gè)通用的API,用來(lái)滿足M2M形式的術(shù)語(yǔ)學(xué)服務(wù),并可根據(jù)新的需求進(jìn)行擴(kuò)展。以O(shè)ntoThesaums-API在OPAC中的應(yīng)用為例,詳細(xì)介紹其使用方法。最后對(duì)OntoThesaurus-API在其他領(lǐng)域的應(yīng)用做進(jìn)一步的展望。
[關(guān)鍵詞]敘詞表 本體 中文敘詞表本體 OntoThesaurus-API Web Service
[分類號(hào)]G254 TP393.09
1 前 言
國(guó)家社會(huì)科學(xué)基金課題(編號(hào)"O5CTQ001")課題組構(gòu)建了中文敘詞表本體(OntoThesaurus),即利用本體技術(shù)對(duì)中文敘詞表進(jìn)行形式化描述和擴(kuò)展,使中文敘詞表成為機(jī)器真正可理解的本體知識(shí)庫(kù),增強(qiáng)了中文敘詞表的共享性,并運(yùn)用Jena、SPARQL等技術(shù),實(shí)現(xiàn)了中文敘詞表本體共建共享系統(tǒng)OTCSS。該系統(tǒng)解決了中文敘詞表本體的網(wǎng)絡(luò)共建共享和動(dòng)態(tài)完善問(wèn)題,為OntoThesaurus提供了檢索/獲取、一致性檢測(cè)、修訂意見(jiàn)發(fā)送、知識(shí)提取、詞表管理/發(fā)布等功能。為了進(jìn)一步提供面向應(yīng)用系統(tǒng)的術(shù)語(yǔ)學(xué)服務(wù),我們基于Apache的Axis2開發(fā)了一系列Web Service API(On-toThesaums-API)。
2 OntoThesaurus-API
Web Service是一種可以通過(guò)網(wǎng)絡(luò)進(jìn)行發(fā)布、發(fā)現(xiàn)、調(diào)用的新應(yīng)用。它使用WSDL語(yǔ)言來(lái)描述應(yīng)用操作的接口,通過(guò)XML消息傳遞的機(jī)制,讓其他應(yīng)用程序通過(guò)網(wǎng)絡(luò)來(lái)訪問(wèn)這些操作。其目的是為了不同的程序之間可以進(jìn)行交互,實(shí)現(xiàn)應(yīng)用程序間的通信。因此通過(guò)Web Service,可以有效地解決M2M(Machineto Machine)的互操作問(wèn)題。如圖書館信息管理系統(tǒng)、數(shù)據(jù)庫(kù)檢索系統(tǒng)、搜索引擎、標(biāo)簽系統(tǒng)等,不管這些系統(tǒng)基于什么平臺(tái)開發(fā)、采用何種開發(fā)語(yǔ)言,都可以使用OntoThesaurus-API提供的服務(wù),來(lái)實(shí)現(xiàn)基于中文敘詞表本體的智能檢索、知識(shí)鏈接和知識(shí)服務(wù)。
隨著Web Service的提出與發(fā)展,各大程序語(yǔ)言平臺(tái)(Java,Net等)都對(duì)Web Service提供了支持,并涌現(xiàn)了一批開源的Web Service開發(fā)框架,如XFire、Axis2。Axis2是Apache下的第三代Web服務(wù)引擎,它比前一個(gè)版本Axis更高效、更模塊化、更面向XMLt。Axis2既可以作為獨(dú)立的Web服務(wù)平臺(tái),也可以內(nèi)嵌到具體的Web應(yīng)用程序中。因此,我們選用了Axis2作為OTCSS系統(tǒng)的Web Service開發(fā)平臺(tái)。
在研究了參考文獻(xiàn)[8]第4.3.2節(jié)中的術(shù)語(yǔ)學(xué)服務(wù)描述以及SKOS API 的服務(wù)內(nèi)容之后,針對(duì)中文敘詞表本體的術(shù)語(yǔ)學(xué)服務(wù)具體需求,我們開發(fā)了以下7類共16個(gè)通用的Web Service API(另有若干個(gè)API用于特定的敘詞表,并可以根據(jù)新的需求進(jìn)行擴(kuò)展)。
?獲取敘詞。
①public Concept[]getConcepts(String key word.int matching_mode,int search field)
該接口的作用是通過(guò)各種檢索關(guān)鍵字檢索并獲取敘詞。其中,參數(shù)key_word為檢索關(guān)鍵字(檢索值);參數(shù)matching_mode為匹配方式(0:精確匹配1:前方一致2:任意一致其中任意一致檢索只能用于敘詞(入口詞)項(xiàng)以及英譯名項(xiàng));參數(shù)search_field表示檢索項(xiàng)(0:敘詞(入口詞)1:自定義分類號(hào)2:《中國(guó)圖書館分類法》分類號(hào)(中圖法分類號(hào))3:英譯名)。如果查找結(jié)果為空則返回null,否則返回Concept(系統(tǒng)中定義的類,其屬性有敘詞名、敘詞類型)數(shù)組。
?獲取敘詞的數(shù)據(jù)類型屬性(DatatypeProperty)。
、趐ublic String getConceptAndCLCCodef String con-cept,String separator)
通過(guò)指定的敘詞獲取相應(yīng)的敘詞及其《中圖法》分類號(hào)。其中,參數(shù)concept為指定的敘詞;參數(shù)sepa.rator為指定的分隔符號(hào)。該接口返回的結(jié)果是以sep.arator作為分隔的敘詞及其分類號(hào)字符串。
③public String getConceptAndEngCounterpart(String concept,String separator)
通過(guò)指定的敘詞獲取相應(yīng)敘詞及其英譯名。其中,參數(shù)concept、separator的說(shuō)明同②。該接口返回的結(jié)果是以separator作為分隔的敘詞及其英譯名字符串。
、躳ublic String getEngCounterpartForConcept(Stringconcept,String separator)
通過(guò)指定的敘詞獲取相應(yīng)敘詞的英譯名。其中,參數(shù)concept、separator的說(shuō)明同②。該接口返回的結(jié)果是指定敘詞的以separator作為分隔的所有英譯名字符串。
?獲取敘詞的等同關(guān)系詞(入口詞)。
⑤public String getConceptAndNTerm(String con-cept,String separator)
通過(guò)指定的敘詞獲取相應(yīng)敘詞及其人口詞(同義詞)。其中,參數(shù)concept、separator的說(shuō)明同②。該接口返回的結(jié)果是以separator作為分隔的敘詞及其入口詞字符串。
⑥public String getNTermForConcept(String concept,String separator)
通過(guò)指定的敘詞獲取相應(yīng)敘詞的入口詞。其中.參數(shù)concept、separator的說(shuō)明同②。該接口返回的結(jié)果是指定敘詞的以separator作為分隔的所有入口詞字符串。
?獲取敘詞的等級(jí)關(guān)系詞(以及等級(jí)關(guān)系的子關(guān)系詞)。
⑦public String getConceptAndBroader f String con-cept,String separator)
通過(guò)指定的敘詞獲取相應(yīng)敘詞及其直接上位詞。其中,參數(shù)concept、separator的說(shuō)明同②。該接口返回的結(jié)果是以separator作為分隔的敘詞及其直接上位詞字符串。
、鄍ubic String getBroaderByLevel(String concept。String separator,intlevel)
通過(guò)指定的敘詞和指定的級(jí)數(shù)獲取相應(yīng)敘詞的指定級(jí)數(shù)以內(nèi)的所有上位詞。其中,參數(shù)concept為指定的敘詞;參數(shù)separator為分隔符號(hào);參數(shù)level為所獲取上位詞的級(jí)數(shù),從1開始(直接上位詞級(jí)數(shù)為1)。 該接口返回的結(jié)果是指定敘詞的指定級(jí)數(shù)以內(nèi)的所有上位詞,并以separator作為分隔的字符串。
、醦ublic String getBroaderByPath(String concept.String separator,String subproperty,in level)
通過(guò)指定的敘詞和指定的上位詞子關(guān)系、級(jí)數(shù)獲取相應(yīng)敘詞的指定級(jí)數(shù)以內(nèi)的指定子關(guān)系上位詞。其中,參數(shù)concept為指定的敘詞;參數(shù)separator為分隔符號(hào);參數(shù)subproperty為指定需要獲取的上位詞子關(guān)系屬性(類屬/實(shí)例/整體-部分);level為獲取子關(guān)系上位詞的級(jí)數(shù),從1開始(直接子關(guān)系上位詞級(jí)數(shù)為1)。該接口返回的結(jié)果是指定敘詞、指定級(jí)數(shù)以內(nèi)的所有指定子關(guān)系上位詞,并以separator作為分隔的字符串。
⑩public String getConceptAndNarrower(String con-cept,String separator)
通過(guò)指定的敘詞獲取相應(yīng)敘詞及其直接下位詞。其中,參數(shù)concept、separator的說(shuō)明同②。該接口返回的結(jié)果是以separator作為分隔的敘詞及其直接下位詞字符串。
、蟨ublic String getNarrowerByLevel(String concept。String separator,int level)
通過(guò)指定的敘詞和指定的級(jí)數(shù)獲取相應(yīng)敘詞的指定級(jí)數(shù)以內(nèi)的所有下位詞。其中,參數(shù)concept為指定的敘詞;參數(shù)separator為分隔符號(hào);參數(shù)level為所獲取下位詞的級(jí)數(shù),從1開始(直接下位詞級(jí)數(shù)為1)。該接口返回的結(jié)果是指定敘詞的指定級(jí)數(shù)以內(nèi)的所有下位詞,并以separator作為分隔的字符串。
、衟ublic String getNarrowerByPath(String concept,String separator,String subproperty,int levet)
通過(guò)指定的敘詞和指定的下位詞子關(guān)系、級(jí)數(shù)獲取相應(yīng)敘詞的指定級(jí)數(shù)以內(nèi)的指定子關(guān)系下位詞。其中,參數(shù)concept為指定的敘詞;參數(shù)separator為分隔符號(hào);參數(shù)subproperty為指定需要獲取的下位詞子關(guān)系屬性(類屬/實(shí)例/整體一部分);level為獲取子關(guān)系下位詞的級(jí)數(shù),從1開始(直接子關(guān)系下位詞級(jí)數(shù)為1)。該接口返回的結(jié)果是指定敘詞、指定級(jí)數(shù)以內(nèi)的所有指定子關(guān)系下位詞,并以separator作為分隔的字符串。
?獲取敘詞的相關(guān)關(guān)系詞(以及相關(guān)關(guān)系的子關(guān)系詞)。
、裵ublic String getRelmed(String concept,String separator)
通過(guò)指定的敘詞獲取相應(yīng)敘詞的相關(guān)詞。其中,參數(shù)concept、separator的說(shuō)明同②。該接口返回的結(jié)果是指定敘詞的以separator作為分隔的所有相關(guān)詞字符串。
、襭ublic String getRelatedByPath(String concept,String separator,string subproperty)
通過(guò)指定的敘詞和指定的相關(guān)關(guān)系子關(guān)系獲取相應(yīng)敘詞的指定子關(guān)系相關(guān)詞。其中,參數(shù)concept為指定的敘詞;參數(shù)separator為分隔符號(hào);參數(shù)subproperty為指定需要獲取的相關(guān)關(guān)系的子關(guān)系。該接口返回的結(jié)果是指定敘詞的所有指定子關(guān)系相關(guān)詞,并以sepa-rator作為分隔的字符串。
?獲取敘詞的完整款目信息。
⒂public ConceptProperty[]getConceptProperties(String concept)
獲取指定敘詞的所有屬性-屬性值(即敘詞款目信息)。其中,參數(shù)concept為指定的敘詞。該接口返回的結(jié)果是:如果敘詞不存在或該敘詞不存在任何屬性一屬性值,返回null,否則返回ConceptProperty(系統(tǒng)中定義的類,其屬性有Concept數(shù)組、Property、String數(shù)組,其中Property表示敘詞款目具體屬性,如分類號(hào)、上位詞;而該屬性所對(duì)應(yīng)的多個(gè)屬性值則根據(jù)屬性值類型為敘詞(人口詞)或字符串值分別寫入Concept數(shù)組或String數(shù)組中)數(shù)組。
?獲取OntoThesaurus中支持的所有屬性的信息。
、詐ublic Prope~y[]getProperties()
獲取OntoThesaurus中支持的所有屬性名稱及其comment、label等信息。Property為系統(tǒng)中定義的類,其屬性有name、label、comment,分別用于表示屬性名、屬性標(biāo)簽、屬性注釋。
3 ontoThesaurus-API的使用方法
3.1 OntoThesaurus-API的應(yīng)用示例
Web Service的使用比較簡(jiǎn)單。目前一般采用以下三種調(diào)用方法(程序員無(wú)需了解具體的SOAP協(xié)議):①使用程序語(yǔ)言平臺(tái)本身提供的對(duì)Web Service調(diào)用的支持;②通過(guò)其他公司或機(jī)構(gòu)提供的組件進(jìn)行訪問(wèn),如微軟的htc組件、Axis2開發(fā)包等;③直接通過(guò)URL地址訪問(wèn)。
下面我們以圖書館信息管理系統(tǒng)中的公共聯(lián)機(jī)書目查詢系統(tǒng)OPAC為例,詳細(xì)介紹OntoThesaums―API的使用方法。其他應(yīng)用系統(tǒng)可參照此過(guò)程開發(fā)自己的具體應(yīng)用。
在OPAC中,可以利用OTCSS提供的API,進(jìn)行擴(kuò)展性的智能檢索應(yīng)用。比如規(guī)范化檢索:對(duì)于用戶輸入的檢索詞,系統(tǒng)運(yùn)用OntoThesaurus-API進(jìn)行檢測(cè),如果檢索詞為某一個(gè)主題詞的入口詞,系統(tǒng)將會(huì)使用該主題詞代替此檢索詞進(jìn)行檢索,否則就使用原檢索詞進(jìn)行檢索。下面以此為例來(lái)說(shuō)明如何調(diào)用OntoThesau-rus-API來(lái)增強(qiáng)OPAC的服務(wù)。在本例中,采用直接訪問(wèn)URL的方式調(diào)用CCT_0TCSS(根據(jù)《中國(guó)分類主題詞表》一版局部建立)的Web Service,具體的流程如圖1所示:
圖1中的步驟2的URL地址為:http://210.39.15.167:8080/ThesaumsProjectForCCT/service/Thesau-rusService/getConcepts?key_word={0}&matching-mode=o&search_field=0
其中{o}處填寫檢索詞。
步驟4中所使用的正則表達(dá)式為:
(.*?)
在本例中,如果能找到檢索詞的正式主題詞,或者該檢索詞就是一個(gè)正式主題詞,還可以運(yùn)用OntoThe-saurus-API的⒂號(hào)API:public ConceptProperty[]getConceptProperties(string concept),把這個(gè)主題詞的 所有款目信息輸出到檢索結(jié)果頁(yè)面,供用戶瀏覽,用戶還可以利用這個(gè)主題詞的上下位詞等款目信息繼續(xù)進(jìn)行檢索。調(diào)用的步驟與上述步驟幾乎一致,不同之處在于調(diào)用的URL地址以及對(duì)返回結(jié)果的解析過(guò)程。
例如,檢索“公斷”這個(gè)詞,系統(tǒng)利用OntoThesau.ms-API找出“公斷”的正式主題詞為“仲裁”,并使用“仲裁”進(jìn)行主題詞檢索,顯示檢索結(jié)果如圖2所示:
讀者可點(diǎn)擊“完整敘詞款目”查看“仲裁”的敘詞款目信息,如圖3所示:
3.2 OntoThesaurus-API在其他方面的應(yīng)用
利用OntoThesaurus-API,可以在OPAC中實(shí)現(xiàn)規(guī)范化檢索,分類號(hào)、英譯名擴(kuò)展檢索,上位詞、下位詞、相關(guān)詞(或它們的子關(guān)系詞)的擴(kuò)展檢索等,為讀者提供更準(zhǔn)確、更強(qiáng)大的檢索服務(wù)。
在圖書館信息管理系統(tǒng)的編目子系統(tǒng)中,Onto-Thesaurus-API可以為標(biāo)引員提供內(nèi)嵌式的輔助標(biāo)引功能,幫助標(biāo)引員使用更為準(zhǔn)確的主題詞進(jìn)行更快捷的標(biāo)引。
此外,OntoThesaurus-API還可以應(yīng)用在其他領(lǐng)域。如在CNKI等數(shù)據(jù)庫(kù)檢索系統(tǒng)中,在主題詞、關(guān)鍵詞的檢索功能上,可以使用它來(lái)輔助完成規(guī)范化檢索、上下位擴(kuò)展檢索等功能;在搜索引擎中,可以利用此服務(wù)獲取更多的檢索詞形態(tài);在眾多支持Tag的應(yīng)用程序中,可以使用OntoThesaurus-API為用戶輸入的標(biāo)簽進(jìn)行規(guī)范化的提示,使用戶輸人的標(biāo)簽更為規(guī)范化;在面向主題詞的數(shù)據(jù)挖掘中,可運(yùn)用OntoThesaurus-API基于主題詞及其款目信息對(duì)數(shù)據(jù)進(jìn)行挖掘、統(tǒng)計(jì);在機(jī)器學(xué)習(xí)中,通過(guò)OntoThesaurus-API,可以提供同義詞辨析機(jī)制和主題詞分析機(jī)制,進(jìn)行與主題詞相關(guān)的信息抽取等。
上述所有的應(yīng)用都可以通過(guò)Web Service調(diào)用的標(biāo)準(zhǔn)方法,在不同的應(yīng)用平臺(tái)上進(jìn)行實(shí)現(xiàn)。
4 結(jié) 語(yǔ)
基于Web Service技術(shù)開發(fā)的OntoThesaurus.API可以非常廣泛地應(yīng)用到其他應(yīng)用系統(tǒng)中,促進(jìn)新信息環(huán)境下知識(shí)服務(wù)的發(fā)展。本文通過(guò)OPAC應(yīng)用實(shí)例詳細(xì)闡述了這些OntoThesaurus Web Service API的使用方法。相關(guān)領(lǐng)域應(yīng)用系統(tǒng)的開發(fā)者可以參考這些方法,根據(jù)具體的OTCSS系統(tǒng)提供的Web Service API開發(fā)自己的具體應(yīng)用。OntoThesaums-API今后還可以針對(duì)新的需求,擴(kuò)展提供其他服務(wù),如支持返回JSON數(shù)據(jù)格式,支持?jǐn)⒃~修訂信息采集Web Service等。
相關(guān)熱詞搜索:及其應(yīng)用 研究 Web OntoThesaHIMS Web Service API及其應(yīng)用研究 web service api文檔 webservice apibeta
熱點(diǎn)文章閱讀