本申請要求2014年6月25日提交的美國專利申請?zhí)?2/017,193的優(yōu)先權(quán),其整體內(nèi)容通過引用整合到本文中。
背景技術(shù):
互聯(lián)網(wǎng)可以提供對多種多樣的信息的訪問。例如,可通過互聯(lián)網(wǎng)訪問數(shù)字圖像文件、視頻和/或音頻文件、以及特定主題或者特定新聞文章的網(wǎng)絡(luò)頁面資源。關(guān)于網(wǎng)絡(luò)頁面資源,很多這些資源被設(shè)計為便于執(zhí)行特定功能,諸如銀行業(yè)務(wù)、酒店預(yù)訂、購物等等;或者提供結(jié)構(gòu)化信息,諸如在線百科全書、電影數(shù)據(jù)庫等等。
多種搜索引擎可用于識別可通過互聯(lián)網(wǎng)訪問的特定網(wǎng)絡(luò)頁面資源。隨著平板計算機(jī)和智能電話的出現(xiàn),現(xiàn)在正大量提供促進(jìn)通過使用網(wǎng)絡(luò)頁面資源而被促進(jìn)的相同功能的性能的原生應(yīng)用(native application)。
因此,可以通過提供搜索結(jié)果來滿足用戶的信息需要,該搜索結(jié)果識別出特定網(wǎng)絡(luò)頁面資源或者促進(jìn)由網(wǎng)絡(luò)頁面資源促進(jìn)的相同功能的性能或者將相同或者非常類似的信息呈現(xiàn)為網(wǎng)絡(luò)頁面資源的原生應(yīng)用中的一者(或者兩者)。
技術(shù)實現(xiàn)要素:
本公開涉及原生應(yīng)用深鏈接,并且更具體而言,涉及用于自動生成原生應(yīng)用深鏈接(deep link)的系統(tǒng)和方法。
一般而言,本說明書中描述的主題的一個創(chuàng)新方面可在如下方法中實施,所述方法包括如下動作:接收原生應(yīng)用的發(fā)布商附屬數(shù)據(jù)(publisher affiliation data),所述發(fā)布商附屬數(shù)據(jù)對于每個原生應(yīng)用定義所述原生應(yīng)用的附屬發(fā)布商;對于一組原生應(yīng)用中的每個原生應(yīng)用,基于發(fā)布商附屬數(shù)據(jù),確定其是否附屬于提供由對于該原生應(yīng)用確定的URI尋址的內(nèi)容的發(fā)布商;僅對于被確定為附屬于提供由對于原生應(yīng)用確定的URI尋址的內(nèi)容的發(fā)布商的原生應(yīng)用:基于該原生應(yīng)用的URI模式(pattern)來選擇URI,在可通過搜索引擎搜索的索引中,對可由原生應(yīng)用的URI訪問的內(nèi)容進(jìn)行索引。該方面的其他實施例包含被配置為執(zhí)行所述方法的動作的對應(yīng)的系統(tǒng)、裝置和在計算機(jī)存儲設(shè)備上編碼的計算機(jī)程序。
本說明書中描述的主題的另一創(chuàng)新方面可在如下方法中實施,所述方法包括如下動作:確定原生應(yīng)用的統(tǒng)一資源識別符(URI)模式;將原生應(yīng)用實例化,并基于URI模式來選擇第一URI,以在原生應(yīng)用顯示環(huán)境中生成應(yīng)用頁面;在可通過搜索引擎搜索的索引中,對應(yīng)用頁面的應(yīng)用頁面數(shù)據(jù)進(jìn)行索引;對于原生應(yīng)用重復(fù)處理鏈接的應(yīng)用頁面,直至發(fā)生終止事件,所述重復(fù)處理在每個重復(fù)包括:從應(yīng)用頁面確定第一應(yīng)用頁面中包含的出站(outbound)URI;選擇出站URI中的一個或多個以在原生應(yīng)用顯示環(huán)境中生成一個或多個后續(xù)應(yīng)用頁面;對于索引中的一個或多個后續(xù)應(yīng)用頁面中的每一個,對應(yīng)用頁面數(shù)據(jù)進(jìn)行索引。該方面的其他實施例包含被配置為執(zhí)行方法的動作的對應(yīng)的系統(tǒng)、裝置和在計算機(jī)存儲設(shè)備上編碼的計算機(jī)程序。
可以實現(xiàn)本說明書中描述的主題的特定實施例,以便實現(xiàn)下面的優(yōu)點中的一個或多個。生成深鏈接使應(yīng)用開發(fā)者更容易參與到原生應(yīng)用索引中,這反過來幫助驅(qū)動其應(yīng)用的使用和重新起動(re-engagement)。該系統(tǒng)還降低了參與的門檻。
在本說明書中描述的主題的一個或多個實施例的細(xì)節(jié)記載在附圖和下文的描述中。主題的其他特征、方面和優(yōu)點將從描述、附圖和權(quán)利要求變得明顯。
附圖說明
圖1是生成用于原生應(yīng)用的深鏈接的示例環(huán)境的框圖。
圖2是應(yīng)用抓取和索引系統(tǒng)的框圖。
圖3是生成用于原生應(yīng)用的深鏈接的示例過程的流程圖。
圖4是生成用于原生應(yīng)用的深鏈接的另一示例過程的流程圖。
各個附圖中同樣的附圖數(shù)字和指定表明同樣的要素。
具體實施方式
系統(tǒng)提供了原生應(yīng)用搜索結(jié)果。如本文所使用的,原生應(yīng)用在用戶設(shè)備上獨立于瀏覽器應(yīng)用地操作。原生應(yīng)用是被專門設(shè)計為在特定用戶設(shè)備操作系統(tǒng)和機(jī)器固件上而非在瀏覽器內(nèi)運行的應(yīng)用。因此,原生應(yīng)用不同于瀏覽器、基于瀏覽器的應(yīng)用和瀏覽器渲染的資源。后者在每次其被實例化或者渲染時,都要求從網(wǎng)絡(luò)服務(wù)器下載所有或者至少一些要素或者指令。此外,基于瀏覽器的應(yīng)用和瀏覽器渲染的資源可以在瀏覽器內(nèi)被所有能上網(wǎng)的移動設(shè)備處理,因此,不像原生應(yīng)用那樣專門針對操作系統(tǒng)。此外,如本文所使用的,原生應(yīng)用搜索結(jié)果是與特定原生應(yīng)用對應(yīng)、并且在被選擇時調(diào)用該特定原生應(yīng)用的搜索結(jié)果。
原生應(yīng)用的示例包含創(chuàng)建文本文檔、編輯照片、播放音樂、與遠(yuǎn)程銀行業(yè)務(wù)系統(tǒng)對接等等的應(yīng)用。移動原生應(yīng)用被設(shè)計為在諸如智能電話、平板等等的移動設(shè)備上操作。網(wǎng)絡(luò)原生應(yīng)用被設(shè)計為(在視覺和功能上)在網(wǎng)絡(luò)瀏覽器軟件內(nèi)運行。在非常高的級別,原生應(yīng)用,或者簡稱為app,給用戶提供對內(nèi)容和/或功能的訪問。
互聯(lián)網(wǎng)搜索引擎提供搜索存在于互聯(lián)網(wǎng)上的網(wǎng)絡(luò)頁面的索引集合的能力。典型的搜索引擎響應(yīng)于查詢經(jīng)常利用允許用戶快速導(dǎo)航到感興趣的結(jié)果的超鏈接來提供與查詢相關(guān)的結(jié)果的列表。用戶可以選擇鏈接的結(jié)果,因而被提供包含有關(guān)名人、產(chǎn)品、企業(yè)等等的0內(nèi)容的(一個或多個)網(wǎng)絡(luò)頁面。該鏈接可以是去站點的“主頁”(例如,收集諸如食譜的烹飪信息的站點的歡迎和搜索頁面)、或者可以是從站點的主頁導(dǎo)航時用戶可訪問的“內(nèi)容頁面”(例如,在烹飪信息站點的特定食譜)。相對于到主頁的鏈接,到內(nèi)容頁面的鏈接被稱作“深鏈接”(deep link),并且抓取、索引并提供這些內(nèi)容頁面的過程類似地被稱為“進(jìn)行深鏈接”(deep linking)。
導(dǎo)航到頁面的能力、以及對該頁面提供的內(nèi)容和功能的可訪問性是部分由公開的頁面的本質(zhì)來控制的。例如,某些頁面可能包含很難或者不可能抓取和檢索的動態(tài)內(nèi)容(例如,異步j(luò)avascript和XML(AJAX)、Adobe Flash等等)。所以,這些頁面可能不可用來對搜索進(jìn)行響應(yīng),用戶可能不能將頁面保存為書簽等等,并且經(jīng)由瀏覽器控制的頁面導(dǎo)航(例如,歷史中的前進(jìn)和后退)可能不會如想要地那樣操作。
當(dāng)涉及到進(jìn)行鏈接時,一些原生應(yīng)用缺少網(wǎng)站的一些基本性質(zhì)。第一,當(dāng)搜索引擎抓取原生應(yīng)用時,其不能像他們通過看網(wǎng)頁的HTML所能夠的那樣僅檢查到頁面的現(xiàn)有鏈接并看著頁面的出站鏈接。第二,很多原生應(yīng)用沒有以網(wǎng)站固有地做的方式鏈接到彼此,所以,搜索引擎不能像他們對于發(fā)現(xiàn)網(wǎng)絡(luò)鏈接所能夠的那樣依賴于抓取網(wǎng)絡(luò)來發(fā)現(xiàn)應(yīng)用深鏈接。這使得原生應(yīng)用搜索引擎充滿了挑戰(zhàn),因為發(fā)現(xiàn)原生應(yīng)用支持的鏈接更加困難。如果原生應(yīng)用搜索引擎不能發(fā)現(xiàn)鏈接,那么其就不能對其進(jìn)行索引、檢索并將其提供給用戶。
此外,一些原生應(yīng)用對于原生應(yīng)用訪問的URI具有對應(yīng)的網(wǎng)絡(luò)頁面,而其他的則沒有。在具有對應(yīng)的網(wǎng)絡(luò)頁面的原生應(yīng)用中,一些原生應(yīng)用在原生應(yīng)用與網(wǎng)絡(luò)平臺之間維持重復(fù)或者對應(yīng)的內(nèi)容和功能,而其他原生應(yīng)用在移動與網(wǎng)絡(luò)平臺之間具有較小或者較大程度的差異。
對原生應(yīng)用進(jìn)行索引的一些系統(tǒng)依賴于開發(fā)者來將其原生應(yīng)用深鏈接公開為其網(wǎng)頁上的HTML標(biāo)記或者公開在其現(xiàn)有的網(wǎng)站地圖。即,原生應(yīng)用提供商必須具有網(wǎng)絡(luò)平臺并至少在網(wǎng)站處映射該原生應(yīng)用頁面。提供原生應(yīng)用深鏈接的一些服務(wù)還依賴于開發(fā)者在其網(wǎng)頁上公開其原生應(yīng)用深鏈接。
根據(jù)本公開,原生應(yīng)用深鏈接可出于索引目的而被自動生成。取決于原生應(yīng)用深鏈接的本質(zhì),存在大量用于原生應(yīng)用深鏈接生成的方法。例如,一些原生應(yīng)用支持具有符合基于網(wǎng)絡(luò)的統(tǒng)一資源定位符(URL)(諸如http://www.example.com等等)的URI的深鏈接。其他原生應(yīng)用使用不一定符合特定HTTP協(xié)議的自定義URI。
對于支持基于網(wǎng)絡(luò)的URL的深鏈接的原生應(yīng)用而言,生成原生應(yīng)用深鏈接的過程包含:
1)原生應(yīng)用開發(fā)者用集中式索引服務(wù)來驗證其官方網(wǎng)站。然后,該服務(wù)基于通過網(wǎng)絡(luò)抓取發(fā)現(xiàn)的之前索引的網(wǎng)絡(luò)URL,來對原生應(yīng)用進(jìn)行索引。
2)原生應(yīng)用數(shù)據(jù)抓取和索引系統(tǒng)檢查原生應(yīng)用的注冊信息,諸如清單文件,以確定其是否支持網(wǎng)站的適當(dāng)?shù)腢RL結(jié)構(gòu)。
3)如果原生應(yīng)用確實支持適當(dāng)?shù)腢RL結(jié)構(gòu),那么原生應(yīng)用數(shù)據(jù)抓取和索引系統(tǒng)能夠確定鏈接并基于諸如流行度的標(biāo)準(zhǔn)來使該鏈接優(yōu)先。原生應(yīng)用數(shù)據(jù)抓取和索引系統(tǒng)還將遵從指明哪些URL路徑不應(yīng)被索引的注冊信息中的任何非索引標(biāo)簽。
根據(jù)本公開的第二方面,對于支持自定義深鏈接的原生應(yīng)用而言,系統(tǒng)實現(xiàn)包括如下步驟的方法:
1)原生應(yīng)用開發(fā)者實現(xiàn)原生應(yīng)用索引API,其允許指明特定原生應(yīng)用文檔的URI地址、其對應(yīng)的網(wǎng)絡(luò)URL(如果有的話)、以及在文檔中的所有出站應(yīng)用深鏈接和其關(guān)聯(lián)的網(wǎng)絡(luò)URL(如果有的話)。
2)一旦原生應(yīng)用在數(shù)字分配源處被更新,原生應(yīng)用數(shù)據(jù)抓取和索引系統(tǒng)就檢查該原生應(yīng)用以確定其是否在使用該原生應(yīng)用索引API。如果是,那么原生應(yīng)用數(shù)據(jù)抓取和索引系統(tǒng)啟動該原生應(yīng)用,并尋找到原生應(yīng)用“主頁”的鏈接。原生應(yīng)用數(shù)據(jù)抓取和索引系統(tǒng)還在應(yīng)用頁面上尋找任何出站URI鏈接。如果有出站URI,那么原生應(yīng)用數(shù)據(jù)抓取和索引系統(tǒng)將對這些鏈接(或者僅附屬鏈接)中的每個進(jìn)行索引,并且也將反過來針對出站URI處理后續(xù)的原生應(yīng)用頁面。因此,原生應(yīng)用數(shù)據(jù)抓取和索引系統(tǒng)能夠自動發(fā)現(xiàn)鏈接。并且在每個步驟,原生應(yīng)用數(shù)據(jù)抓取和索引系統(tǒng)可相對于源鏈接檢查應(yīng)用頁面的當(dāng)前鏈接,作為認(rèn)證的方法。
3)原生應(yīng)用數(shù)據(jù)抓取和索引系統(tǒng)可被用于維護(hù)用戶在原生應(yīng)用內(nèi)實際上觀看的那些鏈接的列表,并將該列表提供給原生應(yīng)用數(shù)據(jù)抓取和索引系統(tǒng)。除了先前的步驟中描述的自動發(fā)現(xiàn)外,原生應(yīng)用數(shù)據(jù)抓取和索引系統(tǒng)還使用該列表作為鏈接的附加的源。此外,實際上被觀看的鏈接的列表可被用于確定鏈接流行度,并且原生應(yīng)用數(shù)據(jù)抓取和索引系統(tǒng)然后可基于鏈接的流行度使抓取優(yōu)先。
相應(yīng)地,本文描述的系統(tǒng)和方法可提供原生應(yīng)用深鏈接的自動索引。系統(tǒng)和方法可進(jìn)一步從實際的用戶活動來確定并利用鏈接優(yōu)先。優(yōu)先準(zhǔn)許對搜索資源的利用進(jìn)行優(yōu)化,以及其他。最后,公開的系統(tǒng)和方法可適應(yīng)應(yīng)用,無論其是有還是沒有對應(yīng)的網(wǎng)站,從而克服了現(xiàn)有技術(shù)中要求應(yīng)用通過對應(yīng)的網(wǎng)頁來公開鏈接的限制。
圖1是生成用于原生應(yīng)用的深鏈接的示例環(huán)境100的框圖。諸如互聯(lián)網(wǎng)的計算機(jī)網(wǎng)絡(luò)102連接資源發(fā)布商網(wǎng)站104、應(yīng)用發(fā)布商106、用戶設(shè)備108和搜索引擎120。
資源發(fā)布商網(wǎng)站104包含與域關(guān)聯(lián)并在一個或多個地點由一個或多個服務(wù)器托管的一個或多個網(wǎng)絡(luò)資源105。通常,資源發(fā)布商網(wǎng)站是格式為超文本標(biāo)記語言(HTML)的網(wǎng)絡(luò)頁面的集合,這些網(wǎng)絡(luò)頁面可包含文本、圖像、多媒體內(nèi)容和編程要素。每個網(wǎng)站104由內(nèi)容發(fā)布商維護(hù),該內(nèi)容發(fā)布商是控制、管理和/或擁有網(wǎng)站104的實體。
網(wǎng)絡(luò)頁面資源是可由發(fā)布商網(wǎng)站104通過網(wǎng)絡(luò)102提供并且具有資源地址的任何數(shù)據(jù),該資源地址例如是統(tǒng)一資源定位符(URL)。僅舉幾例,網(wǎng)絡(luò)資源可以是HTML頁面、圖像文件、視頻文件、音頻文件和饋送源。該資源可以包含嵌入式信息,例如元信息和超鏈接;和/或嵌入式指令,例如客戶端方腳本。
應(yīng)用發(fā)布商網(wǎng)站106也可包含一個或多個網(wǎng)絡(luò)資源105,并且也提供原生應(yīng)用107。原生應(yīng)用107是被專門設(shè)計為在特定用戶設(shè)備操作系統(tǒng)和機(jī)器固件上運行的應(yīng)用。原生應(yīng)用107可包含被設(shè)計為在不同平臺上運行的多個版本。例如,與電影數(shù)據(jù)庫網(wǎng)站對應(yīng)的原生應(yīng)用可包含:在第一類型的智能電話上運行的第一原生應(yīng)用;在第二類型的智能電話上運行的第二原生應(yīng)用;在第一類型的平板上運行的第三原生應(yīng)用等等。
應(yīng)用頁面是原生應(yīng)用內(nèi)的特定顯示環(huán)境,并且其中是顯示的內(nèi)容,諸如文本、圖像等等。應(yīng)用頁面專門針對特定原生應(yīng)用,并且原生應(yīng)用專門針對用戶設(shè)備108的特定操作系統(tǒng)。應(yīng)用頁面與渲染的網(wǎng)絡(luò)資源的不同之處在于:應(yīng)用頁面是在原生應(yīng)用內(nèi)生成的并且專門針對原生應(yīng)用,而網(wǎng)絡(luò)資源可以在網(wǎng)絡(luò)頁面資源兼容的任何瀏覽器中被渲染,并且獨立于用戶設(shè)備的操作系統(tǒng)。
一些發(fā)布商104和106可以相同,并在網(wǎng)絡(luò)資源和原生應(yīng)用這兩者中提供相同的內(nèi)容。這樣的內(nèi)容的遞送的管理由發(fā)布商后端130處理。發(fā)布商后端130包含:存儲發(fā)布商提供的內(nèi)容的發(fā)布商存儲器132;將來自發(fā)布商存儲器的內(nèi)容提供為網(wǎng)絡(luò)資源(例如網(wǎng)絡(luò)頁面)的網(wǎng)絡(luò)服務(wù)器134;以及處理來自原生應(yīng)用的請求的原生應(yīng)用服務(wù)器136。網(wǎng)絡(luò)頁面與原生應(yīng)用頁面對應(yīng),因此,對于很多原生應(yīng)用URI而言,有對應(yīng)的網(wǎng)絡(luò)頁面URI。一些原生應(yīng)用也可只使用與其對應(yīng)的網(wǎng)絡(luò)頁面相同的URL。發(fā)布商存儲器132的內(nèi)容可被訪問,以呈現(xiàn)在網(wǎng)絡(luò)資源和對應(yīng)的原生應(yīng)用頁面這兩者上。相應(yīng)地,這樣的內(nèi)容被稱作“同步”內(nèi)容。
這樣的發(fā)布商的示例是新聞出版商,其可具有用于在移動設(shè)備上閱讀新聞內(nèi)容的“移動新聞應(yīng)用”。網(wǎng)絡(luò)資源105上提供的新聞內(nèi)容(例如,新聞故事的文本)與由原生應(yīng)用107的對應(yīng)的應(yīng)用頁面提供的內(nèi)容相同。
用戶設(shè)備108是電子設(shè)備,能夠通過網(wǎng)絡(luò)102請求并接收網(wǎng)絡(luò)頁面資源105和原生應(yīng)用107。示例用戶設(shè)備108包含個人計算機(jī)、移動通信設(shè)備和平板計算機(jī)。
網(wǎng)絡(luò)索引116是例如通過從發(fā)布商網(wǎng)站104接收數(shù)據(jù)饋送,或者通過對數(shù)據(jù)進(jìn)行收集并索引的其他適當(dāng)方法,來從對發(fā)布商網(wǎng)站104進(jìn)行抓取而建立的發(fā)布商內(nèi)容的索引。
原生應(yīng)用索引114存儲有關(guān)原生應(yīng)用107的數(shù)據(jù)。應(yīng)用索引114例如存儲由發(fā)布商104提供的原生應(yīng)用的列表、以及識別該原生應(yīng)用的識別符。此外,在一些實現(xiàn)方式中,發(fā)布商104可指明某些原生應(yīng)用107被用于訪問并顯示同步的數(shù)據(jù),并且該信息可存儲在應(yīng)用索引中。例如,新聞出版商可指明其提供的新聞閱讀應(yīng)用顯示新聞出版商的網(wǎng)站上所顯示的同步的內(nèi)容。
用戶設(shè)備108向搜索引擎110提交搜索查詢。響應(yīng)于每個查詢,搜索引擎110訪問網(wǎng)絡(luò)索引116和應(yīng)用索引114,以識別與查詢相關(guān)的內(nèi)容。搜索引擎110例如可通過使用搜索結(jié)果生成器116,分別以網(wǎng)絡(luò)資源搜索結(jié)果和原生應(yīng)用搜索結(jié)果的形式來識別資源和應(yīng)用。一旦生成,搜索結(jié)果就被提供給從其接收了查詢的用戶設(shè)備108。
網(wǎng)絡(luò)資源搜索結(jié)果是基于滿足特定搜索查詢的資源的內(nèi)容來識別網(wǎng)絡(luò)資源的搜索引擎110生成的數(shù)據(jù)。對于資源的網(wǎng)絡(luò)資源搜索結(jié)果可包含網(wǎng)絡(luò)頁面標(biāo)題、從資源提取的文本的片斷以及資源的統(tǒng)一資源識別符(URI),例如網(wǎng)絡(luò)頁面的統(tǒng)一資源定位符(URL)。當(dāng)在用戶設(shè)備處選擇時,網(wǎng)絡(luò)資源搜索結(jié)果使用戶設(shè)備生成對于位于URL的資源的請求。接收的網(wǎng)絡(luò)資源然后顯示在瀏覽器應(yīng)用中。
原生應(yīng)用搜索結(jié)果指明原生應(yīng)用并且響應(yīng)于對應(yīng)用索引114和網(wǎng)絡(luò)索引116的搜索而生成,如下文進(jìn)一步具體描述的那樣。當(dāng)在用戶設(shè)備處選擇時,原生應(yīng)用搜索結(jié)果使安裝在用戶設(shè)備上的原生應(yīng)用請求同步的內(nèi)容。一旦原生應(yīng)用接收到請求的內(nèi)容,原生應(yīng)用就在原生應(yīng)用的用戶界面中顯示該內(nèi)容。
為了生成應(yīng)用索引114,搜索系統(tǒng)利用應(yīng)用抓取和索引系統(tǒng)120。圖2是應(yīng)用抓取和索引系統(tǒng)120的框圖。參考圖3來描述系統(tǒng)120在使用URL的原生應(yīng)用的上下文中的操作。參考圖4來描述使用自定義URI的原生應(yīng)用的操作的變化。
圖3是生成用于原生應(yīng)用的深鏈接的示例過程300的流程圖。過程300在一個或多個計算機(jī)的數(shù)據(jù)處理裝置中實現(xiàn)。
過程300在數(shù)據(jù)收集器204處接收原生應(yīng)用的發(fā)布商附屬數(shù)據(jù)202,該數(shù)據(jù)對于每個原生應(yīng)用定義原生應(yīng)用的附屬發(fā)布商(302)。例如,發(fā)布商提供如下數(shù)據(jù):特定原生應(yīng)用附屬于發(fā)布商,諸如原生應(yīng)用識別符與發(fā)布商的站點識別符的關(guān)聯(lián)性。一個示例站點識別符是域名,但是也可以使用用于定義發(fā)布商與原生應(yīng)用之間的附屬關(guān)系的其他類型的數(shù)據(jù)。
對于原生應(yīng)用來說,過程300基于發(fā)布商附屬數(shù)據(jù)來確定原生應(yīng)用是否附屬于提供由對于原生應(yīng)用確定的URI尋址的內(nèi)容的發(fā)布商(304)。例如,應(yīng)用包抓取器206從應(yīng)用清單文件109(或者定義類似的應(yīng)用規(guī)范的其他數(shù)據(jù))提取對于原生應(yīng)用的URI格式的方案(scheme)、主機(jī)和路徑。例如,在安卓清單的情況下,從意圖過濾器部分提取如下內(nèi)容:
<data android:scheme="http"
android:host="example.com"
android:pathPrefix="/gizmos"/>
此處,方案是“http”,主機(jī)是“example.com”,并且路徑是“/gizmos”。該過程確定原生應(yīng)用的URI模式以及該URI模式是否定義了與由發(fā)布商附屬數(shù)據(jù)202指明的原生應(yīng)用的附屬發(fā)布商匹配的原生應(yīng)用的附屬發(fā)布商。為了示出,對于上述示例數(shù)據(jù)而言,如果附屬數(shù)據(jù)202對于原生應(yīng)用定義方案為“http”,且主機(jī)為“example.com”,并且原生應(yīng)用107的清單109定義了相同的方案和主機(jī),那么原生應(yīng)用附屬于主機(jī)。
如果確定是肯定的,那么URI方案生成器208將原生應(yīng)用的數(shù)據(jù)存儲在URI方案表210中,然后,過程300基于原生應(yīng)用的URI模式來選擇URI(306)。例如,在一些實現(xiàn)方式中,URI選擇器212從URI方案表210檢索URI模式。然后,選擇器212在網(wǎng)絡(luò)索引116中搜索包含該URI模式的URL。在上述示例中,候選URL即http://example.com/gizmos/將被選擇器212處理。選擇器212可丟棄可包含其未被抓取的指示的URL;最近已對于原生應(yīng)用搜索并索引、但被指示為被刪除或者不活躍的URL;或者滿足某一其他排除標(biāo)準(zhǔn)的URL。
所選擇的剩余的URL被提供給URI處理器214,其從可通過URL訪問的內(nèi)容收集數(shù)據(jù)。然后,過程300在可通過搜索引擎搜索的索引中,對可由原生應(yīng)用的URL訪問的內(nèi)容進(jìn)行索引(308)。數(shù)據(jù)的收集和索引可由任何適當(dāng)?shù)倪^程來完成。在一個示例實現(xiàn)方式中,系統(tǒng)120將模擬用于用戶設(shè)備的操作系統(tǒng)的虛擬機(jī)實例化。在一些實現(xiàn)方式中,虛擬機(jī)可以是操作系統(tǒng)的修改的版本,并包含從應(yīng)用頁面提取數(shù)據(jù)的提取器,如下文進(jìn)一步具體描述的那樣。
系統(tǒng)120還在虛擬機(jī)內(nèi)將原生應(yīng)用107實例化,該原生應(yīng)用107生成用于在用戶設(shè)備上在原生應(yīng)用107內(nèi)顯示的應(yīng)用頁面,然后在虛擬機(jī)內(nèi)訪問響應(yīng)于處理選擇的URL而生成的原生應(yīng)用的應(yīng)用頁面。對于每個應(yīng)用頁面而言,系統(tǒng)110生成描述應(yīng)用頁面的內(nèi)容的應(yīng)用頁面數(shù)據(jù)。頁面的內(nèi)容可包含例如在應(yīng)用頁面上顯示的文本;在應(yīng)用頁面上顯示的圖像;在應(yīng)用頁面上到其他應(yīng)用頁面或者其他網(wǎng)絡(luò)資源的鏈接;和對于索引適當(dāng)?shù)钠渌麅?nèi)容。
在一些實現(xiàn)方式中,虛擬機(jī)包含提取內(nèi)容數(shù)據(jù)以用于進(jìn)行索引的提取器。提取的內(nèi)容數(shù)據(jù)例如是被提供給原生應(yīng)用的渲染過程的數(shù)據(jù)。渲染過程基于數(shù)據(jù)來渲染內(nèi)容以用于在用戶設(shè)備上顯示。使用提取器允許更精確地識別應(yīng)用頁面的各種內(nèi)容。例如,文本提取器提取提供給原生應(yīng)用的渲染過程的文本數(shù)據(jù)。文本數(shù)據(jù)指明要在應(yīng)用頁面中渲染的文本。因此,并非處理應(yīng)用頁面的圖像,或者處理顯示的二進(jìn)制數(shù)據(jù),虛擬機(jī)接收要在原生應(yīng)用107的環(huán)境中渲染的實際文本。
可以類似使用其他提取器,諸如圖像提取器和列表提取器。圖像提取器提供要在原生應(yīng)用107的環(huán)境中渲染的圖像的圖像數(shù)據(jù),并且列表提取器提供在原生應(yīng)用107的環(huán)境中渲染的可滾動項目的列表的列表數(shù)據(jù)。還可以提取其他數(shù)據(jù),諸如應(yīng)用頁面鏈接數(shù)據(jù),其描述應(yīng)用頁面內(nèi)的鏈接到另一個應(yīng)用頁面的鏈接;網(wǎng)絡(luò)頁面鏈接數(shù)據(jù),其描述應(yīng)用頁面內(nèi)鏈接到由統(tǒng)一資源定位符指代的網(wǎng)絡(luò)資源的鏈接,并且當(dāng)被選擇時,其將對與原生應(yīng)用分離的瀏覽器環(huán)境中的資源進(jìn)行渲染的瀏覽器應(yīng)用實例化;等等。
上述的提取器和其他適當(dāng)?shù)臄?shù)據(jù)提取器可以使用對于特定操作系統(tǒng)適當(dāng)?shù)臄?shù)據(jù)處理器來實現(xiàn)。例如,對于安卓TM操作系統(tǒng)而言,提取器可以分別使用TextView對象、ImageView對象和ListView對象來實現(xiàn)。虛擬機(jī)例如通過包含使虛擬機(jī)進(jìn)行存儲以用來對被提供用于渲染的對應(yīng)的數(shù)據(jù)進(jìn)行索引的指令,來處理對象以提取對應(yīng)的數(shù)據(jù)。
返回304,如果確定是否定的,那么過程300不處理發(fā)布商的URI(310)。這僅對于附屬于發(fā)布商(例如,由發(fā)布商發(fā)布或者由發(fā)布商批準(zhǔn)來顯示發(fā)布商內(nèi)容)的原生應(yīng)用促進(jìn)了發(fā)布商內(nèi)容的索引。
對于支持不一定符合網(wǎng)站的進(jìn)行自定義深鏈接的原生應(yīng)用而言,使用不同的過程來生成深鏈接。圖4是生成用于原生應(yīng)用的深鏈接的另一個示例過程的流程圖。過程400在一個或多個計算機(jī)的數(shù)據(jù)處理裝置中實現(xiàn)。
過程400確定原生應(yīng)用的URI模式(402)。例如,可以訪問應(yīng)用清單109來確定URI方案。URI方案可被用于定義“最高級”原生應(yīng)用URI資源,或者可被用于選擇已對于原生應(yīng)用進(jìn)行了索引的URI。
過程400將原生應(yīng)用實例化,并基于URI模式來選擇第一URI,以在原生應(yīng)用顯示環(huán)境中生成應(yīng)用頁面(404)。例如,虛擬機(jī)被實例化,并且在虛擬機(jī)上,原生應(yīng)用也被實例化。URI被提供給原生應(yīng)用并且應(yīng)用頁面被渲染。
過程400開始重復(fù)發(fā)現(xiàn)過程(406)。過程將繼續(xù),直到已處理了一組完整的URI。
過程400從應(yīng)用頁面確定第一應(yīng)用頁面中包含的出站URI(408)。例如,原生應(yīng)用API從應(yīng)用頁面數(shù)據(jù)URI確定到其他原生應(yīng)用URI的鏈接。例如通過處理從應(yīng)用頁面提取以用于與從清單109生成的URI模式匹配的文本;或者基于選擇定義輸出URI的標(biāo)記文本的API來進(jìn)行確定。
過程400選擇出站URI中的一個或多個來在原生應(yīng)用顯示環(huán)境中生成一個或多個后續(xù)應(yīng)用頁面(410)。在一些實現(xiàn)方式中,選擇所有輸出URI。在其他實現(xiàn)方式中,僅選擇符合原生應(yīng)用的URI模式的出站URI。
過程400在索引中對于一個或多個后續(xù)應(yīng)用頁面中的每一個,對應(yīng)用頁面數(shù)據(jù)進(jìn)行索引(412)。如上所述,系統(tǒng)110可使用虛擬機(jī),或者一些其他構(gòu)造來提取應(yīng)用頁面數(shù)據(jù)以用于索引。
過程400確定重復(fù)發(fā)現(xiàn)過程是否已終止(414)。如果重復(fù)發(fā)現(xiàn)過程已終止,那么過程400終止對于原生應(yīng)用的應(yīng)用索引(416)。否則,過程400返回步驟406并開始另一次重復(fù)。
在一些實現(xiàn)方式中,當(dāng)實際用戶觀看原生應(yīng)用內(nèi)的內(nèi)容時,可以使用原生應(yīng)用API來讓應(yīng)用抓取和索引系統(tǒng)120知曉實際上正被用戶觀看的鏈接。除了上述有組織的發(fā)現(xiàn)之外,應(yīng)用抓取和索引系統(tǒng)120還可使用該信息作為鏈接的附加的源。此外,應(yīng)用抓取和索引系統(tǒng)120還可基于鏈接的流行度使抓取優(yōu)先。
在本說明書中描述的主題和操作的實施例可以在數(shù)字電子電路中、或者在包含在本說明書中公開的結(jié)構(gòu)及其結(jié)構(gòu)等同物的計算機(jī)軟件、固件、或者硬件中實現(xiàn),或者在其一個或多個的組合中實現(xiàn)。在本說明書中描述的主題的實施例可實現(xiàn)為一個或多個計算機(jī)程序,即,計算機(jī)程序指令的一個或多個模塊,其在計算機(jī)存儲介質(zhì)上編碼,供數(shù)據(jù)處理裝置執(zhí)行,或者控制數(shù)據(jù)處理裝置的操作。替代地或者附加地,程序指令可在人工生成的傳播信號上編碼,該傳播信號例如是機(jī)器生成的電、光、或者電磁信號,其被生成為將信息編碼以傳輸至適當(dāng)?shù)慕邮掌餮b置以供數(shù)據(jù)處理裝置執(zhí)行。計算機(jī)存儲介質(zhì)可以是計算機(jī)可讀存儲設(shè)備、計算機(jī)可讀存儲基板、隨機(jī)或者串行訪問存儲器陣列或者設(shè)備或者其一個或多個的組合,或者被包含在這些之中。此外,當(dāng)計算機(jī)存儲介質(zhì)不是傳播信號時,計算機(jī)存儲介質(zhì)可以是在人工生成的傳播信號中編碼的計算機(jī)程序指令的源或者目的地。計算機(jī)存儲介質(zhì)還可以是一個或多個分離的物理組件或者介質(zhì)(例如多個CD、盤或者其他存儲設(shè)備),或者被包含在這些之中。
在本說明書中描述的操作可實現(xiàn)為由數(shù)據(jù)處理裝置對存儲在一個或多個計算機(jī)可讀存儲設(shè)備中或者從其他源接收的數(shù)據(jù)執(zhí)行的操作。
術(shù)語“數(shù)據(jù)處理裝置”涵蓋用于處理數(shù)據(jù)的所有種類的裝置、設(shè)備和機(jī)器,以示例的方式包含可編程處理器、計算機(jī)、片上系統(tǒng)、或者多個上述組件或者其組合。除了硬件外,該裝置還可包含對于討論中的計算機(jī)程序創(chuàng)建執(zhí)行環(huán)境的代碼,例如,構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、跨平臺運行時環(huán)境、虛擬機(jī)的代碼,或者其一個或多個的組合。裝置和執(zhí)行環(huán)境可實現(xiàn)各種不同的計算模型基礎(chǔ)設(shè)施,諸如網(wǎng)絡(luò)服務(wù)、分布式計算和網(wǎng)格計算基礎(chǔ)設(shè)施。
計算機(jī)程序(也被稱為程序、軟件、軟件應(yīng)用、腳本、或者代碼)可以以任何形式的編程語言編寫,包含編譯或解釋語言、聲明性或者程序性語言,并且其可以以任何形式部署,包含作為獨立程序或者作為模塊、組件、子例程、對象、或者適合用于計算環(huán)境的其他單元。計算機(jī)程序可以——但是不需要——與文件系統(tǒng)中的文件對應(yīng)。程序可存儲在保存其他程序或者數(shù)據(jù)的文件的一部分(例如,存儲在標(biāo)記語言文檔中的一個或多個腳本)、討論中的程序?qū)S玫膯蝹€文件、或者多協(xié)調(diào)文件(例如,存儲一個或多個模塊、子程序、或者代碼的部分的文件)中。計算機(jī)程序可被部署為在一個計算機(jī)上執(zhí)行或者在位于一個站點或者跨多個站點分布并通過通信網(wǎng)絡(luò)互連的多個計算機(jī)上執(zhí)行。
在本說明書中描述的過程和邏輯流程可由一個或多個可編程處理器執(zhí)行,可編程處理器通過對輸入數(shù)據(jù)操作并生成輸出,來執(zhí)行一個或多個計算機(jī)程序以執(zhí)行動作。適于執(zhí)行計算機(jī)程序的處理器以示例的方式包含一般微處理器和專用微處理器這兩者、以及任何種類的數(shù)字計算機(jī)的任何一個或多個處理器。通常,處理器將從只讀存儲器或隨機(jī)存取存儲器或者這兩者接收指令和數(shù)據(jù)。計算機(jī)的基本要素是根據(jù)指令來執(zhí)行動作的處理器;以及存儲指令和數(shù)據(jù)的一個或多個存儲器設(shè)備。通常,計算機(jī)還將包含用于存儲數(shù)據(jù)的一個或多個海量存儲設(shè)備,例如磁盤、磁光盤、或者光盤,或者可操作地耦接來從該海量存儲設(shè)備接收數(shù)據(jù)或者向其傳輸數(shù)據(jù),或者這兩者皆有。然而,計算機(jī)不需要具有這樣的設(shè)備。此外,計算機(jī)可嵌入到另一個設(shè)備中,例如,移動電話、個人數(shù)字助理(PDA)、移動音頻或者視頻播放器、游戲主機(jī)、全球定位系統(tǒng)(GPS)接收器、或者便攜存儲設(shè)備(例如,通用串行總線(USB)閃存驅(qū)動器),僅舉幾例。適于存儲計算機(jī)程序指令和數(shù)據(jù)的設(shè)備包含所有形式的非易失性存儲器、介質(zhì)和存儲器設(shè)備,以示例的方式包含半導(dǎo)體存儲器設(shè)備,例如EPROM、EEPROM和閃存存儲器設(shè)備;磁盤,例如內(nèi)部硬盤或者可移動盤;磁光盤;以及CD-ROM和DVD-ROM盤。處理器和存儲器可由專用邏輯電路補(bǔ)充,或者整合到其中。
為了支持與用戶的交互,在本說明書中描述的主題的實施例可實現(xiàn)在計算機(jī)上,該計算機(jī)具有:顯示器設(shè)備,例如CRT(陰極射線管)或者LCD(液晶顯示器)監(jiān)視器,用于向用戶顯示信息;以及鍵盤和指向設(shè)備,例如鼠標(biāo)或者軌跡球,由此用戶能夠向計算機(jī)提供輸入。其他種類的設(shè)備也可被用于支持與用戶的交互,例如,提供給用戶的反饋可以是任何形式的感官反饋,例如,視覺反饋、聽覺反饋、或者觸覺反饋;并且從用戶接收的輸入可以以任何形式接收,包含聲學(xué)、語音、或者觸覺輸入。此外,計算機(jī)可通過向用戶所使用的設(shè)備發(fā)送文檔并從其接收文檔,例如通過響應(yīng)于從網(wǎng)絡(luò)瀏覽器接收的請求將網(wǎng)絡(luò)頁面發(fā)送至用戶的用戶設(shè)備上的網(wǎng)絡(luò)瀏覽器,來與用戶交互。
在本說明書中描述的主題的實施例可實現(xiàn)在計算系統(tǒng)中,該計算系統(tǒng)包含后端組件,例如作為數(shù)據(jù)服務(wù)器;或者包含中間組件,例如應(yīng)用服務(wù)器;或者包含前端組件,例如具有圖形用戶界面或者網(wǎng)絡(luò)瀏覽器的用戶計算機(jī),用戶能夠通過該用戶計算機(jī)與本說明書中描述的主題的實現(xiàn)方式交互;或者一個或多個這樣的后端、中間、或者前端組件的任意組合。系統(tǒng)的組件可通過任意形式或者介質(zhì)的數(shù)字?jǐn)?shù)據(jù)通信(例如通信網(wǎng)絡(luò))來互相連接。通信網(wǎng)絡(luò)的示例包含局域網(wǎng)(LAN)和廣域網(wǎng)(WAN)、網(wǎng)間網(wǎng)(例如互聯(lián)網(wǎng))和對等網(wǎng)絡(luò)(例如自組對等網(wǎng)絡(luò))。
計算系統(tǒng)可包含用戶和服務(wù)器。用戶和服務(wù)器通常彼此遠(yuǎn)離,并典型地通過通信網(wǎng)絡(luò)交互。用戶和服務(wù)器的關(guān)系是通過在各計算機(jī)上運行并且彼此具有用戶-服務(wù)器關(guān)系的計算機(jī)程序而產(chǎn)生的。在一些實施例中,服務(wù)器將數(shù)據(jù)(例如HTML頁面)傳輸至用戶設(shè)備(例如,出于向與用戶設(shè)備交互的用戶顯示數(shù)據(jù)并從其接收用戶輸入的目的)。在用戶設(shè)備處生成的數(shù)據(jù)(例如,用戶交互的結(jié)果)可在服務(wù)器處從用戶設(shè)備接收。
雖然本說明書包含了很多具體的實現(xiàn)方式細(xì)節(jié),但這些不應(yīng)該解釋為限制任何發(fā)明或者可要求保護(hù)的內(nèi)容的范圍,而是作為針對特定發(fā)明的特定實施例的特征的描述。在不同實施例的上下文中的本說明書中描述的某些特征也可以在單個的實施例中以組合來實現(xiàn)。相反地,在單個實施例的上下文中描述的各種特征也可以分開在多個實施例或者以任何適當(dāng)?shù)淖咏M合來實現(xiàn)。此外,盡管特征在上文可被描述為在某些組合中動作,并且甚至最初就這樣要求保護(hù),但在一些情況下來自要求保護(hù)的組合的一個或多個特征可以從組合中剔除,并且要求保護(hù)的組合可以針對子組合或者子組合的變化。
類似地,雖然附圖中的操作以特定順序繪出,但這不應(yīng)該被理解為要求這樣的操作要以示出的特定順序或者先后順序執(zhí)行,或者要執(zhí)行所有示出的操作,以實現(xiàn)期望的結(jié)果。在某些境況下,多任務(wù)和并行處理可能是有利的。此外,上述實施例中的各種系統(tǒng)組件的分離不應(yīng)該被理解為在所有實施例中都要求這樣的分離,而應(yīng)該理解的是描述的程序組件和系統(tǒng)可通常一起集成在單個軟件產(chǎn)品中或者封裝到多個軟件產(chǎn)品中。
因此,描述了主題的特定實施例。其他實施例在所附權(quán)利要求的范圍內(nèi)。在一些情況下,權(quán)利要求中陳述的動作可以以不同的順序執(zhí)行,并且仍然能實現(xiàn)期望的結(jié)果。此外,在附圖中繪出的過程不一定要求示出的特定順序或者先后順序,以實現(xiàn)期望的結(jié)果。在某些實現(xiàn)方式中,多任務(wù)和并行處理可能是有利的。