999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Jena系統的知識融合三元組存儲結構研究

2018-03-17 08:15:06楊夏柏楊明楊德強黃瑜
價值工程 2018年8期

楊夏柏+楊明+楊德強+黃瑜

摘要:語義Web的發展日新月異,惠普公司(HP)在研究語義Web方面處于領先地位,其發布的Apache Jena系統為研究語義Web提供三元組存儲(Triple Store)平臺、RDF(Resource Description Framework)平臺和OWL(Web Ontology Language)平臺,Apache Jena是HP實驗室開發的一個用于處理語義Web和鏈接數據應用的免費開源Java工具包,本文研究基于Jena系統的知識融合三元組存儲結構。

Abstract: The development of Semantic Web is changing rapidly. Hewlett-Packard Company (HP) is the leader in the research of Semantic Web. Its published Apache Jena system provides Triple Store, RDF (Resource Description Framework) and OWL (Web Ontology Language) platform for research Semantic Web.Apache Jena is a free and open-source Java toolkit developed by HP Labs for processing semantic web and linked data applications. This paper studies Jena-based knowledge fusion triple storage architecture.

關鍵詞:Jena;語義Web;RDF;知識融合;RDFS;OWL

Key words: Jena;Semantic Web;RDF;knowledge fusion;RDFS;OWL

中圖分類號:TP202 文獻標識碼:A 文章編號:1006-4311(2018)08-0126-04

0 引言

關系數據模型和半結構化數據模型是兩種重要的數據模型,半結構化數據模型通常用XML和相關的標準表示,它是大多數關系數據庫管理系統DBMS的一個附加特征[1]。RDF模型和RDFS(Resource Description Framework Schema Specification)規范是W3C的推薦標準,基于這個標準和XML語法建立的資源、信息、知識越來越多,它們大多以RDF文件的格式描述并存放在網絡上,廣泛存在于數字圖書館、知識庫、本體等中。面對海量的數據和知識,如何保證一個RDF文件內容、版本等的一致性和正確性[2],如何把不同RDF文件中相同的知識通過集合操作提取出來、不同的知識合并在一起,這是一個值得研究的知識融合語義Web問題,二十世紀九十年代末至今,國內外許多專家在從事這個領域研究。但RDF模型和RDFS規范是一項涉及知識面比較廣的系統工程,目前,HP實驗室的Jena系統對它的研究比較領先。2003年至今,我們對Jena系統的體系結構進行了研究,并基于Jena系統實現了知識融合的并集、交集、差集等操作,本文研究基于Jena系統的知識融合三元組物理存儲(Triple store)結構。

1 Jena2系統的體系結構

Jena是HP實驗室開發的一個用于處理語義Web和鏈接數據應用的免費開源Java工具包。Jena1版本于2000年發布,Jena2版本于2003年發布,2017年版本升級到apache-jena-3.5.0,本文使用的版本是Jena2.1(以下簡稱Jena)。Jena系統為研究語義Web提供Triple Store、RDF、OWL平臺,Jena根據RDF模型和RDFS語法規范提供建立和操作RDF圖的Java API,支持集合的并集、交集、差集操作。

通過調用Jena系統提供的核心API,創建和讀取RDF圖,實現集合的并集、交集、差集操作,可以使用XML格式、RDF格式或Turtle格式序列化三元組。

Jena系統的體系結構由Graph、EnhGraph、Model三層組成,如圖1所示。Graph層主要實現三元組的存儲,EnhGraph層為圖和節點實現多種操作視圖,Model層為應用編程人員提供不同視圖,用來創建RDF圖和操作RDF圖,本文主要研究Graph層三元組的存儲。

2 存儲結構中用到的Java集合框架

在Java類集中常使用的接口是:Collection、List、Set、Map、Iterator、ListIterator、Enumeration、SortedSet、SortedMap、Queue、Map.Entry[3]。

Jena系統用Java開發,三元組的存儲結構中用到Java中的集合框架、HashSet、HashMap、List和Iterator(迭代器,也叫反復器)等知識[4]。

集合主要用來處理各種類型的對象的聚集,每一個對象都具有一定的數據類型。集合保留了對Object類的引用,因此,任何數據類型的對象都可以存放在集合中。集合包含3個重要接口:Collection、Set、List(如圖2所示),它們都可以用來組織多個對象,但是又各不相同[5]:Collection中的對象存放沒有一定的順序,并且允許重復;Set也是對象的無序聚集,但是不允許重復(即相同的對象只能在集合中出現一次),HashSet的特點是無序不重復,允許null存在;List是一個有序的對象聚集,對象按照一定的順序存放,同時允許重復,元素允許null。

HashMap的特點:它是一系列“鍵-值”對的集合,可以通過一個鍵找到相應的值。可以使用Put方法向映射中加入一個“鍵-值”對,映射中不能包含重復的鍵,如果插入的鍵已經存在,那么新插入的值將取代舊的值。其中“鍵”和“值”可以是任意類型的對象。圖3是映射的類繼承圖。

對集合中的每一個元素的訪問使用的是迭代器Iterator,對于Set來說,利用迭代器Iterator所獲得的元素順序不是一定的。對于List來說,有一個更實用的迭代器ListIterator,它直接繼承自Iterator,但是它除了可以得到下一個元素之外,還可以得到前一個元素,可以添加元素,可以設置元素。圖4是迭代器繼承圖。

3 三元組的存儲結構

RDF模型和RDFS語法規范是一項涉及知識面比較廣的系統工程,HP實驗室的Jena系統對它研究比較全面,本文研究團隊對Jena系統進行了解析,用Togerther工具分析Jena系統的類圖(UML圖),JbuilderX配合Togerther打開Jena系統的源程序代碼,找到了三元組在該系統中的存儲結構。圖5是三元組的物理存儲結構圖,最右邊Model是RDF圖的抽象形式,相當于一個模型加工廠,提供給用戶各種各樣的Model API,用戶可以通過模型提供的接口根據不同需求進行各種各樣的訪問、操作和應用編程。左邊部分是圖Graph及三元組的存儲結構,這一部分主要作為通用數據結構的存儲。

圖6是存儲結構中依據RDF模型表示的對象之間的關系圖,RDFNode由Literal和Resource兩類組成,Resource由Property、container、RDFList、ReifiedStatement組成,container由Bag、Seg、Alt組成。

圖7是存儲結構中圖、三元組和節點之間的關系圖。其中Node由固定的節點(Node Concrete)和可變的節點(Node Fluid)組成,固定的節點由Node Blank、Node URI、Node Literal、Node NULL四類組成,可變的節點由Node ANY、Node Variable組成。三元組Triple依賴Node構造產生。

Subjects和objects以節點存放,一個結點的具體結構如圖8所示;predicates以邊存放,每條邊的結構如圖9示。

同樣,Model加工廠把一個RDF文件序列化成三元組(可以理解為一個圖)的過程是一個牽涉RDF模型和RDFS規范的系統工程,其中與三元組存儲結構密切相關的是節點到三元組的映射及在數據結構中的存儲。三元組的存儲結構是知識融合的核心之一。下面舉例說明節點到三元組的映射:假設被序列化的三元組為(I,am,a teacher)、(I,am,a student)、(You,are,a student)、(You,are,a teacher)。為了說明的方便,簡化為(I,am,t)、(I,am,s)、(Y,are,s)、(You,are,t),圖10是節點到三元組映射示例。每個Subjects、Predicates、Objects的存儲結構是一個HashMap,每個鍵對應的鍵值是一個HashSet,在前面討論過HashMap的特點是:它是一系列“鍵-值”對的集合,可以通過一個鍵找到相應的值(用Get方法),可以使用Put方法向映射中加入一個“鍵-值”對,但映射中不能包含重復的鍵,如果插入的鍵已經存在,那么新插入的值將取代舊的值。其中“鍵”和“值”可以是任意類型的對象。所以,在添加的時候,首先要判斷添加的鍵是否存在,如果存在,則不需要添加該鍵,但要先用Get把該鍵在HashMap中對應的鍵值取出來,并強制轉換成HashSet,然后轉為對HashSet的操作,由于HashSet的特點是無序不重復,允許null存在,所以,如果HashSet中已經有要添加的三元組則不進行添加操作,如果沒有則把新的三元組添加進去(其實就是在合并三元組)。假若在HashMap中要添加的鍵不存在,則在HashMap中New一個HashSet,并把對應的鍵添加到HashMap中,鍵值添加到HashSet中。

此外,當存儲每個三元組時,不但要存儲Subject,Predicate,Object本身,而且還要分別存儲Subject,Predicate,Object是在哪個三元組中。這樣可以實現同時存放三元組及其它們之間的關系。

例如,三元組(I,am,t)和 (I,am,s)的具體存儲過程:

存儲三元組(I,am,t)時,Subject是I,到Subjects對應的HashMap中查找是否有主鍵為I的鍵,查找結果沒有,所以把I添加到HashMap的主鍵中,然后New一個鍵值為HashSet,把對應的三元組(I,am,t)添加到HashSet中。同理存放Predicate為am,Object為t的情況。

存儲三元組(I,am,s)時,Subject是I,發現HashMap中已經有,所以到Subjects對應的HashMap中把主鍵為I的鍵值提取出來,并強制轉換成HashSet,然后把三元組(I,am,s)添加到HashSet中。當添加Predicate為am時,am已經存在,所以其操作與添加Subject是I的情況類似。名稱空間(name space)也存儲在HashMap中。

從圖10中可以看出,數據存儲冗余度大,這是用存儲空間來換取時間的一種策略[6]。

4 結束語

Jena系統可以使用XML格式、RDF格式或Turtle格式序列化三元組,RDF文件、RDF圖和三元組是Jena給用戶提供的三種不同操作視圖,本文通過對Jena系統的解析,找到了三元組在該系統中的存儲結構,為應用Jena系統提供的API操作三元組實現關聯數據應用奠定了基礎,下一步,緊跟Apache Jena網站提供的開源資料,對新版本apache-jena-3.5.0開展研究,主要研究新版本在RDF、Triple Store、OWL三大應用領域的升級改進。

參考文獻:

[1]李興華,馬云濤編.Oracle開發實戰經典(基于Oracle 11g、12c)[M].北京:清華大學出版社,2014:16-17.

[2]楊夏柏,楊明.基于Jena系統的知識融合技術研究[J].價值工程,2016(03):213-214.

[3]李興華編著.Java開發實戰經典[M]. 北京:清華大學出版社,2009:494-558.

[4]王克宏主編.Java技術教程(基礎篇)[M]. 北京:清華大學出版社,2002:214-258.

[5]張曜等編,Java函數實用手冊[M].北京:冶金工業出版社,2003:161-186.

[6]Jeremy J.Carroll,Jena:Implementing the Semantic Web Recommendations, December 2003.

主站蜘蛛池模板: 日韩天堂网| 人人爱天天做夜夜爽| 亚洲精品国产乱码不卡| 精品无码专区亚洲| 亚洲综合在线最大成人| 波多野结衣一级毛片| 久久久四虎成人永久免费网站| 成人亚洲视频| 国产综合在线观看视频| 美女一级毛片无遮挡内谢| 91免费片| 欧美a在线| 怡春院欧美一区二区三区免费| 极品尤物av美乳在线观看| 日本黄色不卡视频| 91 九色视频丝袜| 色国产视频| 亚洲av成人无码网站在线观看| 一本久道热中字伊人| 精品无码国产自产野外拍在线| 日本三区视频| 91精品啪在线观看国产| 国产精品三级专区| 久久精品无码中文字幕| 国产无码网站在线观看| 欧美a级完整在线观看| 99视频国产精品| 亚洲乱码精品久久久久..| 国产成人凹凸视频在线| 孕妇高潮太爽了在线观看免费| 国产亚洲欧美在线人成aaaa| 国产a网站| 欧美中文字幕在线视频| 好吊色国产欧美日韩免费观看| jizz在线免费播放| 天天做天天爱天天爽综合区| 久久a级片| 国产成人无码AV在线播放动漫| 国产精品嫩草影院av| 国产精品视频999| 亚洲色图欧美一区| 国产欧美日韩视频怡春院| 国产午夜人做人免费视频中文| 国产一区二区三区在线观看视频| 日日碰狠狠添天天爽| 久久黄色免费电影| 亚洲成A人V欧美综合天堂| 国产美女视频黄a视频全免费网站| 亚洲国产成人综合精品2020| 超薄丝袜足j国产在线视频| 这里只有精品国产| 69av免费视频| 67194亚洲无码| 一级毛片网| 五月天丁香婷婷综合久久| 成人国产精品视频频| 国产交换配偶在线视频| 亚洲天堂色色人体| 免费jizz在线播放| 午夜一级做a爰片久久毛片| 国产老女人精品免费视频| 欧美日韩专区| 色男人的天堂久久综合| www.亚洲一区二区三区| 国产综合色在线视频播放线视| 亚洲AV无码乱码在线观看代蜜桃| 欧美国产精品不卡在线观看| 精品国产99久久| 香蕉99国内自产自拍视频| 91久久偷偷做嫩草影院电| 亚洲最新网址| 99在线小视频| 日韩天堂视频| 国产成人精品一区二区秒拍1o| 四虎亚洲国产成人久久精品| 黄色网页在线观看| 国产精品视屏| 国产成年无码AⅤ片在线 | 日韩福利在线视频| 日韩欧美中文字幕在线精品| 色丁丁毛片在线观看| 亚洲男人天堂2018|