知識(shí)圖譜分為模式層和數(shù)據(jù)層兩部分:其中模式層是是知識(shí)圖譜的核心一忱,在模式層存儲(chǔ)的是經(jīng)過提煉的知識(shí)眯娱;數(shù)據(jù)層存儲(chǔ)的是具體數(shù)據(jù)信息。
我們的圖譜模式層和數(shù)據(jù)層定義如下:
(一)模式層:
我們的模式層使用mysql數(shù)據(jù)庫來存儲(chǔ)兔魂,設(shè)計(jì)方式如下:
1弛作,類層次結(jié)構(gòu):有些知識(shí)圖譜采用的是樹狀的類結(jié)構(gòu),每個(gè)子類繼承其祖先節(jié)點(diǎn)的屬性馒稍。我們的圖譜采用的是簡單的兩層類層次結(jié)構(gòu),object_object類是根節(jié)點(diǎn)浅侨,其他所有類是其子節(jié)點(diǎn)纽谒。
2,類關(guān)系定義:類之間存在相互的關(guān)系如输,類之間可以定義單向的關(guān)系鼓黔,也可以定義雙向的關(guān)系。如果需要定義主逆關(guān)系不见,需要約定其主關(guān)系及逆關(guān)系澳化。例如歌手指向歌曲的關(guān)系是演唱歌曲,歌曲指向歌手的關(guān)系是被演唱稳吮。
3缎谷,類領(lǐng)域定義:為了管理方便,定義了多個(gè)領(lǐng)域便于將類進(jìn)行分組管理灶似。例如音樂域之下會(huì)有歌曲列林,專輯,歌手等類酪惭,電影域之下會(huì)有影片希痴,導(dǎo)演,演員等類春感。
4砌创,類屬性定義:公共類里抽取了一些非陈哺祝基礎(chǔ)的屬性做為公共屬性,例如名稱嫩实,創(chuàng)建時(shí)間之類刽辙。另外每個(gè)類定義了自己的專有屬性,例如音樂時(shí)長舶赔,電影評(píng)分等扫倡。
(二)數(shù)據(jù)層:
我們的數(shù)據(jù)存儲(chǔ)使用了圖數(shù)據(jù)庫,存儲(chǔ)方式如下:
1竟纳,類層次結(jié)構(gòu):類使用圖節(jié)點(diǎn)存儲(chǔ)撵溃,關(guān)系是用圖的邊來存儲(chǔ),object_object在物理上不需要單獨(dú)建立節(jié)點(diǎn)锥累,所有的子節(jié)點(diǎn)都繼承object_object的基礎(chǔ)屬性缘挑。
2,類關(guān)系定義:為每種類型建立了一個(gè)節(jié)點(diǎn)叫做object_type桶略,將屬于該類型的實(shí)體都增加一條指向該類型節(jié)點(diǎn)的邊语淘,這樣如果需要修改類型定義,只需要修改一個(gè)節(jié)點(diǎn)即可际歼。
3惶翻,類領(lǐng)域定義:為每種領(lǐng)域也定義了一個(gè)專門的節(jié)點(diǎn)叫object_domain,將屬于該領(lǐng)域的實(shí)體增加一條指向該領(lǐng)域節(jié)點(diǎn)的邊鹅心。
4吕粗,類屬性定義:對(duì)于屬性分為公共屬性和私有屬性,公共屬性即上面模式層提到的object_object根節(jié)點(diǎn)的屬性旭愧,私有屬性是各個(gè)類型節(jié)點(diǎn)自身獨(dú)有的屬性颅筋。其中公共屬性因?yàn)榛静粫?huì)變化,我們存儲(chǔ)在節(jié)點(diǎn)的屬性字段里输枯;而私有屬性可能會(huì)經(jīng)常需要增刪改议泵,而我們的圖數(shù)據(jù)庫不是schema free的,為了方便修改桃熄,將私有屬性全部做為邊來存儲(chǔ)先口。