CN105074700A - 产生含有到应用程序的状态链接的搜索结果 - Google Patents

产生含有到应用程序的状态链接的搜索结果 Download PDF

Info

Publication number
CN105074700A
CN105074700A CN201480011907.6A CN201480011907A CN105074700A CN 105074700 A CN105074700 A CN 105074700A CN 201480011907 A CN201480011907 A CN 201480011907A CN 105074700 A CN105074700 A CN 105074700A
Authority
CN
China
Prior art keywords
application
state
party application
search
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201480011907.6A
Other languages
English (en)
Inventor
L·沙皮拉
M·T·埃尔德
J·K·莱纳
M·哈里斯
T·卡干
J·本祖尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Quixey Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Quixey Inc filed Critical Quixey Inc
Publication of CN105074700A publication Critical patent/CN105074700A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9558Details of hyperlinks; Management of linked annotations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Quality & Reliability (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Artificial Intelligence (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明揭示一种用于产生含有到应用程序的状态链接(364)的搜索结果(360)的方法。所述方法包含:从远程计算装置(200)接收搜索查询(262);基于所述搜索查询产生到本机应用程序(218)的状态的状态链接;及将所述状态链接提供到所述远程计算装置,以上操作均由处理装置(310)进行。所述状态链接是与到第三方应用程序的一或多个其它链接一起提供。所述本机应用程序为第三方本机应用程序。所述本机应用程序对应于具有一或多个版本的第三方应用程序。所述状态链接包含对应于所述本机应用程序的应用程序资源识别符(365b),且用于访问所述第三方应用程序的所述本机应用程序版本中的状态。

Description

产生含有到应用程序的状态链接的搜索结果
优先权主张
本美国专利申请案主张2013年3月1日申请的第61/771,614号美国临时申请案及2014年1月6日申请的第61/924032号美国临时申请案的优先权,所述案的揭示内容被认为是本申请案的揭示内容的部分且特此以全文引用方式并入。
技术领域
本发明涉及计算环境中的搜索的领域。特定来说,本发明涉及产生含有到应用程序的状态链接的搜索结果。
背景技术
万维网(“网络”)含有无穷无尽的信息且其不断经历爆炸性的信息增长。用户经由网络浏览器访问信息,网络浏览器允许用户查看含有信息的网页。归因于日益增加的网页数目,网络搜索引擎变得可用于协助用户找到特定信息。大多数搜索引擎执行三个主要功能:爬网、索引及搜索。爬网程序是用于从网页检索信息的自动网络浏览器。一旦爬网程序收集了关于每一网页的信息,接着便在搜索引擎数据库中索引所述信息。索引解析且存储由爬网程序收集的信息以促进信息的检索。当用户将搜索查询输入到搜索引擎中时,起始搜索过程。搜索引擎引用其索引,且根据所提供的查询提供最佳匹配网页的结果。
发明内容
本发明的一个方面提供一种用于产生含有到应用程序的状态链接的搜索结果的方法。所述方法包含:从远程计算装置接收搜索查询;基于所述搜索查询产生到本机应用程序的状态的状态链接;及将状态链接提供到所述远程计算装置,以上操作均由处理装置进行。在一些实施方案中,将状态链接与到第三方应用程序的一或多个其它状态链接一起提供到远程计算装置。在一些实施方案中,本机应用程序为第三方本机应用程序。所述本机应用程序可对应于具有一或多个版本的第三方应用程序。所述状态链接可包含对应于本机应用程序的应用程序资源识别符且用于访问第三方应用程序的本机应用程序版本中的状态。
本发明的实施方案可包含以下特征中的一或多者。在一些实施方案中,状态链接进一步包含网络资源识别符,网络资源识别符用于访问处在第三方应用程序的相同状态的对应于第三方应用程序的网络应用程序。所述状态链接可包含一或多个其它应用程序资源识别符。
在一些实例中,确定状态链接包含基于搜索查询确定应用程序资源识别符且将应用程序资源识别符嵌入到状态链接中。此外或替代地,本机应用程序可对应于第三方应用程序。第三方应用程序具有包含本机应用程序的一或多个版本。确定应用程序资源识别符可包含:基于搜索查询产生到与第三方应用程序相关联的服务器的请求;从与第三方应用程序相关联的服务器接收响应;及基于所述响应产生应用程序资源识别符。所述响应可包含用于访问处在所述状态的第三方应用程序的网络应用程序版本的网络资源识别符。产生应用程序资源识别符可包含使用转换规则将网络资源识别符转换成应用程序资源识别符。
在一些实施方案中,确定应用程序资源识别符包含:识别对应于本机应用程序的命令模板;及基于所述命令模板及搜索查询产生应用程序资源识别符。所述命令模板指示本机应用程序且包含接收状态参数的一或多个参数字段。
本发明的另一方面提供一种搜索服务器。所述搜索服务器包含网络接口装置及处理装置。所述处理装置执行计算机可读指令。当所述指令由处理装置执行时,所述指令致使处理装置经由网络接口装置从远程计算装置接收搜索查询,基于所述搜索查询产生到本机应用程序的状态的状态链接且将到本机应用程序的状态链接提供到远程计算装置。可将所述状态链接与到第三方应用程序的一或多个其它状态链接一起提供到远程计算装置。所述本机应用程序为第三方本机应用程序。所述本机应用程序对应于具有一或多个版本的第三方应用程序。所述状态链接包含对应于本机应用程序的应用程序资源识别符且用于访问第三方应用程序的本机应用程序版本中的状态。所述状态链接进一步包含网络资源识别符,所述网络资源识别符用于访问对应于处在第三方应用程序的相同状态的对应于第三方应用程序的网络应用程序。所述状态链接包含一或多个其它应用程序资源识别符。
在一些实施方案中,计算机可读指令致使处理装置通过基于搜索查询确定应用程序资源识别符且将应用程序资源识别符嵌入到状态链接来确定状态链接。所述本机应用程序可对应于第三方应用程序。所述第三方应用程序可具有包含本机应用程序的一或多个版本。在一些实施方案中,所述计算机可读程序指令致使所述处理装置通过以下操作来确定应用程序资源识别符:基于搜索查询产生到与第三方应用程序相关联的服务器的请求;从与第三方应用程序相关联的服务器接收响应且基于所述响应产生应用程序资源识别符。
在一些实例中,所述响应包含用于访问处在所述状态的所述第三方应用程序的网络应用程序版本的网络资源识别符。在一些实施方案中,计算机可读指令致使处理装置通过使用转换规则将网络资源识别符转换成应用程序资源识别符来产生应用程序资源识别符。所述计算机可读指令致使处理装置通过识别对应于本机应用程序的命令模板且基于所述命令模板及搜索查询产生应用程序资源识别符来确定应用程序资源识别符。所述命令模板指示本机应用程序且包含接收状态参数的一或多个参数字段。
本发明的另一方面提供一种用于产生含有到应用程序的状态链接的搜索结果的方法。所述方法包含:从远程计算装置接收含有一或多个查询参数的查询;及识别对应于一或多个查询参数的第三方应用程序集合,以上操作均由处理装置进行。对于每一第三方应用程序,所述方法包含:将一或多个查询参数的至少子集发射到与第三方应用程序相关联的服务器;从与第三方应用程序相关联的服务器接收响应;及基于所述响应产生到第三方应用程序的本机应用程序版本的状态链接。所述方法进一步包含将状态链接提供到远程计算装置。所述一或多个查询参数包含包含一或多个查询项的搜索查询。所述一或多个查询参数进一步包含远程计算装置的地理位置、远程计算装置的操作系统或远程计算装置的用户的识别符中的一或多者。
在一些实例中,状态链接提供对第三方应用程序的本机应用程序版本的状态的访问。在一些实施方案中,状态链接包含指示状态的屏幕截图。在一些实施方案中,状态链接包含应用程序资源识别符,所述应用程序资源识别符指示对本机应用程序版本的引用及对应于所述状态的一或多个状态参数。所述一或多个状态参数可由本机应用程序用于访问所述状态。此外或替代地,状态链接可包含指示与第三方应用程序相关联的网络服务器的域名及一或多个状态参数的网络资源识别符。所述网络服务器托管第三方应用程序的网络应用程序版本。
在一些实例中,发射查询参数包含将一或多个查询参数的至少子集发射到托管网络应用程序的网络服务器,所述网络应用程序为第三方应用程序的网络应用程序版本。发射查询参数可进一步包含:从多个命令模板选择对应于第三方应用程序的命令模板;基于命令模板及一或多个查询参数的至少子集格式化传出请求;及将传出请求发射到网络服务器。
在一些实施方案中,接收响应包含接收网络资源识别符,所述网络资源识别符指示与第三方应用程序相关联的网络服务器的域名及对应于网络应用程序的状态的一或多个状态参数,所述一或多个状态参数由网络应用程序用于访问所述状态。确定到本机应用程序的状态链接包含将网络资源识别符转换成应用程序资源识别符,所述应用程序资源识别符指示对第三方应用程序的本机应用程序版本的引用及一或多个状态参数。远程计算装置经配置以将应用程序资源识别符用于将本机应用程序启动到由一或多个状态参数指示的状态。远程计算装置经配置以接收状态链接且在试图使用网络资源识别符访问网络应用程序版本之前使用应用程序资源识别符访问本机应用程序版本上的状态。
本发明的又另一方面提供一种用于产生含有到应用程序的状态链接的搜索结果的搜索服务器。所述搜索服务器包含网络接口装置及处理装置。所述处理装置执行计算机可读指令,所述计算机可读指令在由处理装置执行时致使所述处理装置从远程装置接收含有一或多个查询参数的查询且识别对应于一或多个查询参数的第三方应用程序集合。对于每一第三方应用程序,处理装置将一或多个查询参数的至少子集发射到与第三方应用程序相关联的服务器,从与第三方应用程序相关联的服务器接收响应且基于所述响应产生到第三方应用程序的本机应用程序版本的状态链接。所述处理装置提供到远程计算装置的状态链接。一或多个查询参数包含包含一或多个查询项的搜索查询。所述一或多个查询参数可进一步包含远程计算装置的地理位置、远程计算装置的操作系统或远程计算装置的用户的识别符中的一或多者。
在一些实施方案中,状态链接提供对第三方应用程序的本机应用程序版本的状态的访问且提供到远程计算装置的状态链接。在一些实施方案中,状态链接包含应用程序资源识别符,所述应用程序资源识别符指示对本机应用程序版本的引用及对应于所述状态的一或多个状态参数。所述一或多个状态参数可由本机应用程序用于访问所述状态。此外或替代地,所述状态链接可进一步包含网络资源识别符,所述网络资源识别符指示与第三方应用程序相关联的网络服务器的域名及一或多个状态参数。所述网络服务器托管第三方应用程序的网络应用程序版本。所述计算机可读指令致使处理装置通过将一或多个查询参数的至少子集发射到托管网络应用程序的网络服务器来发射查询参数,所述网络应用程序为第三方应用程序的网络应用程序版本。在一些实施方案中,状态链接包含指示所述状态的屏幕截图。
在一些实例中,所述计算机可读指令进一步致使处理装置通过以下操作来发射查询参数:从多个命令模板选择对应于第三方应用程序的命令模板;基于所述命令模板及一或多个查询参数的至少子集格式化传出请求及将所述传出请求发射到网络服务器。此外或替代地,所述计算机可读指令可致使所述处理装置通过接收指示与第三方应用程序相关联的网络服务器的域名及对应于网络应用程序的状态的一或多个状态参数的网络资源识别符来接收所述响应,所述一或多个状态参数由网络应用程序用于访问所述状态。
在一些实施方案中,计算机可读指令进一步致使处理装置通过将网络资源识别符转换成应用程序资源识别符来确定到本机应用程序的状态链接,所述应用程序资源识别符指示对第三方应用程序的本机应用程序版本的引用及一或多个状态参数。所述远程计算装置经配置以使用应用程序资源识别符将本机应用程序启动到由一或多个状态参数指示的状态。在一些场景中,远程计算装置可经配置以接收状态链接,且在试图使用网络资源识别符访问网络应用程序版本之前使用应用程序资源识别符访问本机应用程序版本上的状态。
本发明的又另一方面提供一种用于产生含有到应用程序的状态链接的搜索结果的方法。所述方法包含:从远程计算装置接收含有一或多个查询参数的查询;且识别对应于一或多个查询参数的第三方应用程序集合。对于每一第三方应用程序,所述方法包含:从多个命令模板选择对应于第三方应用程序的命令模板;基于命令模板及一或多个查询参数的至少子集产生对应于第三方应用程序的资源识别符;及基于所述资源识别符产生状态链接。所述方法进一步包含将状态链接提供到远程计算装置,以上操作均由处理装置进行。所述一或多个查询参数包含包含一或多个查询项的搜索查询,且可包含远程计算装置的地理位置、操作系统或识别符中的一或多者。所述命令模板是基于在查询中牵涉的功能性来选择且可经格式化以利用第三方应用程序的特定功能性。
所述远程计算装置可经配置以使用状态链接访问第三方应用程序。在一些实例中,资源识别符为网络资源识别符,所述网络资源识别符指示托管第三方应用程序的网络应用程序版本的网络服务器的域名。所述网络资源识别符可包含对应于查询参数的至少子集的一或多个状态参数。在一些实施方案中,网络资源识别符可为统一资源定位符。所述资源识别符可为指示第三方应用程序的本机应用程序版本的应用程序资源识别符。所述应用程序资源识别符可进一步包含对应于查询参数的至少子集的一或多个状态参数。
在一些实施方案中,状态链接包含至少一个应用程序资源识别符及至少一个网络资源识别符。所述远程计算装置可经配置以接收状态链接且在试图使用网络资源识别符访问网络应用程序版本之前使用应用程序资源识别符访问本机应用程序版本上的状态。在一些实施方案中,状态链接包含指示所述状态的屏幕截图。
本发明的又另一方面提供一种用于产生含有到应用程序的状态链接的搜索结果的搜索服务器。所述搜索服务器包含网络接口装置及执行计算机可读指令的处理装置。当执行指令时,处理装置从远程计算装置接收含有一或多个查询参数的查询且识别对应于一或多个查询参数的第三方应用程序集合。对于每一第三方应用程序,处理装置从多个命令模板选择对应于第三方应用程序的命令模板,基于所述命令模板及一或多个查询参数的至少子集产生对应于第三方应用程序的资源识别符且基于所述资源识别符产生状态链接。所述处理装置将状态链接提供到远程计算装置。所述命令模板可基于查询中牵涉的功能性来选择且可经格式化以利用第三方应用程序的特定功能性。远程计算装置可经配置以使用状态链接访问第三方应用程序。
在一些场景中,资源识别符为指示托管第三方应用程序的网络应用程序版本的网络服务器的域名的网络资源识别符。所述网络资源识别符可进一步包含对应于查询参数的至少子集的一或多个状态参数。
在一些场景中,资源识别符为指示第三方应用程序的本机应用程序版本的应用程序资源识别符。所述应用程序资源识别符可进一步包含对应于查询参数的至少子集的一或多个状态参数。
在一些实施方案中,状态链接可包含至少一个应用程序资源识别符及至少一个网络资源识别符。所述远程计算装置经配置以接收状态链接且在试图使用网络资源识别符访问网络应用程序版本之前试图使用应用程序资源识别符访问本机应用程序版本上的状态。所述状态链接可包含指示所述状态的屏幕截图。
附图说明
图1A及1B说明用于执行搜索的实例系统。
图2说明远程计算装置的实例组件集合。
图3说明搜索服务器的实例组件集合。
图4A及4B说明用于将查询参数发射到与一或多个第三方应用程序相关联的服务器的方法的实例操作集合。
图5说明用于处理来自远程计算装置的查询的方法的实例操作集合。
图6说明用于处理来自远程计算装置的查询的方法的实例操作集合。
图7A到10说明可在远程计算装置上执行的各种搜索实例。
图11A及11B说明用于处理查询的方法的实例操作集合。
图12A及12B说明用于处理查询的方法的实例操作集合。
图13说明能够从机器可读媒体读取指令且在处理器(或控制器)中执行所述指令的实例机器的组件的一个实施例。
各种图式中的相同参考符号指示相同元件。
具体实施方式
图及以下描述仅以说明的方式论及优选实施例。应注意,根据以下论述,本文中揭示的结构及方法的替代实施例将容易地被认为是可在不脱离所主张的内容的原理的情况下采用的可行替代物。
现将详细参考若干实施例,所述若干实施例的实例在附图中予以说明。应注意,只要可行,类似或相同参考数字便可在图中使用且可指示类似或相同功能性。所述图仅出于说明目的描绘所揭示系统(或方法)的实施例。所属领域的技术人员将容易地从以下描述认识到,可在不脱离本文中描述的原理的情况下采用本文中说明的结构及方法的替代实施例。
图1A及1B说明用于执行搜索的实例系统10。系统10包含经由网络110与一或多个远程计算装置200通信的搜索服务器300。举例来说,远程计算装置200可指代移动计算装置(例如,智能电话200a或平板计算机200b)、固定计算装置200c(例如,桌上型计算机或膝上型装置)、可穿戴计算机、视频游戏机、智能家电及/或包含用户接口及网络接口装置的任何其它合适装置。搜索服务器300还可经由网络110与应用服务器120及网络服务器130通信。下文进一步描述搜索服务器300及远程计算装置200。术语“服务器”可指代主要服务客户端装置(例如,远程计算装置200或其它服务器)的计算装置。此外,虽然图1A及1B描绘独立服务器,但搜索服务器300可为一或多个数据中心处的一批装置。这些装置可独立工作或以分布式方式工作。虽然图1A及1B说明每一相应装置类型中的一者,但系统10可包含任何装置数目及/或组合。
在操作中,远程计算装置200可至少部分执行搜索应用程序214,搜索应用程序214显示允许用户输入搜索查询262的图形用户接口(GUI)250。搜索查询262为远程计算200向搜索服务器300提供的查询参数,搜索服务器300使用所述查询参数来确定搜索结果360。举例来说,用户可使用触摸屏小键盘、机械小键盘及/或经由语音辨识将搜索查询262输入到GUI250的搜索栏252(例如,搜索框)中。搜索查询262可包含一或多个查询项。查询项可指代搜索查询262中的词语、数字及/或符号。用户可与搜索应用程序214的GUI250交互以将搜索查询262发射到搜索服务器300。举例来说,关于图1B,用户可输入搜索查询262(即,“深夜餐厅”)且选择(例如,触摸或点击)GUI250的搜索按钮254以便将搜索查询262发射到搜索服务器300。
在一些实例中,远程计算装置200(例如,搜索应用程序214)可将额外查询参数264连同搜索查询262一起发射到搜索服务器300。举例来说,额外查询参数264可包含平台数据(例如,装置类型、操作系统版本、网络浏览器版本、安装在远程计算装置200上的本机应用程序的列表)、地理位置数据(例如,远程计算装置200的位置)、远程计算装置200的用户的识别(例如,用户名)、用户偏好(例如,用户的语言偏好、用户的位置偏好、用户偏好免费应用程序还是付费应用程序、用户的浏览历史)、伙伴特定数据及/或其它合适数据。在一些实施方案中,搜索应用程序214可将搜索查询262及额外查询参数264捆绑成查询包装器260。查询包装器260可含有呈由通过搜索服务器300实施的方案定义的格式的查询参数262、264。在一些实施方案中,额外查询参数264中的一或多者可存储在搜索服务器300的高速缓冲存储器上,使得可在接收到查询包装器260时查找额外查询参数264。搜索服务器300可使用包含在查询包装器260中的查询参数262、264中的一或多者以产生搜索结果360。
搜索应用程序214可实施为客户端网络应用程序(例如,网络浏览器)、本机应用程序及/或操作系统的一部分。“本机应用程序”为至少部分由远程计算装置200的处理装置执行的应用程序。“网络应用程序”为至少部分由网络服务器130执行且由远程计算装置200经由远程计算装置200的网络浏览器访问的应用程序。在一些实例中,搜索应用程序214为一应用程序,与搜索服务器300相关联或与搜索服务器300有联系的当事方开发所述应用程序以使远程用户计算装置200能使用搜索服务器300的搜索能力。
在一些实施方案中,搜索应用程序214经配置以与伙伴装置(partnerdevice)140通信。伙伴装置140从远程计算装置200接收查询参数262、264,伙伴装置140将查询参数262、264提供到搜索服务器300。搜索服务器300将搜索结果360提供到伙伴装置140。伙伴装置140可将搜索结果360传达到远程计算装置200。伙伴装置140可进一步处理搜索结果360或将内容添加到搜索结果360(例如,广告、视觉指示符及/或额外结果对象362)。
搜索服务器300接收搜索查询262及/或其它查询参数264,且确定对应于搜索查询262及/或其它查询参数264的一组搜索结果360。搜索结果360可包含一或多个结果对象362。结果对象362可指代被提供到远程计算装置200的可由远程计算装置200显示的数据。对应于第三方应用程序的结果对象362可包含到第三方应用程序的状态的一或多个状态链接364、对应于第三方应用程序的一或多个视觉指示符366(例如,第三方应用程序的图标、对应于第三方应用程序的状态的实体的标志或图像及/或第三方应用程序的屏幕截图)及对应于第三方应用程序的其它数据368(例如,对应于第三方应用程序的排名、评级及/或描述,及/或对应于第三方应用程序的状态的实体)。
状态链接364可指代包含用户可经由远程计算装置200的用户接口选择(例如,触摸)的文本及/或图像的对象。远程计算机装置200显示状态链接364且在一些实施方案中呈现状态链接364。每一用户可选择状态链接364可包含用于访问第三方应用程序的特定状态的一或多个资源识别符365。资源识别符365为可引用第三方应用程序的特定状态的一串字母、数字及/或字符。资源识别符的类型包含网络资源识别符365a及应用程序资源识别符365b。网络资源识别符365a(例如,URL)可用于访问网络应用程序的状态。网络资源识别符365a可包含对服务网络应用程序的网络服务器130的域名的引用及由网络服务器130用于访问应用程序的特定状态的一或多个状态参数。应用程序资源识别符365b可用于访问本机应用程序的状态。应用程序资源识别符365b可包含对待由远程计算装置200启动的本机应用程序的引用及可由远程计算装置200用于访问应用程序的特定状态的一或多个状态参数。
状态链接364可包含一或多个应用程序资源识别符365b及网络资源识别符365a,使得当用户选择状态链接364时,远程计算装置200可将本机应用程序启动到在应用程序资源识别符365b中引用的状态且/或访问处在由网络资源识别符365a指示的状态的网络应用程序。向用户显示的状态链接364的文本及/或图像可指示将响应于状态链接364的选择而被访问的应用程序的状态。举例来说,如果状态链接364是到音乐播放应用程序中的歌曲,那么文本及/或图像可识别将在用户选择状态链接364时由音乐播放应用程序播放的歌曲。
在图1B的实例中,用户已输入搜索查询“深夜餐厅”。响应于搜索查询262及(可能地)一或多个额外参数264(例如,远程计算装置200的地理位置、操作系统类型、用户名、安装在远程计算装置上的本机应用程序的列表及/或用户的语言偏好),搜索服务器300返回包含对应于应用程序的第一结果对象362a的搜索结果360。应用程序为提供各种企业的大众评论及评级以及所述企业特有的信息(例如,营业时间、联系信息及位置)的应用程序。每一企业可在应用程序内具有条目,借此用户可通过搜索企业或按位置来查看关于所述企业的评级、评论及任何其它信息。结果对象362a包含到本机应用程序的三个不同状态的状态链接364。状态链接364包含到对应于针对INTERNATIONALHOUSEOF餐厅或的第一条目的状态的第一状态链接364a、到对应于针对餐厅的第二条目的状态的第二状态链接364b及到对应于针对TACO餐厅的第三条目的状态的第三状态链接364c。每一状态链接364可包含一或多个资源识别符365,其允许远程计算装置200访问处在由一或多个资源识别符365指示的状态的应用程序。举例来说,对应于的状态链接364a可包含一或多个应用程序资源识别符365b,借此每一应用程序资源识别符365b对应于应用程序的不同本机应用程序版本(例如,iOS版本及版本),但对应于相同状态(例如,针对餐厅的条目)。状态链接364a还可包含对应于应用程序的网络应用程序版本且对应于相同状态(例如,针对餐厅的条目)的网络资源识别符365a。
用户可选择(例如,按压或触摸)状态链接364中的一者,且响应于所述选择,远程计算装置200可访问由嵌入在状态链接364中的资源识别符365指示的状态。在一些场景中,远程计算装置200可启动由嵌入在状态链接364中的应用程序资源识别符365b指示的本机应用程序使其处在由应用程序资源识别符365b指示的状态。举例来说,如果用户选择第一状态链接364a,那么远程计算装置200可试图启动本机应用程序且使用嵌入在状态链接364a中的应用程序资源识别符365b来访问针对由状态链接指示的的条目(例如,针对定位在远程计算装置200的地理位置附近的餐厅的条目)。如果远程计算装置200无法启动本机应用程序(例如,所述本机应用程序未安装在远程计算装置200上),那么远程计算装置200可使用嵌入在状态链接364a中的网络资源识别符365a经由远程计算装置200的网络浏览器应用程序访问网络应用程序。仅作为实例提供图1B的搜索结果360及显示搜索结果360的方式。
在操作中,搜索服务器300接收搜索查询262及/或查询参数264,且识别与搜索查询262及/或查询参数264相关的一或多个第三方应用程序。搜索服务器300产生到可能与搜索查询262及/或查询参数264相关的第三方应用程序的特定状态的资源识别符365。包含在结果对象362中的状态链接364是基于由搜索服务器300产生的资源识别符365。
第三方应用程序可指代由与搜索服务器300无联系的当事方开发的应用程序。在一些实施方案中,第三方应用程序可包含全部提供相同或类似功能性的一或多个本机应用程序及一或多个网络应用程序。举例来说,允许用户共享播放列表及歌曲推荐的音乐播放器的第三方应用程序可包含iOS操作系统的本机应用程序的“付费”版本、iOS操作系统的本机应用程序的“免费”版本、操作系统的本机应用程序的“付费”版本及操作系统的本机应用程序的“免费”版本。第三方应用程序还可包含可通过移动远程计算装置200a及/或桌上型远程计算装置200c上的网络浏览器访问的移动网络应用程序及完整版网络应用程序。所有不同的版本可能具有重叠的功能且可分类到第三方应用程序下。
搜索服务器300可解析且处理查询包装器260以识别与查询参数262、264相关的第三方应用程序。如本文中论述,搜索查询262可包含识别或以其它方式牵涉第三方应用程序的名称、所要功能性或实体的查询项。搜索服务器300可执行一或多个类型的搜索以基于查询参数262、264确定第三方应用程序集合。举例来说,如果搜索服务器300接收到查询“预定下午7点的法国洗衣房”,那么搜索服务器300可识别“法国洗衣房”具有餐馆的实体类型且处理查询项的剩余部分以确定用户期望允许用户进行预定的功能性。接着,搜索服务器300可识别可用于进行餐馆预定的第三方应用程序集合。
在一些实施方案中,搜索服务器300经配置以将查询参数262、264中的一或多者转发到与第三方应用程序相关联的服务器。更具体来说,搜索服务器300可将查询参数262、264中的一或多者发射到与第三方应用程序相关联的服务器以利用第三方应用程序的特定功能性。第三方应用程序的功能性可指代所述第三方应用程序经配置以执行的特定任务或所述第三方应用程序经配置以提供的特定信息。举例来说,第三方应用程序的功能性可为在地图上提供地理坐标、在第三方应用程序的音乐库中搜索特定歌曲、找到从源位置到目的地的机票的价格且预定所述机票,或搜索对附近餐馆的评论。因此,如果第三方应用程序为以搜索平台为中心的评论应用程序(例如,所述第三方应用程序返回各种企业的信息及大众评论),那么搜索服务器300可将查询参数262、264中的一或多者提供到评论应用程序的网络服务器130或应用服务器120以接收对应于一或多个查询参数262、264的评论。搜索服务器300可转发查询参数262、264以使用由第三方实施以牵涉第三方应用程序的功能性的方案来利用第三方应用程序的功能性。
一旦搜索服务器300已确定与查询262相关的第三方应用程序集合,搜索服务器300便可根据每一第三方应用程序的方案产生请求,搜索服务器300可将所述请求发送到每一相应第三方应用程序(例如,网络服务器130或应用服务器120)。第三方应用程序可将对所述请求的响应提供到搜索服务器300。所述响应可包含指示所请求数据的信息(例如,展示搜索结果的一或多个网页)、指示可在何处访问所请求数据的一或多个资源识别符365及/或分别指示其中可访问所请求数据的第三方应用程序的一或多个状态的一或多个状态参数。以此方式,可在较晚时间访问所指示的状态而无须重复查询。如本文中使用,第三方应用程序的状态可指代第三方应用程序的特定页面或屏幕(例如,网络应用程序的特定页面或本机应用程序的特定屏幕)。此外,第三方应用程序的状态可取决于一组状态参数。举例来说,如果第三方应用程序显示一组特定查询项的搜索结果,那么第三方应用程序的状态至少部分依据查询项。因此,网络应用程序的状态可由网络应用程序的域名及对应于特定状态的状态参数引用。可使用第三方应用程序的名称及对应于所述状态的状态参数来访问本机应用程序的状态。
在一些实施方案中,搜索服务器300进一步经配置以提供第三方应用程序的状态的执行后视图。在一些实施方案中,执行后视图为处在所述状态的本机应用程序或网络应用程序的屏幕截图。可在结果对象362中连同状态链接364一起提供所述屏幕截图,使得用户可看到第三方应用程序的状态。在一些实施方案中,执行后视图为向用户显示的图形用户接口250,使得用户可访问在所述状态中定义的特定功能性。
图2说明远程计算装置200的实例组件集合。远程计算装置200可包含处理装置210、网络接口220、存储装置230及用户接口装置240。远程计算装置200可包含未在图2中描绘的额外组件(例如,加速度计、传感器、GPS模块)。
处理装置210包含存储计算机可读指令的存储器(例如,RAM及/或ROM)及执行计算机可读指令的一或多个处理器。在其中处理装置210包含一个以上处理器的实施方案中,所述处理器可以分布式或个别方式执行。所述处理装置可执行操作系统212、搜索应用程序214、网络浏览器应用程序216及一或多个其它本机应用程序218。操作系统212充当更高级的应用程序214、216、218与处理装置210之间的接口。
网络接口220包含经配置以与网络110通信的一或多个装置。网络接口220可包含用于执行有线或无线通信的一或多个收发器。网络接口220的实例可包含但不限于经配置以执行蜂窝通信(例如,使用第三代(3G)或第四代(4G)电信标准的发射)的收发器、经配置以使用IEEE802.11无线标准执行通信的收发器、以太网端口、无线发射器及通用串行总线(USB)端口。
存储装置230可包含存储数据的一或多个计算机可读媒体。存储装置230可存储定义搜索应用程序214、网络浏览器应用程序216及一或多个其它本机应用程序218的计算机可读指令中的一些或所有。存储装置230还可存储其它数据(例如,媒体内容、应用程序数据、联系方式、文档)。
用户接口装置240可包含允许用户与远程计算装置200交互的一或多个装置。用户接口装置240可包含(例如)触摸屏、QWERTY键盘、显示装置、扬声器、触摸板及麦克风中的一或多者。用户接口装置240从用户接收输入且将输入提供到处理装置210。用户接口装置240从处理装置210接收输出且将所述输出输出到用户。
网络浏览器应用程序216为请求来自网络浏览器的网页数据且将所述数据显示在用户接口装置240上的应用程序。网络浏览器应用程序216可用于访问网络应用程序。在一些实施方案中,网络浏览器应用程序216可通过访问定位在网络资源识别符365b的域部分中的网络服务器130且使用在网络资源识别符365b的路径部分中指示的状态参数将请求提供到网络浏览器130来访问网络应用程序的特定状态。网络应用程序可提供任何合适功能性。
本机应用程序218为至少部分由处理装置210执行的应用程序。本机应用程序218可由第三方开发且可以各种方式提供给消费者。举例来说,用户可从应用程序零售商店(例如,从由谷歌公司(GoogleInc.)开发的GOOGLE由苹果公司(AppleInc.)开发的APP)或从与第三方相关联的网站将本机应用程序下载到远程计算装置200。此外或替代地,用户可从可卸除媒体(例如,CD-ROM)将本机应用程序加载到远程计算装置200的存储装置230中。本机应用程序218可提供任何合适功能性。本机应用程序的实例可包含但不限于文字处理应用程序、消息发送应用程序、媒体流式处理应用程序、社交网络应用程序、电子阅读器应用程序及游戏。
搜索应用程序214呈现允许用户输入搜索查询262且显示搜索结果360的图形用户接口250(GUI)。在一些实施方案中,GUI250可显示搜索栏252,借此用户可将文本及/或语音输入提供到搜索栏252中。此外或替代地,远程计算装置200的操作系统212可在远程计算装置200的主屏幕上显示搜索栏252,借此用户可直接从主屏幕输入搜索查询262。在这些实施方案中,当用户将搜索查询262输入到显示在主屏幕上的搜索栏252中且执行搜索时,远程计算装置200的操作系统212可启动搜索应用程序214。
当用户执行搜索查询262(例如,通过按压搜索按钮254)时,搜索应用程序214可产生含有搜索查询262及任何查询参数264的查询包装器260。搜索应用程序214可以任何合适方式获得其它查询参数264。举例来说,搜索应用程序214可从存储装置230中或处理装置210的存储器中的文件获得关于装置的信息(例如,装置类型、操作系统类型、操作系统版本)。此外或替代地,搜索应用程序214可从远程计算装置200的传感器或组件获得关于装置的信息(例如,可从远程计算装置200的GPS模块获得地理位置)。搜索应用程序214可基于所提供的搜索查询262及所获得的查询参数264产生查询包装器260。
搜索应用程序214将查询包装器260发射到搜索服务器300,搜索服务器300以搜索结果360进行响应。搜索应用程序214在搜索应用程序214的GUI250中显示搜索结果360。如先前论述,搜索应用程序214可显示用于访问与查询参数262、264相关的资源的状态链接364。状态链接364可包含应用程序资源识别符365b,应用程序资源识别符365b可用于启动第三方应用程序且访问所述第三方应用程序内的特定状态。当用户选择状态链接364时,搜索应用程序214可起始对处在特定状态的第三方应用程序的访问。在一些实施方案中,搜索应用程序214试图启动第三方应用程序的本机应用程序218版本。为起始将本机应用程序218启动到特定状态,搜索应用程序214使用提供在状态链接364中的信息将用于启动第三方应用程序的指令提供到操作系统212。操作系统212可试图启动由状态链接364中的应用程序资源识别符365b指示的本机应用程序218,且如果不成功,那么可试图经由网络浏览器应用程序216访问第三方应用程序(即,利用第三方应用程序的网络应用程序版本)。
图3说明搜索服务器300的实例组件集合。搜索服务器300可包含处理装置310、网络接口320及存储装置330。搜索服务器300可包含未在图3中明确展示的额外组件。搜索服务器300可实施为单个装置或一批装置(例如,机架式安装服务器)。搜索服务器300可定位在单个位置(例如,定位在单个数据中心)或定位在多个位置(例如,定位在多个数据中心)。
处理装置310包含存储计算机可读指令的存储器(例如,RAM及/或ROM)及执行计算机可读指令的一或多个处理器。在其中处理装置310包含一个以上处理器的实施方案中,所述处理器可以分布式或个别方式执行。所述处理装置可执行搜索模块312、转发模块314、链接模块316、查看模块318及结果模块中的一或多者。处理装置310可进一步执行充当一或多个模块312、314、316、318、319与处理装置310之间的接口的操作系统(未展示)。
网络接口320包含可执行有线及/或无线(例如,WiFi或蜂窝)通信的一或多个装置。网络接口装置320的实例包含但不限于经配置以使用IEEE802.11无线标准执行通信的收发器、以太网端口、无线发射器及通用串行总线(USB)端口。
存储装置330可包含存储数据的一或多个计算机可读媒体。存储装置330可存储计算机可读指令及其它合适数据中的一些或所有。在一些实施方案中,存储装置存储应用程序数据存储区332、实体数据存储区334及命令模板数据存储区336中的一或多者。
应用程序数据存储区332可包含一或多个数据库、索引(例如,倒排索引)、文件或存储此数据的其它数据结构。应用程序数据存储区332包含不同第三方应用程序的应用程序数据。应用程序的应用程序数据可包含与所述应用程序相关联的关键词、与所述应用程序相关联的评论、所述应用程序的开发者的姓名、所述应用程序的平台、所述应用程序的价格、应用程序统计资料(例如,应用程序的下载次数及/或应用程序的评级数目)、应用程序的分类及其它信息的一或多者。应用程序数据存储区332可包含在各种不同操作系统上可用的各种不同应用程序的元数据。搜索模块312可从应用程序数据存储区332检索应用程序数据且分析所述应用程序数据以便执行应用程序搜索且提供搜索结果360。
在一些实施方案中,应用程序数据存储区332将应用程序数据存储在应用程序记录340中。每一应用程序记录340可对应于第三方应用程序且可包含关于所述第三方应用程序的应用程序数据。实例应用程序记录340包含应用程序名称、应用程序识别符及其它应用程序特征。应用程序记录340可大体上表示存储在应用程序数据存储区332中的与第三方应用程序相关的应用程序数据。
应用程序名称可为由应用程序记录340中的数据表示的第三方应用程序的名称。实例应用程序名称可包含Word”或“ANGRY”。应用程序识别符(下文为“应用程序ID”)在包含在应用程序数据存储区332中的其它应用程序记录340之中识别应用程序记录340。在一些实施方案中,应用程序ID可唯一地识别应用程序记录340。应用程序ID可为唯一地识别由应用程序记录340表示的第三方应用程序的一串字母、数字及/或符号字符(例如,标点符号)。在一些实施方案中,应用程序ID为由提供所述应用程序的零售网站(例如,APP或GOOGLE)指派给所述应用程序的ID。在其它实施方案中,搜索服务器300在产生针对第三方应用程序的应用程序记录340时将应用程序ID指派给每一第三方应用程序。
第三方应用程序的应用程序特征可包含可与由应用程序记录340表示的第三方应用程序相关联的任何类型的数据。应用程序特征可包含各种不同类型的元数据。举例来说,应用程序特征可包含结构化、半结构化及/或未结构化数据。应用程序特征可包含从自其它数据源(例如,应用程序零售网站、应用程序开发者、博客及应用程序的评论)检索的文档提取或推断出或手动产生(例如,由人输入)的信息。
应用程序特征可包含应用程序的开发者的姓名、应用程序的分类(例如,类型)、应用程序的描述(例如,由开发者提供的描述)、应用程序的版本、应用程序针对其配置的操作系统及应用程序的价格。应用程序特征进一步包含提供到应用程序的反馈单元。反馈单元可包含由应用程序的评论者提供的评级(例如,五颗星中的四颗)及/或文本评论(例如,“这个应用程序很棒”)。所述应用程序特征还可包含应用程序统计资料。应用程序统计资料可指代与应用程序相关的数值数据。举例来说,应用程序统计资料可包含但不限于下载的次数、下载率(例如,每月下载)及/或反馈单元的数目(例如,评级的数目及/或评论的数目)。所述应用程序特征还可包含从网站检索的信息,例如与应用程序相关联的说明、与应用程序相关联的文章(例如,维基文章)或其它信息。所述应用程序还可包含与应用程序相关的数字媒体,例如图像(例如,与应用程序相关联的图标及/应用程序的屏幕截图)或视频(例如,应用程序的样本视频)。
在一些实施方案中,应用程序记录340可在规范应用程序结构下分组一或多个应用程序版次。术语规范应用程序结构可指代一组类似的应用程序版次。换句话说,规范应用程序结构可为在其下组织一或多个应用程序版次的代表或伞形结构。在相同规范应用程序结构下组织的一组应用程序版次中的每一应用程序版次分别指示在功能上类似于组织在规范应用程序结构下的第三方应用程序的其它版本的第三方应用程序的版本。换句话说,应用程序版次可表示相同第三方应用程序的不同版本。版次应用程序的实例为应用程序的不同发布版本(例如,测试版、1.0或2.0)、应用程序的不同语言版本(例如,英语、俄语或汉语)、应用程序的不同平台版本(例如,iOS或)、不同的功能特性(例如,精简版本、高级用户版本)、不同审美特性(例如,假日主题版本)及应用程序的不同分辨率版本(例如,标准清晰度或高清晰度)。相关但不类似的第三方应用程序(例如,游戏系列的续集或系列应用程序的不同发布)通常不分类在相同规范应用程序下。举例来说,ANGRY可为独立于ANGRYSTAR的规范应用程序。虽然应用程序可具有相同的基本概念,但是其被视为单独的游戏(即,第三方应用程序)。
实体数据存储区334可包含一或多个数据库、索引(例如,倒排索引)、文件或其它数据结构。实体数据存储区334存储一或多个实体索引342。每一实体索引342索引多个实体记录344。每一实体记录344具有实体类型。实体类型定义在实体数据存储区334中引用的多个各种分类中的一者。实体类型的非限制性实例包含“机场”、“电影”、“电视节目”、“演员”、“音乐家”、“乐队”、“歌曲”、“唱片集”、“餐馆”、“城市”、“国家”、“人物”、“医药”、“症状”及“时间”。每一实体记录344表示不同实体。每一实体表示一种特定实体类型。举例来说,项“玩具总动员(ToyStory)”可为实体类型“电影”,可为实体类型“餐馆”及/或“快餐馆”且“披头士(theBeatles”)”可为实体类型“乐队”。在一些实施方案中,每一实体类型具有对应实体索引342。实体数据存储区334可离线建立且/或可不断更新。在一些实例中,实体索引342为人类策划的,其可使用现有数据源(例如,)来建立实体数据存储区334。策划者可手动定义实体类型且可对数据源爬网以索引所有各种实体。每一实体类型可具有与其对应的特定记录格式。举例来说,餐馆实体的实体记录344可为:{entityTypeId:1,typeName:”Restaurant”,fields:[“name”,“foodType”]}。在此情形中,餐馆为实体类型名称。实体数据存储区334可进一步包含含有每一实体支持应用程序(例如,第三方应用程序)的应用程序引用记录的应用程序配置数据库(未展示)。每一应用程序引用记录包含第三方应用程序的名称或应用程序ID及特定第三方应用程序支持哪个或哪些实体类型。举例来说,对应于(因特网电影数据库)的应用程序引用记录可支持电影实体、电视节目实体及演员实体。类似地,应用程序的应用程序引用记录可支持餐馆实体、零售商店实体或其它企业相关实体。
命令模板数据存储区336存储用于不同第三方应用程序的多个命令模板346。命令模板346可为定义第三方应用程序接受一或多个状态参数的方式的模板。在一些实施方案中,第三方应用程序的命令模板346包含用于产生发送到与第三方应用程序相关联的服务器的请求的请求命令模板346c。请求可指代提供到资源(例如,网络服务器130或应用服务器120)的请求特定功能的通信。此外或替代地,用于第三方应用程序的命令模板346可包含用于产生资源识别符365的命令模板346a、346b。命令模板346可为人类策划的或由第三方应用程序的开发者提供。此外,在一些实施方案中,可通过解析且分析第三方应用程序的代码(例如,网络应用程序的HTML代码)以识别由第三方应用程序实施的方案及由第三方应用程序接受的各种参数来确定由第三方应用程序实施的命令模板346。
根据一些实施方案,特定第三方应用程序的网络应用程序命令模板346a是用于产生用于访问网络应用程序的特定状态的网络资源识别符365a(例如,URL)的模板。在一些实施方案中,网络资源识别符365a可指示执行第三方应用程序的网络应用程序版本的网络服务器130的域名及定义网络应用程序的状态的一或多个状态参数。举例来说,网络资源识别符365a可为统一资源定位符(URL),使得URL的第一部分为域名,且URL的第二部分为指示定义可用于访问网络应用程序的指定状态的一或多个状态参数的路径的尾部。网络浏览器使用网络资源识别符365a通过将网络请求发送到由所述域名引用的网络服务器130来访问在网络资源识别符365a中指示的第三方应用程序的状态,借此网络请求包含以在网络应用程序命令模板346a及/或方案中定义的方式布置的状态参数。举例来说,对应于URL:“http://www.example.com/find?q=al+pacino&s=all”的网络请求可在HTTP请求中发射到定位在对应于www.example.com的地址处的服务器,且状态参数可包含在尾部部分:“find?q=al+pacino&s=all”中。在此实例中,对网络资源识别符365a的响应将包含展示由查询项“阿尔·帕西诺(AlPacino)”产生的搜索结果(360)的网页。网络应用程序命令模板346a可定义网络应用程序的网络服务器130的域名(例如,“www.domain.com”)及识别接收参数的参数字段及网络服务器130接受参数的顺序(例如,“/<param_type_1>&<param_type_2”>,其中param_type_1及param_type_2为由定位在http://www.domain.com处的网络服务器130接受的参数的类型)的路径。每一网络应用程序可具有一或多个对应网络命令模板346a。在另一实例中,用于第三方应用程序的网络应用程序命令模板346a可呈以下形式:“http://www.domain.com/search?find_desc=<query_terms>&find_loc<loc>。在此实例中,网络命令模板364a包含两个参数字段:<query_terms>,其接受搜索查询项;及<loc>,其接受位置(例如,城市、州及/或国家)。
根据一些实施方案,特定第三方应用程序的本机应用程序命令模板346b是用于产生应用程序资源识别符365b的模板。应用程序资源识别符365b为对应于本机应用程序218的状态的一串字母、数字及/或字符。本机应用程序218可解析应用程序资源识别符365b以提供对应用程序的状态的访问。应用程序资源识别符365b识别本机应用程序218。在一些场景中,应用程序资源识别符365b包含对应于应用程序的状态的一或多个状态参数。一或多个状态参数可由本机应用程序218用于访问所述状态。应用程序资源识别符365b可指示远程计算装置200的操作系统212基于引用本机应用程序218的应用程序资源识别符365b的域名来启动本机应用程序218且基于包含定义本机应用程序218的状态的一或多个状态参数的尾部部分来访问本机应用程序218的特定状态。当远程计算装置200的用户选择应用程序资源识别符365b时,远程计算装置200启动所述应用程序且访问所述应用程序中的状态。本机应用程序命令模板346b可包含识别本机应用程序218(例如,“example_app”)的域部分及识别接收参数的参数字段及本机应用程序218及/或应用服务器120接受参数的顺序(例如,“::<param_type_1>:<param_type_2”>,其中param_type_1及param_type_2为由本机应用程序218“example_app”接受的参数类型)的尾部部分。每一本机应用程序218可具有一或多个对应的本机应用程序命令模板346b。在另一实例中,用于第三方本机应用程序的本机应用程序命令模板346b可呈以下形式:
“example_app::search?find_desc=<query_terms>&find_loc<loc>。在此实例中,本机应用程序命令模板346b包含两个参数字段:
<query_terms>,其接受搜索查询项;及<loc>,其接受位置(例如,城市、州及/或国家)。
命令模板数据存储区336可进一步存储具有存储在命令模板数据存储区336中的命令模板346的用于每一第三方应用程序的关联表。第三方应用程序的关联表可使存储在实体数据存储区334中的不同实体类型与第三方应用程序所接受的参数字段相关联。举例来说,如果第三方应用程序接收分别呈<loc>及<rest_name>形式的位置及餐馆实体查询,那么关联表可使位置实体关联到<loc>且使餐馆实体关联到<rest_name>。
在操作中,搜索模块312接收查询参数262、264且识别对应于查询参数262、264的第三方应用程序集合。搜索模块312经配置以执行任何类型的合适搜索。在一些实施方案中,搜索模块312可执行功能搜索、实体搜索及名称搜索中的一或多者。
功能搜索为对提供特定功能性的应用程序的搜索。功能搜索不同于名称搜索或关键词搜索,这是因为功能搜索通常旨在识别提供所要任务、功能或特征(例如,找到餐馆、带我去市区、在哪里找到最佳汉堡包)而非特定关键词的应用程序。举例来说,与对的名称搜索相比,功能搜索项可为“与国外的朋友进行视频通话”。在此实例中,查询不包含项应用程序的描述不提及词语“朋友”或“国外”。因此,传统关键词搜索可能不将应用程序识别为相关的。因为应用程序允许用户跨越世界进行视频及语音通话,所以功能搜索将可能响应于“与国外的朋友进行视频通话”查询参数262而识别应用程序。
功能搜索可包含跨越多个平台或限于某些平台(例如,仅)地搜索第三方应用程序。借助实例,在一个实施例中,平台可为硬件架构及/或软件框架,其组合允许软件运行。平台的一些实例包含但不限于OS、MICROSOFTMobile、APPLEMAC功能搜索可由应用程序数据存储区332支持。应用程序数据存储区332包含来自多个第三方源(例如但不限于博客、应用程序评论网站、应用程序目录及/或应用程序开发者)的数据。归因于包含在功能数据库中的不同源,功能搜索利用多个数据源且分析文本及非文本特征两者,且基于用户的输入查询项向用户提供最佳可用应用程序的列表。应用程序数据存储区332合并其从不同源收集的信息且基于相同应用程序的不同版本或版次组合所述信息,从而提供更综合的分析。给应用程序数据存储区332编索引以更快地检索数据条目。
在操作上,搜索模块312可从远程计算装置200接收查询包装器260。搜索模块312可处理查询包装器260中含有的查询参数262、264。搜索模块312可对查询参数262、264执行各种处理操作。举例来说,由搜索模块312执行的分析操作可包含但不限于查询参数262、264的标记化、查询参数262、264的筛选、词干分解搜索查询262、查询参数262、264的同义化及停止词删除。在一些实施方案中,搜索模块312可进一步基于查询参数262、264产生一或多个子查询。子查询为基于搜索查询262及其它查询参数264的某个子组合的搜索查询。
搜索模块312基于查询参数262、264且在一些实施方案中基于子查询识别应用程序的考虑集合(例如,应用程序的列表)。在一些实例中,搜索模块312可通过基于查询参数262、264(及/或子查询)中的项与应用程序的应用程序数据中(例如,在应用程序的应用程序记录262中)的项之间的匹配来识别对应于查询参数262、264或子查询的应用程序。举例来说,搜索模块312可基于表示查询参数262、264的项或标记与包含在那些应用程序的应用程序记录340中的项或标记之间的匹配来识别在应用程序数据存储区332中表示的一或多个应用程序。所述考虑集合可包含应用程序ID的列表及/或应用程序名称的列表。
搜索模块312对考虑集合执行各种不同处理操作。在一些实施方案中,搜索模块312可产生包含在考虑集合中的应用程序中的每一者的结果分数。在一些实例中,搜索模块312可基于包含在考虑集合中的应用程序的结果分数精选考虑集合。举例来说,子集可为具有最高结果分数或具有超过阈值的结果分数的那些应用程序。包含在搜索结果360中的结果对象362可取决于搜索模块312如何计算结果分数。举例来说,结果分数可取决于应用程序与查询参数262、264的相关性、应用程序在市场中的普及性、应用程序的评级及应用程序的其它性质的任何组合。
搜索模块312可以各种不同方式产生应用程序的结果分数。一般来说,搜索模块312可基于一或多个评分特征产生应用程序的结果分数。所述评分特征可与应用程序及/或查询参数262、264相关联。应用程序评分特征可包含与应用程序相关联的任何数据。举例来说,应用程序评分特征可包含包含在应用程序记录340中的应用程序特征中的任何者或与应用程序相关的任何额外特征(例如,指示应用程序的普及性的数据(例如,下载次数)及与应用程序相关联的评级(例如,星的数目))。查询评分特征可包含与查询参数262、264相关联的任何数据。举例来说,查询评分特征可包含但不限于搜索查询262中的项数、搜索查询262的普及性及搜索查询262中的项的期望频率。应用程序-查询评分特征可包含任何数据,所述数据可基于与所述应用程序及查询参数262、264(例如,导致搜索模块312识别应用程序记录340的查询参数262、264)两者相关联的数据而产生。举例来说,应用程序-查询评分特征可包含但不限于指示查询的项与经识别应用程序记录340的项的匹配程度的参数。搜索模块312可基于应用程序评分特征、查询评分特征及应用程序-查询评分特征中的至少一者产生应用程序的结果分数。
搜索模块312可基于本文中列出的评分特征及/或未明确列出的额外评分特征中的一或多者来确定结果分数。在一些实例中,搜索模块312可包含经配置以接收一或多个评分特征的一或多个机器学习模型(例如,监督学习模型)。一或多个机器学习模型可基于应用程序评分特征、查询评分特征及应用程序-查询评分特征中的至少一者产生结果分数。举例来说,搜索模块312可使查询参数262、264与每一应用程序配对,且计算每一(查询、应用程序)对的特征向量。特征向量可包含应用程序评分特征、查询评分特征及应用程序-查询评分特征。接着,搜索模块312可将特征向量输入到机器学习回归模型中以计算可用于对考虑集合中的应用程序进行排名的结果分数。接着,搜索模块312可基于结果分数对在考虑集合中指示的应用程序进行排名。此外或替代地,搜索模块312可基于结果分数精选考虑集合中指示的应用程序。功能搜索的输出为基于考虑集合的第三方应用程序集合。以上内容为如何计算结果分数的实例。一些实施方案可以不同方式计算结果分数。
此外或替代地,搜索模块312执行实体搜索。实体搜索为试图识别查询中引用的实体的类型且在一些情形中试图识别与那些实体相关的第三方应用程序的搜索。搜索模块312可将实体搜索的结果包含在第三方应用程序的集合中且/或可利用所述结果来增强由功能搜索产生的结果。实体搜索由实体数据存储区334支持。
在操作中,搜索模块312接收查询参数262、264且起始实体搜索。搜索模块312将包含查询参数262、264的项中的一或多者的数据库请求提供到实体数据存储区334。当在实体数据存储区334中列出一或多个项时,实体数据存储区334返回匹配项的实体类型。接着,搜索模块312可基于应用程序引用记录确定哪些第三方应用程序与返回的实体类型相关。搜索模块312可进一步经配置以通过估计实体匹配是否是良好匹配的概率来对每一实体类型/第三方应用程序匹配进行评分。搜索模块312可使用探索技术来对实体类型/第三方应用程序匹配进行评分。搜索模块312可基于计算出的分数对匹配的应用程序进行排名。匹配的应用程序可包含在第三方应用程序的集合中。此外或替代地,一旦搜索模块312已对应用程序进行评分,便可将实体搜索的结果(例如,应用程序的列表及对应分数)作为信号提供到功能搜索过程。在这些实施方案中,功能搜索过程可利用实体搜索结果(360)作为信号来确定考虑集合中的应用程序的结果分数。
在实体搜索的实例中,查询参数262、264可含有项“玩具总动员”。搜索模块312可识别实体数据存储区334中的“玩具总动员”,其可与一或多个实体类型相关联。举例来说,“玩具总动员”可识别为电影实体。接着,搜索模块312可识别与电影实体相关的第三方应用程序。在此实例中,搜索模块312可识别应用程序、应用程序及ROTTEN应用程序作为支持电影实体的第三方应用程序。因此,可在第三方应用程序集合中指示这些第三方应用程序且/或这些第三方应用程序可用于计算在功能搜索过程期间识别的考虑集合中指示的应用程序的结果分数。
在一些实施方案中,搜索模块312可将经识别实体存储在查询参数262、264中供以后使用。在这些实施方案中,所存储实体可用于将请求发送到网络服务器130或应用服务器120或产生一或多个资源识别符365。
在一些实施方案中,搜索模块312进一步经配置以执行名称搜索。名称搜索为对具有明确包含在查询项中的名称的第三方应用程序的搜索。搜索模块312可确定搜索查询262中的项中的任何者是否匹配到在应用程序数据存储区332中表示的应用程序的名称。如果是这样,那么搜索模块312可将由应用程序表示定义的第三方应用程序包含到第三方应用程序集合。仅作为实例提供以上搜索技术。
转发模块314经配置以将查询参数262、264中的一或多者转发到由搜索模块312识别的第三方应用程序的服务器。在一些实施方案中,转发模块314确定与每一第三方应用程序相关联的网络服务器130及/或应用服务器120。在这些实施方案中,转发模块314可获得对应于第三方应用程序的请求命令模板346c以用于将请求发射到网络服务器130及/或应用服务器120。转发模块314可从命令模板数据存储区336获得第三方应用程序的请求命令模板346c。基于请求命令模板346c及一或多个查询参数262、264,转发模块314格式化传出请求。请求命令模板346c可基于由特定第三应用程序实施以接收且处理请求的方案。每一第三方应用程序可接受不同参数类型及用于在提供到第三方应用程序的请求中表达参数的不同语法。因此,由第三方应用程序实施的方案可定义其期望如何接收请求,借此每一命令模板可经定义以利用第三方应用程序的特定功能性。
转发模块314可通过将从查询包装器260提取的查询参数262、264中的一或多者插入到命令模板346c中来产生传出请求。如所论述,搜索模块312可确定查询参数262、264的至少子集的实体类型。此外,通过识别特定第三方应用程序的命令模板346c,转发模块314可明白包含在第三方应用程序的每一特定命令模板346c中的参数类型。转发模块314可利用实体类型与参数类型之间的关联表来确定将哪些查询参数包含在传出请求中。举例来说,用于进行餐馆预定的第三方应用程序可接受以下命令模板:
“http://www.ex_res_app.com/ex.aspx?d=<date>&t=<time>&r=<name>”且查询可已包含以下查询项:“法国洗衣店”、当前日期及“下午9点”。在此实例中,搜索模块312确定“法国洗衣店”最有可能是餐馆实体,当前日期可能是日期实体且“下午9点”最有可能是时间实体。因此,转发模块314可基于上文引用的命令模板346c产生请求URL
“http://www.ex_res_app.com/ex.aspx?d=<FEB28>&t=<2100>&r=<French_Laundry>”。转发模块314可将请求发射到对应于第三方应用程序的网络服务器130(或应用服务器120)。以此方式,转发模块314利用第三方应用程序的预定功能性。虽然在以上实例中展示请求URL,但请求可具有任何其它合适格式,例如对第三方应用程序的服务器的API调用。
第三方应用程序处理所述请求(如同其处理来自远程计算装置200的任何其它请求)且返回对应于所述请求的响应。举例来说,如果第三方应用程序为允许消费者搜索服装品牌或类型的在线零售商,那么第三方应用程序可返回指示由与第三方应用程序相关联的零售商出售的服装物品的响应,借此指示在响应中的物品对应于包含在所述请求中的参数。
来自第三方应用程序的响应可包含资源识别符365。举例来说,网络服务器130可响应于网络请求。所述响应可包含所请求数据及指示可在何处找到所请求数据的网络资源识别符365a及/或应用程序资源识别符365b。举例来说,如果第三方应用程序为用于进行餐馆预定的应用程序,那么第三方应用程序的服务器可接收指示餐馆名称、时间及日期的请求。作为响应,服务器120、130可返回指示在指定日期及时间是否可进行预定的响应及/或到允许用户进行预定的第三方应用程序的状态的资源识别符365(例如,网络资源识别符365a或应用程序资源识别符365b)。
链接模块316从第三方应用程序(即,从第三方应用程序的网络服务器130及/或应用服务器120)接收响应,且基于从每一相应第三方应用程序接收的响应产生到第三方应用程序的状态链接364。链接模块316将状态链接364包含在作为搜索结果360的一部分提供到远程计算装置200的结果对象362中。在一些实施方案中,链接模块316从与第三方应用程序中的每一者相关联的网络服务器130接收网络资源识别符365a。对于每一网络资源识别符365a,链接模块316可产生包含一或多个网络资源识别符365a及/或一或多个应用程序资源识别符365b的状态链接364。链接模块316可经配置以将网络资源识别符365a转换成应用程序资源识别符365b。举例来说,链接模块316可利用转换规则来从网络资源识别符365a转换到应用程序资源识别符365b。转换规则可为第三方应用程序特有的(例如,第一转换规则可应用于第一第三方应用程序,而第二转换规则可应用于第二第三方应用程序)。转换规则可定义如何将网络资源识别符365a中的域名转换成包含在应用程序资源识别符365b中的对本机应用程序218的引用。转换规则可进一步定义如何将出现在网络资源识别符365a中的状态参数转换成包含在应用程序资源识别符365b中的状态参数。
此外或替代地,链接模块316可使用对应于在第三方应用程序集合(由搜索模块312识别)指示的第三方应用程序、查询参数262、264中含有的项中的一或多者及(在一些情形中)由搜索模块312识别的一或多个实体及实体类型的一或多个命令模板产生到第三方应用程序的特定状态的状态链接364。在一些实施方案中,链接模块316从命令模板数据存储区336获得针对在第三方应用程序集合中指示的每一第三方应用程序及(在一些情形中)由搜索模块312确定的实体类型的一或多个命令模板346。举例来说,对于允许用户进行餐馆预定的第三方应用程序,对应于所述第三方应用程序的命令模板346可包含用于产生网络资源识别符365a及应用程序资源识别符365b的命令模板346。每一命令模板346可指示其接收的参数的类型。通过使用使实体类型关联到由第三方应用程序接受的参数类型的关联表,链接模块316确定可在每一命令模板346中的哪些参数字段中输入哪些实体。接着,链接模块316用经识别实体替换命令模板346中的参数字段。以此方式,对于在第三方应用程序集合中识别的每一第三方应用程序,链接模块316可产生利用第三方应用程序的一或多个功能性的一或多个网络资源识别符365a及/或应用程序资源识别符365b而无须将请求发送到第三方应用程序的网络服务器130或应用服务器120。
对于对应于特定状态的资源识别符365的每一集合,链接模块316可将对应于第三方应用程序的资源识别符365的集合嵌入在状态链接364中。在其中状态链接包含一个以上资源识别符365(例如,一或多个应用程序资源识别符365b及网络资源识别符365a)的实施方案中,链接模块316可进一步包含具有指示访问资源识别符365的顺序的状态链接的指令集。举例来说,指令集可指示远程计算装置200首先试图启动由应用程序资源识别符365b指示的本机应用程序218,且如果不成功,那么经由远程用户计算装置200的网络浏览器访问网络应用程序。在一些实施方案中,指令集为脚本。
查看模块318可确定可向远程计算装置200提供的第三方应用程序的状态的视图。举例来说,第三方应用程序的状态的视图可为第三方应用程序的本机应用程序版本或网络应用程序版本的图形用户接口(GUI)250。在一些实施方案中,举例来说,查看模块318可访问处在确定状态的网络应用程序且捕获处在所述状态的网络应用程序的图形用户接口250的屏幕截图。在这些实施方案中,查看模块318可将屏幕截图提供到链接模块316,链接模块316为屏幕截图提供状态链接。在一些实施方案中,仅取得对应于由查询牵涉的功能性的屏幕部分的屏幕截图。
在一些实施方案中,查看模块318经配置以向远程计算装置200提供对实际第三方应用程序(例如,第三方应用程序的本机应用程序版本或网络应用程序版本)的访问权。在这些实施方案中,查看模块318分析网络应用程序或本机应用程序218的代码以识别关于应用程序的特定状态的所要功能的特定代码片段。接着,可在网络服务器130、搜索服务器300或在远程计算装置200处执行代码的经识别部分以向用户提供由查询牵涉的功能性。为支持这些实施方案,可使用将行为(例如,特定功能)及与相关联行为相关的呈现分割成模块化框的编程语言编写网络应用程序。以此方式,查看模块318可有效地识别对应于特定功能性或状态的模块化框,使得查看模块318可向模块化框提供一或多个查询参数262、264,所述模块化框使用所述一或多个查询参数262、264执行。这允许远程计算装置200接收处在所要状态的网络应用程序或本机应用程序218的特定功能的视图,且进一步与网络应用程序或本机应用程序218交互(例如,提供额外输入且/或接收额外输出)。
结果模块319产生搜索结果360且将搜索结果(360)提供到提供所述查询的远程计算装置200。对于第三方应用程序集合中的每一第三方应用程序,结果模块319可产生第三方应用程序的结果对象362。结果对象362可包含到第三方应用程序的不同状态的一或多个状态链接364。如先前论述,每一状态链接364可包含应用程序资源识别符365b及/或网络资源识别符365a。此外或替代地,结果模块319可获得对应于第三方应用程序的视觉指示符366且可将视觉指示符366包含在结果对象362中。可包含在第三方应用程序的结果对象362中的视觉指示符的实例包含第三方应用程序的图标、对应于第三方应用程序的状态的实体的标志或图像及/或第三方应用程序的屏幕截图。此外或替代地,结果模块319可获得对应于第三方应用程序的其它数据368且可将其它数据368包含在结果对象362中。对应于第三方应用程序的其它数据368的实例可包含对应于第三方应用程序的排名、评级及/或描述及/或对应于第三方应用程序的状态的实体。结果模块319可将结果对象362组合到搜索结果360中且将搜索结果360发射到远程计算装置200。
图4A说明用于将参数提供到一或多个第三方应用程序的方法400的实例操作集合。出于解释的目的,方法400被描述为由搜索服务器300的组件执行。
在操作410处,搜索模块312从远程计算装置200接收查询(例如,查询包装器260)。在一些实施方案中,可经由伙伴装置140从远程计算装置200提供所述查询。如所论述,所述查询可包含查询参数262、264,其包含搜索查询262及其它参数264(例如,远程计算装置200的位置及/或远程计算装置200的操作系统212)。搜索模块312可解析搜索查询262以识别查询项。此外,搜索模块312可执行自然语言处理以提取查询项的特征。在操作412处,搜索模块312可基于查询参数262、264及/或查询项的特征识别对应于查询的一或多个第三方应用程序的集合。如先前论述,搜索模块312可执行功能搜索、实体搜索及名称搜索中的一或多者以识别第三方应用程序集合。
在操作414处,转发模块314将查询参数262、264发射到与在第三方应用程序集合中指示的第三方应用程序中的每一者相关联的服务器。图4B说明用于将查询参数262、264发射到第三方应用程序的服务器的实例方法430。可针对在第三方应用程序集合中指示的每一第三方应用程序重复方法430。
在操作440处,转发模块314选择对应于第三方应用程序的命令模板346。转发模块314可从命令模板数据存储区336获得用于产生请求的一或多个请求命令模板346c,可通过第三方应用程序给命令模板数据存储区域336编索引。如先前论述,请求命令模板346c可为人类策划的、由第三方应用程序的应用程序开发者提供或从第三方应用程序的代码习得。可进一步要求转发模块314选择第三方应用程序内的特定请求命令模板346c,使得特定请求命令模板346c对应于由查询牵涉的功能性。举例来说,如果第三方应用程序允许用户请求对餐馆的评论且进行餐馆预定,那么第三方应用程序可经配置以至少接收对应于两个不同请求命令模板346c的请求。在一些场景中,转发模块314可基于查询的实体类型选择请求命令模板346c中的一或多者。举例来说,如果查询参数262、264包含餐馆名称、日期及时间,那么转发模块314可选择用于预定餐馆的命令模板346。替代地,转发模块314可选择定义对应于与由查询参数262、264牵涉的实体类型的参数字段的第三方应用程序的任何命令模板346。
在操作442处,转发模块314基于命令模板346及查询参数262、264格式化传出请求。转发模块314可将相关查询参数262、264插入到在命令模板346中定义的参数字段以产生传出请求。转发模块314可利用实体类型与请求命令模板346c中的参数字段的参数类型之间的所定义关联来填充参数字段。举例来说,如果查询项的实体类型关联到参数类型,那么转发模块314以查询项填充参数字段。
在操作444处,转发模块314可将传出请求发射到与第三方应用程序相关联的服务器(例如,网络服务器130或应用服务器120)。与第三方应用程序相关联的服务器处理所述请求且将结果提供到搜索服务器300。
图4A及4B的方法400及430是作为实例而提供且不意在限制本发明的范围。预期所述方法的变化且所述方法的变化在本发明的范围内。
图5说明用于处理来自远程计算装置200的查询的方法500的实例操作集合。出于解释的目的,方法500被描述为由搜索服务器300的组件执行。
在操作510处,搜索模块312从远程计算装置200接收查询(例如,查询包装器260)。仅出于解释的目的,远程计算装置200被解释为是远程计算装置200。在一些实施方案中,可经由伙伴装置140从远程计算装置200提供查询。如所论述,查询可包含查询参数262、264,其包含搜索查询262及其它参数264(例如,远程计算装置200的位置及/或远程计算装置200的操作系统212)。搜索模块312解析搜索查询262以识别搜索查询262的查询项。此外,搜索模块312可执行自然语言处理以提取查询项的特征。
在操作512处,搜索模块312可基于查询参数262、264及/或查询项的特征识别对应于查询的一或多个第三方应用程序的集合。如先前论述,搜索模块312可执行功能搜索、实体搜索及名称搜索中的一或多者以识别第三方应用程序集合。
在操作514处,转发模块314将查询参数262、264中的一或多者发射到与第三方应用程序集合中的每一者相关联的服务器。在一些实施方案中,转发模块314可在发射一或多个查询参数262、264时执行关于图4B描述的方法430。
在操作516处,链接模块316从第三方应用程序中的每一者接收响应。举例来说,所述响应可从执行第三方应用程序的网络应用程序版本的网络服务器130接收。在此场景中,所述响应可包含一或多个网络资源识别符365a,其中每一者识别网络服务器130及指示第三方应用程序的网络应用程序版本的状态的一或多个状态参数。举例来说,所述响应可包含各自指示网络服务器130的域名的一或多个URL及可用于访问第三方应用程序的特定状态的一或多个状态参数。在另一实例中,所述响应可从支持第三方应用程序的本机应用程序版本的应用服务器120接收。在此场景中,应用服务器120可返回一或多个应用程序资源识别符365b,其各自识别本机应用程序218及指示第三方应用程序的本机应用程序版本的状态的一或多个状态参数。
在操作518处,链接模块316基于从第三方应用程序的服务器接收的相应响应产生针对每一第三方应用程序的一或多个状态链接364。如上文论述,状态链接364可提供用于访问第三方应用程序的本机应用程序版本的状态及/或第三方应用程序的网络应用程序版本的状态的机制。在其中响应是从第三方应用程序的网络服务器130接收且包含网络资源识别符365a的实施方案中,链接模块316可基于一或多个转换规则将网络资源识别符365a转换成一或多个应用程序资源识别符365b。当第三方应用程序包含一个以上本机应用程序版本时,链接模块316可将网络资源识别符365a转换成多个应用程序资源识别符365b。在其它实施方案中,作为响应,与第三方应用程序相关联的网络服务器130或应用服务器120可提供一或多个应用程序资源识别符365b及一或多个网络资源识别符365a。
链接模块316将一或多个应用程序资源识别符365b嵌入在状态链接364中。链接模块316可进一步将网络资源识别符365a嵌入在状态链接364及用于访问应用程序的指令集中。所述指令集可指示远程计算装置200在使用网络浏览应用程序216访问网络应用程序之前试图访问本机应用程序218。此外或替代地,所述指令集可指示远程计算装置200启动在状态链接365中指示的本机应用程序218且可进一步指示远程计算装置200将状态参数输入到本机应用程序218的图形用户接口250中。
在操作520处,结果模块319将针第三方应用程序中的每一者的状态链接364发射到远程计算装置200。在一些实施方案中,结果模块319将一或多个状态链接364包含在对应于第三方应用程序的结果对象362中。结果处理模块319可在每一结果对象362中包含额外数据,例如一或多个视觉指示符366及/或其它数据368。结果模块319可在搜索结果360中包含资源对象362且可将搜索结果360发射到远程计算装置200。
远程计算装置200可接收状态链接364且可通过首先试图启动由状态链接364指示的本机应用程序218来访问第三方应用程序。当这样做时,远程计算装置200将一或多个状态参数提供到本机应用程序218,本机应用程序218又可将所述状态参数提供到应用服务器120。如果在启动本机应用程序218时不成功,那么远程计算装置200可使用其网络浏览器应用程序216访问由状态链接364中的网络资源识别符365a指示的网络应用程序。
虽然以上论述针对“每一第三方应用程序”进行陈述,但对“每一第三方应用程序”的引用不一定需要所有所识别的第三方应用程序,而是提供相关响应的每一第三方应用程序。图5的方法500是作为实例而提供且不旨在限制本发明的范围。预期所述方法的变化且所述方法的变化在本发明的范围内。举例来说,查看模块318可捕获处在由一或多个状态参数指示的状态的应用程序(网络应用程序或本机应用程序218)的屏幕截图。链接模块316可将屏幕截图包含在结果对象362中。
图6说明用于处理来自远程计算装置200的查询的方法600的实例操作集合。出于解释的目的,方法600被描述为由搜索服务器300的组件执行。根据图6的实施方案,搜索服务器300产生到第三方应用程序的一或多个资源识别符365及含有资源识别符365的状态链接364而无须将传出请求提供到与第三方应用程序相关联的服务器。
在操作610处,搜索模块312从远程计算装置200接收含有查询参数262、264的查询。在操作612处,搜索模块312基于查询参数262、264识别对应于所述查询的一或多个第三方应用程序的集合。搜索模块312可执行功能搜索、实体搜索及名称搜索中的一或多者以识别第三方应用程序集合。
在操作614处,链接模块316可确定第三方应用程序集合中的每一第三方应用程序的一或多个命令模板346。如先前论述,可从命令模板数据存储区336获得第三方应用程序的命令模板346。链接模块316可获得一或多个网络应用程序命令模板346a及一或多个本机应用程序命令模板346b。在一些实施方案中,链接模块316可基于由查询参数262、264牵涉的实体类型选择命令模板346。在一些实施方案中,链接模块316使用对应于第三方应用程序的关联表来识别可由第三方应用程序接受为参数的实体类型(即,由第三方应用程序接受的参数类型)。基于由查询参数262、264牵涉的实体类型及由第三方应用程序接受的参数类型,链接模块316可从命令模板数据存储区336选择一或多个命令模板346。以此方式,链接模块316检索利用第三方应用程序的特定功能性的一或多个命令模板346。举例来说,链接模块346可基于由查询参数262、264牵涉的功能性从多个命令模板346选择对应于第三方应用程序的一或多个命令模板346。在此实例中,所选择的命令模板346可对应于第三方应用程序的不同版本(例如,iOS本机应用程序版本的命令模板346b、本机应用程序版本的命令模板346b及网络应用程序版本的命令模板346a)。此外,对于每一第三方应用程序,链接模块316可选择多个命令模板346以利用第三方应用程序的不同功能性。
在操作616处,链接模块316基于所检索的命令模板346及查询参数262、264中的一或多者产生针对第三方应用程序中的每一者的一或多个资源识别符365。对于每一命令模板346,链接模块316可用与命令模板346相关的查询参数262、264中的一或多者替换在命令模板346中定义的参数字段,如上文描述。在一些场景中,链接模块316可用查询参数262、264或整个搜索查询262本身中的所识别实体来替换相应命令模板346a、346b中定义的参数字段。以此方式,链接模块316可产生对应于每一第三方应用程序的一或多个应用程序资源识别符365b及/或一或多个网络资源识别符365a。在一些场景中,多个应用程序资源识别符365b及/或多个网络资源识别符365a可对应于第三方应用程序的相同状态。换句话说,多个资源识别符365可引用第三方应用程序的不同版本(例如,版本、版本、免费版本及/或付费版本),但均可访问所述第三方应用程序的相同状态。
在操作618处,链接模块316可产生针对每一第三方应用程序的一或多个状态链接364。链接模块316基于所产生的资源识别符365产生到第三方应用程序的状态链接364。链接模块316可将应用程序资源识别符365b插入到状态链接364中。链接模块316可进一步将网络资源识别符365a包含在在状态链接364及用于访问应用程序的指令集(例如,在使用网络浏览应用程序216访问网络应用程序之前试图访问本机应用程序218)。
在操作620处,对于第三方应用程序中的每一者,链接模块316将状态链接364传达到远程计算装置200。在一些实施方案中,结果模块319将对应于第三方应用程序的每一状态链接364包含在对应于所述第三方应用程序的结果对象362中。结果处理模块319可将额外数据包含在每一结果对象362中,例如一或多个视觉指示符366及/或其它数据368。结果处理模块319可将针对第三方应用程序集合中的每一第三方应用程序的资源对象362包含在搜索结果360中且可将搜索结果360发射到远程计算装置200。
虽然以上论述针对“每一第三方应用程序”进行陈述,但对“每一第三方应用程序”的引用不一定需要所有所识别的第三方应用程序,而是接受资源识别符365(网络资源识别符365a及/或应用程序资源识别符365b)的每一第三方应用程序。图6的方法600是作为实例提供且不意在限制本发明的范围。预期方法600的变化且方法600的变化在本发明的范围内。
图7A到7B说明在远程计算装置200上执行的搜索的实例。在图7A中,用户已将搜索查询262输入到搜索应用程序214上的GUI250中。具体来说,用户已将搜索查询262“玩具总动员”输入到GUI250的搜索框252中。响应于搜索查询262,搜索应用程序214产生包含搜索查询262及任何其它参数264的查询包装器260且将查询包装器260发射到搜索服务器300。举例来说,用户可选择(例如,触摸或点击)GUI250的搜索按钮254以便起始查询包装器260到搜索服务器300的发射。
搜索服务器300接收查询包装器260且基于查询包装器260产生搜索结果360。搜索服务器300可发射包含对应于第三方应用程序集合的结果对象362的搜索结果360。在所说明的实例中,结果对象362对应于(例如,本机/或网络应用程序)、及“ROTTEN”。每一结果对象362可包含对应于在搜索结果360中指示的应用程序的相关状态的一或多个状态链接364。用户可选择(例如,触摸或点击)状态链接364中的一者来访问在状态链接364中指示的资源。响应于此用户选择,搜索应用程序214可指示操作系统212启动所选择第三方应用程序且访问在状态链接364中指示的第三方应用程序的状态。
在图7A的实例中,用户选择状态链接364a。在应用程序的情形中,所述应用程序的不同状态可对应于数据库中的不同条目。所说明的状态链接364a可包含指示对应于针对电影“玩具总动员”的条目的状态的应用程序资源识别符365b。因此,状态链接364a的选择致使搜索应用程序214指示远程计算装置200的操作系统212启动本机应用程序218且基于嵌入在状态链接364a中的应用程序资源识别符365b访问本机应用程序上的“玩具总动员”条目。图7B说明响应于状态链接364a的选择而启动的所选择本机应用程序218的GUI250。在此实例中,所选择本机应用程序显示针对“玩具总动员”的实例条目。
图8A到8B说明在远程计算装置200上执行的搜索的另一实例。在图8A中,用户已将搜索查询262输入到搜索应用程序214的GUI250中。具体来说,用户已将搜索查询“我的深夜餐厅”输入到GUI250的搜索栏252中。响应于接收到搜索查询262,搜索应用程序214产生包含搜索查询262及其它查询参数264(例如,所述装置的地理位置)的查询包装器260且将查询包装器260发射到搜索服务器300。
搜索服务器300接收查询包装器260且基于查询包装器260产生搜索结果360。搜索服务器300可将包含一组结果对象362的搜索结果360发射到远程计算装置200。在所说明的实例中,结果对象362识别 以及应用程序。GUI250可包含到搜索结果360中的应用程序的状态链接364。用户可选择(例如,触摸或点击)状态链接364以访问状态链接364中指示的资源。举例来说,用户可选择GUI250的包含图标的区域以选择到应用程序的状态链接364。在另一实例中,可提供针对在搜索引擎结果页面中列出的一或多个应用程序的一或多个状态链接364。
图8A中的GUI250包含多个不同状态链接364。三个状态链接364a、364b、364c提供对应用程序的不同状态的访问。在的情形中,每一状态可对应于不同条目。举例来说,状态链接364a、364b、364c可分别提供对应用程序中的及“TACO”的条目的访问。在图8A的实例中,用户选择状态链接364b。状态链接364b可包含到本机应用程序中的餐馆的条目的应用程序资源识别符365b。因此,选择状态链接364b致使搜索应用程序214指示操作系统212启动本机应用程序且基于嵌入在状态链接364a中的应用程序资源识别符访问的条目。图8B展示操作系统212响应于对状态链接364b的选择而启动的所选择应用程序的实例GUI250。
图9A及9B说明可在远程计算装置200上执行的搜索的另一实例。在图9A中,用户已将搜索查询“泰国的”输入到GUI250的搜索栏252中且通过(例如)选择GUI250的搜索按钮254执行搜索。响应于搜索查询262,搜索应用程序214产生包含搜索查询262及任何其它查询参数264(例如,远程计算装置200的地理位置及/或操作系统)的查询包装器260且将查询包装器260发射到搜索服务器300。
搜索服务器300接收查询包装器260且基于查询包装器260产生搜索结果360。搜索服务器300可将包含一组结果对象362的搜索结果360发射到远程计算装置200。所述组结果对象362包含对应于应用程序的结果对象362。每一结果对象362包含到相应应用程序的多个状态链接364。用户可选择状态链接364以访问状态链接364中指示的条目。举例来说,用户可选择对应于曼谷小酒馆的状态链接364a以查看应用程序中的曼谷小酒馆条目。
图9A中的GUI250包含提供对应用程序中的条目的访问的三个状态链接364a、364b、364c。举例来说,状态链接364a、364b、364c可提供对应用程序中的“曼谷小酒馆”、“泰国布达”及“莎娜泰国餐馆”的条目的访问。图9A中的GUI包含提供对应用程序中的条目的访问的三个状态链接364d、364e、364f。举例来说,状态链接364d、364e、364f可提供对应用程序中的“博安泰国饭店&酒吧”、“第11街道的罗勒餐厅”及“黑檀”的条目的访问。“博安泰国饭店&酒吧”、“第11街道的罗勒餐厅”及“黑檀”的状态链接364d、364e、364f分别包含关于在可用预定时间进行预定的应用程序GUI910a、910b、910c的一部分。以此方式,用户可直接从搜索应用程序214的GUI250访问应用程序的功能性。
图9A的GUI250还包含指示的本机应用程序当前是否安装在远程计算装置200上的图标902a、902b。“打开”图标902a指示本机应用程序可由远程计算装置200启动,这暗示本机应用程序安装在远程计算装置200上。用户可选择(例如,触摸)“打开”图标902a以将本机应用程序启动到默认状态(例如,本机应用程序的主屏幕)。“免费”图标902b指示本机应用程序可下载到远程计算装置200且不安装在远程计算装置200上。在一些实例中,用户可选择“免费”图标902b以启动提供供下载的本机应用程序的应用程序市场(例如,GOOGLE或APP)或自动开始将本机应用程序下载到远程计算装置200。选择博安泰国饭店&酒吧状态链接364d可致使搜索应用程序试图启动本机应用程序。当远程计算装置200确定所述试图是不成功的,搜索应用程序214可指示操作系统212基于嵌入在状态链接364d中的网络资源识别符365a访问针对网络应用程序中的博安泰国饭店&酒吧的条目。图9B说明由远程计算装置200的网络浏览器响应于对博安泰国饭店&酒吧状态链接364d的选择而显示的网络应用程序。
图10说明在远程计算装置200上执行的搜索的另一实例。在图10中,用户已将搜索查询“出租汽车”输入到GUI250的搜索栏252中。如上文描述,搜索服务器300从远程计算装置200接收含有搜索查询262及其它查询参数264(例如,远程计算装置200的地理位置)的查询包装器260且基于查询包装器260产生搜索结果360。在图10的实例中,搜索服务器300可在请求中将地理位置查询参数264转发到与应用程序相关联的服务器。作为响应,与应用程序相关联的服务器可返回动态数据(例如,各个出租车司机相对于远程计算装置200的所估计距离及出租车司机到达用户将花费的所估计时间量)。搜索服务器300可将动态数据嵌入在状态链接364中,使得GUI250将动态数据显示为状态链接364中的额外数据368。如果用户希望进行出租车预定,那么用户可选择状态链接364中的一者来进行出租车预定。状态链接364的选择可启动本机应用程序,从而起始出租车预定。
关于图7A到10解释的搜索仅作为实例提供且不意在限制可执行的搜索的类型。此外,搜索的结果仅作为实例提供且可以任何其它合适方式显示各种搜索结果360。
图11A及11B说明由搜索服务器300执行以用于处理从远程计算装置200接收的查询的实例操作。本文中描述的操作1100可由搜索服务器300的处理装置310执行。
在操作1110处,搜索服务器300从远程计算装置200接收查询。在一些实施方案中,所述查询包含在含有查询参数264的查询包装器260中。查询参数262、264可包含搜索查询262(即,一或多个查询项)。在一些实施方案中,查询参数262、264可进一步包含额外查询参数264(例如,远程计算装置200的地理位置、远程计算装置200的操作系统212、远程计算装置200的装置类型及/或远程计算装置200的用户的用户名)。
在操作1112处,搜索服务器300识别对应于所述查询的第三方应用程序集合。搜索服务器300可使用在查询包装器260中接收的查询参数262、264执行功能搜索、实体搜索或名称搜索中的一或多者。搜索结果为与由远程计算装置200在查询包装器中提供的查询参数262、264中的一或多者相关的第三方应用程序集合。
在操作1114处,搜索服务器300产生针对在第三方应用程序集合中指示的第三方应用程序的一或多个资源识别符365。对于第三方应用程序,搜索服务器300基于查询参数262、264及对应于第三方应用程序的命令模板346产生资源识别符365。搜索服务器300可基于查询参数262、264中的一或多者的实体类型从命令模板数据存储区336识别相关命令模板346。举例来说,如果查询参数262、264包含电影名称及时间,且应用程序集合包含用于在接近远程计算装置200的电影院找到电影时间的应用程序,那么搜索服务器300可识别接收这些类型的参数的一或多个命令模板346。搜索服务器300可利用对应于第三方应用程序的关联表来识别包含在查询参数262、264中的相关参数。搜索服务器300可识别针对第三方应用程序的网络应用程序命令模板346a及/或本机应用程序程序命令模板346b。搜索服务器300可将相关查询参数262、264代入命令模板346中定义的参数字段,每次产生资源识别符365。
在操作1116处,搜索服务器300基于所产生的资源识别符365产生针对第三方应用程序的一或多个状态链接364。搜索服务器300可将所产生的应用程序资源识别符365b及/或网络资源识别符365a嵌入到状态链接364中。在一些场景中,搜索服务器300可选择一个以上资源识别符365来嵌入在状态链接364中。举例来说,如果第三方应用程序接受应用程序资源识别符365b(用于将第三方应用程序的本机应用程序218启动到指定状态)及网络资源识别符365a(用于访问处在指定状态的第三方应用程序的网络应用程序),那么搜索服务器300可选择多个资源识别符365来包含在状态链接364中,前提是资源识别符365对应于相同状态(例如,提供相同信息)。当状态链接364含有一个以上资源识别符时,搜索服务器300可进一步包含指示可选择资源识别符的顺序的指令集。举例来说,所述指令集可指示远程计算装置200试图使用状态链接364中含有的应用程序资源来启动本机应用程序218,且如果不成功,那么使用状态链接364中含有的网络资源识别符365a来访问网络应用程序。在一些实施方案中,搜索服务器300将额外数据包含在状态链接364中。举例来说,搜索服务器300可将视觉指示符366(例如,第三方应用程序的图标、标志、屏幕截图、GUI250元素)及元数据(例如,描述、评级、排名及动态数据)包含在状态链接364中。所述额外数据可从任何合适源(包含与第三方应用程序相关联的服务器、应用程序数据存储区332及/或实体数据存储区334)获得。
在操作1118处,搜索服务器300基于所产生的状态链接364产生搜索结果360。对于第三方应用程序集合中的每一第三方应用程序,搜索服务器300可将针对所述第三方应用程序的状态链接364分组在一起。接着,搜索服务器300可基于经分组状态链接364产生针对第三方应用程序的结果对象362。搜索结果360可包含对应于第三方应用程序中的每一者的的结果对象362。
在操作1120处,搜索服务器300可将搜索结果360发射到远程计算装置200。接着,远程计算装置200可经由其用户接口装置240显示搜索结果360。用户可通过选择包含在搜索结果360中的状态链接364来访问在搜索结果(360)中指示的第三方应用程序的状态。
图12A及12B说明由搜索服务器300执行以处理从远程计算装置200接收的查询的实例操作1200。本文中的描述的操作1200可由搜索服务器300的处理装置310执行。
在操作1210处,搜索服务器300从远程计算装置200接收查询。在一些实施方案中,所述查询包含在含有查询参数262、264的查询包装器260中。查询参数262、264可含有搜索查询262(即,一或多个查询项)。在一些实施方案中,查询参数262、264可进一步包含额外查询参数264(例如,远程计算装置200的地理位置、远程计算装置200的操作系统、远程计算装置200的装置类型及/或远程计算装置200的用户的用户名)。
在操作1212处,搜索服务器300识别对应于所述查询的第三方应用程序集合。搜索服务器300可使用在所述查询中接收的查询参数262、264执行功能搜索、实体搜索或名称搜索中的一或多者。搜索结果为与由远程计算装置200在查询中提供的查询参数262、264中的一或多者相关的第三方应用程序集合。
在操作1214处,搜索服务器300基于对应于第三方应用程序的请求命令模板346c产生请求。对于每一相关第三方应用程序,搜索服务器300从命令模板数据存储区336检索一或多个请求命令模板346c。搜索服务器300可基于查询中含有的实体类型确定检索哪些请求命令模板346c。在一些实施方案中,搜索服务器300利用关联表来识别相关请求命令模板346c。搜索服务器300可将来自查询的经识别实体插入到请求命令模板346c的参数字段中以产生请求。
在操作1216处,搜索服务器300将所述请求发射到在第三方应用程序集合中指示的第三方应用程序的服务器。在一些实施方案中,可将针对特定第三方应用程序的请求发送到的第三方应用程序的网络服务器130。在操作1218处,搜索服务器300从第三方应用程序的服务器接收响应。在其中所述服务器为网络服务器130的实施方案中,所述响应可包含对应于包含在所述请求中的参数的状态的网络资源识别符365a。搜索服务器300可从多个服务器接收多个响应。
在操作1220处,搜索服务器300基于所述响应产生状态链接364。在一些实施方案中,搜索服务器300可基于对应于每一相应第三方应用程序的转换规则将在响应中接收的网络资源识别符365a转换成应用程序资源识别符365b。在一些场景中,转换规则可导致多个应用程序资源识别符365b从网络资源识别符365a转换(例如,在多个版本的本机应用程序218的情形中)。搜索服务器300可将对应于第三方应用程序的相同状态的应用程序资源识别符365b及网络资源识别符365a分组在一起。搜索服务器300可将经分组应用程序资源识别符365b及网络资源识别符365a嵌入到状态链接364中。以此方式,搜索服务器300可产生针对第三方应用程序的多个状态链接364,且可产生针对在第三方应用程序集合中指示的第三方应用程序中的每一者的一或多个状态链接364。当状态链接364含有一个以上资源识别符365(例如,一或多个应用程序资源识别符365b及网络资源识别符365a)时,搜索服务器300可进一步包含指示可选择资源识别符365的顺序的指令集。举例来说,所述指令集可指示远程计算装置200试图使用在状态链接364中含有的应用程序资源应用程序识别符365b来启动本机应用程序218,且如果不成功,那么使用在状态链接364中含有的网络资源识别符365a来访问网络应用程序。在一些实施方案中,搜索服务器300将额外数据包含在状态链接364中。举例来说,搜索服务器300可将视觉指示符366(例如,第三方应用程序的图标、标志、屏幕截图、GUI250元素)及/或元数据(例如,描述、评级、排名、动态数据)包含在状态链接364中。所述额外数据可从任何合适源(包含与第三方应用程序相关联的服务器、应用程序数据存储区332及/或实体数据存储区334)获得。
在操作1222处,搜索服务器300基于状态链接364产生搜索结果360。对于具有针对其产生的至少一个状态链接364的每一第三方应用程序来说,搜索服务器300可将针对第三方应用程序的状态链接364分组在一起。接着,搜索服务器300可基于经分组状态链接364产生针对第三方应用程序的结果对象362。搜索结果360包含对应于第三方应用程序中的每一者的结果对象362。
在操作1224处,搜索服务器300将搜索结果360发射到远程计算装置200。接着,远程计算装置200可经由其用户接口装置240显示搜索结果360。用户可通过选择包含在搜索结果360中的状态链接364来访问在搜索结果360中指示的第三方应用程序的状态。
计算机器架构
图13为说明能够从(例如)非暂时性机器可读媒体读取指令且在一或多个处理器(或控制器)中执行所述指令的实例机器的组件的框图。具体来说,图13展示呈计算机系统1300的实例形式的机器的示意表示,在计算机系统1300内可执行用于致使所述机器执行本文中论述的方法论中任何一或多者的指令1324(例如,软件或程序代码)。所述方法论包含关于图3A、3B、4、5及6描述的方法论。在替代实施例中,所述机器作为独立装置操作或可连接(例如,联网)到其它机器。在联网部署中,所述机器可作为服务器机器或客户端机器在服务器-客户端网络环境中操作或作为对等机器在对等(或分布式)网络环境中操作。
针对此配置的机器可为移动计算装置(例如,平板计算机、超极本(或上网本)计算机、个人数字助理(PDA)、蜂窝电话、智能手机、网络设备或能够执行指示待由所述机器进行的动作的指令1324(循序或以其它方式)的类似机器)。此外,虽然仅说明单个机器,但术语“机器”应还理解为包含个别地共同地执行指令1324以执行本文中论述的方法论中的任何一或多者的任何机器集。
实例计算机系统1300包含一或多个处理器1302(例如,中央处理单元(CPU))且还可包含图形处理单元(GPU)、数字信号处理器(DSP)、一或多个专用集成电路(ASIC)、一或多个射频集成电路(或芯片组)(RFIC)、无线保真(WiFi)芯片组、全球定位系统(GPS)芯片组、加速度计(一维、二维或三维)或这些的任何组合)。计算机系统1300还包含主存储器1304及静态存储器1306。计算系统的组件可经配置以经由总线1308彼此通信。计算机系统1300可进一步包含图形显示单元1310(例如,等离子显示面板(PDP)、液晶显示器(LCD)、玻璃显示器),其可经配置以实现电容性或电感性触摸灵敏度以允许通过显示器1310与软件用户接口直接交互。计算机系统1300还可包含字母数字输入装置1312(例如,键盘)、游标控制装置1314(例如,鼠标、轨迹球、操纵杆、运动传感器或其它定位仪器、存储单元1316、信号产生装置1318(例如,扬声器)及网络接口装置1320,其也经配置以经由总线1308通信。
存储单元1316包含机器可读媒体1322,在机器可读媒体1322上存储体现本文中描述的方法论或功能中的一或多者的指令1324(例如,软件)。指令1324(例如,软件)也可完全或至少部分地驻留在主存储器1304内或在计算机系统1300执行指令1324期间驻留处理器1302内(例如,驻留在处理器高速缓冲存储器内),主存储器1304及处理器1302也构成机器可读媒体。可经由网络接口装置1320通过网络1326发射或接收指令1324(例如,软件)。
虽然机器可读媒体1322在实例实施例中展示为单个媒体,但术语“机器可读媒体”应理解为包含能够存储指令(例如,指令1324)的单个媒体或多个媒体(例如,集中式或分布式数据库或相关联高速缓冲存储器及服务器)。术语“机器可读媒体”还应理解为包含能够存储供机器执行且致使机器执行本文中揭示的方法论中的任何一或多者的指令(例如,指令1324)的任何媒体。术语“机器可读媒体”包含但不限于呈固态存储器、光学媒体及磁性媒体的形式的数据存储库。
额外配置考虑
贯穿本说明书,复数个例子可实施描述为单个例子的组件、操作或结构。虽然一或多个方法的个别操作经说明且描述为单独操作,但个别操作中的一或多者可同时执行,且并不要求所述操作以所说明的顺序执行。在实例配置中呈现为单独组件的结构及功能性可实施为组合结构或组件。类似地,呈现为单个组件的结构及功能性可实施为单独组件。这些及其它变型、修改、添加及改进落在本文中的标的物的范围内。
本文中描述的系统及方法的各种实施方案可以数字电子及/或光学电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件及/或其组合实现。这些实施方案可包含一或多个计算机程序中的实施方案,所述计算机程序可在包含可为专用或通用的至少一个可编程处理器的可编程系统上执行及/或解释,所述可编程系统经耦合以从存储系统、至少一个输入装置及至少一个输出装置接收数据及指令及将数据及指令发射到所述存储系统、至少一个输入装置及至少一个输出装置。
这些计算机程序(也称为程序、软件、软件应用程序、脚本或程序代码)包含用于可编程处理器(例如,1302)的机器指令(例如,1324)且可以高级过程及/或面向对象编程语言及/或以汇编/机器语言实施。计算机程序可为呈称为“模块”的单元形式的结构化功能性,例如,如图2中说明。如本文中使用,术语“机器可读媒体”及“计算机可读媒体”指代任何计算机程序产品、非暂时性计算机可读媒体、用于向可编程处理器提供机器指令及/或数据的设备及/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD))(包含接收机器指令作为机器可读信号的机器可读媒体)。术语“机器可读信号”指代用于向可编程处理器提供机器指令及/或数据的任何信号。
标的物的实施方案及本说明书中描述的功能操作可以数字电子电路或以计算机软件、固件或硬件(包含本说明书中揭示的结构及其结构等效物)或以其中一或多者的组合实施。此外,本说明书中描述的标的物可实施为一或多个计算机程序产品,即,在计算机可读媒体上编码以供数据处理设备执行或控制数据处理设备的操作的计算机程序指令的一或多个模块。机器可读媒体可为机器可读存储装置、机器可读存储衬底、存储器装置、实现机器可读传播信号的物质组合或其中一或多者的组合。术语“数据处理设备”、“计算装置”及“计算处理器”涵盖用于处理数据的所有设备、装置及机器,其包含(借助实例)可编程处理器、计算机或多个处理器或计算机。除硬件之外,所述设备可包含产生用于所讨论的计算机程序的执行环境的代码,例如,构成处理器固件、协议堆栈、数据库关系系统、操作系统或其中一或多者的组合的代码。传播信号为经产生以编码信息以用于发射到合适接收器设备的人工产生信号(例如,机器产生电信号或电磁信号)。
计算机程序可以任何形式的编程语言(包含编译语言或解释语言)编写,且其可以任何形式(包含作为单独程序或作为模块、组件、子例程或适于用于计算环境中的任何其它单元)部署。计算机程序不一定对应于文件系统中的文件。程序可存储在保持其它程序或数据(例如,存储在标记语言文档中的一或多个脚本)的文件的一部分中、存储在专用于所讨论程序的单个文件中或存储在多个协调文件(例如,存储一或多个模块、子程序或代码部分的文件)。计算机程序可经部署以在一个计算机上或在定位在一个位点或跨越多个位点分布且通过通信网络互连的多个计算机上执行。
本说明书中描述的过程及逻辑流程可通过一或多个可编程处理器来执行,所述一或多个可编程处理器执行一或多个计算机程序以通过对输入数据进行操作且产生输出来执行功能。所述过程及逻辑流程还可由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行且设备还可实施为专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))。
借助实例,适于执行计算机程序的处理器包含通用及专用微处理器及任何种类的数字计算机的任何一或多个处理器。一般来说,处理器将从只读存储器或随机存取存储器或两者接收指令及数据。计算机的必要元件为用于执行指令的处理器及用于存储指令及数据的一或多个存储器装置。一般来说,计算机还将包含用于存储数据的一或多个大容量存储装置(例如,磁盘、磁光盘或光盘)或经操作性地耦合以从所述一或多个大容量存储装置接收数据或将数据传输到所述一或多个大容量存储装置或即从所述一或多个大容量存储装置接收数据又将数据传输到所述一或多个大容量存储装置。然而,计算机不需要具有此类装置。此外,计算机可嵌入在另一装置(例如,仅举例几例,移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器)中。适于存储计算机程序指令及数据的计算机可读媒体包含所有形式的非易失性存储器、媒体及存储器装置,包含(借助实例)半导体存储器装置,例如,EPROM、EEPROM及快闪存储器装置;磁盘,例如,内置硬盘或可卸除磁盘;磁光盘;及CDROM及DVD-ROM光盘。所述处理器及存储器可由专用逻辑电路补充或并入在专用逻辑电路中。
为提供与用户的交互,本发明的一或多个方面可在具有显示装置(例如,CRT(阴极射线管)、LCD(液晶显示器)监视器)或用于向用户显示信息的触摸屏及(任选地)用户可通过其向计算机提供输入的键盘及定位装置(例如,鼠标或轨迹球)。其它种类的装置可也可用于提供与用户的交互;举例来说,向用户提供的反馈可为任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;且来自用户的输入可以任何形式接收,包含听觉、语音或触觉输入。此外,计算机可通过将文档发送到由用户使用的装置且从所述装置接收文档来与用户交互;举例来说,通过响应于从网络浏览器接收的请求将网页发送到用户的客户端装置上的网络浏览器。
本发明的一或多个方面可在计算系统中实施,所述计算系统包含后端组件(例如,数据服务器)或包含中间件组件(例如,应用服务器)或前端组件(例如,具有用户可通过其与本说明书中描述的标的物的实施方案交互的图形用户接口或网络浏览器的客户端计算机)或包含一或多个此类后端、中间件或前端组件的任何组合。所述系统的组件可通过任何数字数据通信形式或媒体(例如,通信网络)互连。通信网络的实例包含局域网(“LAN”)及广域网(“WAN”)及互联网络(例如,因特网)及对等网络(例如,特殊对等网络)
计算系统可包含客户端及服务器。客户端及服务器通常彼此远离且通常通过通信网络交互。客户端与服务器的关系凭借在相应计算机上运行且彼此具有客户端-服务器关系的计算机程序发生。在一些实施方案中,服务器将数据(例如,HTML页面)发射到客户端装置(例如,出于向与客户端装置交互的用户显示数据及从所述用户接收用户输入的目的)。可在服务器处从客户端装置接收在客户端装置处产生的数据(例如,作为用户交互的结果)。
虽然本说明书含有许多特性,但这些特性不应理解为对本发明的范围或可主张的内容的限制,而是应理解为本发明的特定实施方案特有的的特征的描述。本说明书中在单独实施方案的背景下描述的某些特征也可在单个实施方案中以组合形式实施。相反地,在单个实施方案的背景下描述的各种特征也可在多个实施方案中单独实施或以任何合适子组合形式实施。此外,虽然特征可在上文描述为以某些组合起作用且甚至最初如此主张,但在一些情形中可从所主张组合除去来自所述组合的一或多个特征,且所主张组合可针对子组合或子组合的变型。
类似地,虽然在图式中以特定顺序描绘操作,但这不应理解为要求此类操作以所展示的特定顺序或以循序顺序执行或执行所有所说明的操作以实现期望结果。在某些情况中,多任务处理及并行处理可为有利的。此外,上文描述的实施例中的各种系统组件的分离不应理解为在所有实施例中均要求此分离,且应理解,所描述的程序组件及系统可大体上一起集成在单个软件产品中或封装到多个软件产品中。
已描述若干实施方案。然而,将理解,可在不脱离本发明的精神及范围的情况下做出各种修改。因此,其它实施方案在所属权利要求书的范围内。举例来说,权利要求书中引述的动作可以不同顺序执行且仍实现期望结果。
在阅读本发明之后,所属领域的技术人员将了解用于通过本文中所揭示的原理在计算环境中进行深度搜索的系统及过程的其它额外替代结构及功能设计。因此,虽然已说明且描述特定实施例及应用程序,但应理解,所揭示的实施例不限于本文中揭示的精确构造及组件。可在不脱离所附权利要求书中界定的精神及范围的情况下在本文中揭示的方法及设备的布置、操作及细节方面做出所属领域的技术人员将明白的各种修改、改变及变型。

Claims (63)

1.一种方法,其包括:
由处理装置(310)从远程计算装置(200)接收搜索查询(262);
由所述处理装置(310)基于所述搜索查询(262)产生到本机应用程序(218)的状态的状态链接(346);以及
由所述处理装置(310)将所述状态链接(364)提供到所述远程计算装置(200)。
2.根据权利要求1所述的方法,其中所述本机应用程序(218)为第三方本机应用程序(218)。
3.根据权利要求1所述的方法,其中所述本机应用程序(218)对应于具有一或多个版本的第三方应用程序,且所述状态链接(364)包含对应于所述本机应用程序(218)的应用程序资源识别符(365b)且用于访问所述第三方应用程序的所述本机应用程序(218)版本中的所述状态。
4.根据权利要求3所述的方法,其中所述状态链接(364)进一步包含网络资源识别符(365a),所述网络资源识别符(365a)用于访问处在所述第三方应用程序的相同状态的对应于所述第三方应用程序的网络应用程序。
5.根据权利要求3所述的方法,其中所述状态链接(364)包含一或多个其它应用程序资源识别符(365b)。
6.根据权利要求1所述的方法,其中确定所述状态链接(364)包含:
基于所述搜索查询(262)确定应用程序资源识别符(365b);以及
将所述应用程序资源识别符(365b)嵌入到所述状态链接(364)中。
7.根据权利要求6所述的方法,其中所述本机应用程序(218)对应于第三方应用程序,所述第三方应用程序具有包含所述本机应用程序(218)的一或多个版本,且其中确定所述应用程序资源识别符(365b)包含:
基于所述搜索查询(262)产生到与所述第三方应用程序相关联的服务器的请求;
从与所述第三方应用程序相关联的所述服务器接收响应;以及
基于所述响应产生所述应用程序资源识别符(365b)。
8.根据权利要求7所述的方法,其中所述响应包含用于访问处在所述状态的所述第三方应用程序的网络应用程序版本的网络资源识别符(365a),且产生所述应用程序资源识别符(365b)包含使用转换规则将所述网络资源识别符(365a)转换成所述应用程序资源识别符(365b)。
9.根据权利要求6所述的方法,其中确定所述应用程序资源识别符(365b)包含:
识别对应于所述本机应用程序(218)的命令模板(346),所述命令模板(346)指示所述本机应用程序(218)且包含接收状态参数的一或多个参数字段;以及
基于所述命令模板(346)及所述搜索查询(262)产生所述应用程序资源识别符(365b)。
10.根据权利要求1所述的方法,其中将所述状态链接(364)与到第三方应用程序的一或多个其它状态链接一起提供到所述远程计算装置(200)。
11.一种搜索服务器(300),其包括:
网络接口装置(250);
处理装置(310),所述处理装置(310)执行计算机可读指令,所述计算机可读指令在由所述处理装置(310)执行时致使所述处理装置(310):
经由所述网络接口装置(250)从远程计算装置(200)接收搜索查询(262);
基于所述搜索查询(262)产生到本机应用程序(218)的状态的状态链接(364);且
将到所述本机应用程序(218)的所述状态链接(364)提供到所述远程计算装置(200)。
12.根据权利要求11所述的搜索服务器(300),其中所述本机应用程序(218)为第三方本机应用程序(218)。
13.根据权利要求11所述的搜索服务器(300),所述本机应用程序(218)对应于具有一或多个版本的第三方应用程序,且所述状态链接(364)包含对应于所述本机应用程序(218)的应用程序资源识别符(365b)且用于访问所述第三方应用程序的所述本机应用程序(218)版本中的所述状态。
14.根据权利要求13所述的搜索服务器(300),其中所述状态链接(364)进一步包含网络资源识别符(365a),所述网络资源识别符(365a)用于访问处在所述第三方应用程序的相同状态的对应于所述第三方应用程序的网络应用程序。
15.根据权利要求13所述的搜索服务器(300),其中所述状态链接(364)包含一或多个其它应用程序资源识别符(365b)。
16.根据权利要求11所述的搜索服务器(300),其中所述计算机可读指令致使所述处理装置(310)通过以下操作确定所述状态链接(364):
基于所述搜索查询(262)确定应用程序资源识别符(365b);以及
将所述应用程序资源识别符(365b)嵌入到所述状态链接(364)中。
17.根据权利要求16所述的搜索服务器(300),其中所述本机应用程序(218)对应于第三方应用程序,所述第三方应用程序具有包含所述本机应用程序(218)的一或多个版本,且其中所述计算机可读指令致使所述处理装置(310)通过以下操作确定所述应用程序资源识别符(365b):
基于所述搜索查询(262)产生到与所述第三方应用程序相关联的服务器的请求;
从与所述第三方应用程序相关联的所述服务器接收响应;以及
基于所述响应产生所述应用程序资源识别符(365b)。
18.根据权利要求17所述的搜索服务器(300),其中所述响应包含用于访问处在所述状态的所述第三方应用程序的网络应用程序版本的网络资源识别符(365a),且其中所述计算机可读指令致使所述处理装置(310)通过使用转换规则将所述网络资源识别符(365a)转换成所述应用程序资源识别符(365b)来产生所述应用程序资源识别符(365b)。
19.根据权利要求16所述的搜索服务器(300),其中所述计算机可读指令致使所述处理装置(310)通过以下操作确定所述应用程序资源识别符(365b):
识别对应于所述本机应用程序(218)的命令模板(346),所述命令模板(346)指示所述本机应用程序(218)且包含接收状态的一或多个参数字段;以及
基于所述命令模板(346)及所述搜索查询(262)产生所述应用程序资源识别符(365b)。
20.根据权利要求11所述的搜索服务器(300),其中将所述状态链接(364)与到第三方应用程序的一或多个其它状态链接一起提供到所述远程计算装置(200)。
21.一种方法,其包括:
由处理装置(310)从远程计算装置(200)接收含有一或多个查询参数(262、264)的查询;
由所述处理装置(310)识别对应于所述一或多个查询参数(262、264)的第三方应用程序集合;以及
对于每一第三方应用程序:
由所述处理装置(310)将所述一或多个查询参数(262、264)的至少子集发射到与所述第三方应用程序相关联的服务器;
由所述处理装置(310)从与所述第三方应用程序相关联的所述服务器接收响应;
由所述处理装置(310)基于所述响应产生到所述第三方应用程序的本机应用程序(218)版本的状态链接(364),所述状态链接(364)提供对所述第三方应用程序的本机应用程序(218)版本的状态的访问;以及由所述处理装置(310)将所述状态链接(364)提供到所述远程计算装置(200)。
22.根据权利要求21所述的方法,其中所述状态链接(364)包含指示对所述本机应用程序(218)版本的引用及对应于所述状态的一或多个状态参数的应用程序资源识别符(365b),所述一或多个状态参数由所述本机应用程序(218)用于访问所述状态。
23.根据权利要求22所述的方法,其中所述状态链接(364)进一步包含指示与所述第三方应用程序相关联的网络服务器(130)的域名及所述一或多个状态参数的网络资源识别符(365a),所述网络服务器(130)托管所述第三方应用程序的网络应用程序版本。
24.根据权利要求21所述的方法,其中发射所述查询参数(262、264)包含将所述一或多个查询参数(262、264)的至少子集发射到网络服务器(130),所述网络服务器(130)托管作为所述第三方应用程序的网络应用程序版本的网络应用程序。
25.根据权利要求24所述的方法,其中发射所述查询参数(262、264)进一步包含:
从多个命令模板(346)选择对应于所述第三方应用程序的命令模板(346);
基于所述命令模板(346)及所述一或多个查询参数(262、264)的至少子集格式化传出请求;以及
将所述传出请求发射到所述网络服务器(130)。
26.根据权利要求25所述的方法,其中接收所述响应包含接收指示与所述第三方应用程序相关联的网络服务器(130)的域名及对应于所述网络应用程序的状态的一或多个状态参数的网络资源识别符(365a),所述一或多个状态参数由所述网络应用程序用于访问所述状态。
27.根据权利要求26所述的方法,其中确定到所述本机应用程序(218)的所述状态链接(364)包含将所述网络资源识别符(365a)转换成指示对所述第三方应用程序的所述本机应用程序(218)版本的引用及所述一或多个状态参数的应用程序资源识别符(365b),其中所述远程计算装置(200)经配置以使用所述应用程序资源识别符(365a)来将所述本机应用程序(218)启动到由所述一或多个状态参数指示的所述状态。
28.根据权利要求27所述的方法,其中所述远程计算装置(200)经配置以接收所述状态链接(364),且在试图使用所述网络资源识别符(365a)访问所述网络应用程序版本之前试图使用所述应用程序资源识别符(365b)访问所述本机应用程序(218)版本上的所述状态。
29.根据权利要求21所述的方法,其中所述状态链接(364)包含指示所述状态的屏幕截图。
30.根据权利要求21所述的方法,其中所述一或多个查询参数(262、264)包含包含一或多个查询项的搜索查询(262)。
31.根据权利要求21所述的方法,其中所述一或多个查询参数(262、264)进一步包含所述远程计算装置(200)的地理位置、所述远程计算装置(200)的操作系统(212)或所述远程计算装置(200)的用户的识别符中的一或多者。
32.一种搜索服务器(300),其包括:
网络接口装置(250);
处理装置(310),所述处理装置(310)执行计算机可读指令,所述计算机可读指令在由所述处理装置(310)执行时致使所述处理装置(310):
从远程计算装置(200)接收含有一或多个查询参数(262、264)的查询;
识别对应于所述一或多个查询参数(262、264)的第三方应用程序集合;且
对于每一第三方应用程序:
将所述一或多个查询参数(262、264)的至少子集发射到与所述第三方应用程序相关联的服务器;
从与所述第三方应用程序相关联的所述服务器接收响应;
基于所述响应产生到所述第三方应用程序的本机应用程序(218)版本的状态链接(364),所述状态链接(364)提供对所述第三方应用程序的本机应用程序(218)版本的状态的访问;且
将所述状态链接(364)提供到所述远程计算装置(200)。
33.根据权利要求32所述的搜索服务器,其中所述状态链接(364)包含指示对所述本机应用程序(218)版本的引用及对应于所述状态的一或多个状态参数的应用程序资源识别符(365b),所述一或多个状态参数由所述本机应用程序(218)用于访问所述状态。
34.根据权利要求33所述的搜索服务器,其中所述状态链接(364)进一步包含指示与所述第三方应用程序相关联的网络服务器(130)的域名及所述一或多个状态参数的网络资源识别符(365a),所述网络服务器(130)托管所述第三方应用程序的网络应用程序版本。
35.根据权利要求32所述的搜索服务器,其中所述计算机可读指令致使所述处理装置(310)通过以下操作发射所述查询参数(262、264):
将所述一或多个查询参数(262、264)的至少子集发射到托管作为所述第三方应用程序的网络应用程序版本的网络应用程序的网络服务器(130)。
36.根据权利要求35所述的搜索服务器,其中所述计算机可读指令进一步致使所述处理装置(310)通过以下操作发射所述查询参数(262、264):
从多个命令模板(346)选择对应于所述第三方应用程序的命令模板(346);
基于所述命令模板(346)及所述一或多个查询参数(262、264)的至少子集格式化传出请求;以及
将所述传出请求发射到所述网络服务器(130)。
37.根据权利要求36所述的搜索服务器,其中所述计算机可读指令致使所述处理装置(310)通过以下操作接收所述响应:
接收指示与所述第三方应用程序相关联的网络服务器(130)的域名及对应于所述网络应用程序的状态的一或多个状态参数的网络资源识别符(365a),所述一或多个状态参数由所述网络应用程序用于访问所述状态。
38.根据权利要求37所述的搜索服务器,其中所述计算机可读指令致使所述处理装置(310)通过以下操作确定到所述本机应用程序(218)的所述状态链接(364):
将所述网络资源识别符(365a)转换成指示对所述第三方应用程序的所述本机应用程序(218)版本的引用及所述一或多个状态参数的应用程序资源识别符(365b),其中所述远程计算装置(200)经配置以使用所述应用程序资源识别符(365b)将所述本机应用程序(218)启动到由所述一或多个状态参数指示的所述状态。
39.根据权利要求38所述的搜索服务器,其中所述远程计算装置(200)经配置以接收所述状态链接(364),且在试图使用所述网络资源识别符(365a)访问所述网络应用程序版本之前试图使用所述应用程序资源识别符(365b)访问所述本机应用程序(218)版本上的所述状态。
40.根据权利要求32所述的搜索服务器,其中所述状态链接(364)包含指示所述状态的屏幕截图。
41.根据权利要求32所述的搜索服务器,其中所述一或多个查询参数(262、264)包含包含一或多个查询项的搜索查询(262)。
42.根据权利要求32所述的搜索服务器,其中所述一或多个查询参数(262、264)进一步包含所述远程计算装置(200)的地理位置、所述远程计算装置(200)的操作系统(212)或所述远程计算装置(200)的用户的识别符中的一或多者。
43.一种方法,其包括:
由处理装置(310)从远程计算装置(200)接收含有一或多个查询参数(262、264)的查询;
由所述处理装置(310)识别对应于所述一或多个查询参数(262、264)的第三方应用程序集合;以及
对于每一第三方应用程序:
由所述处理装置(310)从多个命令模板(346)选择对应于所述第三方应用程序的命令模板(346);
由所述处理装置(310)基于所述命令模板(346)及所述一或多个查询参数(262、264)的至少子集产生对应于所述第三方应用程序的资源识别符(365);
由所述处理装置(310)基于所述资源识别符(365)产生状态链接(364);以及
由所述处理装置(310)将所述状态链接(364)提供到所述远程计算装置(200)。
44.根据权利要求43所述的方法,其中所述远程计算装置(200)经配置以使用所述状态链接(364)访问所述第三方应用程序。
45.根据权利要求44所述的方法,其中所述资源识别符(365)为指示托管所述第三方应用程序的网络应用程序版本的网络服务器(130)的域名的网络资源识别符(365a),且其中所述网络资源识别符(365a)进一步包含对应于所述查询参数(262、264)的所述至少所述子集的一或多个状态参数。
46.根据权利要求45所述的方法,其中所述网络资源识别符(365a)为统一资源定位符。
47.根据权利要求44所述的方法,其中所述资源识别符(365)为指示所述第三方应用程序的本机应用程序(218)版本的应用程序资源识别符(365b),且其中所述应用程序资源识别符(365b)进一步包含对应于所述查询参数(262、264)的所述至少所述子集的一或多个状态参数。
48.根据权利要求43所述的方法,其中所述命令模板(346)是基于所述查询中牵涉的功能性来选择。
49.根据权利要求48所述的方法,其中所述命令模板(346)经格式化以利用所述第三方应用程序的特定功能性。
50.根据权利要求43所述的方法,其中:
所述状态链接(364)包含至少一个应用程序资源识别符(365)及至少一个网络资源识别符(365a),且
所述远程计算装置(200)经配置以接收所述状态链接(364),且在试图使用所述网络资源识别符(365a)访问所述网络应用程序版本之前试图使用所述应用程序资源识别符(365b)访问所述本机应用程序(218)版本上的所述状态。
51.根据权利要求43所述的方法,其中所述状态链接(364)包含指示所述状态的屏幕截图。
52.根据权利要求43所述的方法,其中所述一或多个查询参数(262、264)包含包含一或多个查询项的搜索查询(262)。
53.根据权利要求43所述的方法,其中所述一或多个查询参数(262、264)进一步包含所述远程计算装置(200)的地理位置、所述远程计算装置(200)的操作系统(212)或所述远程计算装置(200)的用户的识别符中的一或多者。
54.一种搜索服务器(300),其包括:
网络接口装置(250);
处理装置(310),所述处理装置(310)执行计算机可读指令,所述计算机可读指令在由所述处理装置(310)执行时致使所述处理装置(310):
从远程计算装置(200)接收含有一或多个查询参数(262、264)的查询;
识别对应于所述一或多个查询参数(262、264)的第三方应用程序集合;且
对于每一第三方应用程序:
从多个命令模板(346)选择对应于所述第三方应用程序的命令模板(346);
基于所述命令模板(346)及所述一或多个查询参数(262、264)的至少子集产生对应于所述第三方应用程序的资源识别符(365);
基于所述资源识别符(365)产生状态链接(364);且
将所述状态链接(364)提供到所述远程计算装置(200)。
55.根据权利要求54所述的搜索服务器,其中所述远程计算装置(200)经配置以使用所述状态链接(364)访问所述第三方应用程序。
56.根据权利要求55所述的搜索服务器,其中所述资源识别符(365)为指示托管所述第三方应用程序的网络应用程序版本的网络服务器(130)的域名的网络资源识别符(365a),且其中所述网络资源识别符(365a)进一步包含对应于所述查询参数(262、264)的所述至少所述子集的一或多个状态参数。
57.根据权利要求55所述的搜索服务器,其中所述资源识别符(365)为指示所述第三方应用程序的本机应用程序(218)版本的应用程序资源识别符(365b),且其中所述应用程序资源识别符(365b)进一步包含对应于所述查询参数(262、264)的所述至少所述子集的一或多个状态参数。
58.根据权利要求54所述的搜索服务器,其中所述命令模板(346)是基于所述查询中牵涉的功能性来选择。
59.根据权利要求58所述的搜索服务器,其中所述命令模板(346)经格式化以利用所述第三方应用程序的特定功能性。
60.根据权利要求54所述的搜索服务器,其中:
所述状态链接(364)包含至少一个应用程序资源识别符(365)及至少一个网络资源识别符(365a),且
所述远程计算装置(200)经配置以接收所述状态链接(364),且在试图使用所述网络资源识别符(365a)访问所述网络应用程序版本之前试图使用所述应用程序资源识别符(365b)访问所述本机应用程序(218)版本上的所述状态。
61.根据权利要求54所述的搜索服务器,其中所述状态链接(364)包含指示所述状态的屏幕截图。
62.根据权利要求43所述的搜索服务器,其中所述一或多个查询参数(262、264)包含包含一或多个查询项的搜索查询(262)。
63.根据权利要求43所述的搜索服务器,其中所述一或多个查询参数(262、264)进一步包含所述远程计算装置(200)的地理位置、所述远程计算装置(200)的操作系统(212)或所述远程计算装置(200)的用户的识别符中的一或多者。
CN201480011907.6A 2013-03-01 2014-03-03 产生含有到应用程序的状态链接的搜索结果 Pending CN105074700A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361771614P 2013-03-01 2013-03-01
US61/771,614 2013-03-01
US201461924032P 2014-01-06 2014-01-06
US61/924,032 2014-01-06
PCT/US2014/019859 WO2014134598A1 (en) 2013-03-01 2014-03-03 Generating search results containing state links to applications

Publications (1)

Publication Number Publication Date
CN105074700A true CN105074700A (zh) 2015-11-18

Family

ID=51421549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480011907.6A Pending CN105074700A (zh) 2013-03-01 2014-03-03 产生含有到应用程序的状态链接的搜索结果

Country Status (5)

Country Link
US (7) US20140250147A1 (zh)
EP (1) EP2962224A4 (zh)
JP (1) JP6105094B2 (zh)
CN (1) CN105074700A (zh)
WO (1) WO2014134598A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106446132A (zh) * 2016-09-19 2017-02-22 百度在线网络技术(北京)有限公司 搜索处理方法及装置
CN107688478A (zh) * 2016-08-05 2018-02-13 阿里巴巴集团控股有限公司 终端、应用信息的显示方法及装置
CN109917979A (zh) * 2019-02-22 2019-06-21 维沃移动通信有限公司 一种搜索方法及移动终端
CN111465932A (zh) * 2018-11-21 2020-07-28 谷歌有限责任公司 将来自查询的响应整合到异构数据源

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788588B2 (en) * 2006-05-03 2014-07-22 Samsung Electronics Co., Ltd. Method of providing service for user search, and apparatus, server, and system for the same
US9167043B2 (en) * 2009-05-22 2015-10-20 Nederlandse Organisatie Voor Toegepast-Natuurwetenschappelijk Onderzoek Tno Servers for device identification services
US10021052B1 (en) 2012-09-22 2018-07-10 Sitting Man, Llc Methods, systems, and computer program products for processing a data object identification request in a communication
JP6105094B2 (ja) 2013-03-01 2017-03-29 クイクシー インコーポレイテッド アプリケーションへの状態リンクを含む検索結果の生成
US20140282032A1 (en) * 2013-03-15 2014-09-18 Microsoft Corporation Dynamically configuring user experiences with action uniform resource identifiers
US20140379747A1 (en) * 2013-06-19 2014-12-25 Microsoft Corporation Identifying relevant apps in response to queries
US9418103B2 (en) * 2013-12-06 2016-08-16 Quixey, Inc. Techniques for reformulating search queries
CN103617285A (zh) * 2013-12-11 2014-03-05 百度在线网络技术(北京)有限公司 在移动终端中展现搜索结果的方法及装置
US9720672B2 (en) 2014-01-06 2017-08-01 Quixey, Inc. Searching and accessing application functionality
US20150242421A1 (en) * 2014-02-21 2015-08-27 Quixey, Inc. Location-Based Searching
US10210263B1 (en) * 2014-06-24 2019-02-19 Google Llc Native application search results
US9881095B2 (en) * 2014-06-24 2018-01-30 Google Llc Search results for native applications
RU2597476C2 (ru) * 2014-06-27 2016-09-10 Общество С Ограниченной Ответственностью "Яндекс" Система и способ выполнения поиска
US9916328B1 (en) 2014-07-11 2018-03-13 Google Llc Providing user assistance from interaction understanding
US20160048319A1 (en) * 2014-08-18 2016-02-18 Microsoft Technology Licensing, Llc Gesture-based Access to a Mix View
US9965559B2 (en) 2014-08-21 2018-05-08 Google Llc Providing automatic actions for mobile onscreen content
US10095794B2 (en) * 2014-09-05 2018-10-09 Samsung Electronics Co., Ltd. Augmenting search results with device and application history
US10198558B2 (en) * 2014-10-06 2019-02-05 Red Hat, Inc. Data source security cluster
US10114898B2 (en) * 2014-11-26 2018-10-30 Samsung Electronics Co., Ltd. Providing additional functionality with search results
US10387505B2 (en) * 2014-12-29 2019-08-20 Samsung Electronics Co., Ltd. Generating advertisements using functional clusters
US10002113B2 (en) 2014-12-30 2018-06-19 Samsung Electronics Co., Ltd. Accessing related application states from a current application state
US20160188169A1 (en) * 2014-12-31 2016-06-30 TCL Research America Inc. Least touch mobile device
US10349205B2 (en) * 2014-12-31 2019-07-09 Samsung Electronics Co., Ltd. Location-based application search
US10216852B1 (en) 2015-01-22 2019-02-26 Google Llc Indexing access limited native applications
US9703541B2 (en) 2015-04-28 2017-07-11 Google Inc. Entity action suggestion on a mobile device
US10152488B2 (en) * 2015-05-13 2018-12-11 Samsung Electronics Co., Ltd. Static-analysis-assisted dynamic application crawling architecture
US20160357764A1 (en) * 2015-06-02 2016-12-08 Quixey, Inc. Generating Search Results based on Proximate Computing Devices
US10621189B2 (en) * 2015-06-05 2020-04-14 Apple Inc. In-application history search
US10755032B2 (en) 2015-06-05 2020-08-25 Apple Inc. Indexing web pages with deep links
US10430830B2 (en) * 2015-06-16 2019-10-01 Samsung Electronics Co., Ltd. Advertisement selection using uncertain user data
US10268732B2 (en) * 2015-06-29 2019-04-23 Google Llc Ranking native applications and native application deep links
EP3125112A1 (en) * 2015-07-30 2017-02-01 Hewlett-Packard Enterprise Development LP Web-application-launch application programming interfaces
US20170046438A1 (en) 2015-08-13 2017-02-16 Quixey, Inc. Cloud-Enabled Caching Architecture for On-Demand Native Application Crawling
US20170052773A1 (en) * 2015-08-17 2017-02-23 Google Inc. Application installs using remote applications
US9959558B2 (en) * 2015-08-18 2018-05-01 Samsung Electronics Co., Ltd. Application cards as advertisements
US20170053314A1 (en) * 2015-08-20 2017-02-23 Quixey, Inc. Displaying Advertisements In Application Launcher
US10223460B2 (en) 2015-08-25 2019-03-05 Google Llc Application partial deep link to a corresponding resource
US20170060891A1 (en) * 2015-08-26 2017-03-02 Quixey, Inc. File-Type-Dependent Query System
US10579687B2 (en) * 2015-09-01 2020-03-03 Google Llc Providing native application search results with web search results
US10970646B2 (en) * 2015-10-01 2021-04-06 Google Llc Action suggestions for user-selected content
US10353976B2 (en) * 2015-10-05 2019-07-16 Samsung Electronics Co., Ltd. Generating search results using a set of alternate search queries
US10146761B2 (en) * 2015-10-05 2018-12-04 Samsung Electronics Co., Ltd. Templates for application cards
US10181134B2 (en) * 2015-10-12 2019-01-15 Samsung Electronics Co., Ltd. Indicating advertised states of native applications in application launcher
US20170103129A1 (en) * 2015-10-12 2017-04-13 Google Inc. Scoring content within native applications
US10311116B2 (en) * 2015-10-21 2019-06-04 Samsung Electronics Co., Ltd. Multi-function search button
US10178527B2 (en) 2015-10-22 2019-01-08 Google Llc Personalized entity repository
US10055390B2 (en) 2015-11-18 2018-08-21 Google Llc Simulated hyperlinks on a mobile device based on user intent and a centered selection of text
US10209872B2 (en) * 2015-12-01 2019-02-19 Samsung Electronics Co., Ltd. Indicating states of native applications in application launcher
US9811327B2 (en) 2015-12-21 2017-11-07 Quixey, Inc. Dependency-aware transformation of multi-function applications for on-demand execution
US10255618B2 (en) * 2015-12-21 2019-04-09 Samsung Electronics Co., Ltd. Deep link advertisements
US9952848B2 (en) * 2015-12-21 2018-04-24 Samsung Electronics Co., Ltd. Dependency-aware transformation of multi-function applications for on-demand execution
US10127577B2 (en) * 2015-12-31 2018-11-13 Samsung Electronics Co., Ltd. Search architecture for rendering deep links from action criteria
US10120954B2 (en) * 2015-12-31 2018-11-06 Samsung Electronics Co., Ltd. Transformation and presentation of on-demand native application crawling results
US9984132B2 (en) * 2015-12-31 2018-05-29 Samsung Electronics Co., Ltd. Combining search results to generate customized software application functions
US10769674B2 (en) * 2015-12-31 2020-09-08 Samsung Electronics Co., Ltd. Generation and rendering system for advertisement objects with computer-selected conditional content
US11340920B2 (en) * 2016-02-02 2022-05-24 Aetherpal Inc. Device navigational maps for connected devices
US10749986B2 (en) 2016-04-11 2020-08-18 Samsung Electronics Co., Ltd. Platform for interaction via commands and entities
US20170322704A1 (en) * 2016-05-03 2017-11-09 Google Inc. Composition of a user interface through data binding
US20170357725A1 (en) * 2016-06-12 2017-12-14 Apple Inc. Ranking content items provided as search results by a search application
TW201814554A (zh) * 2016-10-12 2018-04-16 香港商阿里巴巴集團服務有限公司 搜索方法、裝置、終端設備和操作系統
US10535005B1 (en) 2016-10-26 2020-01-14 Google Llc Providing contextual actions for mobile onscreen content
KR20180060328A (ko) 2016-11-28 2018-06-07 삼성전자주식회사 멀티 모달 입력을 처리하는 전자 장치, 멀티 모달 입력을 처리하는 방법 및 멀티 모달 입력을 처리하는 서버
CN108205561A (zh) * 2016-12-19 2018-06-26 北京国双科技有限公司 数据查询系统、方法及装置
US11237696B2 (en) 2016-12-19 2022-02-01 Google Llc Smart assist for repeated actions
US10224031B2 (en) * 2016-12-30 2019-03-05 Google Llc Generating and transmitting invocation request to appropriate third-party agent
WO2018128473A1 (en) * 2017-01-05 2018-07-12 Samsung Electronics Co., Ltd. Method and apparatus for managing communication to perform action
US10249095B2 (en) 2017-04-07 2019-04-02 Microsoft Technology Licensing, Llc Context-based discovery of applications
US10769364B2 (en) 2017-06-09 2020-09-08 Branch Metrics, Inc. Generating custom application links
CN107507615A (zh) * 2017-08-29 2017-12-22 百度在线网络技术(北京)有限公司 界面智能交互控制方法、装置、系统及存储介质
US10496381B2 (en) * 2017-11-27 2019-12-03 Microsoft Technology Licensing, Llc Progressive web app auto-ingestion
GB2569335B (en) * 2017-12-13 2022-07-27 Sage Global Services Ltd Chatbot system
JP6498798B1 (ja) * 2018-01-17 2019-04-10 株式会社ぐるなび 情報提供装置、情報提供方法、情報提供プログラムおよび利用者端末制御プログラム
JP6498799B1 (ja) 2018-01-17 2019-04-10 株式会社ぐるなび 情報提供装置、情報提供方法、情報提供プログラムおよび利用者端末制御プログラム
KR20190101813A (ko) * 2018-02-23 2019-09-02 삼성전자주식회사 호스트 어플리케이션과 어시스턴트 어플리케이션 사이의 연동 방법 및 이를 지원하는 전자 장치
CN111052072B (zh) * 2018-03-28 2022-05-24 华为技术有限公司 一种免安装应用程序下载方法及装置
US11019083B2 (en) * 2018-06-20 2021-05-25 Cisco Technology, Inc. System for coordinating distributed website analysis
CN109725977B (zh) * 2019-01-02 2022-06-28 京东方科技集团股份有限公司 一种基于Android系统的多应用显示方法及终端设备
US11151199B2 (en) * 2019-01-07 2021-10-19 EMC IP Holding Company LLC Query result overlap detection using unique identifiers
EP3726373B1 (en) * 2019-04-15 2024-03-06 Mendix Technology B.V. Creating an app method and system
US11392589B2 (en) 2019-06-13 2022-07-19 Branch Metrics, Inc. Multi-vertical entity-based search system
CN110297976A (zh) * 2019-06-26 2019-10-01 百度在线网络技术(北京)有限公司 基于云检索的推荐方法、装置、设备及可读存储介质
KR102339085B1 (ko) * 2019-07-22 2021-12-14 엘지전자 주식회사 사용자의 어플리케이션 사용 기록을 고려하여 사용자의 음성을 인식하는 인공 지능 장치 및 그 방법
US11341141B2 (en) 2019-08-06 2022-05-24 Branch Metrics, Inc. Search system using multiple search streams
US11144720B2 (en) * 2019-08-26 2021-10-12 Roblox Corporation Determining canonical content for a game
US11758231B2 (en) * 2019-09-19 2023-09-12 Michael J. Laverty System and method of real-time access to rules-related content in a training and support system for sports officiating within a mobile computing environment
US11762856B2 (en) * 2020-04-07 2023-09-19 Servicenow, Inc. Query response module and content links user interface
US11061667B1 (en) * 2020-04-27 2021-07-13 Citrix Systems, Inc. Selecting a version of an application
US11876841B2 (en) * 2021-07-21 2024-01-16 Honda Motor Co., Ltd. Disparate player media sharing
US20230306373A1 (en) * 2022-03-25 2023-09-28 Adp, Inc. Smart actions in application ecosystem

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1327195A (zh) * 2000-05-08 2001-12-19 互联网号码公司 用于访问在一个网络上的信息的方法和系统
CN1882939A (zh) * 2003-07-02 2006-12-20 维布兰特媒体有限公司 用于扩充web内容的方法和系统
US20120284247A1 (en) * 2011-05-06 2012-11-08 Microsoft Corporation Integrating applications within search results

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527882B2 (en) 1998-06-12 2013-09-03 Gregory J. Swartz System and method for iconic software environment management
JP2000076296A (ja) * 1998-09-02 2000-03-14 Nippon Telegr & Teleph Corp <Ntt> 関連情報検索方法及び装置及び関連情報検索プログラムを格納した記憶媒体及び関連情報検索用データを格納した記憶媒体
JP2003132060A (ja) 2001-10-23 2003-05-09 Just Syst Corp 検索支援装置、検索支援方法、及び検索支援プログラム
US8631001B2 (en) 2004-03-31 2014-01-14 Google Inc. Systems and methods for weighting a search query result
US7730012B2 (en) 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US7979457B1 (en) * 2005-03-02 2011-07-12 Kayak Software Corporation Efficient search of supplier servers based on stored search results
US7996391B2 (en) 2005-06-20 2011-08-09 Google Inc. Systems and methods for providing search results
US7720834B2 (en) 2005-06-23 2010-05-18 Microsoft Corporation Application launching via indexed data
US20080009268A1 (en) 2005-09-14 2008-01-10 Jorey Ramer Authorized mobile content search results
US8010960B2 (en) 2005-11-30 2011-08-30 Honeywell International Inc. System and method for providing a software installation or removal status display
US20070211871A1 (en) 2006-03-08 2007-09-13 David Sjolander Method and system for organizing incident records in an electronic equipment
US8005822B2 (en) 2007-01-17 2011-08-23 Google Inc. Location in search queries
WO2009070501A1 (en) 2007-11-26 2009-06-04 Urban Mapping, Inc. Generating geographical keywords for geotargeting search engine-offered advertisements
US8099332B2 (en) 2008-06-06 2012-01-17 Apple Inc. User interface for application management for a mobile device
US8161050B2 (en) 2008-11-20 2012-04-17 Microsoft Corporation Visualizing hyperlinks in a search results list
US8661033B2 (en) 2009-03-31 2014-02-25 Innography, Inc. System to provide search results via a user-configurable table
BRPI1014397A2 (pt) 2009-05-27 2016-04-05 Google Inc dados de aplicação por computador em resultados de pesquisa
US8713003B2 (en) 2009-07-24 2014-04-29 Peer Belt Inc. System and method for ranking content and applications through human assistance
US8386455B2 (en) * 2009-09-20 2013-02-26 Yahoo! Inc. Systems and methods for providing advanced search result page content
WO2011097740A1 (en) 2010-02-15 2011-08-18 Research In Motion Limited Methods and apparatus for a comprehensive searching on a mobile device
US8881128B2 (en) 2010-02-25 2014-11-04 Blackberry Limited Method and system for acquisition of an application for installation at a communication device
US8552999B2 (en) 2010-06-14 2013-10-08 Apple Inc. Control selection approximation
US9336235B2 (en) 2010-11-03 2016-05-10 Verizon Patent And Licensing Inc. Location-based recommendations
US20120124061A1 (en) * 2010-11-12 2012-05-17 Microsoft Corporation Rich Search Over and Deep Integration with Applications
US20120124062A1 (en) * 2010-11-12 2012-05-17 Microsoft Corporation Application Transfer Protocol
US20120150850A1 (en) 2010-12-08 2012-06-14 Microsoft Corporation Search result relevance by determining query intent
US20120166411A1 (en) * 2010-12-27 2012-06-28 Microsoft Corporation Discovery of remotely executed applications
US9015140B2 (en) * 2010-12-30 2015-04-21 Yahoo! Inc. System and method for providing contextual actions on a search results page
KR101956702B1 (ko) 2011-02-01 2019-03-12 주식회사 케이티 앱스토어와 무선 ap를 활용한 모바일 기기용 기업 어플리케이션 및 콘텐츠 유통 방법 및 시스템
WO2012119527A1 (zh) 2011-03-04 2012-09-13 联想(北京)有限公司 应用图标的生成方法和终端设备
US20120316955A1 (en) 2011-04-06 2012-12-13 Yahoo! Inc. System and Method for Mobile Application Search
EP2710465A1 (en) 2011-05-09 2014-03-26 Google, Inc. Identifying applications of interest based on application market log data
US8924958B1 (en) 2011-05-24 2014-12-30 BlueStack Systems, Inc. Application player
US9519726B2 (en) 2011-06-16 2016-12-13 Amit Kumar Surfacing applications based on browsing activity
US20130086027A1 (en) 2011-09-30 2013-04-04 Nuance Communications, Inc. Techniques for the receipt and processing of user-specified queries
KR101812657B1 (ko) 2011-11-22 2018-01-31 삼성전자주식회사 컨텍스트 정보에 기초한 애플리케이션 추천 시스템 및 방법
US20130238609A1 (en) 2012-03-07 2013-09-12 Microsoft Corporation Query result rendering
US8984166B2 (en) 2012-04-05 2015-03-17 Cloudflare, Inc. Method and apparatus for reducing network resource transmission size using delta compression
US9201946B2 (en) 2012-04-26 2015-12-01 Quixey, Inc. Application representation for application editions
US9372901B2 (en) 2012-04-27 2016-06-21 Quixey, Inc. Searching for software applications based on application attributes
US9569500B2 (en) 2012-04-27 2017-02-14 Quixey, Inc. Providing a customizable application search
US9600530B2 (en) 2012-04-27 2017-03-21 Quixey, Inc. Updating a search index used to facilitate application searches
US9256697B2 (en) 2012-05-11 2016-02-09 Microsoft Technology Licensing, Llc Bidirectional mapping between applications and network content
US9552414B2 (en) 2012-05-22 2017-01-24 Quixey, Inc. Dynamic filtering in application search
CN103425704B (zh) 2012-05-24 2017-07-21 阿里巴巴集团控股有限公司 应用界面提供方法及装置
US9405832B2 (en) * 2012-05-31 2016-08-02 Apple Inc. Application search query classifier
US20140040226A1 (en) * 2012-07-31 2014-02-06 Microsoft Corporation Providing application result and preview
US20140040231A1 (en) * 2012-08-06 2014-02-06 Hsiu-Ping Lin Methods and systems for searching software applications
US9280789B2 (en) 2012-08-17 2016-03-08 Google Inc. Recommending native applications
US9280595B2 (en) 2012-08-30 2016-03-08 Apple Inc. Application query conversion
US9104787B2 (en) 2012-12-14 2015-08-11 Microsoft Technology Licensing, Llc Augmenting search results with relevant third-party application content
US9002821B2 (en) 2013-01-16 2015-04-07 Google Inc. Indexing application pages of native applications
JP6105094B2 (ja) 2013-03-01 2017-03-29 クイクシー インコーポレイテッド アプリケーションへの状態リンクを含む検索結果の生成
US20140358887A1 (en) 2013-05-29 2014-12-04 Microsoft Corporation Application content search management
US20140359598A1 (en) 2013-05-29 2014-12-04 Microsoft Corporation Application installation from search results
US9135346B2 (en) 2013-06-07 2015-09-15 Google Inc. Index data for native applications
US20150052021A1 (en) 2013-08-19 2015-02-19 Red Hat, Inc. System and method for processing service queries
US9589033B1 (en) 2013-10-14 2017-03-07 Google Inc. Presenting results from multiple search engines
US9720672B2 (en) 2014-01-06 2017-08-01 Quixey, Inc. Searching and accessing application functionality
US20150242421A1 (en) 2014-02-21 2015-08-27 Quixey, Inc. Location-Based Searching
US9626443B2 (en) 2014-10-23 2017-04-18 Quixey, Inc. Searching and accessing application functionality

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1327195A (zh) * 2000-05-08 2001-12-19 互联网号码公司 用于访问在一个网络上的信息的方法和系统
CN1882939A (zh) * 2003-07-02 2006-12-20 维布兰特媒体有限公司 用于扩充web内容的方法和系统
US20120284247A1 (en) * 2011-05-06 2012-11-08 Microsoft Corporation Integrating applications within search results

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688478A (zh) * 2016-08-05 2018-02-13 阿里巴巴集团控股有限公司 终端、应用信息的显示方法及装置
TWI787183B (zh) * 2016-08-05 2022-12-21 香港商阿里巴巴集團服務有限公司 終端、應用資訊的顯示方法及裝置
CN106446132A (zh) * 2016-09-19 2017-02-22 百度在线网络技术(北京)有限公司 搜索处理方法及装置
CN106446132B (zh) * 2016-09-19 2019-07-23 百度在线网络技术(北京)有限公司 搜索处理方法及装置
CN111465932A (zh) * 2018-11-21 2020-07-28 谷歌有限责任公司 将来自查询的响应整合到异构数据源
CN111465932B (zh) * 2018-11-21 2024-04-02 谷歌有限责任公司 将来自查询的响应整合到异构数据源
CN109917979A (zh) * 2019-02-22 2019-06-21 维沃移动通信有限公司 一种搜索方法及移动终端
CN109917979B (zh) * 2019-02-22 2021-02-23 维沃移动通信有限公司 一种搜索方法及移动终端

Also Published As

Publication number Publication date
US20160253420A1 (en) 2016-09-01
US9959360B2 (en) 2018-05-01
EP2962224A1 (en) 2016-01-06
US20140250106A1 (en) 2014-09-04
JP2016513827A (ja) 2016-05-16
JP6105094B2 (ja) 2017-03-29
US10002200B2 (en) 2018-06-19
US20160253422A1 (en) 2016-09-01
US9703882B2 (en) 2017-07-11
US20140250147A1 (en) 2014-09-04
EP2962224A4 (en) 2016-10-19
US20160253343A1 (en) 2016-09-01
US20160253421A1 (en) 2016-09-01
US20160253430A1 (en) 2016-09-01
US10140378B2 (en) 2018-11-27
WO2014134598A1 (en) 2014-09-04

Similar Documents

Publication Publication Date Title
CN105074700A (zh) 产生含有到应用程序的状态链接的搜索结果
US10310834B2 (en) Searching and accessing application functionality
US9626443B2 (en) Searching and accessing application functionality
US10592515B2 (en) Surfacing applications based on browsing activity
CN106415537B (zh) 将本地应用搜索结果插入到web搜索结果中
US20180024996A1 (en) Method of and system for enhanced local-device content discovery
CN101495955B (zh) 移动设备检索与导航
CN105164710A (zh) 实体投标
CN105027121A (zh) 对本机应用的应用页面建索引
CN106462597A (zh) 利用不同设备执行搜索和访问搜索结果
CN106687949A (zh) 本地应用的搜索结果
CN106663108A (zh) 用于原生应用的深链接
US10120951B2 (en) Bifurcated search
US20160188684A1 (en) Consolidating Search Results
US20200394194A1 (en) Multi-vertical entity-based search system
CN107430614A (zh) 到对应资源的应用局部深度链接
JP2005251157A (ja) 情報検索システムおよび情報検索方法ならびにプログラム
JP2007148476A (ja) 情報検索支援システム、情報検索支援方法、検索支援モジュールプログラムおよび情報検索支援プログラム
US20170103073A1 (en) Identifying Expert Reviewers
KR102151598B1 (ko) 키워드 속성을 기준으로 관련 있는 키워드를 제공하는 방법 및 시스템
JP2001350794A (ja) データベース検索用キーワードに基づくコミュニケーション装置及び方法並びに記録媒体
CN100390797C (zh) 通过因特网的字词关联内容搜寻方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180110

Address after: Gyeonggi Do, South Korea

Applicant after: Samsung Electronics Co., Ltd.

Address before: American California

Applicant before: QUIXEY INC.

WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20151118