0
本文作者: AI研習(xí)社-譯站 | 2020-11-21 10:17 |
譯者:AI研習(xí)社(季一帆)
雙語(yǔ)原文鏈接:Exploring FIBO Using the Inference and Property Path Features of GraphDB
本體或知識(shí)圖譜可不是隨拿隨用的,使用者需要做出相應(yīng)的努力才能發(fā)揮其作用,使其成為有效可用的工具。我們知道,領(lǐng)域知識(shí)的用處極大,然而這些知識(shí)卻總是不完備的,將領(lǐng)域知識(shí)表示為圖中的數(shù)據(jù)可不容易。在這個(gè)過(guò)程中,關(guān)鍵在于將你掌握的領(lǐng)域知識(shí)完美匹配到圖中的知識(shí)表示。在本文中,我們將就GraphDB特性進(jìn)行一系列討論,其中就包括上述的知識(shí)匹配/對(duì)齊。
金融業(yè)業(yè)務(wù)本體(FIBO)是由企業(yè)數(shù)據(jù)管理委員會(huì)(EDMC)開(kāi)發(fā)的金融行業(yè)概念模型,至今仍由EDMC支持著FIBO的維護(hù)和開(kāi)發(fā)。FIBO的目標(biāo)是在金融業(yè)務(wù)數(shù)據(jù)構(gòu)件的描述中,提供獨(dú)立于數(shù)據(jù)構(gòu)件的精確含義。具體而言,F(xiàn)IBO包含構(gòu)建、擴(kuò)展及集成金融業(yè)務(wù)應(yīng)用所需的實(shí)體和關(guān)聯(lián)信息。由于FIBO基于RDF(S)和OWL,因此可以使用SPARQL和OWL推理進(jìn)行分析。本文應(yīng)用的版本(2020第2季度)包含以下內(nèi)容:
122個(gè)命名空間,表示模塊結(jié)構(gòu);
1542類(lèi)別
1328概念
535斷言
自2017年首次發(fā)布FIBO以來(lái),受益于金融業(yè)的廣泛參與,該標(biāo)準(zhǔn)已取得廣大發(fā)展,并符合許多現(xiàn)有標(biāo)準(zhǔn)。從一個(gè)稱(chēng)為“語(yǔ)義知識(shí)庫(kù)”的Excel工作簿開(kāi)始,F(xiàn)IBO已經(jīng)發(fā)展成為基于RDF和OWL的復(fù)雜本體。在這個(gè)過(guò)程中,還發(fā)展了其他一些意外成果,包括本體工程的實(shí)踐指南,例如使用傳統(tǒng)基于文本的版本控制系統(tǒng)的RDF文本穩(wěn)定性,通過(guò)與對(duì)象管理組(OMG)的密切關(guān)系實(shí)現(xiàn)嚴(yán)格的元數(shù)據(jù)標(biāo)準(zhǔn),以及對(duì)OWL推理能力的使用。更多細(xì)節(jié)可見(jiàn)此處。
FIBO的內(nèi)容多種多樣,其中,RDF和OWL本體是包含業(yè)務(wù)知識(shí)的核心實(shí)體。這些業(yè)務(wù)知識(shí)可表示為RDF-XML、Turtle、JSON-LD和N-Quads/N-Triples等形式。此外:
FIBO詞匯表基于SKOS分類(lèi)法,用于RDF-XML、Turtle和JSON-LD序列化的分類(lèi)管理。
FIBO數(shù)據(jù)字典有.csv和.xlsx格式,包含F(xiàn)IBO中的操作類(lèi)及其附帶屬性。
FIBO-DM是一種企業(yè)數(shù)據(jù)模型,可用作SAP PowerDesigner概念和邏輯數(shù)據(jù)模型。
在本文中,我們重點(diǎn)關(guān)注FIBO本體和詞匯表。由于它們都使用RDF編碼,因此可使用SPARQL和OWL推理進(jìn)行分析。
FIBO詞匯表中的所有概念都是由FIBO本體中的實(shí)體定義的。因此,這些概念包含有豐富的上下文信息,在應(yīng)用中使用該詞匯表會(huì)同時(shí)為用戶提供這些信息。如,fibo-v-be:DomesticUltimateParent 由實(shí)體 fibo-be-oac-cctl:DomesticUltimateParent 所定義。
FIBO詞匯表中的概念由 skos:broader 和 skos:narrower 兩種不同層次的謂詞進(jìn)行定義。在上圖中,Total Controlling Interest Party 是比 Domestic Ultimate Parent 更為寬泛的概念。在已公布的詞匯表中,僅使用了 skos:broader。如 SKOS 規(guī)范所述,“skos:broader 和 skos:narrower 彼此相反。當(dāng)概念X比概念Y表示更廣泛時(shí),意味著Y相對(duì)是X是更小、更準(zhǔn)確的概念“。因此,從 fibo-v-be:TotalControllingInterestParty 到 fibo-v-be:DomesticUltimateParent 存在 skos:narrower 的關(guān)系。
如果給定詞匯表的層次結(jié)構(gòu)和本體的層次結(jié)構(gòu),那么層次結(jié)構(gòu)之間的關(guān)系是什么呢?fibo-be-oac-cctl:DomesticUltimateParent 的每一個(gè)父類(lèi)在詞匯中都有對(duì)應(yīng)概念嗎?這些概念是否表達(dá)了skos:broaderTransitive/skos:narrowerTransitive 與 fibo-v-be:DomesticUltimateParent 的層次結(jié)構(gòu)?在本文的其余部分,我們將借助GraphDB解答這些問(wèn)題。
GraphDB是Ontotext開(kāi)發(fā)的一個(gè)可擴(kuò)展、高性能的三元組數(shù)據(jù)庫(kù),其前身是OWLIM。當(dāng)前的9.4.1版本支持RDF1.1、SPARQL 1.1和OWL2推理,此外還支持其他許多用于索引、可視化、分析和聯(lián)合工具。同時(shí),還提供有web訪問(wèn)的API(包括用于終端的SPARQL協(xié)議),因此可以結(jié)合任何編程語(yǔ)言使用。在下一節(jié)會(huì)展示該數(shù)據(jù)庫(kù)對(duì)SPARQL1.1,OWL2推理及其規(guī)范屬性路徑的支持。
首先通過(guò)GraphDB創(chuàng)建一個(gè)存儲(chǔ)庫(kù),通過(guò)導(dǎo)航窗口Setup -> Repositories > Create Repository 等步驟實(shí)現(xiàn)。其中,表單關(guān)鍵字包括:
Repository ID,本例中是 FIBO。
Ruleset,本例中選擇下拉菜單中的 OWL 2-RL (Optimized)。
選中“Use context index”,因?yàn)镕IBO本體包含反映本體模塊結(jié)構(gòu)的命名圖。
其余字段使用默認(rèn)值即可,以下為屏幕截圖:
接下來(lái)導(dǎo)入RDF圖,有以下要求:
從EDMC FIBO本體站點(diǎn)下載FIBO Production zipped N-Quads發(fā)行版。本文使用為2020年第2季度版。
從EDMC FIBO詞匯站點(diǎn)下載FIBO Production zipped N-Quads發(fā)行版。本文使用為2020年第2季度版。
從W3C獲取所需的SKOS簡(jiǎn)單知識(shí)管理系統(tǒng)http://www.w3.org/2004/02/skos/core#。因?yàn)閃3C具有HTTP303重定向功能,在web中瀏覽該URI會(huì)自動(dòng)生成HTML,并在導(dǎo)入GraphDB時(shí)生成RDF。
為了提高效率,最好將FIBO下載到本地磁盤(pán),存儲(chǔ)到GraphDB的import目錄,而SKOS直接通過(guò)internet下載。
從磁盤(pán)導(dǎo)入詞匯表需要1秒,導(dǎo)入本體需要1分10秒,通過(guò)互聯(lián)網(wǎng)導(dǎo)入sko需要2秒。之所以速度相差之大,是因?yàn)樵趯?dǎo)入過(guò)程中要執(zhí)行推斷操作。詞匯表基于開(kāi)放SKOS,借助生成新三元組的結(jié)構(gòu)元素,詞匯表和SKOS的導(dǎo)入訓(xùn)練。而由于在本體構(gòu)建過(guò)程中OWL的復(fù)雜性,消耗了較長(zhǎng)時(shí)間。最終,導(dǎo)入圖譜的106187條顯式語(yǔ)句生成405493條推斷語(yǔ)句,總計(jì)511680條語(yǔ)句。需要注意的是,所有推斷語(yǔ)句存在于默認(rèn)圖,同時(shí)該圖還包含命名圖中的所有語(yǔ)句。
使用GraphDB Workbench的Explore菜單中的類(lèi)層次結(jié)構(gòu)圖能夠獲得本體概述,該圖將子類(lèi)表示為嵌套在父類(lèi)中的圓:
OWL 2支持許多不同的推理機(jī)制,GraphDB為其中的一些程序語(yǔ)言配置文件提供支持。在GraphDB中,存儲(chǔ)相關(guān)的語(yǔ)言配置文件由規(guī)則集合確定。無(wú)論是通過(guò)SPARQL插入數(shù)據(jù)還是直接導(dǎo)入圖譜,只要將三元組添加到知識(shí)庫(kù)中,就會(huì)調(diào)用專(zhuān)門(mén)的規(guī)則引擎——reasoner。除非不進(jìn)行推理操作,否則任何規(guī)則集都通過(guò)額外的隱式三元組實(shí)現(xiàn)并存儲(chǔ),而不是顯式插入的三元組。GraphDB的特殊指出在于,提交SPARQL DELETE操作后,將回收無(wú)效的推斷語(yǔ)句。此外,存儲(chǔ)內(nèi)容和選定規(guī)則集決定了新建三元組的屬性。例如,如果兩個(gè)謂詞的定義表明它們是相反的,那么當(dāng)其中一個(gè)謂詞出現(xiàn)在一個(gè)三元組時(shí),將創(chuàng)建一個(gè)相應(yīng)逆屬性的三元組。
在本文的FIBO應(yīng)用中,我們選擇了OWL2RL語(yǔ)言配置文件,該配置適用于對(duì)可擴(kuò)展推理有一定要求,同時(shí)保留一定表達(dá)能力的應(yīng)用。我們還用RDF Schema(RDFS)規(guī)則集加載FIBO,該規(guī)則集非常簡(jiǎn)單,只包含rdfs:subPropertyOf, rdfs:subClassOf, rdfs:domain和rdfs:range。正如預(yù)期的那樣,使用RDFS加載FIBO本體的NQ文件只需不到一秒鐘,而使用OWL2RL則需要一分鐘以上。但是,RDFS只推斷出170804個(gè)隱式語(yǔ)句,比OWL2RL少2倍多,一些重要的推論被忽略。例如,執(zhí)行以下查詢將會(huì)提取出OWL2RL知識(shí)庫(kù)存在但RDFS缺失的子類(lèi)關(guān)系:
SELECT * WHERE { { SERVICE <repository:FIBO-RL> { ?sub_class rdfs:subClassOf ?super_class FILTER(?sub_class != ?super_class) FILTER(?super_class != owl:Thing) FILTER(contains(str(?sub_class),'fibo') && contains(str(?super_class),'fibo')) } } FILTER NOT EXISTS { ?sub_class rdfs:subClassOf ?super_class } } |
GraphDB內(nèi)部聯(lián)合能夠?qū)崿F(xiàn)跨知識(shí)庫(kù)的相同實(shí)例數(shù)據(jù)高效查詢。以下是RDFS推理庫(kù)缺失的子類(lèi)關(guān)系:
究其原因,是因?yàn)镽DFS推理器無(wú)法處理概念的定義。例如,Rate和Ratio類(lèi)被定義為與以下語(yǔ)句等價(jià):
fibo-fnd-qt-qtu:Rate | owl:equivalentClass | fibo-fnd-utl-alx:Ratio |
在OWL2的所有語(yǔ)言配置文件中,這表示它們是彼此的子類(lèi),但RDFS語(yǔ)義卻不是如此。
屬性路徑是SPARQL的特殊屬性,通過(guò)屬性路徑,能夠在RDF圖中跨不同三元組的節(jié)點(diǎn)。三元組是SPARQL中最簡(jiǎn)單的屬性路徑。
在FIBO本體中,類(lèi)層次結(jié)構(gòu)由及物謂詞表示,即rdfs:subClassOf。FIBO詞匯概念的層次結(jié)構(gòu)由不及物謂詞表示,如skos:broader。這意味著,本體的類(lèi)層次結(jié)構(gòu)與常用編程語(yǔ)言的層次結(jié)構(gòu)的概念類(lèi)似,如java、python和C++,以及UML等規(guī)范語(yǔ)言。類(lèi)層次結(jié)構(gòu)被映射到謂詞,然而由于無(wú)法精準(zhǔn)表示預(yù)期,映射是有損的,謂詞概念一般無(wú)法完整表達(dá)原有語(yǔ)義。
至于詞匯表的使用,則是為了給領(lǐng)域特定詞匯提供更廣泛的上下文。因此,使用者必須區(qū)分他們的詞匯結(jié)構(gòu)和FIBO的詞匯結(jié)構(gòu)。因?yàn)閷哟谓Y(jié)構(gòu)隱式地反映了本體的及物類(lèi)結(jié)構(gòu),所以任何情況下進(jìn)行集成都要求外部詞匯表與隱式FIBO層次結(jié)構(gòu)相關(guān)聯(lián)。
由于FIBO本體層次結(jié)構(gòu)實(shí)際上是要映射到skos:broaderTransitive和skos:narrower_transitive謂詞,因此通過(guò)推理可以緩解映射問(wèn)題。將GraphDB知識(shí)庫(kù)與OWL2RL (Optimized) 規(guī)則集配合使用,能夠創(chuàng)建所有必需三元組。SKOS語(yǔ)義屬性的頂層結(jié)構(gòu)是skos:semanticRelation,該謂詞提供了可視化表示和詞匯表導(dǎo)航所必需的結(jié)構(gòu)。skos:broader 和 skos:narrower三元組可用于降低對(duì)FIBO的本體需求。
skos:broader 和 skos:narrower可用于FIBO的高層本體,至于選擇何種方式,由使用者自行決定,可以單獨(dú)應(yīng)用,也可以按一定策略結(jié)合SPARQL使用。
對(duì)兩種層次結(jié)構(gòu)的lint check驗(yàn)證了屬性路徑和推斷的實(shí)用性。每個(gè)詞匯概念都由本體中的實(shí)體定義,那么哪些實(shí)體由于詞匯表沒(méi)有相應(yīng)詞匯而進(jìn)行了類(lèi)層次結(jié)構(gòu)的映射呢?
利用SPAERL查詢語(yǔ)句,查找與類(lèi)層次結(jié)構(gòu)的概念槽子類(lèi)相關(guān)聯(lián)、但與FIBO詞匯表的概念層次結(jié)構(gòu)缺乏關(guān)聯(lián)的類(lèi)別。
Lint查詢
SELECT DISTINCT ?parentEntity where { ?concept a skos:Concept ; rdfs:isDefinedBy ?entity . # Every concept is defined by an entity ?entity rdfs:subClassOf ?parentEntity . # Exclude restrictions FILTER(ISIRI(?parentEntity)) # Only consider resources in the FIBO namespaces FILTER(CONTAINS(str(?parentEntity),'fibo')) FILTER NOT EXISTS { # Find where there is no semantic relation # between concept and related concept ?relatedConcept rdfs:isDefinedBy ?parentEntity . # Consider the entire set of # related concepts in the hierarchy ?concept (skos:semanticRelation)+ ?relatedConcept } } |
至于詞匯表和本體之間的屬性路徑,一部分依賴于skos:semanticRelation,另一部分依賴于rdfs:subClassOf。
skos:semanticRelation后面的加號(hào)(+)表示此謂詞可用作與主語(yǔ)通過(guò)rdfs:subClassOf匹配的一個(gè)或多個(gè)謂語(yǔ)之間的路徑。此外,在屬性路徑中可以執(zhí)行其他許多操作,本文不再討論,有興趣的讀者請(qǐng)查閱SPARQL 1.1 Query language W3C Recommendation 21 March 2013。
至此,我們得到一個(gè)知識(shí)庫(kù),該庫(kù)包含F(xiàn)IBO本體和FIBO詞匯表的顯式和隱式RDF語(yǔ)句。執(zhí)行l(wèi)int查詢將會(huì)生成不滿足上述完整性檢查的類(lèi)列表:父類(lèi)應(yīng)該鏈接到詞匯表中與相應(yīng)子類(lèi)相關(guān)的概念。
parentEntity |
---|
fibo-der-drc-swp:SwapLifecycleEventIdentifier |
fibo-fbc-fct-bc:BusinessCenterCodeScheme |
fibo-fbc-fct-breg:RegistrationAuthorityCode |
fibo-fbc-fct-fse:FinancialServiceProviderIdentifierScheme |
fibo-fbc-fct-rga:RegulationIdentificationScheme |
fibo-fbc-fct-rga:RegulationIdentifier |
fibo-fbc-fct-usjrga:FederalReserveDistrictIdentifier |
fibo-fbc-fi-fi:SecuritiesTransactionIdentifier |
fibo-fnd-arr-arr:CollectionConstituent |
fibo-fnd-arr-arr:DatedCollectionConstituent |
fibo-fnd-arr-arr:DatedStructuredCollection |
fibo-fnd-arr-arr:Scheme |
fibo-fnd-arr-arr:StructuredCollection |
fibo-fnd-dt-fd:CombinedDateTime |
fibo-fnd-gao-gl:Goal |
fibo-fnd-law-lcap:LicenseIdentifier |
fibo-fnd-oac-ctl:Control |
fibo-fnd-oac-oac:OwnershipAndControl |
fibo-fnd-oac-own:Ownership |
fibo-fnd-pas-pas:ProductIdentifier |
fibo-fnd-plc-adr:RegionSpecificIdentifier |
fibo-fnd-plc-loc:County |
fibo-fnd-plc-loc:FederalCapitalArea |
fibo-fnd-plc-loc:FederalState |
fibo-fnd-plc-loc:Parcel |
fibo-fnd-plc-uspsa:DeliveryAddressCodeSet |
fibo-fnd-plc-uspsa:DeliveryPointCodeSet |
fibo-fnd-plc-uspsa:ZipCodeScheme |
fibo-fnd-plc-vrt:NotionalPlace |
fibo-fnd-pty-pty:Situation |
fibo-fnd-rel-rel:Reference |
fibo-fnd-utl-alx:StatisticalAreaIdentifier |
fibo-sec-sec-iss:SecurityOfferingDistributionType |
FIBO是本體工程一個(gè)非常復(fù)雜的展示,需要由具有廣泛金融知識(shí)以及具有豐富的本體及其管理知識(shí)的人員執(zhí)行,只靠閱讀代碼是不夠用的。為了最好的利用FIBO,需要借助GraphDB這樣強(qiáng)大的工具,以充分利用FIBO的豐富知識(shí)來(lái)輔助開(kāi)發(fā)。本文證明,在FIBO執(zhí)行推理時(shí),OWL2RL是比RDFS更好的選擇。同時(shí),結(jié)合推理和屬性路徑能夠檢測(cè)到一些結(jié)構(gòu)性問(wèn)題,這些技術(shù)的研究為大型、復(fù)雜的本體和知識(shí)圖譜提供質(zhì)量保證。
之后,我們會(huì)陸陸續(xù)續(xù)發(fā)布一系列相關(guān)文章,對(duì)如何使用圖數(shù)據(jù)庫(kù)引擎和語(yǔ)義技術(shù)來(lái)處理金融服務(wù)部門(mén)的本體和數(shù)據(jù)進(jìn)行介紹。
AI研習(xí)社是AI學(xué)術(shù)青年和AI開(kāi)發(fā)者技術(shù)交流的在線社區(qū)。我們與高校、學(xué)術(shù)機(jī)構(gòu)和產(chǎn)業(yè)界合作,通過(guò)提供學(xué)習(xí)、實(shí)戰(zhàn)和求職服務(wù),為AI學(xué)術(shù)青年和開(kāi)發(fā)者的交流互助和職業(yè)發(fā)展打造一站式平臺(tái),致力成為中國(guó)最大的科技創(chuàng)新人才聚集地。
如果,你也是位熱愛(ài)分享的AI愛(ài)好者。歡迎與譯站一起,學(xué)習(xí)新知,分享成長(zhǎng)。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。