信息存儲和檢索的基于圖形的系統和方法
【專利說明】
[0001] 本申請對2014年1月2日提交的美國專利申請序列號14/146, 623要求優先權的 權益,其通過引用整體地結合于本文中。
技術領域
[0002] 本申請設及軟件和/或硬件技術的技術領域,并且在一個示例實施例中,設及信 息存儲和檢索的基于圖形的系統和方法。
【背景技術】
[0003] W有效和即刻檢索(quick-to-retrieve)的方式存儲大量文檔是數據庫的常見問 題。在數據庫界已經提供了許多不同的解決方案,其中數據被存儲在單個域中的單個數據 庫中。然而,近來,諸如社交網絡的網站已經試圖收集和訪問來自不同域的文檔,并將其組 合W滿足特定商業情況。在該種情形下已經遇到了許多問題,包括不得不處理用于關系的 冗余數據存儲、操作和維護努力的重復、W及需要被經常解決的顯著的可擴縮性問題。
【附圖說明】
[0004] 在附圖的圖中W示例而非限制的方式圖示了實施例,其中相同的附圖標記指示相 似的元件,并且其中: 圖1是根據一個示例實施例的用于文檔的圖形。
[0005] 圖2是圖示了根據一個示例實施例的實現每個文檔作為一個圖形(Every Documentasagraph,EVG)的系統的框圖。
[0006] 圖3是圖示了根據一個示例實施例的服務器應用的各個層的框圖。
[0007] 圖4是圖示了根據一個示例實施例的EVG圖形的框圖。
[000引圖5是圖示了根據另一示例實施例的EVG圖形的框圖。
[0009] 圖6是圖示了根據一個示例實施例的EVG系統的框圖。
[0010] 圖7是圖示了根據一個示例實施例的任務鏈的框圖。
[0011] 圖8是圖示了根據一個示例實施例的方法800的序列圖。
[0012] 圖9是圖示了根據一個示例實施例的方法的流程圖。
[0013] 圖10是W計算機系統的示例形式的機器的圖解表示,在該計算機系統內可W執 行一組指令,用于使得機器執行本文所討論的方法中的任何一個或多個。
【具體實施方式】
[0014] 在一個示例實施例中,提供了一種用于用戶情況特定的關系的統一、通用的系統。 可提供基于圖形的模型W允許更簡單且一致的思維模型。用戶能夠W有效的且易于理解的 方式來定義域模型并執行查詢。此外,該系統通過利用用于適當規模的特征的少數相對通 用系統和開放多租戶架構,簡化了擴縮和操作。數據源被抽象化,并且系統能夠存儲和檢索 關于數據源的元數據,并能夠有效地使用該元數據來從數據源收集所期望的數據。W該種 方式,服務提供商(諸如社交聯網網站)可w通過使能對現有數據對象的重用和抽象化,來 加速新特征和服務的上市時間(time-to-market)并減少成本。
[0015] 如本文所使用,術語"或"可W按包括或排他意義來解釋。類似地,術語"示例性" 僅意味著某物或范例的示例,而不一定是實現目標的優選或理想手段。為了此描述的目的, 用語"在線社交聯網應用"可被稱為"在線社交網絡"或僅"社交網絡",或與"在線社交網 絡"或僅"社交網絡"可互換地使用。還將指出的是,在線社交網絡可W是任何類型的在線 社交網絡,例如專業網絡、基于興趣的網絡、或允許用戶作為注冊成員加入的任何在線聯網 系統。出于此描述的目的,在線社交網絡的注冊成員可W被簡稱為成員。
[0016] 在線社交網絡中的每個成員由成員簡檔(還被稱為成員的簡檔或簡稱為簡檔)表 示。成員簡檔可與指示了該成員與社交網絡其他成員的聯系的社交鏈接相關聯。成員簡檔 還可W包括來自具有與其他社交網絡資源(例如出版物等)的鏈接的在線社交網絡的其他 成員的評論或簽注,或與該評論或簽注相關聯。如上所述,在線社交聯網系統可W被設計 為允許注冊成員專業地建立并歸檔他們了解并信任的人的網絡。社交網絡的任何兩名成員 可在社交網絡的情境下指示他們將"被聯系"的相互意愿,因為他們可W通過社交網絡查看 彼此的簡檔、簡檔推薦和對于彼此的簽注,W及W其他方式保持聯系。可基于從信任源(諸 如專利數據庫、出版物數據庫、技能、技能簽注、或甚至企業合同)獲得的信息來計算信譽評 分。
[0017] 除了成員簡檔,可W存在由社交網站所存儲的許多不同類型的數據。另外,來自其 他數據源(諸如音頻和視頻內容、電子郵件和商業文檔、日歷、文本消息等)的數據也可W通 過社交網站訪問。如果可W按有效方式訪問所有該種數據,并且可W按有效方式設立社交 網站一直試圖設立W訪問新數據類型或新數據源的任何特征,將是有幫助的。
[0018] 在一個示例實施例中,引入了被稱為每個文檔作為一個圖形(Eve巧Documentas agraph,EVG)的概念。EVG是用于支持實體持續性和發現、管理關系W及整合社交姿態的 共享的、多租戶服務。該是數據存儲實現方式(例如Espresso、Voldemcxrt、化acle等)的頂 部上的層,并且充當對該些數據存儲的代理。
[0019] 在一個示例實施例中,EVG還采取行動來組裝復雜文檔并將它們顯示為簡單查詢, 提供數據的強類型表示來使用情況特定的客戶端,W及使用元數據來在引入新類型邊緣和 實體時起作用,而不需要必須重建、重部署或破壞現有客戶端。
[0020] 在一個示例實施例中,EVG將通常表示為分級文檔的富域對象分解成圖形,其中個 別實體通過定向關聯或邊緣而被聯結在一起。在EVG中,每一種關系被表示為一個邊緣,并 且每個富對象或文檔是一個圖形。
[0021] 圖1是根據一個示例實施例的用于文檔的圖形100。該里,成員節點102經由邊 緣106被鏈接到treasuryMedia(經費媒體)節點104,表示成員節點102和treasuryMedia 節點104之間的關系。為了到達treasuryMedia實體中存儲的成員媒體內容,可使用 member2Media(成員 2 媒體)邊緣 106。
[0022]EVG的通用框架使得對于用戶來說容易從不同數據存儲組裝圖形。在一個示例實 施例中,從數據庫角度來看,EVG遵循歸一化方法,其中實體和邊緣被存儲在單獨的表中,使 得容易重組該些元素W滿足不同的使用情況。在一個示例實施例中,EVG是元數據驅動的 W從實體區分所存儲的邊緣。元數據也可W將實體映射到物理數據存儲。EVG可W然后基 于直觀查詢語言表達來處理該些數據對象的組件。
[0023] 為了本公開的目的,文檔可被認為是組合不同域的元素的富數據對象。元素可W 被認為是用于數據包封的通用術語,并且可W是實體或邊緣。實體或頂點可被認為是攜帶 屬性的域模型的材料部分。關聯或關系可W被認為是兩個實體之間的直接聯系。邊緣可被 認為是附著到關聯的含義。姿態可被認為是與實體的社交互動的總和(例如評論、喜好、饋 送等)。饋送可被認為是用于給定數目實體的活動流。
[0024] 圖2是圖示了根據一個示例實施例的實現EVG的系統200的框圖。客戶端應用 202可W包含EVG客戶端庫204,其可W執行驗證206和模板化(stencilization) 208活 動。服務器應用210可W執行每個EVG圖形的組件212。元數據存儲214可存儲并提供映 射、查詢、關聯約束、虛擬關聯的注冊、W及與圖形有關的其他元數據。實體存儲216可W存 儲和提供實體數據。元數據存儲214可W按實體進行劃分。邊緣存儲218可W存儲關聯性 鏈接/邊緣。在一個示例實施例中,所有邊緣都被存儲在同一分區/數據庫/表中,在鄰近 列表和"每邊緣的行"存儲格式之間具有區別。
[00巧]組件212可W通過訪問一個或多個外部數據存儲220A、220B來構造圖形,并將對 應的圖形信息存儲在元數據存儲214、實體存儲216和邊緣存儲218中。捜索服務222可被 用來找到跨越若干分離度的關系W及遍歷雙向關系。捜索服務222還可W擴展EVG查詢W 支持對元數據的索引。
[0026]在一個示例實施例中,外部數據源220A、220B中的至少一個為鍵值存儲系統,諸 如Espresso。鍵值存儲系統失去了執行對于關系數據庫常見的傳統JOIN操作的能力。鑒 于此,可W利用被設計為W幫助彌補該種傳統JOIN操作的損失的方式維護邊緣的查詢參 數和特征來設計該系統。
[0027] 圖3是圖示了根據一個示例實施例的服務器應用210的各個層的框圖。業務層300 可W允許經由EVG圖形的每個客戶端技術規范的數據的組裝,并且可管理實體類型到統一 資源名稱(URN)和統一資源標識符(URI)的映射。域層302可W定義和發布綱要、制定查 詢和調用、擔負重構外來域對象的責任,并使用可見性約束來過濾基于域邏輯(諸如隱私設 置、訂閱狀態等)所限制的模糊數據塊。在一個示例實施例中,可使用域特定的REST.LI服 務來實現域層302。REST.LI是允許用戶使用表述性狀態傳輸(REST)樣式來創建客戶端和 服務器的化va框架。
[0028] 域層302還可W經由EVG客戶端庫204執行由綱要所驅動的驗證,并提供代理數 據映射(模板)的強類型接口。
[0029]表現層304可然后發出用于由客戶端進行消耗的平坦化的、簡化的化vaScript對 象標識法(JS0N),并使用戶輸入持續并將其發送給業務層300W被存儲在EVG圖形中。
[0030]在一個示例實施例中,數據源被抽象化,W提供用于多個數據源的單個接口。將異 構數據和查詢引擎縫合在一起的EVG圖形隨后能夠并行訪問多個數據存儲。通過劃分數 據,EVG圖形也可變得極為可擴縮。相關實體可W被集群,并且可執行并行查詢W用于額外 的可擴縮性。
[0031] 本文描述了一個示例實施例中由EVG圖形所使用的數據結構。本領域普通技術人 員將認識到,該些僅僅是示例,并且在某些實施例中可利用其他數據結構。
[003引URN可被表