知識(shí)圖譜:算法與實(shí)踐 課件 第8、9章 存儲(chǔ)與檢索、知識(shí)推理_第1頁(yè)
知識(shí)圖譜:算法與實(shí)踐 課件 第8、9章 存儲(chǔ)與檢索、知識(shí)推理_第2頁(yè)
知識(shí)圖譜:算法與實(shí)踐 課件 第8、9章 存儲(chǔ)與檢索、知識(shí)推理_第3頁(yè)
知識(shí)圖譜:算法與實(shí)踐 課件 第8、9章 存儲(chǔ)與檢索、知識(shí)推理_第4頁(yè)
知識(shí)圖譜:算法與實(shí)踐 課件 第8、9章 存儲(chǔ)與檢索、知識(shí)推理_第5頁(yè)
已閱讀5頁(yè),還剩298頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第八章:知識(shí)圖譜數(shù)據(jù)管理:

存儲(chǔ)與檢索《知識(shí)圖譜》配套講義1提綱知識(shí)圖譜大數(shù)據(jù)知識(shí)圖譜數(shù)據(jù)模型RDF圖模型屬性圖模型知識(shí)圖譜數(shù)據(jù)的存儲(chǔ)基于表結(jié)構(gòu)的存儲(chǔ)基于圖結(jié)構(gòu)的存儲(chǔ)知識(shí)圖譜數(shù)據(jù)的檢索聲明式查詢語(yǔ)言過(guò)程式查詢語(yǔ)言Neo4j使用簡(jiǎn)介總結(jié)2提綱知識(shí)圖譜大數(shù)據(jù)知識(shí)圖譜數(shù)據(jù)模型RDF圖模型屬性圖模型知識(shí)圖譜數(shù)據(jù)的存儲(chǔ)基于表結(jié)構(gòu)的存儲(chǔ)基于圖結(jié)構(gòu)的存儲(chǔ)知識(shí)圖譜數(shù)據(jù)的檢索聲明式查詢語(yǔ)言過(guò)程式查詢語(yǔ)言Neo4j使用簡(jiǎn)介總結(jié)3知識(shí)圖譜知識(shí)圖譜是一種有向圖結(jié)構(gòu),描述了現(xiàn)實(shí)世界中存在的實(shí)體、事件或者概念以及它們之間的相關(guān)關(guān)系。實(shí)體:CristianoRonaldo,JosDinisAveiro,RealMadridCF、馬賽約等實(shí)體類型:人物、國(guó)家、城市、組織機(jī)構(gòu)等屬性:人物有姓名、性別、出生日期、興趣愛(ài)好、職業(yè)等屬性;國(guó)家有國(guó)慶日、國(guó)家代碼、貨幣、時(shí)區(qū)、等屬性關(guān)系:人物和人物間的同事關(guān)系、人物和國(guó)家間的國(guó)籍關(guān)系、城市和國(guó)家間的屬于關(guān)系等4知識(shí)圖譜中的知識(shí)表示知識(shí)圖譜中的知識(shí)是通過(guò)RDF的結(jié)構(gòu)進(jìn)行表示的,其基本構(gòu)成單元是事實(shí)三元組,每個(gè)事實(shí)被表示為一個(gè)形如<subject,predicate,object>的三元組。subject:主體(也稱主語(yǔ)),其取值通常是實(shí)體、事件或者概念中的任何一個(gè)predicate:謂詞(也稱謂語(yǔ)),其取值通常是關(guān)系或者屬性object:客體(也稱賓語(yǔ)),其取值既可以是實(shí)體、事件、概念,也可以是普通的值(如數(shù)字、字符串等)5知識(shí)圖譜中的知識(shí)表示(示例)知識(shí)圖譜中的知識(shí)是通過(guò)RDF的結(jié)構(gòu)進(jìn)行表示的,其基本構(gòu)成單元是事實(shí),每個(gè)事實(shí)被表示為一個(gè)形如<subject,predicate,object>的三元組。實(shí)體:Pepe,RealMadridCF、Maceio屬性:gender,height,dateofbirth,capacity,shortname,creationdate,area,elevation,postalcode屬性值:male,1.88m,1983/02/26,81,044,RM,1902/03/06,511km2,7m,57000-000關(guān)系:team,placeofbirth6知識(shí)圖譜中的知識(shí)表示(示例)知識(shí)圖譜中的知識(shí)是通過(guò)RDF的結(jié)構(gòu)進(jìn)行表示的,其基本構(gòu)成單元是事實(shí),每個(gè)事實(shí)被表示為一個(gè)形如<subject,predicate,object>的三元組。7LinkedIn知識(shí)圖譜:圖數(shù)據(jù)屬性(自身性質(zhì))拓?fù)浣Y(jié)構(gòu)(相互關(guān)系)8廣泛應(yīng)用的大規(guī)模圖結(jié)構(gòu)數(shù)據(jù)9應(yīng)用方向:社交網(wǎng)絡(luò)

人立方關(guān)系搜索博客分析

論壇觀點(diǎn)挖掘

網(wǎng)絡(luò)輿情監(jiān)控10應(yīng)用方向:路徑規(guī)劃求取首都機(jī)場(chǎng)到中科院自動(dòng)化所乘地鐵的最短距離或最快交通線路11應(yīng)用方向:生物學(xué)圖結(jié)構(gòu)在生物學(xué)上已經(jīng)得到廣泛應(yīng)用基因調(diào)控網(wǎng)絡(luò)(基因之間的相互作用關(guān)系所形成的網(wǎng)絡(luò))蛋白質(zhì)PPI(蛋白質(zhì)相互作用網(wǎng)絡(luò))12應(yīng)用方向:有機(jī)化學(xué)化合物的性質(zhì)與復(fù)雜化學(xué)反應(yīng)的分析13應(yīng)用方向:軟件剽竊檢測(cè)目前軟件剽竊檢測(cè)的新方法是基于圖模式匹配,將代碼先轉(zhuǎn)化為程序依賴圖,然后再通過(guò)圖匹配方法進(jìn)行檢測(cè)14應(yīng)用方向:健康醫(yī)療大數(shù)據(jù)運(yùn)用健康醫(yī)療大數(shù)據(jù)構(gòu)建知識(shí)圖譜15大規(guī)模圖數(shù)據(jù)特點(diǎn)“4V”特點(diǎn)規(guī)模浩大(Volume)生成快速(Velocity)種類繁多(Variety)可靠性(Veracity)傾斜的度分布小世界現(xiàn)象不清晰的社區(qū)結(jié)構(gòu)16大規(guī)模圖數(shù)據(jù)特點(diǎn)傾斜的度分布17大規(guī)模圖數(shù)據(jù)特點(diǎn)小世界現(xiàn)象RegularRingNetworkAverageof4.1“hops”Small-WorldNetworkAverageof3.1“hops”RandomNetworkAverageof2.5“hops”18大規(guī)模圖數(shù)據(jù)特點(diǎn)不清晰的社區(qū)結(jié)構(gòu)理想的社區(qū)結(jié)構(gòu)實(shí)際的社區(qū)結(jié)構(gòu)19大圖數(shù)據(jù)新型特點(diǎn)局部特征多樣性關(guān)聯(lián)數(shù)據(jù)復(fù)雜性拓?fù)浣Y(jié)構(gòu)時(shí)變性20知識(shí)圖譜:大規(guī)模圖數(shù)據(jù)大規(guī)模知識(shí)圖譜數(shù)據(jù)的發(fā)布百萬(wàn)頂點(diǎn)(106)和上億條邊(108)LinkedData1,239個(gè)知識(shí)圖譜(2019-03-29)/2007-52014-82020-521知識(shí)圖譜的目標(biāo)是構(gòu)建一個(gè)能夠刻畫現(xiàn)實(shí)世界的知識(shí)庫(kù),為自動(dòng)問(wèn)答、信息檢索等應(yīng)用提供支撐。因此,對(duì)知識(shí)的持久化存儲(chǔ)并提供對(duì)目標(biāo)知識(shí)的高效檢索是合格的知識(shí)圖譜(系統(tǒng))必須具備的基本功能。知識(shí)圖譜數(shù)據(jù)管理22知識(shí)圖譜數(shù)據(jù)管理知識(shí)圖譜數(shù)據(jù)模型RDF圖模型屬性圖模型知識(shí)圖譜數(shù)據(jù)的存儲(chǔ)基于表結(jié)構(gòu)的存儲(chǔ)基于圖結(jié)構(gòu)的存儲(chǔ)知識(shí)圖譜數(shù)據(jù)的檢索聲明式查詢語(yǔ)言過(guò)程式查詢語(yǔ)言23目錄知識(shí)圖譜大數(shù)據(jù)知識(shí)圖譜數(shù)據(jù)模型RDF圖模型屬性圖模型知識(shí)圖譜數(shù)據(jù)的存儲(chǔ)基于表結(jié)構(gòu)的存儲(chǔ)基于圖結(jié)構(gòu)的存儲(chǔ)知識(shí)圖譜數(shù)據(jù)的檢索聲明式查詢語(yǔ)言過(guò)程式查詢語(yǔ)言Neo4j使用簡(jiǎn)介總結(jié)24知識(shí)圖譜數(shù)據(jù)模型數(shù)據(jù)模型邏輯組織結(jié)構(gòu)(structure)操作(operation)約束(constraint)知識(shí)圖譜數(shù)據(jù)模型是圖數(shù)據(jù)模型的繼承和發(fā)展知識(shí)圖譜數(shù)據(jù)模型基于圖結(jié)構(gòu),頂點(diǎn)表示實(shí)體,邊表示實(shí)體間的聯(lián)系刻畫現(xiàn)實(shí)世界中事物的廣泛聯(lián)系圖數(shù)據(jù)模型:??=

(??,??)理論基礎(chǔ):圖論層次數(shù)據(jù)模型(hierarchicaldatamodel)網(wǎng)狀數(shù)據(jù)模型(networkdatamodel)關(guān)系數(shù)據(jù)模型(relationaldatamodel)數(shù)據(jù)模型決定了數(shù)據(jù)管理所采取的方法和策略對(duì)于存儲(chǔ)管理、查詢處理、查詢語(yǔ)言設(shè)計(jì)均至關(guān)重要知識(shí)圖譜數(shù)據(jù)模型RDF圖模型屬性圖模型25知識(shí)圖譜數(shù)據(jù)模型RDF圖模型RDF三元組:(??,??,??)∈(??∪??)×??×(??∪??∪??)RDF圖G:RDF三元組的有限集合實(shí)體集合屬性/關(guān)系集合文字型對(duì)象26知識(shí)圖譜數(shù)據(jù)模型G={(屠呦呦,type,藥學(xué)),(屠呦呦,Birth_date,1930-12-30),(屠呦呦,Citizenship,中國(guó)),(屠呦呦,Name,”屠呦呦”),(諾貝爾醫(yī)學(xué)獎(jiǎng),Awarded,屠呦呦),(諾貝爾醫(yī)學(xué)獎(jiǎng),type,NobelPrizes),(諾貝爾醫(yī)學(xué)獎(jiǎng),Name,Nobel

Prize

in

Physiology

or

Medicine),(諾貝爾醫(yī)學(xué)獎(jiǎng),Location,Stockholm,Sweden),(諾貝爾醫(yī)學(xué)獎(jiǎng),Reward(s),9millionSEK(2017)}9個(gè)三元組

RDF圖模型27知識(shí)圖譜數(shù)據(jù)模型RDF圖模型沒(méi)有對(duì)頂點(diǎn)和邊上屬性的內(nèi)置支持如何表示邊上的屬性?“具體化”(reification,CVT)頂點(diǎn)與邊交集非空:3-uniform

hyper-graph(3均勻超圖)28知識(shí)圖譜數(shù)據(jù)模型屬性圖模型屬性圖G是5元組:??

=

(??,

??,

??,

??,

??)V:頂點(diǎn)的有限集合E:邊的有限集合??:

??

(??

×

??):將邊關(guān)聯(lián)到頂點(diǎn)對(duì)??:

(??

??)

??????:為頂點(diǎn)或邊賦予標(biāo)簽??:

(??

??)

×

????????

→??????:為頂點(diǎn)或邊關(guān)聯(lián)屬性29知識(shí)圖譜數(shù)據(jù)模型屬性圖模型V={v1,v2},E={e1}ρ(e1)=(v2,v1)λ(v1)=藥學(xué)家,λ(v2)=NobelPrizesσ(v1,Name)=‘屠呦呦’,σ(v1,birth_date)=1930-12-30,σ(v1,citizenship)=中國(guó)σ(v2,Name)=‘NobelPrizes’,σ(v2,Location)=‘Stockholm,Sweden’,σ(v2,Reward)=9millionSEK(2017)30知識(shí)圖譜數(shù)據(jù)模型[王鑫,天津大學(xué),知識(shí)圖譜數(shù)據(jù)管理]31知識(shí)圖譜數(shù)據(jù)模型知識(shí)圖譜數(shù)據(jù)模型典型示例更類似RDF圖模型的圖譜:Freebase更類似屬性圖模型的圖譜:WikiData32目錄知識(shí)圖譜大數(shù)據(jù)知識(shí)圖譜數(shù)據(jù)模型RDF圖模型屬性圖模型知識(shí)圖譜數(shù)據(jù)的存儲(chǔ)基于表結(jié)構(gòu)的存儲(chǔ)基于圖結(jié)構(gòu)的存儲(chǔ)知識(shí)圖譜數(shù)據(jù)的檢索聲明式查詢語(yǔ)言過(guò)程式查詢語(yǔ)言Neo4j使用簡(jiǎn)介總結(jié)33知識(shí)存儲(chǔ)方式以類別為中心:基于表的存儲(chǔ)關(guān)系數(shù)據(jù)庫(kù)以實(shí)體為中心:基于圖的存儲(chǔ)RDF為基礎(chǔ)的SemanticWeb可相互轉(zhuǎn)換姚明Person中國(guó)上海type出生地配偶type國(guó)籍葉莉1980年9月12日出生年月34目錄知識(shí)圖譜大數(shù)據(jù)知識(shí)圖譜數(shù)據(jù)模型RDF圖模型屬性圖模型知識(shí)圖譜數(shù)據(jù)的存儲(chǔ)基于表結(jié)構(gòu)的存儲(chǔ)基于圖結(jié)構(gòu)的存儲(chǔ)知識(shí)圖譜數(shù)據(jù)的檢索聲明式查詢語(yǔ)言過(guò)程式查詢語(yǔ)言Neo4j使用簡(jiǎn)介總結(jié)35三元組表知識(shí)圖譜中的事實(shí)是一個(gè)個(gè)的三元組,一種最簡(jiǎn)單直接的存儲(chǔ)方式是設(shè)計(jì)一張三元組表用于存儲(chǔ)知識(shí)圖譜中所有的事實(shí)。36三元組表特性基于三元組表的存儲(chǔ)方式的優(yōu)點(diǎn)是簡(jiǎn)單直接,易于理解;然而缺點(diǎn)也非常明顯,主要有以下幾點(diǎn):每個(gè)字段包含不同類型、不同結(jié)構(gòu)的數(shù)據(jù)。整個(gè)知識(shí)圖譜都存儲(chǔ)在一張表中,導(dǎo)致單表的規(guī)模太大。對(duì)大表進(jìn)行查詢、插入、刪除、修改等操作的開(kāi)銷很大,這將導(dǎo)致知識(shí)圖譜的實(shí)用性大打折扣。復(fù)雜查詢?cè)谶@種存儲(chǔ)結(jié)構(gòu)上的開(kāi)銷巨大。由于數(shù)據(jù)表只包括三個(gè)字段,因此復(fù)雜的查詢只能拆分成若干簡(jiǎn)單查詢的復(fù)合操作,大大降低了查詢的效率。例如,查詢“佩佩的身高和性別是什么?”需要拆分為“佩佩的身高是多少?”和“佩佩的性別是什么?”37三元組表的六重索引六重索引SPO、SOP、PSO、POS、OSP、OPSHexastore[Weiss08,VLDB],RDF-3X[Neumann08,VLDB]優(yōu)點(diǎn):三元組模式查詢(triplepattern)的高效執(zhí)行任意兩個(gè)三元組模式的高效歸并連接(merge-join)問(wèn)題:6倍空間開(kāi)銷?更新維護(hù)代價(jià)38類型表為每種類型構(gòu)建一張表,同一類型的實(shí)例存放在相同的表中。表的每一列表示該類實(shí)體的一個(gè)屬性,每一行存儲(chǔ)該類實(shí)體的一個(gè)實(shí)例。39類型表的不足大量數(shù)據(jù)字段的冗余存儲(chǔ)。假設(shè)知識(shí)圖譜中既有“演員”也有“歌手”,那么同屬于這兩個(gè)類別的實(shí)例將會(huì)同時(shí)被存儲(chǔ)在這兩個(gè)表中,其中它們共有的屬性會(huì)被重復(fù)存儲(chǔ)。大量的數(shù)據(jù)列為空值。通常知識(shí)圖譜中并非每個(gè)實(shí)體在所有屬性或關(guān)系上都有值,這種存儲(chǔ)方式會(huì)導(dǎo)致表中存在大量的空值。多值屬性不便于存儲(chǔ)。40考慮層級(jí)關(guān)系的類型表構(gòu)建數(shù)據(jù)表時(shí),將知識(shí)圖譜的類別體系考慮進(jìn)來(lái)。具體來(lái)說(shuō),每個(gè)類型的數(shù)據(jù)表只記錄屬于該類型的特有屬性,不同類別的公共屬性保存在上一級(jí)類型對(duì)應(yīng)的數(shù)據(jù)表中,下級(jí)表繼承上級(jí)表的所有屬性。41類型表特性類型表克服了三元組表面臨的單表過(guò)大和結(jié)構(gòu)簡(jiǎn)單的問(wèn)題,但是也有明顯的不足之處:由于數(shù)據(jù)表是和具體類型對(duì)應(yīng)的,不同的數(shù)據(jù)表具有不同的結(jié)構(gòu),因此在查詢之前必須知道目標(biāo)對(duì)象的類型才能確定查找的數(shù)據(jù)表。當(dāng)查詢涉及到不同類型的實(shí)體時(shí),需要進(jìn)行多表的連接,這一操作開(kāi)銷巨大,限制了知識(shí)圖譜對(duì)復(fù)雜查詢的處理能力。知識(shí)圖譜通常包含豐富的實(shí)體類型,因此需要?jiǎng)?chuàng)建大量的數(shù)據(jù)表,并且這些數(shù)據(jù)表之間又具有復(fù)雜的關(guān)系,這為數(shù)據(jù)的管理增加了很大的難度。42關(guān)系數(shù)據(jù)庫(kù)基本概念關(guān)系數(shù)據(jù)庫(kù)以二維表結(jié)構(gòu)對(duì)數(shù)據(jù)進(jìn)行組織和存儲(chǔ)。屬性(attribute):表中的每一列稱為一個(gè)屬性(也稱字段),用來(lái)描述實(shí)體集的某個(gè)特征。每個(gè)屬性都有自己的取值范圍,稱為域。元組(tuple):表中的每一行由一個(gè)實(shí)體的相關(guān)屬性取值構(gòu)成,稱為元組(也稱記錄),它相對(duì)完整地描述了一個(gè)實(shí)體。元組中的一個(gè)屬性值稱為分量。學(xué)號(hào)姓名性別出生日期身份證號(hào)1101李強(qiáng)男1995-09-223101031995092223171202張紅女1995-11-074101041995110724371303王鵬男1996-04-0851010519960408222343關(guān)系數(shù)據(jù)庫(kù)基本概念上述二維表格有以下限制:每一屬性必須是基本的、不能再拆分的數(shù)據(jù)類型,如整型、實(shí)型、字符型等。結(jié)構(gòu)或數(shù)組不能作為屬性的類型。44上述二維表格有以下限制:每一屬性必須是基本的、不能再拆分的數(shù)據(jù)類型,如整型、實(shí)型、字符型等。結(jié)構(gòu)或數(shù)組不能作為屬性的類型。姓名籍貫省市李強(qiáng)黑龍江齊齊哈爾張紅浙江杭州王鵬江西南昌姓名省市李強(qiáng)黑龍江齊齊哈爾張紅浙江杭州王鵬江西南昌X√關(guān)系數(shù)據(jù)庫(kù)基本概念45上述二維表格有以下限制:每一屬性必須是基本的、不能再拆分的數(shù)據(jù)類型,如整型、實(shí)型、字符型等。結(jié)構(gòu)或數(shù)組不能作為屬性的類型。屬性的所有值必須是同類型、同語(yǔ)義的。如果某一列包含學(xué)生的學(xué)號(hào),則該表中所有行的此列都必須是學(xué)生的學(xué)號(hào)。屬性的值只能是域中的值。例如學(xué)生的性別只能在“男”或“女”中取值。屬性必須有唯一的名字,但不同的屬性可以出自相同的域。列在表中的順序可以任意交換。關(guān)系數(shù)據(jù)庫(kù)基本概念46上述二維表格有以下限制:每一屬性必須是基本的、不能再拆分的數(shù)據(jù)類型,如整型、實(shí)型、字符型等。結(jié)構(gòu)或數(shù)組不能作為屬性的類型。屬性的所有值必須是同類型、同語(yǔ)義的。如果某一列包含學(xué)生的學(xué)號(hào),則該表中所有行的此列都必須是學(xué)生的學(xué)號(hào)。屬性的值只能是域中的值。例如學(xué)生的性別只能在“男”或“女”中取值。屬性必須有唯一的名字,但不同的屬性可以出自相同的域。列在表中的順序可以任意交換。學(xué)號(hào)姓名性別出生日期入學(xué)日期1101李強(qiáng)男1995-09-222017-09-011202張紅女1995-11-072017-09-011303王鵬男1996-04-082017-09-01關(guān)系數(shù)據(jù)庫(kù)基本概念47上述二維表格有以下限制:每一屬性必須是基本的、不能再拆分的數(shù)據(jù)類型,如整型、實(shí)型、字符型等。結(jié)構(gòu)或數(shù)組不能作為屬性的類型。屬性的所有值必須是同類型、同語(yǔ)義的。如果某一列包含學(xué)生的學(xué)號(hào),則該表中所有行的此列都必須是學(xué)生的學(xué)號(hào)。屬性的值只能是域中的值。例如學(xué)生的性別只能在“男”或“女”中取值。屬性必須有唯一的名字,但不同的屬性可以出自相同的域。列在表中的順序可以任意交換。任意兩個(gè)元組的值不能完全相同,即不允許有重復(fù)的行。行在表中的順序可以任意交換。關(guān)系數(shù)據(jù)庫(kù)基本概念48關(guān)系數(shù)據(jù)庫(kù)屬性分類候選碼:能夠唯一標(biāo)識(shí)元組的最小的屬性集合。唯一性:候選碼在整個(gè)表的范圍內(nèi)必須具有唯一的值,不同元組不能具有相同的候選碼值。最小性:候選碼所包括的屬性必須都是必不可少的,缺少其中的任何一個(gè)都不再具備唯一性。例如,在上表中學(xué)生的學(xué)號(hào)、身份證號(hào)分別都可以作為候選碼;但是(學(xué)號(hào),身份證號(hào))這一屬性組不能作為候選碼,因?yàn)槿サ羝渲腥魏我粋€(gè)剩下的屬性仍然可以作為候選碼,因此不滿足最小性。學(xué)號(hào)姓名性別出生日期身份證號(hào)1101李強(qiáng)男1995-09-223101031995092223171202張紅女1995-11-074101041995110724371303王鵬男1996-04-0851010519960408222349主碼:一個(gè)數(shù)據(jù)表可以包含多個(gè)候選碼,從中任意選取一個(gè)作為主碼。雖然理論上所有的候選碼都可以作為主碼,但是實(shí)際操作中一般選擇單屬性組成的候選碼作為主碼。在該表中有三個(gè)候選碼:學(xué)號(hào)、身份證號(hào)、姓名(不重名)。姓名作主碼還是有些限制(不能重名);身份證號(hào)太長(zhǎng),使用不方便;學(xué)號(hào)簡(jiǎn)潔,使用方便,在實(shí)際生活中也被用來(lái)唯一區(qū)分學(xué)生,所以選學(xué)號(hào)作主碼最合適。學(xué)號(hào)姓名性別出生日期身份證號(hào)1101李強(qiáng)男1995-09-223101031995092223171202張紅女1995-11-074101041995110724371303王鵬男1996-04-08510105199604082223關(guān)系數(shù)據(jù)庫(kù)屬性分類50外碼:如果數(shù)據(jù)表中的某個(gè)屬性或?qū)傩越M是其它表的候選碼,那么稱該屬性或?qū)傩越M是當(dāng)前表的外碼。外碼能夠保證不同數(shù)據(jù)表之間數(shù)據(jù)的一致性。班號(hào)是班級(jí)表的候選碼,所以班號(hào)是學(xué)生表的外碼。主屬性與非主屬性:包含在任何候選碼中的屬性稱為主屬性;相反地,不包含在任何候選碼中的屬性稱為非主屬性。學(xué)號(hào)姓名性別出生日期班號(hào)1101李強(qiáng)男1995-09-22111202張紅女1995-11-07121303王鵬男1996-04-0813班號(hào)班名專業(yè)11數(shù)學(xué)01應(yīng)用數(shù)學(xué)12物理01理論物理13化學(xué)01材料化學(xué)學(xué)生表(外表)班級(jí)表(主表)關(guān)系數(shù)據(jù)庫(kù)屬性分類51關(guān)系數(shù)據(jù)庫(kù)完整性約束關(guān)系數(shù)據(jù)庫(kù)通過(guò)關(guān)系完整性約束條件來(lái)保證數(shù)據(jù)的正確性和一致性。所謂關(guān)系完整性約束條件主要是指在表和屬性(列)上定義的規(guī)則,數(shù)據(jù)庫(kù)管理系統(tǒng)會(huì)依據(jù)這些約束條件維護(hù)數(shù)據(jù)完整性。域完整性規(guī)則實(shí)體完整性規(guī)則參照完整性規(guī)則52域完整性:在關(guān)系數(shù)據(jù)模型定義時(shí),由用戶對(duì)屬性值的數(shù)據(jù)類型、長(zhǎng)度、單位、精度、格式、值域范圍、是否允許為空值等進(jìn)行限定,規(guī)定屬性取值必須在其值域中。學(xué)號(hào)姓名性別出生日期班號(hào)1101李強(qiáng)男1995-09-22111202張紅女1995-11-07121303王鵬211996-04-0813學(xué)號(hào)類型定義屬性限定學(xué)號(hào)char(4)PrimaryKey姓名nvarchar(20)NotNull性別nchar(1)NotNull,男/女出生日期datetime>=1900-01-01班號(hào)char(2)NotNullX關(guān)系數(shù)據(jù)庫(kù)完整性約束53實(shí)體完整性:元組(記錄)在構(gòu)成主碼的屬性上不能有空值且主碼的值不能相同。實(shí)體完整性主要是為了確保主碼能唯一標(biāo)識(shí)元組。學(xué)號(hào)姓名性別出生日期班號(hào)1101李強(qiáng)男1995-09-22111202張紅女1995-11-07121303王鵬男1996-04-08131102孫麗女1996-01-29111202趙剛男1995-10-2012X√關(guān)系數(shù)據(jù)庫(kù)完整性約束54參照完整性:一個(gè)外表的外碼取值必須是其主表主碼的存在值或空值。學(xué)生表中班號(hào)的取值必須是空值或在班級(jí)表中班號(hào)屬性中出現(xiàn)過(guò)的值。如果學(xué)生表的班號(hào)字段允許為空,它取空值表示該學(xué)生還沒(méi)有確定班級(jí);否則只能取班級(jí)表出現(xiàn)過(guò)的班號(hào)值。學(xué)號(hào)姓名性別出生日期班號(hào)1101李強(qiáng)男1995-09-22111202張紅女1995-11-07121303王鵬男1996-04-0813班號(hào)班名專業(yè)11數(shù)學(xué)01應(yīng)用數(shù)學(xué)12物理01理論物理13化學(xué)01材料化學(xué)學(xué)生表(外表)班級(jí)表(主表)關(guān)系數(shù)據(jù)庫(kù)完整性約束55關(guān)系數(shù)據(jù)庫(kù)操作語(yǔ)言關(guān)系數(shù)據(jù)庫(kù)的基本操作語(yǔ)言是SQL。SQL語(yǔ)言以簡(jiǎn)潔的語(yǔ)法支持關(guān)系數(shù)據(jù)庫(kù)的各類操作(插入/修改/刪除/查詢)。SQL語(yǔ)言獨(dú)立于關(guān)系數(shù)據(jù)庫(kù)本身,獨(dú)立于使用的機(jī)器、網(wǎng)絡(luò)和操作系統(tǒng)。如果選擇關(guān)系數(shù)據(jù)庫(kù)作為知識(shí)圖譜的存儲(chǔ)引擎,那么對(duì)知識(shí)圖譜的所有操作都需要轉(zhuǎn)換為SQL語(yǔ)句才能執(zhí)行。56關(guān)系數(shù)據(jù)庫(kù)基本操作關(guān)系數(shù)據(jù)庫(kù)通過(guò)SQL語(yǔ)言為用戶提一系列的操作接口,其核心功能包括插入、修改、刪除、查詢四種操作。插入(INSERT):在一個(gè)表中插入一條或多條新記錄。修改(UPDATE):在一個(gè)表中修改滿足條件的記錄的某些字段的值。刪除(DELETE):從一個(gè)表中刪除一條或多條滿足條件的記錄。查詢(SELECT):從一個(gè)或多個(gè)表中提取滿足條件的數(shù)據(jù)、生成計(jì)算列或匯總數(shù)據(jù)。57常見(jiàn)的關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)DB2:DB2是IBM公司于1983年推出的數(shù)據(jù)庫(kù)管理系統(tǒng),能夠運(yùn)行于各種不同的操作系統(tǒng)平臺(tái)上,如Windows、Linux、VMS、OS/2等。該數(shù)據(jù)庫(kù)的特色之處包括支持面向?qū)ο蟮木幊?、支持多媒體應(yīng)用、支持分布式數(shù)據(jù)庫(kù)的訪問(wèn)等。更多信息請(qǐng)參考DB2官網(wǎng):/analytics/us/en/technology/db2/Oracle:Oracle是甲骨文公司于1979年推出的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),是目前最流行的數(shù)據(jù)庫(kù)之一。該數(shù)據(jù)庫(kù)遵循標(biāo)準(zhǔn)SQL語(yǔ)言,支持多種數(shù)據(jù)類型。和DB2相同,Oracle同樣具有跨平臺(tái)的特點(diǎn),可以運(yùn)行于不同的操作系統(tǒng)之上。更多信息請(qǐng)參考Oracle官網(wǎng):/database/index.html58MicrosoftSQLServer:MicrosoftSQLServer是微軟公司推出的應(yīng)用于Windows操作系統(tǒng)的數(shù)據(jù)庫(kù)產(chǎn)品,該數(shù)據(jù)庫(kù)實(shí)際上是微軟基于Sybase公司提供的技術(shù)開(kāi)發(fā)而成的,因此完全兼容Sybase數(shù)據(jù)庫(kù)。更多信息請(qǐng)參考MicrosoftSQLServer官網(wǎng):/zh-cn/sql-server/sql-server-2016PostgreSQL:PostgreSQL是一個(gè)自由軟件系統(tǒng),和上面幾個(gè)數(shù)據(jù)庫(kù)系統(tǒng)相比,該系統(tǒng)具有開(kāi)源、免費(fèi)的特點(diǎn)。由于PostgreSQL可以免費(fèi)地被使用、修改和分發(fā),因此其具有非常完善的功能,不僅支持大部分的SQL標(biāo)準(zhǔn),還提供外鍵、復(fù)雜查詢、觸發(fā)器等特性。更多信息請(qǐng)參考PostgreSQL官網(wǎng):/常見(jiàn)的關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)59MySQL:MySQL也是一個(gè)自由軟件系統(tǒng),最早是由瑞典的MySQLAB公司開(kāi)發(fā)的小型關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),在2008年被Sun公司收購(gòu)。該系統(tǒng)由于具有體積小、速度快、跨平臺(tái)、免費(fèi)開(kāi)源等特點(diǎn),是中小型網(wǎng)站最為青睞的數(shù)據(jù)庫(kù)。更多信息請(qǐng)參考MySQL官網(wǎng):/常見(jiàn)的關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)60目錄知識(shí)圖譜大數(shù)據(jù)知識(shí)圖譜數(shù)據(jù)模型RDF圖模型屬性圖模型知識(shí)圖譜數(shù)據(jù)的存儲(chǔ)基于表結(jié)構(gòu)的存儲(chǔ)基于圖結(jié)構(gòu)的存儲(chǔ)知識(shí)圖譜數(shù)據(jù)的檢索聲明式查詢語(yǔ)言過(guò)程式查詢語(yǔ)言Neo4j使用簡(jiǎn)介總結(jié)61基于圖結(jié)構(gòu)的存儲(chǔ)模型將實(shí)體看做節(jié)點(diǎn),關(guān)系看做帶有標(biāo)簽的邊,那么知識(shí)圖譜的數(shù)據(jù)很自然地滿足圖模型結(jié)構(gòu)。用節(jié)點(diǎn)表示實(shí)體:劉德華、劉青云、Film:暗戰(zhàn)用邊表示實(shí)體間的關(guān)系:劉德華和暗戰(zhàn)之間的參演關(guān)系、劉德華和劉青云之間的朋友關(guān)系等節(jié)點(diǎn)可以定義屬性:劉德華性別男、身高174cm、出生地香港等邊上也可以定義屬性:劉德華參演暗戰(zhàn)的時(shí)間是1999年,參演角色是張彼得等無(wú)向關(guān)系需要轉(zhuǎn)化為兩條對(duì)稱的有向關(guān)系:劉德華和劉青云之間互為朋友關(guān)系62圖數(shù)據(jù)庫(kù)核心概念圖數(shù)據(jù)庫(kù)基于有向圖,其理論基礎(chǔ)是圖論。節(jié)點(diǎn)、邊和屬性是圖數(shù)據(jù)庫(kù)的核心概念。節(jié)點(diǎn):節(jié)點(diǎn)用于表示實(shí)體、事件等對(duì)象,可以類比于關(guān)系數(shù)據(jù)庫(kù)中的記錄或數(shù)據(jù)表中的行數(shù)據(jù)。例如人物、地點(diǎn)、電影等都可以作為圖中的節(jié)點(diǎn)。邊:邊是指圖中連接節(jié)點(diǎn)的有向線條,用于表示不同節(jié)點(diǎn)之間的關(guān)系。例如人物節(jié)點(diǎn)之間的夫妻關(guān)系、同事關(guān)系等都可以作為圖中的邊。屬性:屬性用于描述節(jié)點(diǎn)或者邊的特性。例如人物的姓名、夫妻關(guān)系的起止時(shí)間等都是屬性。63基于圖結(jié)構(gòu)的存儲(chǔ)模型圖數(shù)據(jù)模型:節(jié)點(diǎn)、邊、節(jié)點(diǎn)屬性、邊屬性節(jié)點(diǎn)存儲(chǔ)(nodestore)關(guān)系存儲(chǔ)(relationshipstore)屬性存儲(chǔ)(propertystore)問(wèn)題:?jiǎn)螜C(jī)系統(tǒng)可擴(kuò)展性不足,圖查詢復(fù)雜度高64常見(jiàn)的圖數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)Neo4j:Neo4j是一個(gè)開(kāi)源的圖數(shù)據(jù)庫(kù)系統(tǒng),它將結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ)在圖上而不是表中。Neo4j基于Java實(shí)現(xiàn),它是一個(gè)具備完全事務(wù)特性的高性能數(shù)據(jù)庫(kù),具有成熟數(shù)據(jù)庫(kù)的所有特性。Neo4j是一個(gè)本地?cái)?shù)據(jù)庫(kù)(又稱基于文件的數(shù)據(jù)庫(kù)),這意味著不需要啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器,應(yīng)用程序不用通過(guò)網(wǎng)絡(luò)訪問(wèn)數(shù)據(jù)庫(kù)服務(wù),而是直接在本地對(duì)其進(jìn)行操作,因此訪問(wèn)速度快。因其開(kāi)源、高性能、輕量級(jí)等優(yōu)勢(shì),Neo4j受到越來(lái)越多的關(guān)注。更多信息請(qǐng)參考官網(wǎng):/65OrientDB:OrientDB是一個(gè)開(kāi)源的文檔-圖混合數(shù)據(jù)庫(kù),兼具圖數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)強(qiáng)大的表示及組織能力和文檔數(shù)據(jù)庫(kù)的靈活性及很好的可擴(kuò)展性。OrientDB具有多種模式可選,包括全模式、無(wú)模式和混合模式。全模式要求數(shù)據(jù)庫(kù)中的所有類別都必須有嚴(yán)格的模式,所有字段都強(qiáng)制約束;無(wú)模式則相反,不需要為類別定義模式,存儲(chǔ)的數(shù)據(jù)記錄可以有任意的字段;混合模式則允許為類別定義若干字段,同時(shí)支持自定義字段。該數(shù)據(jù)庫(kù)同樣是本地的,支持許多數(shù)據(jù)庫(kù)的高級(jí)特性,如事務(wù)、快速索引、SQL查詢等。更多信息請(qǐng)參考官網(wǎng):/常見(jiàn)的圖數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)66HyperGraphDB:HyperGraphDB同樣是開(kāi)源的存儲(chǔ)系統(tǒng),并依托于BerkeleyDB數(shù)據(jù)庫(kù)。和上述圖數(shù)據(jù)庫(kù)相比,HyperGraphDB最大的特點(diǎn)在于HyperGraph,即超圖。從數(shù)學(xué)角度講,有向圖的一條邊只能指向一個(gè)節(jié)點(diǎn),而超圖則可以指向多個(gè)節(jié)點(diǎn)。實(shí)際上,HyperGraphDB在超圖的基礎(chǔ)上更進(jìn)了一步,不僅允許一條邊指向多個(gè)節(jié)點(diǎn),還允許其指向其它邊。如此以來(lái),HyperGraphDB相較于其它圖數(shù)據(jù)庫(kù)具有更強(qiáng)大的表示能力。更多信息請(qǐng)參考官網(wǎng):/常見(jiàn)的圖數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)67InfiniteGraph:InfiniteGraph是一個(gè)基于Java語(yǔ)言開(kāi)發(fā)的分布式圖數(shù)據(jù)庫(kù)系統(tǒng)。和MySQL等傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)類似,InfiniteGraph需要作為服務(wù)項(xiàng)目進(jìn)行安裝,應(yīng)用程序只能通過(guò)訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。InfiniteGraph借鑒了面向?qū)ο蟮母拍?,將圖中的每個(gè)節(jié)點(diǎn)及每條邊都看做一個(gè)對(duì)象。具體地,所有的節(jié)點(diǎn)都繼承自基類BaseVertex,所有的邊則都繼承自基類BaseEdge。更多信息請(qǐng)參考官網(wǎng):/products/infinitegraph/常見(jiàn)的圖數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)68InfoGrid:InfoGrid是一個(gè)開(kāi)源的互聯(lián)網(wǎng)圖數(shù)據(jù)庫(kù),提供了很多額外的組件,可以很方便地構(gòu)建基于圖結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用。InfoGrid實(shí)際上是一個(gè)基于Java語(yǔ)言的開(kāi)源項(xiàng)目集,其中InfoGrid圖數(shù)據(jù)庫(kù)項(xiàng)目是其核心,其它的項(xiàng)目包括InfoGrid存儲(chǔ)項(xiàng)目、InfoGrid用戶接口項(xiàng)目等。更多信息請(qǐng)參考官網(wǎng):常見(jiàn)的圖數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)69InfoGrid:InfoGrid是一個(gè)開(kāi)源的互聯(lián)網(wǎng)圖數(shù)據(jù)庫(kù),提供了很多額外的組件,可以很方便地構(gòu)建基于圖結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用。InfoGrid實(shí)際上是一個(gè)基于Java語(yǔ)言的開(kāi)源項(xiàng)目集,其中InfoGrid圖數(shù)據(jù)庫(kù)項(xiàng)目是其核心,其它的項(xiàng)目包括InfoGrid存儲(chǔ)項(xiàng)目、InfoGrid用戶接口項(xiàng)目等。更多信息請(qǐng)參考官網(wǎng):和成熟的關(guān)系數(shù)據(jù)庫(kù)相比,圖數(shù)據(jù)庫(kù)的發(fā)展較晚,相關(guān)的標(biāo)準(zhǔn)及技術(shù)尚不完善,在實(shí)際使用中可能會(huì)遇到一些棘手的問(wèn)題,因此在選用數(shù)據(jù)庫(kù)時(shí)除了需要考慮數(shù)據(jù)庫(kù)本身的特性、性能等因素以外,還需要考慮數(shù)據(jù)庫(kù)的易用性、技術(shù)文檔的完整性等因素。常見(jiàn)的圖數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)70目錄知識(shí)圖譜大數(shù)據(jù)知識(shí)圖譜數(shù)據(jù)模型RDF圖模型屬性圖模型知識(shí)圖譜數(shù)據(jù)的存儲(chǔ)基于表結(jié)構(gòu)的存儲(chǔ)基于圖結(jié)構(gòu)的存儲(chǔ)知識(shí)圖譜數(shù)據(jù)的檢索聲明式查詢語(yǔ)言過(guò)程式查詢語(yǔ)言Neo4j使用簡(jiǎn)介總結(jié)71知識(shí)圖譜查詢語(yǔ)言知識(shí)圖譜查詢語(yǔ)言RDF圖 SPARQL屬性圖CypherPGQLG-COREGremlin聲明式語(yǔ)言過(guò)程式語(yǔ)言72語(yǔ)義網(wǎng)回顧本質(zhì):以Web數(shù)據(jù)的內(nèi)容(即語(yǔ)義)為核心,用機(jī)器能夠理解和處理的方式鏈接起來(lái)的海量分布式數(shù)據(jù)庫(kù)。73RDF回顧RDF(ResourceDescriptionFramework,資源描述框架)是一種資源描述語(yǔ)言,其核心思想是利用Web標(biāo)識(shí)符(URI)來(lái)標(biāo)識(shí)事物,通過(guò)指定的屬性和相應(yīng)的值描述資源的性質(zhì)或資源之間的關(guān)系。圖1只包含一個(gè)三元組的RDF圖示例74SPARQL語(yǔ)言SPARQL是SimpleProtocolandRDFQueryLanguage的縮寫,是由W3C為RDF數(shù)據(jù)開(kāi)發(fā)的一種查詢語(yǔ)言和數(shù)據(jù)獲取協(xié)議,是被圖數(shù)據(jù)庫(kù)廣泛支持的查詢語(yǔ)言。和SQL類似,SPARQL也是一種結(jié)構(gòu)化的查詢語(yǔ)言,用于對(duì)數(shù)據(jù)的獲取與管理。數(shù)據(jù)操縱(插入、刪除、更新)數(shù)據(jù)查詢75數(shù)據(jù)操縱數(shù)據(jù)插入:將新的三元組插入到已有的RDF圖中。SPARQL通過(guò)INSERTDATA語(yǔ)句完成該功能,其基本語(yǔ)法為:三元組數(shù)據(jù)可以是多條三元組,不同的三元組通過(guò)“;”

分隔。如果待插入的三元組在RDF圖中已經(jīng)存在,那么系統(tǒng)會(huì)忽略該三元組。INSERTDATA三元組數(shù)據(jù)例

將以下兩條三元組插入到圖1所示的RDF圖中。<http://example/movie1>ns:producer<http://example/person2><http://example/movie1>ns:writer<http://example/person3>76其對(duì)應(yīng)的SPARQL語(yǔ)句為:執(zhí)行該語(yǔ)句后,圖1中的RDF圖變?yōu)椋簣D2SPARQL插入數(shù)據(jù)結(jié)果示例數(shù)據(jù)操縱77數(shù)據(jù)刪除:從RDF圖中刪除一些三元組。SPARQL通過(guò)DELETEDATA語(yǔ)句完成該功能,其基本語(yǔ)法為:其中三元組數(shù)據(jù)可以是多條三元組,不同的三元組通過(guò)“;”

分隔。對(duì)于給定的每個(gè)三元組,如果其在RDF圖中,則將其從圖中刪除,否則忽略該三元組。DELETEDATA三元組數(shù)據(jù)例

將以下三元組從圖2所示的RDF圖中刪除。<http://example/movie1>ns:producer<http://example/person2>數(shù)據(jù)操縱78其對(duì)應(yīng)的SPARQL語(yǔ)句為:執(zhí)行該語(yǔ)句后,圖2中的RDF圖變?yōu)椋簣D3SPARQL刪除數(shù)據(jù)結(jié)果示例數(shù)據(jù)操縱79數(shù)據(jù)更新:更新RDF圖中指定三元組的值。和SQL不同,SPARQL沒(méi)有定義UPDATE操作,也就是說(shuō)SPARQL語(yǔ)言沒(méi)有直接更新已有數(shù)據(jù)的方法。但是,可以通過(guò)組合INSERTDATA語(yǔ)句和DELETEDATA語(yǔ)句來(lái)實(shí)現(xiàn)該功能。DELETEDATA:刪除待修改的三元組;INSERTDATA:插入修改后的三元組。例

將圖3中三元組(<http://example/movie1>ns:director<http://example/person1>)的客體<http://example/person1>修改為<http://example/person4>。數(shù)據(jù)操縱80其對(duì)應(yīng)的SPARQL語(yǔ)句為:執(zhí)行該語(yǔ)句后,圖3中的RDF圖變?yōu)椋簣D4SPARQL更新數(shù)據(jù)結(jié)果示例數(shù)據(jù)操縱81數(shù)據(jù)查詢SPARQL提供了豐富的數(shù)據(jù)查詢功能,包括四種形式:SELECT:最為常用的查詢語(yǔ)句,其功能和SQL中的SELECT語(yǔ)句類似,從知識(shí)圖譜中獲取滿足條件的數(shù)據(jù)。ASK:用于測(cè)試知識(shí)圖譜中是否存在滿足給定條件的數(shù)據(jù),如果存在則返回“yes”,否則返回“no”,該查詢不會(huì)返回具體的匹配數(shù)據(jù)。DESCRIBE:用于查詢和指定資源相關(guān)的RDF數(shù)據(jù),這些數(shù)據(jù)形成了對(duì)給定資源的詳細(xì)描述。CONSTRUCT:則根據(jù)查詢圖的結(jié)果生成RDF。82SELECT語(yǔ)句SELECT語(yǔ)句的基本語(yǔ)法為:SELECT子句中的“變量1變量2...”和SQL中的“列1,列2,...”的含義類似,表示要查詢的目標(biāo)。不同之處在于,SQL處理的數(shù)據(jù)存儲(chǔ)于結(jié)構(gòu)化的二維表中,語(yǔ)句中的“列1,列2,...”和數(shù)據(jù)表中的列完全對(duì)應(yīng),因此查詢的目標(biāo)具有明確的語(yǔ)義;而SPARQL處理的數(shù)據(jù)則具有更加靈活的存儲(chǔ)結(jié)構(gòu),“變量1變量2...”在知識(shí)圖譜中沒(méi)有直接的對(duì)應(yīng)。SELECT變量1變量2…

WHERE圖模式[

修飾符]83SELECT語(yǔ)句的基本語(yǔ)法為:WHERE子句用于為SELECT子句中的變量提供約束,查詢結(jié)果必須完全匹配該子句給出的圖模式。圖模式主要由兩類元素組成,一類是三元組,例如“?xaPerson”表示變量?x必須是Person的一個(gè)實(shí)例;另一類是通過(guò)FILTER關(guān)鍵字給出的條件限制,這些條件包括數(shù)字大小的限制、字符串格式的限制等。修飾符是可選項(xiàng),用于對(duì)查詢結(jié)果做一些特殊處理,例如常見(jiàn)的修飾符有用于表示排序的ORDER子句、用于限制結(jié)果數(shù)量的Limit子句等。SELECT變量1變量2…

WHERE圖模式[

修飾符]SELECT語(yǔ)句84例

在圖4所示的RDF圖中查詢資源<http://example/movie1>的導(dǎo)演和編劇。相應(yīng)的SPARQL語(yǔ)句為:執(zhí)行該語(yǔ)句的查詢結(jié)果為:SELECT語(yǔ)句85ASK語(yǔ)句ASK語(yǔ)句用于測(cè)試知識(shí)圖譜中是否存在滿足給定圖模式的數(shù)據(jù),其基本語(yǔ)法為:ASK圖模式例

在圖4所示的RDF圖中測(cè)試是否存在由<http://example/person4>導(dǎo)演的電影。相應(yīng)的SPARQL語(yǔ)句為:該語(yǔ)句返回的結(jié)果為“yes”;如果查詢是否存在<http://example/person5>導(dǎo)演的電影,查詢的結(jié)果將會(huì)返回“no”。86DESCRIBE語(yǔ)句DESCRIBE語(yǔ)句用于獲取和給定資源相關(guān)的數(shù)據(jù),其基本語(yǔ)法為:DESCRIBE后既可以直接跟確定的資源標(biāo)識(shí)符,也可以跟變量;WHERE子句是可選的,用于限定變量需要滿足的圖模式。DESCRIBE資源或變量[WHERE圖模式]例

在圖4所示的RDF圖中獲取由<http://example/person4>導(dǎo)演的所有電影的相關(guān)信息。87其對(duì)應(yīng)的SPARQL語(yǔ)句為:該語(yǔ)句的執(zhí)行結(jié)果為:DESCRIBE語(yǔ)句88CONSTRUCT語(yǔ)句CONSTRUCT語(yǔ)句用于生成滿足圖模式的RDF圖,其基本語(yǔ)法為:RDF圖模板確定了生成的RDF圖所包含的三元組類型,它由一組三元組構(gòu)成,每個(gè)三元組既可以是包含變量的三元組模板,也可以是不包含變量的事實(shí)三元組;圖模式則和上述SELECT等語(yǔ)句中介紹的相同,用于約束語(yǔ)句中的變量。該語(yǔ)句產(chǎn)生結(jié)果的基本流程為:首先執(zhí)行WHERE子句,從知識(shí)圖譜中獲取所有滿足圖模式的變量取值;然后針對(duì)每一個(gè)變量取值,替換RDF圖模板中的變量,生成一組三元組。CONSTRUCTRDF圖模板WHERE圖模式89例

在圖4所示的知識(shí)圖譜上執(zhí)行如下SPARQL語(yǔ)句:?movie=<http://example/movie1>?director=<http://example/person4>CONSTRUCT語(yǔ)句90CONSTRUCT語(yǔ)句該語(yǔ)句的執(zhí)行結(jié)果為:91知識(shí)圖譜查詢語(yǔ)言屬性圖查詢語(yǔ)言:Cypher標(biāo)準(zhǔn)化工作:openCypher92知識(shí)圖譜查詢語(yǔ)言屬性圖查詢語(yǔ)言:GremlinApacheTinkerPop圖計(jì)算框架過(guò)程式語(yǔ)言:圖遍歷、導(dǎo)航式游走更像一種函數(shù)式的編程語(yǔ)言接口93知識(shí)圖譜查詢語(yǔ)言屬性圖查詢語(yǔ)言:PGQLOracle在2016年提出:OraclePGX與Cypher相比,PGQL完整地支持正則路徑查詢語(yǔ)義與SPARQL屬性路徑僅支持邊標(biāo)簽構(gòu)成的正則路徑不同,PGQL通過(guò)路徑模式(pathpattern)表達(dá)式定義,還支持正則路徑中含有頂點(diǎn)標(biāo)簽條件以及頂點(diǎn)(或邊)屬性值比較在提高了屬性圖上正則路徑查詢表達(dá)力(expressiveness)的同時(shí)保持求值復(fù)雜度(complexity)不變94知識(shí)圖譜查詢語(yǔ)言屬性圖查詢語(yǔ)言:G-CORELDBC圖查詢語(yǔ)言工作組設(shè)計(jì)充分借鑒和融合各種已有圖查詢語(yǔ)言的優(yōu)點(diǎn),在查詢表達(dá)力和求值復(fù)雜度之間尋求最佳平衡G-CORE與已有圖查詢語(yǔ)言相比查詢的輸入輸出均是圖,徹底實(shí)現(xiàn)了圖查詢語(yǔ)言的可組合性(composability)將路徑作為與頂點(diǎn)和邊同等重要的圖查詢處理基本元素95目錄知識(shí)圖譜大數(shù)據(jù)知識(shí)圖譜數(shù)據(jù)模型RDF圖模型屬性圖模型知識(shí)圖譜數(shù)據(jù)的存儲(chǔ)基于表結(jié)構(gòu)的存儲(chǔ)基于圖結(jié)構(gòu)的存儲(chǔ)知識(shí)圖譜數(shù)據(jù)的檢索聲明式查詢語(yǔ)言過(guò)程式查詢語(yǔ)言Neo4j使用簡(jiǎn)介總結(jié)96常見(jiàn)圖數(shù)據(jù)庫(kù)平臺(tái)97Neo4j的特點(diǎn)查詢語(yǔ)言Neo4jCQL(與Cyper類似)遵循屬性圖數(shù)據(jù)模型支持UNIQUE約束包含一個(gè)用于執(zhí)行CQL命令的UI支持完整的ACID規(guī)則支持查詢數(shù)據(jù)導(dǎo)出到JSON與XLS格式提供了REST

API,可以被任何編程語(yǔ)言訪問(wèn)支持兩種Java

API:CypherAPI和NativeJavaAPI來(lái)開(kāi)發(fā)Java應(yīng)用程序98Neo4j的優(yōu)點(diǎn)與缺點(diǎn)一、優(yōu)點(diǎn)易于學(xué)習(xí)易于表示半結(jié)構(gòu)化數(shù)據(jù)性能出眾,加載數(shù)據(jù)快,內(nèi)存占用低,只需選擇需要導(dǎo)入的數(shù)據(jù),無(wú)需考慮數(shù)據(jù)大小簡(jiǎn)單而強(qiáng)大的數(shù)據(jù)模型二、缺點(diǎn)支持節(jié)點(diǎn)數(shù)、關(guān)系和屬性有限制不支持SPARQL查詢插件支持:/neo4j-contrib/sparql-plugin不支持Sharding99CQL語(yǔ)言CQL為類Cypher的查詢語(yǔ)言,neo4j可以使用CQL來(lái)進(jìn)行數(shù)據(jù)庫(kù)操作1.數(shù)據(jù)類型

CQL的數(shù)據(jù)類型和java基本一致,主要用于定義結(jié)點(diǎn)和關(guān)系的屬性。CQL數(shù)據(jù)類型用法boolean用于表示布爾類型:true,falseByte用于表示8位整數(shù)short用于表示16位整數(shù)int用于表示32位整數(shù)long用于表示64位整數(shù)float用于表示32位浮點(diǎn)數(shù)double用于表示64位浮點(diǎn)數(shù)char用于表示16位字符String用于表示字符串100Neo4jCQL——節(jié)點(diǎn)&關(guān)系節(jié)點(diǎn)常用’()’表示,’()’內(nèi)第一個(gè)為節(jié)點(diǎn)名,可以在后面添加多個(gè)標(biāo)簽名,添加標(biāo)簽名需要在每個(gè)標(biāo)簽前添加’:’符號(hào)關(guān)系常用’[]’表示,’[]’內(nèi)第一個(gè)為關(guān)系名,可以在后面添加多個(gè)標(biāo)簽名,添加標(biāo)簽名需要在每個(gè)標(biāo)簽前添加’:’符號(hào)(n:player)(player:player)-[re:play_in]->(tea:team)101CQL語(yǔ)言2.常用命令

CQL的常用命令和對(duì)應(yīng)功能如下表:CQL命令用法/功能CREATE創(chuàng)建創(chuàng)建節(jié)點(diǎn),關(guān)系和屬性MATCH匹配檢索有關(guān)節(jié)點(diǎn),關(guān)系和屬性數(shù)據(jù)RETURN返回返回查詢結(jié)果WHERE哪里提供條件過(guò)濾檢索數(shù)據(jù)DELETE刪除刪除節(jié)點(diǎn)和關(guān)系REMOVE移除刪除節(jié)點(diǎn)和關(guān)系的屬性O(shè)RDER

BY以…排序排序檢索數(shù)據(jù)SET組添加或更新標(biāo)簽102Neo4jCQL——CREATECREATE:創(chuàng)建節(jié)點(diǎn)或關(guān)系CREATE(<node-name>:<label-name>:...:<label-name>)

//創(chuàng)建無(wú)屬性節(jié)點(diǎn)CREATE(<node-name>:<label-name>{ <property1-name>:<property-value>, <property2-name>:<property-value>, …})//創(chuàng)建有屬性節(jié)點(diǎn)CREATE(<node1-name>:<node1-label>)-[<relationship-name>:<relationship-label>{<property1-name>:<property-value>,…}]->(<node2-name>:<node2-label>)//創(chuàng)建新的有屬性的關(guān)系示例:

CREATE(node:player{name:”KobeBryant”,team:”Lakers”,top_score:”81”})CREATE(player:player)-[re:play_in]->(team:team)103Neo4jCQL——MATCHMATCH:用于獲取有關(guān)節(jié)點(diǎn)、關(guān)系和屬性的數(shù)據(jù)MATCH(<node-name>:<label-name>)//查找label為label-name的節(jié)點(diǎn)MATCH()-[<relationship-name>:<relationship-label>]->()RETURN<relationship-name>//查找label為relationship-label的關(guān)系

示例:MATCH(n:player)RETURNn//返回當(dāng)前所有player節(jié)點(diǎn)MATCH(n:player)SETn.citizenship=‘US’//為所有player節(jié)點(diǎn)設(shè)置屬性MATCH(n)DELETEn//刪除所有節(jié)點(diǎn)MATCH

(n:player)-[re]->()REMOVE

//刪除以player起始的關(guān)系的屬性name注意:MATCH不能單獨(dú)使用,需要結(jié)合RETURN等語(yǔ)句組合使用104Neo4jCQL——RETURNRETURN

用于返回節(jié)點(diǎn)或關(guān)聯(lián)關(guān)系或它們的某些屬性RETURN

<node-name>.<property1-name>, <node-name>.<property2-name>, …示例:MATCH(n:player)RETURNn//返回所有player節(jié)點(diǎn)CREATE(nod:team{name:’Lakers’,city:’LosAngeles’})RETURNnod//創(chuàng)建并返回新創(chuàng)建節(jié)點(diǎn)MATCH()-[re]->(nod:team)return,nod.city//返回team節(jié)點(diǎn)的city屬性及指向它的所有關(guān)系的name屬性注意:RETURN不能單獨(dú)使用,需要和MATCH等語(yǔ)句組合使用105Neo4jCQL——DELETE&REMOVE&SETDELETE刪除節(jié)點(diǎn),刪除節(jié)點(diǎn)及相關(guān)節(jié)點(diǎn)與關(guān)系DELETE<node-name>DELETE

<relationship-name>示例:MATCH(b)DELETEb//刪除所有節(jié)點(diǎn)MATCH

(a:team)-[re]->()DELETEre//刪除所有以team為起始點(diǎn)的關(guān)系REMOVE刪除節(jié)點(diǎn)或關(guān)系的屬性或標(biāo)簽REMOVE

<name>.<property1-name>,<node-name>.<property2-name>…示例:MATCH(nod:player)REMOVE

nod.team//刪除所有player節(jié)點(diǎn)的team屬性MATCH

(n:player)-[re]->()REMOVE

//刪除以player起始的關(guān)系的name屬性SET添加或更新節(jié)點(diǎn)與關(guān)系的屬性值(屬性值不存在,就添加,否則更新)SET

<name>.<property>=new_value示例:MATCH(n:player)SET

n.citizenship=‘US’//為所有player節(jié)點(diǎn)設(shè)置屬性106Neo4jCQL——WHEREWHERE類似于SQL語(yǔ)句中的WHERE用于過(guò)濾MATCH獲得的結(jié)果WHERE

<condition>示例MATCH(n:player)-[re]->()WHEREn.team=‘Lakers’RETURNre//返回起始節(jié)點(diǎn)為team=’Lakers’的player的關(guān)系MATCH

(p:player),(t:team)WHEREp.team=

CREATE(p)-[re:play_in]->(t)//創(chuàng)建特定關(guān)系

1.條件語(yǔ)句可以使用的BOOL運(yùn)算符有AND(與),OR(或),NOT(非),XOR(異或)2.條件語(yǔ)句可以使用的比較運(yùn)算符有=,<,>,<>,<=,>=107Neo4jCQL——ORDER

BY&UNIONORDER

BY對(duì)返回結(jié)果排序ORDER

BY<name>.<property>注意:不加該語(yǔ)句將會(huì)對(duì)結(jié)果按照返回的第一個(gè)屬性進(jìn)行升序排序,在該語(yǔ)句后添加DESC關(guān)鍵字可以獲得降序排序。UNION將兩組不同的結(jié)果合并成一組結(jié)果<MATCHComand1> UNION<MATCHComand2>注意:UNION要求查詢時(shí)列名相同,若不同可以使用AS關(guān)鍵字對(duì)列重命名,UNION返回?cái)?shù)據(jù)中會(huì)去掉重復(fù)項(xiàng)。108Neo4jCQL——LIMIT&SKIP&INLIMIT&SKIP返回前n個(gè)結(jié)果&跳過(guò)n個(gè)結(jié)果LIMIT

n&SKIPn示例MATCH(n:player)RETURNnLIMIT25MATCH(n:player)RETURNnSKIP25IN提供值的集合WHERE

<name>.<property>IN[set]

示例MATCH(n:player)WHEREn,top_scoreIN[51,52]109CQL語(yǔ)言2.常用函數(shù)

CQL的常用函數(shù)和用法如下表:定制列表功能用法String字符串用于使用String字面量Aggregation聚合用于對(duì)CQL查詢結(jié)果執(zhí)行一些聚合操作Relationship關(guān)系用于獲取關(guān)系的細(xì)節(jié),如startnode,endnode等110Neo4jCQL——字符串函數(shù)1.UPPER:字母大寫UPPER(<input-string>)

示例:MATCH(n:player)RETURNn.UPPER(n,citizenship)2.LOWER:字母小寫

LOWER(<input-string>)

示例:MATCH(n:player)RETURNn.UPPER(n,team)3.SUBSTRING:獲取子字符串

SUBSTRING(<input-string>,<startIndex>,<endIndex>)

示例:MATCH(n:player)RETURNn.SUBSTRING(,0,1)111Neo4jCQL——聚合函數(shù)1.COUNT:返回MATCH得到的行數(shù)

COUNT(<value>)

示例:MATCH(n:player)RETURNCOUNT(n)2.MAX&MIN:返回MATCH返回的結(jié)果的一組最大值/最小值

MAX(<property-name>)

示例:MATCH(n:player)RETURNMIN(n.top_score)3.SUM:返回MATCH得到的所有行的和SUM(<property-name>)

示例:MATCH(n:player)RETURNSUM(n.top_score)4.AVG:返回MATCH得到的所有行的平均值A(chǔ)VG(<property-name>)

示例:MATCH(n:player)RETURNAVG(n.top_score)112Neo4jCQL——關(guān)系函數(shù)1.STARTNODE&ENDNODE:用于直到關(guān)系的開(kāi)始節(jié)點(diǎn)/結(jié)束節(jié)點(diǎn)

STARTNODE

(<relationship-label-name>)

示例:MATCH(n)-[re]->(b)RETURNENDNODE(re)2.ID:獲得關(guān)系的ID

ID

(<relationship-label-name>)

示例:MATCH(n)-[re]->(b)RETURNID(re)3.TYPE:用于獲取字符串表示中的一個(gè)關(guān)系的TYPE

TYPE(<relationship-label-name>)

示例:MATCH(n)-[re]->(b)RETURNTYPE(re)113Neo4j——知識(shí)圖譜的構(gòu)建1.打開(kāi)IDEA,新建Java

Project114Neo4j——知識(shí)圖譜的構(gòu)建2.打開(kāi)Project

Structure對(duì)話框,導(dǎo)入jar文件點(diǎn)擊后輸入Neo4j數(shù)據(jù)庫(kù)下的lib目錄的路徑,完成導(dǎo)入115Neo4j——知識(shí)圖譜的構(gòu)建3.創(chuàng)建Neo4j數(shù)據(jù)庫(kù)4.啟動(dòng)數(shù)據(jù)庫(kù)下載的Neo4j數(shù)據(jù)庫(kù)位置創(chuàng)建的數(shù)據(jù)庫(kù)名稱116Neo4j——知識(shí)圖譜的構(gòu)建5.定義節(jié)點(diǎn)類型player,team6.定義關(guān)系類型play_in117Neo4j——知識(shí)圖譜的構(gòu)建7.創(chuàng)建新節(jié)點(diǎn)playerNode,teamNode,并設(shè)置它們的屬性8.創(chuàng)建新關(guān)系relationship,并設(shè)置其屬性118Neo4j——知識(shí)圖譜的構(gòu)建9.運(yùn)行代碼,創(chuàng)建數(shù)據(jù)庫(kù)10.代碼運(yùn)行成功后,打開(kāi)Neo4j數(shù)據(jù)庫(kù)目錄下的conf中的配置文件,將第九行內(nèi)容改為下圖所示:創(chuàng)建時(shí)的數(shù)據(jù)庫(kù)名稱119Neo4j——知識(shí)圖譜的構(gòu)建11.啟動(dòng)數(shù)據(jù)庫(kù),瀏覽器訪問(wèn)

http://localhost:7474查看結(jié)果120目錄知識(shí)圖譜大數(shù)據(jù)知識(shí)圖譜數(shù)據(jù)模型RDF圖模型屬性圖模型知識(shí)圖譜數(shù)據(jù)的存儲(chǔ)基于表結(jié)構(gòu)的存儲(chǔ)基于圖結(jié)構(gòu)的存儲(chǔ)知識(shí)圖譜數(shù)據(jù)的檢索聲明式查詢語(yǔ)言過(guò)程式查詢語(yǔ)言Neo4j使用簡(jiǎn)介總結(jié)121知識(shí)圖譜數(shù)據(jù)模型數(shù)據(jù)模型邏輯組織結(jié)構(gòu)(structure)操作(operation)約束(constraint)知識(shí)圖譜數(shù)據(jù)模型RDF圖模型屬性圖模型知識(shí)圖譜數(shù)據(jù)模型是圖數(shù)據(jù)模型的繼承和發(fā)展知識(shí)圖譜數(shù)據(jù)模型基于圖結(jié)構(gòu),頂點(diǎn)表示實(shí)體,邊表示實(shí)體間的聯(lián)系刻畫現(xiàn)實(shí)世界中事物的廣泛聯(lián)系圖數(shù)據(jù)模型:??=

(??,??)理論基礎(chǔ):圖論層次數(shù)據(jù)模型(hierarchicaldatamodel)網(wǎng)狀數(shù)據(jù)模型(networkdatamodel)關(guān)系數(shù)據(jù)模型(relationaldatamodel)數(shù)據(jù)模型決定了數(shù)據(jù)管理所采取的方法和策略對(duì)于存儲(chǔ)管理、查詢處理、查詢語(yǔ)言設(shè)計(jì)均至關(guān)重要122知識(shí)圖譜數(shù)據(jù)模型RDF圖模型RDF三元組:(??,??,??)∈(??∪??)×??×(??∪??∪??)RDF圖G:RDF三元組的有限集合123知識(shí)圖譜數(shù)據(jù)模型屬性圖模型屬性圖G是5元組:??

=

(??,

??,

??,

??,

??)V:頂點(diǎn)的有限集合E:邊的有限集合??:

??

(??

×

??):將邊關(guān)聯(lián)到頂點(diǎn)對(duì)??:

(??

??)

??????:為頂點(diǎn)或邊賦予標(biāo)簽??:

(??

??)

×

????????

→??????:為頂點(diǎn)或邊關(guān)聯(lián)屬性124知識(shí)存儲(chǔ)方式以類別為中心:基于表的存儲(chǔ)關(guān)系數(shù)據(jù)庫(kù)以實(shí)體為中心:基于圖的存儲(chǔ)RDF為基礎(chǔ)的SemanticWeb可相互轉(zhuǎn)換姚明Person中國(guó)上海type出生地配偶type國(guó)籍葉莉1980年9月12日出生年月125知識(shí)圖譜查詢語(yǔ)言知識(shí)圖譜查詢語(yǔ)言RDF圖 SPARQL屬性圖CypherPGQLG-COREGremlin聲明式語(yǔ)言過(guò)程式語(yǔ)言126常見(jiàn)圖數(shù)據(jù)庫(kù)平臺(tái)127知識(shí)圖譜數(shù)據(jù)管理查詢語(yǔ)言的統(tǒng)一分布式存儲(chǔ)方案分布式查詢處理知識(shí)推理的支持大規(guī)模知識(shí)圖譜的更新維護(hù)128第九章:知識(shí)推理《知識(shí)圖譜》配套講義129提綱知識(shí)推理概述什么是推理推理方式及分類知識(shí)推理典型應(yīng)用演繹推理:推理具體事實(shí)經(jīng)典邏輯推理基于產(chǎn)生式規(guī)則的推理基于概率邏輯學(xué)習(xí)的推理歸納推理:學(xué)習(xí)推理規(guī)則歸納推理概述歸納邏輯程序設(shè)計(jì)路徑排序算法(PRA算法)關(guān)聯(lián)規(guī)則挖掘算法(AMIE算法)知識(shí)圖譜推理新進(jìn)展基于表示學(xué)習(xí)的知識(shí)圖譜推理基于強(qiáng)化學(xué)習(xí)的知識(shí)圖譜推理符號(hào)規(guī)則與表示學(xué)習(xí)相融合的知識(shí)圖譜推理總結(jié)130提綱知識(shí)推理概述什么是推理推理方式及分類知識(shí)推理典型應(yīng)用演繹推理:推理具體事實(shí)經(jīng)典邏輯推理基于產(chǎn)生式規(guī)則的推理基于概率邏輯學(xué)習(xí)的推理歸納推理:學(xué)習(xí)推理規(guī)則歸納推理概述歸納邏輯程序設(shè)計(jì)路徑排序算法(PRA算法)關(guān)聯(lián)規(guī)則挖掘算法(AMIE算法)知識(shí)圖譜推理新進(jìn)展基于表示學(xué)習(xí)的知識(shí)圖譜推理基于強(qiáng)化學(xué)習(xí)的知識(shí)圖譜推理符號(hào)規(guī)則與表示學(xué)習(xí)相融合的知識(shí)圖譜推理總結(jié)131作為知識(shí)載體的知識(shí)圖譜物理世界人類世界機(jī)器世界能理解言外之意;能創(chuàng)造新說(shuō)法和新語(yǔ)法;語(yǔ)言系統(tǒng)語(yǔ)言理解與語(yǔ)言生成知識(shí)圖譜能不能舉一反三,自動(dòng)發(fā)現(xiàn)新知識(shí)?知識(shí)表示與知識(shí)推理132作為認(rèn)知智能重要基礎(chǔ)的知識(shí)圖譜知其然的AI

vs

知其所以然的AI人的大腦依賴所學(xué)的知識(shí)進(jìn)行思考、邏輯推理、理解語(yǔ)言知識(shí)圖譜感知識(shí)別判斷思考推理生成深度學(xué)習(xí)學(xué)習(xí)有智慧的AI有知識(shí)的AI推理133基于知識(shí)的Agent人類認(rèn)識(shí)世界,這種認(rèn)識(shí)能幫助我們做事。也稱認(rèn)識(shí)論、知識(shí)論,相對(duì)應(yīng)的是行為論。---認(rèn)知論人類一直強(qiáng)調(diào)人的智能是如何獲得的:不是靠反射機(jī)制而是對(duì)知識(shí)的內(nèi)部表示進(jìn)行操作的推理過(guò)程。---基于知識(shí)的Agent領(lǐng)域無(wú)關(guān)的算法特定領(lǐng)域的內(nèi)容推理引擎知識(shí)庫(kù)134知識(shí)推理示例:渡河背景:一個(gè)人帶著一匹狼、一只羊和一捆卷心菜來(lái)到了河邊。他需要過(guò)河,但是河邊只有一條船,而且他只能帶一樣?xùn)|西上船。他不能把狼和羊一起留在河邊,也不能讓羊和卷心菜一起留在河邊,因?yàn)樵谶@兩種情況下,前者都會(huì)吃掉后者。提問(wèn):如何用最少的渡河次數(shù)把所有東西都帶到河對(duì)岸?

背景:獅子、老虎、熊三對(duì)動(dòng)物過(guò)河,每種動(dòng)物有媽媽和孩子兩個(gè)(就是獅子?jì)寢?、小獅子;老虎媽媽、小老虎;熊媽媽、小熊)。而小動(dòng)物的媽媽不在的話,自己就會(huì)被吃掉(例如老虎媽媽不在,小老虎會(huì)被獅子?jì)寢尰蛐軏寢尦缘簦K械膵寢尪紩?huì)劃船,孩子里面只有小獅子會(huì)劃船。一艘船上只能同時(shí)最多坐兩個(gè)動(dòng)物(可以是兩個(gè)媽媽。提問(wèn):請(qǐng)問(wèn)他們要如何過(guò)河才能保全所有的動(dòng)物?135知識(shí)推理示例:Wumpus世界(1)來(lái)自書籍《ArtificialIntelligence:AModernApproach(4thEdition)》Wumpus世界是一個(gè)由多個(gè)房間組成并連接起來(lái)的山洞。在洞穴的某處隱藏著一只怪獸(Wumpus),它會(huì)吃掉進(jìn)入它房間的任何人。探險(xiǎn)者(Agent)可以射殺怪獸,但是探險(xiǎn)者只有一支箭。某些房間是無(wú)底洞,任何人漫游到這些房間都會(huì)被無(wú)底洞吞噬。生活在該環(huán)境下的唯一希望是存在發(fā)現(xiàn)一堆金子的可能性。性能度量:帶著金子爬出洞口+1000,掉入洞被Wumpus吃-1000,采用一個(gè)行動(dòng)-1,用掉箭-10。Agent死亡或出洞,則游戲結(jié)束。環(huán)境:4*4房間網(wǎng)格,始發(fā)[1,1]且向右。1個(gè)Wumpus,1/5房間為無(wú)底洞,分布均勻。執(zhí)行器:Agent向前、左轉(zhuǎn)、右轉(zhuǎn)、射箭。136知識(shí)推理示例:Wumpus世界(2)傳感器:在與無(wú)底洞相鄰的方格內(nèi),Agent能感知到微風(fēng)(Breeze);在與Wumpus相鄰的方格內(nèi),Agent能感受到臭氣(Stench);在金子所處方格,Agent能感受到閃閃金光(Glitter);當(dāng)Agent碰到墻時(shí),它感知到碰撞(Bump);當(dāng)Wumpus被殺死后,它發(fā)出的嚎叫聲(Scream)。137知識(shí)推理示例:Wumpus世界(3)第1步感知:NONE[1,2]和[2,1]安全第2步感知:微風(fēng)[2,2]或[3,1]洞

回到[1,1]然后去[1,2]138知識(shí)推理示例:Wumpus世界(4)第3步感知:臭氣[1,3]怪獸和[2,2]安全

射殺怪獸,去往[2,2]第5步感知:臭氣,閃光,微風(fēng)[2,3]金子,[2,4]或[3,3]洞

拿金子,往回走139什么是推理(1)推理是邏輯學(xué)、哲學(xué)、心理學(xué)、人工智能等學(xué)科中的重要概念。早在古希臘時(shí)期,著名哲學(xué)家亞里斯多德就提出三段論作為現(xiàn)代演繹推理的基礎(chǔ)。在計(jì)算機(jī)科學(xué)及人工智能領(lǐng)域,推理是一個(gè)按照某種策略從已知事實(shí)出發(fā)去推出結(jié)論的過(guò)程。推理就是通過(guò)已知知識(shí)推斷出未知知識(shí)的過(guò)程。140什么是推理(2)推理,邏輯學(xué)中指思維的基本形式之一,是由一個(gè)或幾個(gè)已知的判斷(前提)推出新判斷(結(jié)論)的過(guò)程,有直接推理、間接推理等。------《現(xiàn)代漢語(yǔ)詞典第6版》事件必定有其原因,事件背后必定有其真相。通過(guò)推理可以預(yù)測(cè)未來(lái),甚至確定未來(lái)發(fā)展的詳細(xì)過(guò)程。任何一個(gè)推理都包含已知判斷、新的判斷和一定的推理形式。作為推理的已知判斷叫前提,根據(jù)前提推出新的判斷叫結(jié)論。前提與結(jié)論的關(guān)系是理由與推斷,原因與結(jié)果的關(guān)系。141什么是推理(3)牛頓的出生地屬于哪個(gè)國(guó)家已知知識(shí):事實(shí)公理常識(shí)…未知知識(shí):新事實(shí)新公理新常識(shí)…演繹、歸納、朔因預(yù)測(cè)、推斷、類比142提綱知識(shí)推理概述什么是推理推理方式及分類知識(shí)推理典型應(yīng)用演繹推理:推理具體事實(shí)經(jīng)典邏輯推理基于產(chǎn)生式規(guī)則的推理基于概率邏輯學(xué)習(xí)的推理歸納推理:學(xué)習(xí)推理規(guī)則歸納推理概述歸納邏輯程序設(shè)計(jì)路徑排序算法(PRA算法)關(guān)聯(lián)規(guī)則挖掘算法(AMIE算法)知識(shí)圖譜推理新進(jìn)展基于表示學(xué)習(xí)的知識(shí)圖譜推理基于強(qiáng)化學(xué)習(xí)的知識(shí)圖譜推理符號(hào)規(guī)則與表示學(xué)習(xí)相融合的知識(shí)圖譜推理總結(jié)143知識(shí)推理的分類歸納推理與演繹推理歸納推理(induction):歸納是從特殊到一般的過(guò)程。所謂歸納推理,就是從一類事物的大量特殊事例出發(fā),去推出該類事物的一般性結(jié)論。我們熟知的數(shù)學(xué)歸納法就是歸納推理的一個(gè)典型例子。前提:藍(lán)鯨可以噴射水柱。抹香鯨可以噴射水柱。座頭鯨可以噴射水柱。結(jié)論:鯨魚都可以噴射水柱。前提:樹(shù)木有年輪。烏龜有年輪(龜甲上的環(huán)數(shù))。牛馬有年輪(年輪在牙齒上)。結(jié)論:所有生物都有記錄自己壽命長(zhǎng)短的年輪。日本科學(xué)家發(fā)現(xiàn),人的年輪在腦中。144知識(shí)推理的分類歸納推理與演繹推理演繹推理(deduction):演繹是從一般到特殊的過(guò)程。所謂演繹推理,就是從一般性的前提出發(fā),通過(guò)演繹(即推導(dǎo)),得出具體陳述或個(gè)別結(jié)論的過(guò)程。最經(jīng)典的演繹推理就是三段論(syllogism),它包括一個(gè)一般性原則(大前提)、一個(gè)附屬于大前提的特殊化陳述(小前提),以及由此引申出的特殊化陳述符合一般性原則的結(jié)論。大前提:人工智能學(xué)院的學(xué)生都會(huì)PyTorch。小前提:小李是人工智能學(xué)院的學(xué)生。結(jié)論:小李會(huì)PyTorch。145知識(shí)推理的分類歸納推理與演繹推理演繹推理(deduction):演繹推理不僅僅局限于三段論,也不只是從一般到特殊的過(guò)程。它有著強(qiáng)烈的演繹特性,重在通過(guò)利用每一個(gè)證據(jù),逐步地推導(dǎo)到目標(biāo)或以外的結(jié)論,多被用于數(shù)學(xué)物理證明、思維推導(dǎo)等各類應(yīng)用。例:莎士比亞在《威尼斯商人》中,描寫富家少女鮑西亞品貌雙全,貴族子弟、公子王孫紛紛向她求婚。鮑西亞按照其父遺囑,由求婚者猜盒訂婚。鮑西亞有金、銀、鉛三個(gè)盒子,分別刻有三句話,其中只有一個(gè)盒子放有鮑西亞的肖像。求婚者中誰(shuí)通過(guò)這三句話,最先猜中肖像放在哪個(gè)盒子里,誰(shuí)就可以娶到鮑西亞。

金盒子上說(shuō):“肖像不在此盒中?!?/p>

銀盒子上說(shuō):“肖像在鉛盒中。”

鉛盒子上說(shuō):“肖像不在此盒中?!滨U西亞告訴求婚者,上述三句話中,最多只有一句話是真的。如果你是一位求婚者,如何盡快猜中鮑西亞的肖像究竟放在哪一個(gè)盒子里?146知識(shí)推理的分類歸納推理與演繹推理的區(qū)別演繹推理是在已知領(lǐng)域內(nèi)的一般性知識(shí)的前提下,求解一個(gè)具體問(wèn)題或者證明一個(gè)結(jié)論的正確性。演繹推理得出的結(jié)論實(shí)際上早已蘊(yùn)含在一般性知識(shí)的前提中,演繹推理只不過(guò)是將已有事實(shí)揭示出來(lái),因此它不能增殖新知識(shí)。相反,歸納推理所推出的結(jié)論是沒(méi)有包含在前提內(nèi)容中的。這種由個(gè)別事物或現(xiàn)象推出一般性知識(shí)的過(guò)程,是增殖新知識(shí)的過(guò)程。147知識(shí)推理的分類必然性推理與或然性推理:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論