專利名稱::生成模擬現(xiàn)實的本體文件的方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于知識庫系統(tǒng)的性能分析
技術(shù)領(lǐng)域:
。特別涉及一種生成模擬現(xiàn)實的本體文件的方法,其所生成的本體文件并非只是用于描述某個領(lǐng)域,而是用于推理機(Reasoner)系統(tǒng)性能分析的輸入工作流。
背景技術(shù):
:本體的一個比較形式化的定義是,給出構(gòu)成相關(guān)領(lǐng)域詞匯的基本術(shù)語和關(guān)系,以及利用這些術(shù)語和關(guān)系構(gòu)成的規(guī)定這些詞匯外延的規(guī)則的定義。通俗的講,本體的目標(biāo)是獲取、描述和表示相關(guān)領(lǐng)域的知識,提供對該領(lǐng)域知識的共同理解,確定該領(lǐng)域內(nèi)共同認(rèn)可的詞匯,并從不同層次的形式化模式上給出這些詞匯及詞匯間關(guān)系的明確定義。一般來說一個本體文件包含類的定義,屬性的定義和個體的定義。由于一個本體文件刻畫的是某個領(lǐng)域的領(lǐng)域知識,類通常對應(yīng)為該領(lǐng)域的概念,而屬性則對應(yīng)為概念之間的二元聯(lián)系,個體則為具體概念的實例。目前用于本體定義和描述的主流語言為網(wǎng)絡(luò)本體語言(WebOntologyLanguage,0WL)。OWL是一種基于描述邏輯語義的本體描述語言,它采用了可擴展標(biāo)記語言(xml)的語法,提供了大量的語言構(gòu)造子來建立描述表達(dá)式。Owl構(gòu)造子可分為三類類(Class)相關(guān)的構(gòu)造子、屬性(Property)相關(guān)的構(gòu)造子、限制(Restriction)相關(guān)的構(gòu)造子。Class相關(guān)的語言構(gòu)造子包括subclassof(子類關(guān)系)、equivalentclass(等價類關(guān)系)、intersectionof(交集)、uni畫f(并集)、complementof(補集)、oneof(表示某個類的實例只能是某個集合中的元素)等;Pr叩erty相關(guān)的語言構(gòu)造子包括對象屬性結(jié)構(gòu)子、數(shù)據(jù)類型屬性結(jié)構(gòu)子,具體包括subpropertyof(子屬性)、tr.ansitiveproperty(傳遞性屬性)、functionalproperty(函數(shù)性屬性)、irwerseof(某屬性的逆屬性)、domain(定義域)、range(值域)等;Restriction相關(guān)的構(gòu)造子包括somevaluesfrom(某些值來自于)、allvalue^from(所有值來自于)、hasvalue(有一個值為)、maxcardinality(最大基數(shù)限制)、mincardinality(最小基數(shù)限制)等。具體地說,owl通過subclassof、subpropertyof等形成概念及其關(guān)系的分類化、層次化結(jié)構(gòu),通過equivalentclass、equivalentproperty、inverseof等形成概念及關(guān)系間同義、反義等語義關(guān)系,通過intersectionof、unionof、complementof、oneof等構(gòu)成概念間的邏輯組合關(guān)系,通過domain、range、cardinality、somevaluesfrom等對關(guān)系約束進(jìn)行描述,通過disjointwith、transitiveproperty、functionalproperty等實現(xiàn)対'概念及其關(guān)系的公理描述。Owl本體中的類表達(dá)式通常具有下面的描述形式<owl:Classrdf:ID="ACertainID"〉〈rdfs:subClassOf><owl:Class〉</owl:Class〉</rdfs:subClassOf>上述表達(dá)式中的省略號部分是由某些類相關(guān)或限制(Restriction)相關(guān)的構(gòu)造子填充的。如-〈owl:Classrdf:ID=,,wine"〉〈rdfs:subclassofrdf:resource=,,&food;potableliquid,,/〉〈rdfs:subclassof〉〈owl:restriction〉〈owl:onpropertyrdf:resource=,,fthasmaker,,/〉<owl:allvaluesfromrdf:resource=,,#winery,,/〉〈/owl:restriction>〈/rdfs:subclassof〉〈/owl:class〉上述表達(dá)式表示了酒(wine)是一種食物(food)和一種可飲用的液體(potableliquid),其必須滿足的限制是wine的制造者(hasmaker)須全部來自于酒廠(winery)中所定義的酒廠。屬性表達(dá)式則使用了property相關(guān)的構(gòu)造子,如〈oWl:objectpropertyrdf:id="hasmaker">〈rdf:typerdf:resource=,,owl:functionalproperty,,/〉〈owl:ol^jectf)ropertyrdf:id=,,prodliceswine,,〉〈owl:inverseofrdf:resource="tthasmaker,,/〉〈/owl:objectproperty〉上述表達(dá)式表示hasmaker屬性是一個functionalproperty,且與屬性produceswine互逆。推理機系統(tǒng)是用于對本體文件進(jìn)行推理和分析的一種工具,它的推理功能主要集中在兩個方面,一是歸約,即判斷一個概念是否為另一個概念的子集;二是相容,即判斷一個概念與已有的概念集是否相容,主要用于進(jìn)行概念集合的一致性檢測。目前主流的推理機系統(tǒng)都是基于描述邏輯且支持owl語言的,主要有以下三種-1、FaCT十+,由英國曼切斯特大學(xué)研制,使用0++語言。2、RacerPro,—款商用推理機系統(tǒng),由Racer系統(tǒng)有限公司(RacerSystemsGmbH&Co.KG)研制。3、Pellet,由美國馬里蘭大學(xué)研制,使用〔++語言。在推理機系統(tǒng)的性能分析領(lǐng)域,目前存在以下幾種生成推理機系統(tǒng)性能分析輸入工作流的方法方法一根據(jù)某種特定模式人工生成的測試數(shù)據(jù);如由0ntoprose研究組提供的Ontogenerator所采用的生成方法是假定本體所形成的概念層次結(jié)構(gòu)為一棵對稱的概念樹,輸入該樹的寬度和高度確定這棵概念樹,而屬性和個體則按照正態(tài)或泊松分布附加在概念上。方法二隨機方法生成不同規(guī)模的測試數(shù)據(jù);如由意大利特倫托大學(xué)提出的一種生成方法的簡要描述如下一個特定長度的概念是由L個子概念的交集形成,每個子概念又由3個孫概念的并集形成,對每個孫概念以概率0.5求其補集,每個孫概念又由特定數(shù)目的原子概念形成,原子概念的選擇是隨機從原子概念集合中選取的,每個原子概念又隨機的被求補或施加其它限制。以上兩種方法的局限性在于對所采取的生成策略不能保證所生成的數(shù)據(jù)文件是符合現(xiàn)實本體文件的特征的,從而使用以上兩種方法所生成的數(shù)據(jù)文件作為推理機系統(tǒng)性能分析輸入工作流所得分析結(jié)果就不夠具有說服力。方法三直接使用現(xiàn)實的本體文件;這種方法時出現(xiàn)是源于本體領(lǐng)域的研究及應(yīng)用的愈加廣泛,越來越多的實際本體文件己經(jīng)在被使用,并且它們大部分可從互聯(lián)網(wǎng)上下載,因此直接使用現(xiàn)實的本體文件來對推理機的性能進(jìn)行分析。使用這種方法的有英國曼切斯特大學(xué)計算機系和貝爾實驗室。這種方法的局限性在于現(xiàn)實本體文件在規(guī)模、結(jié)構(gòu)、表達(dá)能力等方面存在著巨大的差異,使用現(xiàn)實本體文件作為推理機系統(tǒng)的性能分析輸入工作流無法使得分析過程具備可控性。
發(fā)明內(nèi)容本發(fā)明的目的在于提供一種生成模擬現(xiàn)實的本體文件的方法,其基于對數(shù)百個現(xiàn)實本體文件的詳細(xì)分析。在生成過程中模擬了現(xiàn)實本體文件的一些特征,因此使用本方法所生成的本體文件一方面具備了現(xiàn)實本體文件的特征,另一方面又可通過一定的輸入?yún)?shù)變化使得其具備可控性。為解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案一種生成模擬現(xiàn)實的本體文件的方法,所述本體文件通過若干OWL語言構(gòu)造子建立描述表達(dá)式,所述若干OWL語言構(gòu)造子包括類相關(guān)構(gòu)造子集合、屬性相關(guān)構(gòu)造子集合、限制相關(guān)構(gòu)造子集合;該方法包括以下步驟步驟1、輸入需生成的本體文件的特征參數(shù),所述特征參數(shù)包括生成類的個數(shù)——NumClasses,用于Subclassof的冪律分布函數(shù)的alpha值——SubClsAlpha,用于length的冪律分布函數(shù)的alpha值——LengthAlpha,生成屬性的個數(shù)——NumProperties,對象屬性的個數(shù)——NumObjPro,數(shù)據(jù)類型屬性的個數(shù)——NumDataPro;所述Subclassof為子類關(guān)系構(gòu)造子,所述length為類表達(dá)式的長度;步驟2、生成類,具體如下-步驟2.1、根據(jù)NumClasses參數(shù)確定生成類的個數(shù);對每個所要生成的類,根據(jù)步驟1中輸入的SubClsAlpha值,使用冪律分布函數(shù)生成該類的Subclassof個數(shù);根據(jù)步驟1中輸入的LengthAlpha參數(shù),通過冪律分布函數(shù)確定每個類的Subclassof類表達(dá)式的長度——length,length為出現(xiàn)在該類表達(dá)式中類相關(guān)構(gòu)造子及限制相關(guān)構(gòu)造子的總數(shù)目;其中冪律分布函數(shù)為Pr(X>=x)=(k/x)alpha;其中,X是否為隨機變量,x為X的值域內(nèi)的某個值,k為定位參數(shù),alpha為斜率參數(shù);步驟2.2、調(diào)用遞歸函數(shù)f(d印th)-GenerateOWLConc印t(d印th)生成類,其中d印th-length-1,該遞歸函數(shù)的返回值為subclassof所指向的類;步驟3、根據(jù)輸入的屬性個數(shù)(NumProperties)、對象屬性個數(shù)(N咖0bJPro)、數(shù)據(jù)類型屬性個數(shù)(N咖DataPro)、子屬性關(guān)系個數(shù)(N咖SubPro)、個體個數(shù)(N咖Individuals)生成屬性和個體。作為本發(fā)明的一種優(yōu)選方案,每個owl語言構(gòu)造子LCi的概率Pi的值由用戶輸入或設(shè)置為默認(rèn)值,所述默認(rèn)值為所收集的所有本體文件的相應(yīng)參數(shù)的平均值。作為本發(fā)明的一種優(yōu)選方案,所述步驟2.2中用到的遞歸函數(shù)f(d印th^GenerateOWLConc印t(intdepth)的具體計算方法如下步驟2.2.1、設(shè)LC={Ld,…LCJ為類表達(dá)式可以使用的OWL語言構(gòu)造子集合,包括co卿lementof構(gòu)造子、intersectionof構(gòu)造子、unionof構(gòu)造子、allvaluesfrom構(gòu)造子、somevaluesfrom構(gòu)造子、hasvalue構(gòu)造子、cardnality構(gòu)造子、maxcardinality構(gòu)造子、mincardinality構(gòu)造子中的若干個;P={Ph…Pn}為LC上的概率分布,在owl語言構(gòu)造子集合LC中選擇length個語言構(gòu)造子,并且該length個語言構(gòu)造子在LC集合上的概率分布之和為1;步驟2.2.2、如果depth^,則隨機選擇一個命名類返回;否則執(zhí)行步驟2.2.3;步驟2.2.3、以概率Pj選擇一個構(gòu)造子LCj;若LCj為complementof構(gòu)造子,設(shè)C為GenerateOWLConc印t(d印th-1)的輸出,則GenerateOWlXoncept(depth)返回complementof(C);若LCj為intersectionof構(gòu)造子或者unionof構(gòu)造子,首先隨機從集合{0,…d印th-1}中生成一個整數(shù)i,設(shè)Cl為GenerateOWLConc印t(i)的輸出,C2為Generate(WLConc印t(d印th-i-l)的輸出,GenerateOWLConc印t(d印th)返回LCj(Cl,C2),即返回C1與C2的交集或并集;若LCj為somevalu'esfrom構(gòu)造子、或allvaluesfrom構(gòu)造子、或hasValue構(gòu)造子,首先從對象屬性集合中隨機選擇一個對象屬性O(shè)Pi,對象屬性的個數(shù)由NumObjPro參數(shù)確定,設(shè)C為GenerateOWLConc印t(d印th-l)的輸出,GenerateOWLConc印t(d印th)返回LCj慨,C);若1Xj為mincardinality構(gòu)造子、或maxcardinality構(gòu)造子、或cardinality構(gòu)造子,若d印th為l,首先從對象屬性集合中隨機選擇一個對象屬性構(gòu)造子OP,若cardinality值為l,調(diào)用函數(shù)GenerateOWLConc印t(d印th),返回LCj(1,0P);若d印th不為1,調(diào)用函數(shù)GenerateOWLCardinality(d印th),其返回值在d印th為l的情況下為LCj(l,0P)),其中LCj為mincaxdinality構(gòu)造子、maxcardinality構(gòu)造子或caxdinality構(gòu)造子;而其返回值在d印th為l的情況下為LCj(l,OP)。作為本發(fā)明的一種優(yōu)選方案,所述步驟2.1中l(wèi)ength具體的計算方法為如果A是一個原始類表達(dá)式,則Length(A)=0;如果A是B的一個子類——subclass、或等價類——equivalentclass,或者A與B互不相交--AdisjointWithB,貝ijLength(A)=Length(B)+l;如果A是d,C廣'至Cn的交集或并集,則Length(A)=Length(Ct)+Length(C2)+......+Length(C)+l;如果A是C的補集、或A等于VAC、或A等于、或A等于S成C、或A等于》n/.C,Length(A)=Length(C)+l;其中,Vi.C、3兄C、《畎C及2n/.C均代表沒有命名的類;V兄C的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則屬性R的該實例的'值必然是類C的實例,用集合語言表示即{x|Vy.(x,y)eR—yec};的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則所有這樣的實例中存在一個實例,其值是類C的實例,用集合語言表示即U|3y.(x,y)ER邸dyec};^^C的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,.則所有這樣的實例數(shù)目要小于等于n,用集合語言表示即{x|弁"y.(x,y)ER})<=n};》"凡C的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則所有這樣的實例數(shù)目要大于等于n,用集合語言表示即{XI#({y.(x>y)ER})〉=n};如果A只包含one0f構(gòu)造子,則Length(A)=1。作為本發(fā)明的一種優(yōu)選方案,所述步驟3中生成屬性的方法為將屬性相關(guān)構(gòu)造子及子屬性的數(shù)目隨機分布在每個屬性上,屬性的定義域domain和值域range也隨機選擇。作為本發(fā)明的一種優(yōu)選方案,所述步驟3中生成個體的方法為使用個體的個數(shù)參數(shù)一—nuniofindividuals生成個體。作為本發(fā)明的一種優(yōu)選方案,所述步驟2.2.1中,所述OWL語言構(gòu)造子集合還可以包括equivalentClass構(gòu)造子及disjointWith構(gòu)造子中的一個多兩個;對于equivalentClass構(gòu)造子和disjointWith構(gòu)造子,本方法隨機選擇NumEquCls+NumDisjoint個命名類。作為本發(fā)明的一種優(yōu)選方案,所述類相關(guān)構(gòu)造子集合包括subclassof構(gòu)造子、equivalentClass構(gòu)造子、intersectionof構(gòu)造子、unionof構(gòu)造子、complementof構(gòu)造子、oneof構(gòu)造子;屬性相關(guān)構(gòu)造子集合包括subpropertyof構(gòu)造子、transitiv印roperty構(gòu)造子、functi.onalp:roperty構(gòu)造子、inverseof構(gòu)造子、.domain構(gòu)造子、range構(gòu)造子;限制相關(guān)構(gòu)造子集合包括.somevaluesfrom構(gòu)造子、allvalu&sfrom構(gòu)造子、hasvalue構(gòu)造子、maxcardinality構(gòu)造子、mincardinality構(gòu)造子。作為本發(fā)明的一種優(yōu)選方案,所述步驟l中NumClasses的范圍為(O,20000),SubClsAlpha的范圍為(2,6),LengthAlpha的范圍為(2,6),N咖Pr叩ert,ies的范圍為(O,1500),Num0bjPro的范圍為(0,420),NumDataPro的范圍為(0,1200)。作為本發(fā)明的一種優(yōu)選方案,所述方法還包括步驟4、改變所述需生成本體文件的特征參數(shù),而后執(zhí)行步驟2及步驟3。本發(fā)明的有益效果為首先,由于本生成方法所生成的本體文件模擬了現(xiàn)實本體文件的特征,相比使用某種特定模式或使用隨機方式生成的本體文件迸行的性能分析,本方法所得分析結(jié)果更具有說服力。其次,由于可以通過改變特定輸入?yún)?shù)控制所生成的本體文件的特定特性的漸變,相比使用相互間各方面差異巨大的現(xiàn)實本體文件所作的性能分析,本方法的分析過程更加形式化和可控,對推理機的性能分析也更全面和有效。圖l為本發(fā)明方法的流程圖。圖2為類的SubClass概率分布及類表達(dá)式的Length概率分布圖。圖3為三個推理機時間性能比較圖。具體實施方式下面結(jié)合附圖詳細(xì)說明本發(fā)明的優(yōu)選實施例。本實施例中,本體文件通過若干OWL語言構(gòu)造子建立描述表達(dá)式,所述若干OWL語言構(gòu)造子包括類相關(guān)構(gòu)造子集合、屬性相關(guān)構(gòu)造子集合、限制相關(guān)構(gòu)造子集合。屬性相關(guān)構(gòu)造子集合包括對象屬性相關(guān)構(gòu)造子集合、數(shù)據(jù)類型相關(guān)構(gòu)造子集合。具體地,所述類相關(guān)構(gòu)造子集合包括subclassof構(gòu)造子、equivalentclass構(gòu)造子、intersectionof構(gòu)造子、unionof構(gòu)造子、co即lementof構(gòu)造子、oneof構(gòu)造子;屬性相關(guān)構(gòu)造子集合包括subpropertyof構(gòu)造于、transitiveproperty構(gòu)造子、functionalproperty構(gòu)造子、inverseof構(gòu)造子、domain構(gòu)造子、range構(gòu)造子;限制相關(guān)構(gòu)造子集合包括somevaluesfrom構(gòu)造子、allvaluesfrom構(gòu)造子、hasvalue構(gòu)造子、maxcardinality構(gòu)造子、mincardinality構(gòu)造子。為了生成一個本體文件,需要輸入一系列的參數(shù),這些參數(shù)控制了所生成的本體文件的各方面的特征,例如類的個數(shù)、屬性的個數(shù)、屬性的分布等。通過使用這些輸入?yún)?shù),可以在其它參數(shù)保持不變的情況下,通過漸變一個參數(shù)來生成不同的本體文件并分析推理機系統(tǒng)處理這些本體文件的性能結(jié)果與參數(shù)變化的關(guān)系,使整個分析過程具備可控性。另外,為了保證所生成的本體文件符合現(xiàn)實本體文件的特征,本發(fā)明分析了從互聯(lián)網(wǎng)上下載的634個owl格式的現(xiàn)實本體文件?;趯@634個本體文件的分析結(jié)果形成了生成本體文件的方法,從而保證了使用該方法所生成的本體文件符合現(xiàn)實本體文件的一些特征,使得推理機的性能分析結(jié)果更具備說服力。本發(fā)明實施例分析了634個本體文件的SubClass0f屬性的分布以及長度(Length)的分布。其中某個類表達(dá)式的length就是出現(xiàn)在該類表達(dá)式中類相關(guān)的語言構(gòu)造子及restriction相關(guān)的語言構(gòu)造子的總數(shù)目。以如下公式表示1、如果A是一個原始類表達(dá)式,即這種形式〈owl:Classrdf:about="A"/〉,則Length(A)=0;2、如果A是B的一個subclass或者equivalentclass,或者AdisjointWithB,則Length(A)=Length(B)+h3、如果A是d,C2...至Cn的交集或并集;則:Length(A)=Ungth(d)十Length(C2)+......Length(Cn)+1;4、如果A是C的補集、或A等于Vi.C、或A等于^C、或A等于《畎C、或A等于knZ.C,Length(A)=Length(C)+1;其中,V兄C、3凡C、^成C及2"兄C均代表沒有命名的類;V兄C的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則屬性R的該實例的值必然是類C的實例,用集合語言表示即klVy.(x,y)ER—yec};的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則所有這樣的實例中存在一個實例,其值是類C的實例,用集合語言表示即{x|3y.(X,y)eRandyec};《成C的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則所有這樣的實例數(shù)目要小于等于n,,集合語言表示即{xN({y.(x,y)eR})<=n};》《/.<:的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則所有這樣的實例數(shù)目要大—等于n,用集合語言表示即{Xi#({y.(X,y)ER})〉=n};5、如果A只包含owl:oneOf構(gòu)造子,貝ijLength(A)-l。分析結(jié)果顯示本體文件的SubClassOf屬性的分布以及長度(Length)的分布均近似于冪律(power-law)分布。所謂冪律分布指,對某個隨機變量X有X〉-x的概率Pr(X>=x)=(k/x)—a,(請標(biāo)明每個參數(shù)的涵義)。因此某個特定類的子類(subclass)和長度(length)的確定是由兩個冪律分布的alpha值來確定的。如圖2所示,圖2為類的SubClass概率分布和類表達(dá)式的Length概率分布。從圖中可以看出類的SubClass概率分布與alpha值為2.8p的冪率分布函數(shù)曲線近似,類表達(dá)式的Length概率分布與alpha值為3.7的冪率分布函數(shù)曲線近似。從分析結(jié)果中還發(fā)現(xiàn)不同的owl語言構(gòu)造子在使用頻率上有著較大的差異。因此對本發(fā)明的每個輸入?yún)?shù)都確定了一個取值范圍,輸入?yún)?shù)應(yīng)控制在這個取值范圍內(nèi),以保證所生成的本體文件的真實性。如表l所示<table>tableseeoriginaldocumentpage14</column></row><table>表l.構(gòu)造子描述表l中的參數(shù)可以被分為兩類,一類是必需的參數(shù),即分類(Category)為l,如類的個數(shù)、屬性的個數(shù)、subclassof的冪律分布的alpha值等;另一類參數(shù)非必需參數(shù),即分類為2,它們都有一個默認(rèn)值,該默認(rèn)值也可以被用戶的輸入覆蓋,如owl:equivalentClass的個數(shù)、類、屬性及個體相關(guān)的各語言構(gòu)造子所占比例等。第二類參數(shù)在重要性上不如第--類參數(shù),因為通過對現(xiàn)實本體文件的分析發(fā)現(xiàn)它們只占據(jù)了現(xiàn)實本體文件的很小一部分,但也不能完全忽略這些參數(shù),因為它們畢竟在現(xiàn)實本體文件中出現(xiàn)過。第二類參數(shù)的默認(rèn)值被設(shè)置為所收集的所有本體文件的相應(yīng)參數(shù)的平均值。由表l可以看出,N咖Classes的范圍為(0,20000),SubClsAlpha的范圍為(2,6),LengthAlpha的范圍為(2,6),N咖Properties的范圍為(0,1500),NumObjPro的范圍為(0,420),NumDataPro的范圍為(0,1200)。請參閱圖l,本實施例的具體實施步驟如下步驟l、輸入需生成的本體文件的特征參數(shù)。所述輸入的特征參數(shù)包括生成類的個數(shù)"~~NumClasses,用于Subclassof的冪律分布函數(shù)的alpha值——SubClsAlpha,用于length的冪律分布函數(shù)的alpha值——LengtMlpha,生成屬性的個數(shù)——NumProperties,對象屬性的個數(shù)——NumObjPro,數(shù)據(jù)類型屬性的個數(shù)——NumDataPro;所述Subclassof為子類關(guān)系構(gòu)造子,所述length為類表達(dá)式的長度。根據(jù)輸入的N咖Classes確定NumClasses個命名類,分別命名為Classl,Class2......Classn(n等于NumClasses),根據(jù)輸入的NumObjPro確定N咖0bjPro個對象屬性,分別命名為0P1,0P2......0Pn(n等于NumObjPro),根據(jù)輸入的NumDataPro確定NumDataPro個數(shù)據(jù)類型屬性,分別命名為DP1,DP2……DPn(n等于NumDataPro)。步驟2、生成類,具體如下步驟2.1、根據(jù)Numaasses參數(shù)確定生成類的個數(shù);對每個所要生成的類,根據(jù)步驟1中輸入的SubClsAlpha值,使用冪律分布函數(shù)生成該類的Subclassof個數(shù);根據(jù)步驟1中輸入的LengthAlpha參數(shù),通過冪律分布函數(shù)確定每個類的Subclassof類表達(dá)式的長度——length,length為出現(xiàn)在該類表達(dá)式中類相關(guān)構(gòu)造子及限制相關(guān)構(gòu)造子的總數(shù)目;其中冪律分布函數(shù)為Pr(X>=X)=(k/x)其中,X是否為隨機變量,x為X的值域內(nèi)的某個值,k為定位參數(shù),alpha為斜率參數(shù);所述步驟2.1中l(wèi)ength具體的計算方法為-.(1)如果A是一個原始類表達(dá)式,則Length(A)=0;(2)如果A是B的一個子類——subclass、或等價類——equivalentclass,或者A與B互不相交:——AdisjointWithB,則Length(A)=Length(B)+l;(3)如果A是d,G…至Cn的交集或并集,則Length(A)=Length(d)+Length(C2)+......+Length(C)+1;(4)如果A是C的補集、或A等于V允C、或A等于S兄C、或A等于《WC、或A等于2"凡C,Length(A)-Length(C)+l;其中,Vi.C、3兄C、《成C及2"及.C均代表沒有命名的類;VZ.C的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則屬性R的該實例的值必然是類C的實例,用集合語言表示即-WVy.(x,y)eR—yech的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則所有這樣的實例中存在一個實例,其值是類C的實例,用集合語言表示即{x|3y.(X,y)eRandyec};S成C的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則所有這樣的實例數(shù)目要小于等于n,用集合語言表示即{x|#({y.(x,y)eK})<=n};S"及.C的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則所有這樣的實例數(shù)目要大于等于n,用集合語言表示即{X|#({y.(X,y)eR})>=n};(5)如果A只包含oneOf構(gòu)造子,則Length(A)=l。所述OWL語言構(gòu)造子集合還可以包括equivalentClass構(gòu)造子及disjointWith構(gòu)造子中的一個多兩個;對于equivalentClass構(gòu)造子和disjointWith構(gòu)造子,本方法隨機選擇NumEquCls+N咖Disjoint個命名類。步驟2.2、調(diào)用遞歸函數(shù)f(d印th)=GenerateOWLCo,pt(d印th)生成類,其中d印ttFlength-1,該遞歸函數(shù)的返回值為subclassof所指向的類;其中用到的遞歸函數(shù)f(d印th)-GenerateOWLConc印t(intd印th)的具體計算方法如下.步驟2.2.1、設(shè)LC={LCb…LCJ為類表達(dá)式可以使用的OWL語言構(gòu)造子集合,包括complementof構(gòu)造子、intersectionof構(gòu)造子、un.ionof構(gòu)造子、allvaluesfrom構(gòu)造子、somevaluesfrom構(gòu)造子、hasvalue構(gòu)造子、cardinality構(gòu)造子、maxcardinality構(gòu)造子、fflincardinality構(gòu)造子中的若干個;P={Pb…Pn}為LC上的概率分布,在owl語言構(gòu)造子集合LC中選擇length個語言構(gòu)造子,并且該length個語言構(gòu)造子在LC集合上的概率分布之和為1;每個owl語言構(gòu)造子LCi的概率Pi的值由用戶輸入或設(shè)置為默認(rèn)值,所述默認(rèn)值為所收集的所有本體文件的相應(yīng)參數(shù)的平均值。步驟2.2.2、如果d印th-O,則隨機選擇一個命名類返回;否則執(zhí)行步驟2.2.3;步驟2.2.3、以概率Pj選擇一個構(gòu)造子LCj;(1)若LCj為complementof構(gòu)造子,設(shè)C為GenerateOWLConc印t(d印th-l)的輸出,貝ljGenerateOWlXonc印t(depth)返回complementof(C);(2)若LCj為intersectionof構(gòu)造子或者unionof構(gòu)造子,首先隨機從集合{0,…d印th-1}中生成一個整數(shù)i,設(shè)C1為GenerateOWLConc印t(i)的輸出,C2為GenerateOWLConc印t(depth-i-l)的輸出,GenerateOWLConc印t(depth)返回LCj(CI,C2),即返回C1與C2的交集或并集;(3)若LQ為somevaluesfrom構(gòu)造子、或allvaluesfrom構(gòu)造子、或hasValue構(gòu)造子,首先從對象屬性集合中隨機選擇一個對象屬性O(shè)Pi,對象屬性的個數(shù)由NumObjPro參數(shù)確定,設(shè)C為GenerateOWLConc印t(d印th-1)的輸出,GenerateOWLConc印t(d印th)返回LCj(0Pi,C);(4)若LCj為mincardinality構(gòu)造子、或maxcardinality構(gòu)造子、或cardinality,造子,若d印th為1,首先從對象屬性集合中隨機選擇一個對象屬性構(gòu)造子0P,若cardinality值為1,調(diào)用函數(shù)GenerateOWLConc印t(d印th),返回LCj(1,0P);若d印th木為1,調(diào)用函數(shù)GenerateOWLCardinality(d印th),其返回值在d印th為1的情況下為LCj(1,0P)),其中1Xj為mincardinality構(gòu)造子、maxcardinality構(gòu)造子或cardinality構(gòu)造子;而其返回值在d印th為1的情況下為LCj(l,OP)。步驟3、根據(jù)輸入的屬性個數(shù)(NumProperties)、對象屬性個數(shù)(Num0bjPro)、數(shù)據(jù)類型屬性個數(shù)(NumDataPro)、子屬性關(guān)系個數(shù)(N咖SubPro)、個體個數(shù)(Numlndividuals)生成屬性和個體。其中生成屬性的方法為將屬性相關(guān)構(gòu)造子及子屬性的數(shù)目隨機分布在每個屬性上,屬性的定義域domain和值域range也隨機選擇;生成個體的方法為使用個體的個數(shù)參數(shù)——numofindividuals生成個體。步驟4'、判斷是否需要改變特定輸入?yún)?shù),.如需要,則步驟4;否則執(zhí)行步驟5。步驟4、改變所述需生成本體文件的特征參數(shù),而后轉(zhuǎn)至步驟2。由于通過改變特定輸入?yún)?shù)控制所生成的本體文件的特定特性的漸變,相比使用相互間各方面差異巨大的現(xiàn)實本體文件所作的性能分析,本方法的分析過程更加形式化和可控,對推理機的性能分析也更全面和有效。步驟5、生成模擬現(xiàn)實的本體文件。以下通過一個具體實施例介紹本發(fā)明生成模擬現(xiàn)實的本體文件的方法。使用本發(fā)明方法生成50個本體文件,輸入?yún)?shù)如表2所示。對于下表中未涉及的參數(shù),其值為tablel中的默認(rèn)值。使用所生成的這50個本體文件以及ReasonerBenchmarkersystem(來自于論文FrameworkForanAutomatedComparisonofDescriptionLogicReasoners-InProc.ofthe2006InternationalSemanticWebConference(ISWC2006),Springer,2006.TomGardiner,DmitryTsarkov,IanHorrocks,論文名為《一個用于自動比較描述邏輯推理機的系統(tǒng)》,發(fā)表于2006年國際語義網(wǎng)會議上)。本發(fā)明對3個推理機(FaCT++(vl.1.4),Pellet(v1.4)andRacerPro(vl.9.0))做了一個簡單的性能分析。NumClassesSubClsAlphaLengthAlphaNumEquClsNumDisjoint50(以20為單位遞增)2.853.7000NumPropertiesNumObjProNumDataProNumlndividuals2015150表2、輸入?yún)?shù)三個推理機的運行結(jié)果如表3所示,從表3中可發(fā)現(xiàn)差不多一半的本體文件在3(^++下超時了,但是與RacerPro和Pellet相比,F(xiàn)aCT++幾乎不會內(nèi)存溢出(outofmemory)。RacerPro從不超時,在時間限制之前它就會outofmemory或因為某些錯誤而失敗(fail)掉。Pellet只在3個本體上失敗掉,這也顯示了pellet的本體修復(fù)能力。尺easonerSuccessTime0ut0ut0fMeraoryFailFaCT++232025RacerPro2801012Pellet278123表3、運行結(jié)果請參閱圖3,圖3為三個推理機的時間性能比較,其中Y軸為對數(shù)坐標(biāo),單位為秒,X軸為本體文件的編號。清除那些在3個推理機上均失敗的本體文件,并將所剩下的本體文件按n咖berofclasses由低至高排序,得到了如圖3所示的3個推理機的性能分析結(jié)果。從圖3中可以看到平均而言&"++使用了最少的時伺,而pellet使用了最多的時間。這當(dāng)然也與pellet不僅僅只做classification(分類)和consistencychecking(—致性檢測)有關(guān)。另外可以看到的一點就是,盡管波動很大,圖3的三條曲線顯示了在numberofclasses線性增長的情況下,處理相應(yīng)本體所需時間是指數(shù)級增長的,這也表明不管推理機做了哪些優(yōu)化,所采用的推理算法的復(fù)雜度依然是指數(shù)級別的。使用本發(fā)明方法所生成的本體文件可以做出一個更加詳盡的分析。例如可以改變subclass及l(fā)ength的alpha值,改變不同的語言構(gòu)造子所占比例,然后分析推理機相應(yīng)性能的改變,這些分析結(jié)果可以反映出某個推理機對于某個參數(shù)的敏感程度。從上述一個簡單的性能分析過程可以看出本發(fā)明所介紹的本體文件生成方法的優(yōu)點所在首先,由于本生成方法所生成的本體文件模擬了現(xiàn)實本體文件的特征,相比使用某種特定模式或使用隨機方式生成的本體文件進(jìn)行的性能分析,本方法所得分析結(jié)果更具有說服力。其次,由于可以通過改變特定輸入?yún)?shù)控制所生成的本體文件的特定特性的漸變,相比使用相互間各方面差異巨大的現(xiàn)實本體文件所作的性能分析,本方法的分析過程更加形式化和可控,對推理機的性能分析也更全面和有效。以上實施例僅用以說明而非限制本發(fā)明的技術(shù)方案。不脫離本發(fā)明精神和范圍的任何修改或局部替換,均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。權(quán)利要求1、一種生成模擬現(xiàn)實的本體文件的方法,其特征在于所述本體文件通過若干OWL語言構(gòu)造子建立描述表達(dá)式,所述若干OWL語言構(gòu)造子包括類相關(guān)構(gòu)造子集合、屬性相關(guān)構(gòu)造子集合、限制相關(guān)構(gòu)造子集合;該方法包括以下步驟步驟1、輸入需生成的本體文件的特征參數(shù),所述特征參數(shù)包括生成類的個數(shù)——NumClasses,用于Subclassof的冪律分布函數(shù)的alpha值——SubClsAlpha,用于length的冪律分布函數(shù)的alpha值——LengthAlpha,生成屬性的個數(shù)——NumProperties,對象屬性的個數(shù)——NumObjPro,數(shù)據(jù)類型屬性的個數(shù)——NumDataPro;所述Subclassof為子類關(guān)系構(gòu)造子,所述length為類表達(dá)式的長度;步驟2、生成類,具體如下步驟2.1、根據(jù)NumClasses參數(shù)確定生成類的個數(shù);對每個所要生成的類,根據(jù)步驟1中輸入的SubClsAlpha值,使用冪律分布函數(shù)生成該類的Subclassof個數(shù);根據(jù)步驟1中輸入的LengthAlpha參數(shù),通過冪律分布函數(shù)確定每個類的Subclassof類表達(dá)式的長度——length,length為出現(xiàn)在該類表達(dá)式中類相關(guān)構(gòu)造子及限制相關(guān)構(gòu)造子的總數(shù)目;其中冪律分布函數(shù)為Pr(X>=x)=(k/x)alpha;其中,X是否為隨機變量,x為X的值域內(nèi)的某個值,k為定位參數(shù),alpha為斜率參數(shù);步驟2.2、調(diào)用遞歸函數(shù)f(depth)=GenerateOWLConcept(depth)生成類,其中depth=length-1,該遞歸函數(shù)的返回值為subclassof所指向的類;步驟3、根據(jù)輸入的屬性個數(shù)、對象屬性個數(shù)、數(shù)據(jù)類型屬性個數(shù)、子屬性關(guān)系個數(shù)、個體個數(shù)生成屬性和個體。2、根據(jù)權(quán)利要求l所述的生成模擬現(xiàn)實的本體文件的方法,其特征在于每個owl語言構(gòu)造子LCi的概率Pi的值由用戶輸入或設(shè)置為默認(rèn)值,所述默認(rèn)值為所收集的所有本體文件的相應(yīng)參數(shù)的平均值。3、根據(jù)權(quán)利要求l所述的生成模擬現(xiàn)實的本體文件的方法,其特征在于所述步驟2—2中用到的遞歸函數(shù)f(d印th^GenerateOWLConc印t(intd印th)的具體計算方法如下步驟2.2.1、設(shè)LC={Ld,…LOJ為類表達(dá)式可以使用的OWL語言構(gòu)造子集合,包括complementof構(gòu)造子、intersectionof構(gòu)造子、unionof構(gòu)造子、allvaluesfrom構(gòu)造子、somevaluesfrom構(gòu)造子、hasvalue構(gòu)造子、cardnality構(gòu)造子、maxcardinality構(gòu)造子、mincardinality構(gòu)造子中的若干個;P={P,,Pn}為LC上的概率分布,在owl語言構(gòu)造子集合LC中選擇length個語言構(gòu)造子,并且該length個語言構(gòu)造子在LC集合上的概率分布之和為1;.步驟2.2.2、如果deptb0,則隨機選擇一個命名類返回;否則執(zhí)行步驟2.2.3;步驟2.2.3、以概率Pj選擇一個構(gòu)造子LCj;若LCj為complementof構(gòu)造子,設(shè)C為GenerateOWLConc印t(d印th-1)的輸出,則GenerateOWLXonc印t.(d印tii)返回complementof(C);若LCj為intersectionof構(gòu)造子或者unionof構(gòu)造子,首先隨機從集合(O,…d印th-1}中生成一個整數(shù)i,設(shè)Cl為GenerateOWLConc印t(i)的輸出,C2為GenerateOWLConc印t(d印th-i-1)的輸出,GenerateOWLConc印t(d印th)返回LCj(Cl,C2),即返回C1與C2的交集或并集;若1Xj為somevaluesfrom,構(gòu)造子、或allvaluesfrom構(gòu)造子、或hasValue構(gòu)造子,首先從對象屬性集合中隨機選擇一個對象屬性O(shè)Pi,對象屬性的個數(shù)由NumObjPro參數(shù)確定,設(shè)C為GenerateOWLConc印t(d印th-1)的輸出,GenerateOWLConc印t(d印th)返回LCj(0Pi,C);若IXj為mincardinality構(gòu)造子、或maxcardinality構(gòu)造子、或cardinality構(gòu)造子,若d印th為l,首先從對象屬性集合中隨機選擇一個對象屬性構(gòu)造子OP,若cardinality值為l,調(diào)用函數(shù)GenerateOWLConc印t(d印th),返回LCj(1,0P);若d印th不為1,調(diào)用函數(shù)GenerateOWLCardinality(d印th),其返回值在d印th為l的情況下為LCj(l,0P)),其中LC』為mincardinality構(gòu)造子、maxcardinality構(gòu)萆子或cardinality構(gòu)造子;而其返回值在d印th為l的情況下為LCj(l,OP)。4、根據(jù)權(quán)利要求1所述的生成模擬現(xiàn)實的本體文件的方法,其特征在于所述步驟2.1中l(wèi)ength具體的計算方法為如果A是一個原始類表達(dá)式,則Length(A)=0;如果A是B的一個子類一~^subclass、或等價類——equivalentclass,或者A與B互不相交-AdisjointWithB,貝ijLength(A)=Length(B)+l;如果A是C!,C2"'至C的交集或并集,貝ljLength(A)=Length(d)十Length(C2)+......+Length(Cn)+1;如果A是C的補集、或A等于Vi.C、或A等于、或A等于S欣C、或A等于2"T.C,Length(A)=Length(C)+l;其中,W'C、3兄C、S成C及2威.C均代表沒有命名的類;VJ,C的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則屬性R的該實例的值必然是類C的實例,用集合語言表示即{x|Vy.(x,y)eR—yech3兄C的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則所有這樣的實例中存在一個實例,其值是類C的實例,用集合語言表示即{x|3y.(x,y)ERandyec};S成C的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則所有這樣的實例數(shù)目要小于等于n,用集合語言表示即{x|#({y.(X,y)eR})<=n};2W/,C的所有實例必須滿足如果該實例出現(xiàn)在屬性R的某個實例中,則所有這樣的實例數(shù)目要大于等于n,用集合語言表示即{x|#({y.(X,y)eR})>=n};如果A只包含one0f構(gòu)造子,則Length(A)=1。5、根據(jù)權(quán)利要求1所述的生成模擬現(xiàn)實的本體文件的方法,其特征在于所述步驟3中生成屬性的方法為將屬性相關(guān)構(gòu)造子及子屬性的數(shù)目隨機分布在每個屬性上,屬性的定義域domain和值域range也隨機選擇。6、根據(jù)權(quán)利要求1所述的生成模擬現(xiàn)實的本體文件的方法,其特征在于所述步驟3中生成個體的方法為使用個體的個數(shù)參數(shù)——numofindividuals生成個體。7、根據(jù)權(quán)利要求3所述的生成模擬現(xiàn)實的本體文件的方法,其特征在于所述步驟2.2.1中,所述OWL語言構(gòu)造子集合還可以包括equivalentClass構(gòu)造子及disjointW]'th構(gòu)造子中的一個多兩個;對于equivalentClass構(gòu)造子和dis]'ointWith構(gòu)造子,本方法隨機選擇NufflEquCls+NuraDisjoint個命名類。8、根據(jù)權(quán)利要求3所述的生成模擬現(xiàn)實的本體文件的方法,其特征在于所述類相關(guān)構(gòu)造子集合包括subclassof構(gòu)造子、equivalentclass構(gòu)造子、intersectionof構(gòu)造子、unionof構(gòu)造子、complementof構(gòu)造子、oneof構(gòu)造子;屬性相關(guān)構(gòu)造子集合包括subpropertyof構(gòu)造子、transitiv印roperty構(gòu)造子、functionalproperty構(gòu)造子、inverseof構(gòu)造子、domain構(gòu)造子、range構(gòu)造子;限制相關(guān)構(gòu)造子集合包括somevaluesfrom構(gòu)造子、allvaluesfrom構(gòu)造子、hasvalue構(gòu)造子、maxcardinality構(gòu)造子、mincardinality構(gòu)造子。9、根據(jù)權(quán)利要求1所述的生成模擬現(xiàn)實的本體文件的方法,其特征在于所述步驟1中NumClasses的范圍為(0,20000),SubClsAlpha的范圍為(2,6),LengthAlpha的范圍為(2,6),NumProperties的范圍為(0,1500),NumObjPro的范圍為(0,420),NumDataPro的范圍為(0,1200)。10、根據(jù)權(quán)利要求1所述的生成模擬現(xiàn)實的本體文件的方法,其特征在于所述方法還包括步驟4、改變所述需生成本體文件的特征參數(shù),而后執(zhí)行步驟2及步驟3。全文摘要本發(fā)明揭示了一種生成模擬現(xiàn)實的本體文件的方法,所述本體文件通過若干OWL語言構(gòu)造子建立描述表達(dá)式,所述若干OWL語言構(gòu)造子包括類相關(guān)構(gòu)造子集合、屬性相關(guān)構(gòu)造子集合、限制相關(guān)構(gòu)造子集合;該方法包括以下步驟步驟1.輸入需生成的本體文件的特征參數(shù);步驟2.生成類步驟2.1.根據(jù)輸入的特征參數(shù)確定生成類的個數(shù)、類的Subclassof個數(shù)、類表達(dá)式的長度;步驟2.2.調(diào)用遞歸函數(shù)f(depth)=GenerateOWLConcept(depth)生成類,其中depth=length-1;步驟3.根據(jù)輸入的屬性個數(shù)、對象屬性個數(shù)、數(shù)據(jù)類型屬性個數(shù)、子屬性關(guān)系個數(shù)、個體個數(shù)生成屬性和個體。本方法所得分析結(jié)果更具有說服力,分析過程更加形式化和可控,對推理機的性能分析也更全面和有效。文檔編號G06F17/30GK101251849SQ20081003546公開日2008年8月27日申請日期2008年4月1日優(yōu)先權(quán)日2008年4月1日發(fā)明者釧葉,張大陸申請人:同濟大學(xué)