本發(fā)明屬于XBRL技術和會計信息化技術領域,尤其涉及一種基于語義的XBRL數(shù)據(jù)到OWL數(shù)據(jù)的轉(zhuǎn)換方法。
背景技術:
可擴展商業(yè)報告語言(eXtensible Business Reporting Language,XBRL)是XML標記語言在商業(yè)報告領域的應用,自1998年誕生以來經(jīng)過了不斷的發(fā)展與完善,其技術體系已經(jīng)趨于穩(wěn)定,并成為了商業(yè)報告領域的技術標準。XBRL繼承了XML的靈活性、可擴展性和跨平臺性等優(yōu)點,充分利用了XML命名空間、SCHEMA、XLink和XPath等技術,實現(xiàn)了對財務報告概念、概念間的關系以及事實數(shù)據(jù)的標記和建模。XBRL采用一種扁平的數(shù)據(jù)結(jié)構(gòu),在Schema文件中定義財務報告的概念,在鏈接庫文件中定義概念間關系,形成了財務報告領域的“業(yè)務辭典”,即XBRL財務報告分類標準。
隨著XBRL技術在全球范圍內(nèi)的廣泛應用,XBRL數(shù)據(jù)量也在急速增長。包括中國、美國在內(nèi)的多個國家已頒布和實施了各自的 XBRL分類標準和XBRL財務報告報送,基于此的XBRL數(shù)據(jù)分析往往會面臨處理異構(gòu)XBRL分類標準產(chǎn)生的XBRL實例文檔的問題。導致XBRL數(shù)據(jù)異構(gòu)的主要原因如下:一,世界各地在制定分類標準的時候,所依據(jù)的會計制度和政策不同,采用的技術路線和模型架構(gòu)不同,導致依照各地不同分類標準制定的實例文檔之間并不具備很強的互操作性;二,同一地區(qū)的分類標準也存在新舊版本的更替問題,會計概念或關系的變更也會影響不同會計期間財務報告的互操作性;三,XBRL技術強大的可擴展性雖然在極大程度上滿足了財務報告編制者全面披露企業(yè)財務信息的需求,但不當和過度的擴展會嚴重限制XBRL數(shù)據(jù)的可比較性和互操作性。
為了從語義層面實現(xiàn)跨分類標準的數(shù)據(jù)分析,通常需要建立不同分類標準之間的映射關系。如果有 N個不同的分類標準,就需要建立 N(N-1)/2個數(shù)據(jù)轉(zhuǎn)換模板,這無疑大大增加了海量XBRL數(shù)據(jù)管理和查詢的難度。
技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于語義的XBRL數(shù)據(jù)到OWL數(shù)據(jù)的轉(zhuǎn)換方法,旨在解決現(xiàn)有技術在語義層面不能實現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換,需要建立不同分類標準之間的映射關系和需要建立多個數(shù)據(jù)轉(zhuǎn)換模板,大大增加了海量XBRL數(shù)據(jù)管理和查詢的難度的問題。
本發(fā)明是這樣實現(xiàn)的,一種基于語義的XBRL數(shù)據(jù)到OWL數(shù)據(jù)的轉(zhuǎn)換方法,所述基于語義的XBRL數(shù)據(jù)到OWL數(shù)據(jù)的轉(zhuǎn)換方法包括:
(1)基于語義網(wǎng)技術構(gòu)建XBRL財務報告和事實數(shù)據(jù)語義元模型:首先利用OWL本體編輯工具將XBRL語義元模型創(chuàng)建成OWL本體;然后將XBRL技術規(guī)范的模式文件中定義的數(shù)據(jù)類型創(chuàng)建成OWL本體形式;
(2)解析XBRL分類標準構(gòu)建其XML信息集:XML信息集是在解析了XBRL分類標準的模式文件和鏈接庫文件之后生成的攜帶語義信息的XML樹模型,用于保證轉(zhuǎn)換過程中語義信息的完整性;
(3)解析XBRL實例文檔構(gòu)建實例文檔信息集: XML信息集是在解析了XBRL分類標準和實例文檔之后生成的XML樹模型,在事實數(shù)據(jù)的屬性中融入該元素在XBRL分類標準模式文件中定義時設置的balance屬性和periodType屬性;
(4)設計XBRL分類標準到OWL本體轉(zhuǎn)換算法:首先將XBRL分類標準模式文檔中定義的元素轉(zhuǎn)換為OWL類,XBRL分類標準的標簽鏈接庫和參考鏈接庫中相應的信息轉(zhuǎn)換為OWL類的標簽子元素和注釋子元素;然后,從步驟(2)生成的解析后的XBRL分類標準的XML信息集中提取元素和元素間關系,信息集中的元素轉(zhuǎn)換為OWL對應類的個體,信息集中元素間關系轉(zhuǎn)換為OWL個體間的關系,基于步驟(1)生成的語義元模型本體,轉(zhuǎn)換為OWL本體格式;
(5)設計XBRL實例文檔到OWL實體的轉(zhuǎn)換算法:基于步驟(4)生成的分類標準OWL本體,從步驟(3)生成的解析后XBRL實例文檔的XML信息集中提取元素及其上下文信息和計量單位,信息集中的元素引用步驟(4)中對應的OWL個體,通過hasContext對象屬性給該OWL個體增加上下文信息,通過hasUnit和hasVAlue數(shù)據(jù)屬性分別給該OWL個體增加計量單位信息和數(shù)值信息。
進一步,解析XBRL分類標準構(gòu)建XML信息集算法,具體步驟如下:
1)解析XBRL定義鏈接庫文件,判斷是否存在弧角色;
2)輸出linkType、extRole、arcRole等信息的值;
3)定義鏈接弧的from屬性指向元素的uri作為輸出文件fromPath屬性值;
4)定義鏈接弧的to屬性指向元素的uri作為輸出文件toPath屬性值;
5)剩余信息進行復制;
6)得到鏈接庫信息集后,判別最后一個弧角色是否滿足要求。如果滿足要求,則算法結(jié)束;如果未滿足要求,則返回第2)步執(zhí)行。
進一步,解析XBRL實例文檔構(gòu)建XML信息集算法,具體步驟如下:
(a)解析XBRL實例文檔,判斷是否讀取到實例值;
(b)通過字符串的匹配,將讀取到的信息復制輸出;
(c)在分類標準中找到當前元素的balance和periodType屬性,作為該元素的屬性輸出;
(d)剩余信息進行復制輸出;
(e)得到實例文檔信息集后,判別是否存在實例值。如果滿足要求,則算法結(jié)束;如果未滿足要求,則返回第(b)步執(zhí)行。
進一步, XBRL分類標準到OWL本體轉(zhuǎn)換算法,具體步驟如下:
(一)輸入XBRL分類標準文件,提取和解析分類標準模式文件、標簽鏈接庫和參考鏈接庫文件;
(二)判斷是否是element節(jié)點,如果滿足要求將模式文件定義的元素轉(zhuǎn)換為OWL類,元素名即類名;
(三)判斷是否具有標準標簽和參考信息,然后通過ID匹配標簽鏈接庫和參考鏈接庫中的信息,轉(zhuǎn)換成<rdfs:label xml:lang=" ">和<rdfs:comment>兩種子元素;
(四)將element節(jié)點type、periodType、balance、substitutionGroup屬性轉(zhuǎn)換為相應的owl:subClassOf元素的rdf:resoure屬性值;再判斷是否有abstracts屬性,若屬性值為false,則生成Concept類的子類,若屬性值為true,則生成AbstractsConcept類的子類,
(五)提取和解析計算鏈接庫、定義鏈接庫、列報鏈接庫文件,按照解析XBRL實例文檔構(gòu)建XML信息集算法,對文件進行解析形成XML信息集;
(六)依次讀取XML信息集中的元素,提取元素和元素間關系,信息集中的元素轉(zhuǎn)換為OWL對應類的個體,信息集中元素間關系轉(zhuǎn)換為OWL個體間的關系,基于第(1)步生成的語義元模型本體,轉(zhuǎn)換為OWL本體格式。
進一步,如XBRL實例文檔到OWL實體轉(zhuǎn)換算法,具體包括:
(A)輸入分類標準解析后生成的OWL文件;
(B)輸入XBRL實例文檔,按照解析XBRL分類標準構(gòu)建XML信息集算法解析XBRL實例文檔,生成信息集;
(C)依次讀取信息集中的元素,若當前元素在OWL本體中有對應的類,則轉(zhuǎn)換成該OWL類對應的個體,該元素的contextRef屬性、unitRef屬性和decimal屬性分別轉(zhuǎn)換為其對應OWL個體的hasContext對象屬性、hasUnit數(shù)據(jù)屬性和hasDecimal數(shù)據(jù)屬性,該元素值轉(zhuǎn)換為其對應OWL個體的hasFactvalue數(shù)據(jù)屬性的值;否則指向下一個節(jié)點;
(D)直至最后一個節(jié)點,算法結(jié)束。
本發(fā)明提供的基于語義的XBRL數(shù)據(jù)到OWL數(shù)據(jù)的轉(zhuǎn)換方法,能在語義層面實現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換,解決XBRL語義異構(gòu)的映射問題。
本發(fā)明將XBRL分類標準和實例文檔轉(zhuǎn)換為網(wǎng)絡本體語言OWL(Web Ontology Language)格式的數(shù)據(jù),可利用OWL對概念的層次化描述方式實現(xiàn)語義信息的完整轉(zhuǎn)換,同時借助OWL的推理機制實現(xiàn)本體的協(xié)作和融合,從而實現(xiàn)異構(gòu)XBRL分類標準的自動映射。
附圖說明
圖1是本發(fā)明實施例提供的解析XBRL分類標準構(gòu)建XML信息集算法流程圖;
圖2是本發(fā)明實施例提供的解析XBRL實例文檔構(gòu)建XML信息集算法流程圖;
圖3是本發(fā)明實施例提供的XBRL分類標準到OWL本體轉(zhuǎn)換算法流程圖;
圖4是本發(fā)明實施例提供的XBRL實例文檔到OWL實體轉(zhuǎn)換算法流程圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。下面結(jié)合附圖及具體實施例對本發(fā)明的應用原理作進一步描述。
本發(fā)明實施例提供的基于語義的XBRL數(shù)據(jù)到OWL數(shù)據(jù)的轉(zhuǎn)換方法,包括:
(1)基于語義網(wǎng)技術構(gòu)建XBRL財務報告和事實數(shù)據(jù)語義元模型:首先利用OWL本體編輯工具將XBRL語義元模型創(chuàng)建成OWL本體;然后將XBRL技術規(guī)范的模式文件中定義的數(shù)據(jù)類型創(chuàng)建成OWL本體形式;
(2)解析XBRL分類標準構(gòu)建其XML信息集:XML信息集是在解析了XBRL分類標準的模式文件和鏈接庫文件之后生成的攜帶語義信息的XML樹模型,用于保證轉(zhuǎn)換過程中語義信息的完整性;
(3)解析XBRL實例文檔構(gòu)建實例文檔信息集: XML信息集是在解析了XBRL分類標準和實例文檔之后生成的XML樹模型,在事實數(shù)據(jù)的屬性中融入該元素在XBRL分類標準模式文件中定義時設置的balance屬性和periodType屬性;
(4)設計XBRL分類標準到OWL本體轉(zhuǎn)換算法:首先將XBRL分類標準模式文檔中定義的元素轉(zhuǎn)換為OWL類,XBRL分類標準的標簽鏈接庫和參考鏈接庫中相應的信息轉(zhuǎn)換為OWL類的標簽子元素和注釋子元素;然后,從步驟(2)生成的解析后的XBRL分類標準的XML信息集中提取元素和元素間關系,信息集中的元素轉(zhuǎn)換為OWL對應類的個體,信息集中元素間關系轉(zhuǎn)換為OWL個體間的關系,基于步驟(1)生成的語義元模型本體,轉(zhuǎn)換為OWL本體格式;
(5)設計XBRL實例文檔到OWL實體的轉(zhuǎn)換算法:基于步驟(4)生成的分類標準OWL本體,從步驟(3)生成的解析后XBRL實例文檔的XML信息集中提取元素及其上下文信息和計量單位,信息集中的元素引用步驟(4)中對應的OWL個體,通過hasContext對象屬性給該OWL個體增加上下文信息,通過hasUnit和hasVAlue數(shù)據(jù)屬性分別給該OWL個體增加計量單位信息和數(shù)值信息。
下面結(jié)合附圖及具體實施例對本發(fā)明的應用原理作進一步描述。
1、基于語義網(wǎng)技術構(gòu)建XBRL財務報告和事實數(shù)據(jù)語義元模型:首先利用OWL本體編輯工具將XBRL語義元模型創(chuàng)建成OWL本體;然后將XBRL技術規(guī)范的模式文件中定義數(shù)據(jù)類型創(chuàng)建成OWL本體形式。
如表1所示,用OWL對XBRL語義元模型進行本體建模的時候,定義了9個抽象類(FinancialReport、ELR、Table、Axis、Member、LineItem、AbstractConcept、Concept和Context),抽象類個體之間的對象屬性(hasELR、hasTable、hasAxis、hasMember、hasLineItem、has AbstractConcept、hasConcept、hasSumPart、hasContext),抽象類個體之間的數(shù)據(jù)屬性(hasEntity、hasPeriod、hasSegment、hasDimension、hasFactvalue、hasUnit和hasDecimal)。
表1 語義元模型OWL本體類及屬性列表
XML Schema內(nèi)置數(shù)據(jù)類型連同rdfs:Literal構(gòu)成了OWL的內(nèi)嵌數(shù)據(jù)類型,XBRL技術規(guī)范中定義的monetaryItemType類型轉(zhuǎn)換為如下所示的owl類。
2、如圖1所示,本發(fā)明實施例提供的解析XBRL分類標準構(gòu)建XML信息集算法,具體步驟如下:
(1)解析XBRL定義鏈接庫文件,判斷是否存在弧角色;
(2)輸出linkType、extRole、arcRole等信息的值;
(3)定義鏈接弧的from屬性指向元素的uri作為輸出文件fromPath屬性值;
(4)定義鏈接弧的to屬性指向元素的uri作為輸出文件toPath屬性值;
(5)剩余信息進行復制;
(6)得到鏈接庫信息集后,判別最后一個弧角色是否滿足要求。如果滿足要求,則算法結(jié)束;如果未滿足要求,則返回第(2)步執(zhí)行。
例如,XBRL分類標準的定義鏈接庫文件經(jīng)解析后生成信息集片段,對比信息如下代碼片段所示:
3、如圖2所示,本發(fā)明實施例提供的解析XBRL實例文檔構(gòu)建XML信息集算法,具體步驟如下:
(1)解析XBRL實例文檔,判斷是否讀取到實例值;
(2)通過字符串的匹配,將讀取到的信息復制輸出;
(3)在分類標準中找到當前元素的balance和periodType屬性,作為該元素的屬性輸出;
(4)剩余信息進行復制輸出;
(5)得到實例文檔信息集后,判別是否存在實例值。如果滿足要求,則算法結(jié)束;如果未滿足要求,則返回第(2)步執(zhí)行。
XBRL實例文檔經(jīng)解析后生成信息集片段,前后對比如下代碼片段所示:
4、如圖3所示,本發(fā)明實施例提供的XBRL分類標準到OWL本體轉(zhuǎn)換算法,具體步驟如下:
(1)輸入XBRL分類標準文件,提取和解析分類標準模式文件、標簽鏈接庫和參考鏈接庫文件;
(2)判斷是否是element節(jié)點,如果滿足要求將模式文件定義的元素轉(zhuǎn)換為OWL類,元素名即類名;
(3)判斷是否具有標準標簽和參考信息,然后通過ID匹配標簽鏈接庫和參考鏈接庫中的信息,轉(zhuǎn)換成<rdfs:label xml:lang=" ">和<rdfs:comment>兩種子元素;
(4)將element節(jié)點type、periodType、balance、substitutionGroup屬性轉(zhuǎn)換為相應的owl:subClassOf元素的rdf:resoure屬性值;再判斷是否有abstracts屬性,若屬性值為false,則生成Concept類的子類,若屬性值為true,則生成AbstractsConcept類的子類,轉(zhuǎn)換后生成的OWL片段如下所示。
(5)提取和解析計算鏈接庫、定義鏈接庫、列報鏈接庫文件,按照第2步流程,對文件進行解析形成XML信息集。
(6)依次讀取XML信息集中的元素,提取元素和元素間關系,信息集中的元素轉(zhuǎn)換為OWL對應類的個體,信息集中元素間關系轉(zhuǎn)換為OWL個體間的關系,基于第1步生成的語義元模型本體,轉(zhuǎn)換為OWL本體格式。
5、圖4所示,本發(fā)明實施例提供的XBRL實例文檔到OWL實體轉(zhuǎn)換算法,
從基于XBRL分類標準到OWL本體轉(zhuǎn)換算法中生成的分類標準OWL本體,從解析XBRL實例文檔構(gòu)建XML信息集算法中生成的XBRL實例文檔的XML信息集中提取元素及其上下文信息和計量單位,信息集中的元素引用基于XBRL分類標準到OWL本體轉(zhuǎn)換算法中對應的OWL個體,通過hasContext對象屬性給該OWL個體增加上下文信息,通過hasUnit和hasVAlue數(shù)據(jù)屬性分別給該OWL個體增加計量單位信息和數(shù)值信息。
具體步驟如下:
(1)輸入分類標準解析后生成的OWL文件;
(2)輸入XBRL實例文檔,按照第3步的方法解析XBRL實例文檔,生成信息集;
(3)依次讀取信息集中的元素,若當前元素在OWL本體中有對應的類,則轉(zhuǎn)換成該OWL類對應的個體,該元素的contextRef屬性、unitRef屬性和decimal屬性分別轉(zhuǎn)換為其對應OWL個體的hasContext對象屬性、hasUnit數(shù)據(jù)屬性和hasDecimal數(shù)據(jù)屬性,該元素值轉(zhuǎn)換為其對應OWL個體的hasFactvalue數(shù)據(jù)屬性的值;否則指向下一個節(jié)點;
(4)直至最后一個節(jié)點,算法結(jié)束。
本發(fā)明提供的基于語義的XBRL數(shù)據(jù)到OWL數(shù)據(jù)的轉(zhuǎn)換方法,能在語義層面實現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換,解決XBRL語義異構(gòu)的映射問題。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。