簡體   English   中英

如何從多個存儲庫中提取相關信息?

[英]How to pull relevant information from multiple repositories?

問題陳述:

信息跨越多個存儲庫 - SAP,DB等。現在,當我搜索特定的東西時,我想從所有存儲庫中提取相關數據。 (暫時,假設我能夠以巨大的XML格式從所有這些存儲庫中提取數據。)

如何為我的搜索添加意義?

我正在尋找一個基於Java的解決方案。

Jena / Semantic-Web會幫助我嗎? 我可以在RDF中定義關系嗎?

由於我對語義Web知之甚少,我試圖了解它是否解決了我的問題。 如果我錯了,請糾正我。

您已經在這里詢問了一系列問題(對於StackOverflow而言,這不是最佳實踐),但我認為您要問的關鍵問題是:

如何為我的搜索添加意義?

這實際上取決於清楚地了解您嘗試提供的業務價值或用戶體驗。 “含義”是一個不精確的術語 - 我認為如果您能夠更加准確地了解您希望用戶能夠提出的問題類別以及回答的類型,那么您將更容易分析所需的技術。他們會發現有用的。

考慮到這一點,我對您的一般性問題的一般回答是,為了整合來自不同的異構信息源的信息,您需要能夠根據用戶理解的概念將它們聯系在一起。 因此,不僅僅是一個低級別的“此數據庫字段映射到該XML元素”,例如,“此數據集記錄了客戶與銷售團隊的交互,這些是生產線吞吐量的統計數據,並且它們通過訂單隊列中的訂單“。 這有點模糊,但這是一個簡單的例子來說明我的意思。 那么,將CRM信息與制造統計數據聯系起來的方法就是擁有一些可以將所有內容聯系起來的概念集合 在語義網絡世界中,我們稱之為本體論 設計一個本體來覆蓋整個業務可能很難,但是,從松散的角度來說,您可以應用敏捷技術來逐步發展您的理解和本體模型。

一旦你有了一個本體,你可以使用像Jena這樣的庫來幫助你從不同的來源中提取信息並將它們存儲在你可以與你的本體相關的表格中。 使用諸如RDFS之類的語言或者更好的OWL使本體顯式化的一個優點是,您可以使用自動推理工具自動從數據中得出新的結論,或者將一些數據映射表示為規則。 有些人發現規則是更抽象和可理解的符號。

有很多方法可以解決你所描述的問題,Jena 本身也不會給你解決方案。 我認為擁有合適的本體對我理解你的問題非常重要。 數據的復雜性和用戶需求將驅動本體需要的復雜程度,這將取決於對問題有更清晰的業務級別理解。 一旦你有了,那么選擇正確的RDF / OWL工具將相對簡單。

您可以使用ISO 15926等方法。在本標准中,您有抽象模型(201個實體),並且具有特定知識領域的RDL(參考數據庫)。 為了對所有存儲庫使用一個全局查詢,您可以在不同的應用程序之間使用映射,並在RDF中存儲映射等效性。 通過這種方式,您需要為每個應用程序使用facade。

我看到兩種方法:

  • 拉數據,索引它(Lucene?)並使用自定義索引搜索“副本”。 如果可能的話,我會避免這種情況,因為移動的大量數據通常是壞主意。

  • 將一些代理移動到盡可能靠近數據源的位置,在本地運行查詢(接近SAP,DB等)並僅傳輸您真正需要的結果部分。

考慮將集成框架視為Apache Camel或Spring Integration。

有趣的問題。

如果確實有一些通用概念模型允許您將所有數據映射到一致的本體,那么您可以遵循Ian Dickinson建議的路線。 如果你正在使用SAP,我猜你在談論大量數據,以及一個中等復雜的業務領域。 這樣的項目將是一項重大任務 - 技術要素只是一個開始。

在語義網誕生之前很久我就開始研究這樣一個項目,它是一個龐大而復雜的項目野獸。 問題不在於技術問題,而是商業專家對於詞匯的含義,商業概念之間的關系存在矛盾的觀點(“所有員工必須屬於一個部門。哦,除了弗雷德,他為財務月亮” ),並發現很難使用我們技術人員喜歡使用的抽象。

替代方案基於“搜索” - 找到一種在一些最小結構中表示數據的方法,使用Lucene(或類似方法)構建索引,並允許用戶瀏覽該機制。 當然,這可能意味着構建一個相當復雜的Web應用程序,但我認為大多數人都習慣谷歌找到他們想要的東西......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM