CN109564573B - 来自计算机应用元数据的平台支持集群 - Google Patents

来自计算机应用元数据的平台支持集群 Download PDF

Info

Publication number
CN109564573B
CN109564573B CN201780046580.XA CN201780046580A CN109564573B CN 109564573 B CN109564573 B CN 109564573B CN 201780046580 A CN201780046580 A CN 201780046580A CN 109564573 B CN109564573 B CN 109564573B
Authority
CN
China
Prior art keywords
application
applications
metadata
computer
platform
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.)
Active
Application number
CN201780046580.XA
Other languages
English (en)
Other versions
CN109564573A (zh
Inventor
A·辛加尔
M·M·德巴罗斯
S·S·谢诺伊
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109564573A publication Critical patent/CN109564573A/zh
Application granted granted Critical
Publication of CN109564573B publication Critical patent/CN109564573B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/353Clustering; Classification into predefined classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • 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/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

可以取回用于计算机应用的应用元数据,其中元数据与用于在线应用商店的元数据对应,应用从在线应用商店可获取。可以生成计算机可读应用集群。应用集群中的每个应用集群可以指示集群中的应用由用于集群的一个或多个平台的关联集合支持。集群的生成可以包括分析应用元数据,诸如通过对自然语言数据执行模式匹配。针对用于由指定计算机平台支持的应用的应用查询的结果可以限于群集中的一个或多个集群中的应用的列举,该一个或多个集群的一个或多个平台的关联集合包括指定平台。

Description

来自计算机应用元数据的平台支持集群
技术领域
本申请总体上涉及来自计算机应用元数据的平台支持集群。
背景技术
在线应用商店使应用可用于下载和安装。这样的在线应用商店有时提供关于要被下载的应用的元数据。例如,这样的元数据可以包括应用的自然语言描述。元数据还可以包括可以由用户通过在线商店或通过其他途径提供的用于应用的自然语言用户评论。在线商店通常为每个应用提供应用站点,该应用站点包括用于应用的描述、用于应用的用户评论和诸如可以被选择用于下载和/或安装应用的控件的附加特征。
在线商店还提供了便于查找应用的特征。这样的特征可能是有价值的,尤其是随着近年来一些在线应用商店中的应用的数目急剧增加。例如,在线商店可以响应于作为来自在线商店上的用户简档的用户输入而被录入的查询来提供搜索结果。
除了在线商店之外的搜索引擎提供商还包括搜索特征以便于在在线商店中查找应用。例如,搜索引擎提供商已经对在线商店上的应用站点编索引,从而使得可以在传统的web搜索结果中提供这样的站点。搜索引擎还可以提供对应用查询的更有针对性的应答,这些应答可能在某些方面受到限制,诸如限于来自如下在线商店的应用:该在线商店提供由从其发送应用查询的设备类型支持的应用。作为示例,搜索引擎可以接收并且响应于类别应用查询,该类别应用查询是请求应用类别的查询(诸如用于搜索应用或手电筒应用的查询)。
发明内容
本文中讨论的工具和技术涉及使用应用的元数据生成的计算机应用的平台支持集群,诸如来自一个或多个在线应用商店上的应用的站点的元数据。
在一个方面,工具和技术可以包括取回计算机应用的应用元数据。元数据可以与用于在线应用商店的元数据对应,应用从在线应用商店可获取。可以生成计算机可读应用集群,其中每个应用集群指示集群中的应用由集群的一个或多个平台的关联集合支持。集群的生成可以包括对应用元数据中的自然语言数据执行模式匹配。可以使用集群生成一个或多个计算机应用的列表,该列表响应于查询,该查询请求列举指定平台支持的一个或多个计算机应用的结果。指定平台可以是集群中的特定集群的一个或多个平台的关联集合中的平台。生成列表可以包括将列表限于特定集群中的一个或多个应用。
在工具和技术的另一方面,可以取回计算机应用的应用元数据,其中元数据与用于在线应用商店的元数据对应,应用从在线应用商店可获取。可以生成计算机可读应用集群。每个应用集群可以指示集群中的应用由集群的一个或多个平台的关联集合支持。集群的生成可以包括分析应用元数据。由指定计算机平台支持的应用的应用查询的结果可以限于其一个或多个平台的关联集合包括指定平台的一个或多个集群中的应用的列举。
提供本发明内容是为了以简化的形式介绍一系列概念。这些概念在下面的具体实施方式中进一步被描述。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也并不旨在用于限制所要求保护的主题的范围。类似地,本发明不限于能够解决在背景技术、具体实施方式或附图中讨论的特定技术、工具、环境、缺点或优点的实现。
附图说明
图1是其中可以实现所描述的方面中的一个或多个的合适的计算环境的框图。
图2是类别应用搜索系统的示意图。
图3是来自图2的应用搜索系统的搜索服务的框图。
图4是跨平台应用查询类别技术的示例的流程图。
图5是应用平台兼容性检测技术的示例的流程图。
图6是应用查询建议技术的示例的流程图。
图7是用于计算机应用元数据的平台支持集群的技术的流程图。
图8是用于计算机应用元数据的平台支持集群的另一技术的流程图。
具体实施方式
本文中描述的各方面涉及用于计算机应用的改进搜索的技术和工具,并且特别地涉及使用应用的元数据生成的计算机应用的平台支持集群。计算机应用搜索的改进可以通过单独或组合使用各种技术和工具来实现。
这些技术和工具可以包括基于语义的分类器,基于语义的分类器将用户给出的应用描述元数据和应用评论作为输入并且根据一个或多个计算机平台中的哪些支持应用来对应用进行聚类。例如,一个集群可能适用于仅由平台A支持的应用,另一集群适用于仅由平台B支持的应用,另一集群适用于由平台A和平台B支持的应用(从而使得这样的应用可以在任何一个平台上运行)。该聚类可以包括基于从描述和评论提取的模式对应用进行分组,并且集群可以通过使用兼容支持平台的指示符标记应用的表示来形成(诸如通过将平台或集群数据项插入到用于应用的列举中,和/或通过将应用数据项插入到集群列举中)。从描述和评论提取的语句可以使用一种或多种技术来分析,诸如情绪分析,如下面更详细讨论的。该技术可以用于很多不同的平台和应用,并且可以用于与来自不同在线应用商店的应用一起被使用。聚类还可以使用依赖性图,该依赖性图可以指示应用之间的先决条件依赖关系(其中一个应用依赖于另一应用来正常运行)。例如,如果依赖性图指示应用A是应用B的先决条件,并且应用A已经位于仅由平台A支持的集群中,则这将指示诸如平台B等不同平台不支持应用B。依赖性图可以使用对应用的描述和/或用户评论中的元数据的模式匹配和/或通过分析其他数据来生成。
应用聚类可以在应用搜索系统中使用。例如,应用聚类可以用于限制搜索结果或应用列表,这些应用响应于寻求由特定的一组一个或多个平台支持的应用列表的应用查询。因此,聚类可以用于将搜索结果限于被标识为由特定的一组平台以有效方式支持的应用,可能不依赖于从应用商店接收数据或用户明确说明哪些平台支持哪些应用。作为替代,该信息可以使用本文中讨论的计算机技术从自然语言元数据推断。因此,本文中讨论的用于使用应用的元数据生成的计算机应用集群的平台支持集群的工具和技术可以通过将搜索结果有效地限于已经被标识为由特定的一组一个或多个计算机平台支持的应用来改进计算机搜索系统。
所附权利要求书中定义的主题不必限于本文中描述的益处。本发明的特定实现可以提供本文中描述的全部、一些或没有益处。尽管为了呈现起见而在本文中以特定的顺序次序描述了各种技术的操作,但是应当理解,除非需要特定的排序,否则这种描述方式包括操作次序的重新排列。例如,顺序描述的操作在某些情况下可以重新排列或同时执行。此外,为了简单起见,流程图可能未示出可以结合其他技术来使用特定技术的各种方式。
本文中描述的技术可以与本文中描述的一个或多个系统一起被使用和/或与一个或多个其他系统一起被使用。例如,本文中描述的各种过程可以用硬件或软件或两者的组合来实现。例如,下面参考图1讨论的处理器、存储器、存储装置、(多个)输出设备、(多个)输入设备和/或通信连接均可以是一个或多个硬件组件的至少一部分。可以构造专用硬件逻辑组件以实现本文中描述的一种或多种技术的至少一部分。例如而非限制,这样的硬件逻辑组件可以包括现场可编程门阵列(FPGA)、程序专用集成电路(ASIC)、程序专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。可以包括各种方面的装置和系统的应用可以广泛地包括各种电子和计算机系统。技术可以使用具有相关控制和数据信号的两个或更多个特定互连硬件模块或设备来实现,这些相关控制和数据信号可以在模块之间和通过模块传送,或者技术可以实现为专用集成电路的部分。另外,本文中描述的技术可以由计算机系统可执行的软件程序实现。作为示例,实现可以包括分布式处理、组件/对象分布式处理和并行处理。此外,可以构造虚拟计算机系统处理以实现一种或多种技术或功能,如本文所述。
I.示例性计算环境
图1示出了其中可以实现所描述的方面中的一个或多个的合适的计算环境(100)的一般化示例。例如,一个或多个这样的计算环境可以用作应用商店、搜索服务和/或客户端中的计算机器。通常,可以使用各种不同的计算系统配置。可以适用于本文中描述的工具和技术的公知的计算系统配置的示例包括但不限于服务器群和服务器集群、个人计算机、服务器计算机、智能电话、膝上型设备、平板设备、游戏控制台、多处理器系统、基于微处理器的系统、可编程消费电子产品、网络PC、小型计算机、大型计算机、包括任何上述系统或设备的分布式计算环境等。
计算环境(100)不旨在对本发明的使用范围或功能提出任何限制,因为本发明可以在不同类型的计算环境中实现。
参考图1,将讨论各种示出的基于硬件的计算机组件。如将讨论的,这些硬件组件可以存储和/或执行软件。计算环境(100)包括至少一个处理单元或处理器(110)和存储器(120)。在图1中,该最基本的配置(130)被包括在虚线内。处理单元(110)执行计算机可执行指令,并且可以是真实或虚拟处理器。在多处理系统中,多个处理单元执行计算机可执行指令以增加处理能力。存储器(120)可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存)或两者的某种组合。存储器(120)存储实现使用应用的元数据生成的计算机应用的平台支持集群的软件(180)。使用应用的元数据生成的计算机应用的平台支持集群的实现可以涉及处理器(110)和存储器(120)的全部或部分活动以硬件逻辑实施作为软件(180)的替代或补充。
尽管为了清楚起见用线条示出了图1的各个框,但实际上,描绘各种组件并不是则清楚,并且按比喻的说法,图1和下面讨论的其他图的线更准确地将是灰色的和模糊的。例如,可以将诸如显示设备等呈现组件视为I/O组件(例如,如果显示设备包括触摸屏)。此外,处理器具有存储器。发明人在此认识到,这是本领域的本质并且重申图1的图仅仅是可以结合本文中讨论的技术的一个或多个方面来使用的示例性计算设备的示例。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持设备”等类别之间没有进行区分,因为所有这些都在图1的范围内并且参考“计算机”、“计算环境”或“计算设备”。
计算环境(100)可以具有附加特征。在图1中,计算环境(100)包括存储装置(140)、一个或多个输入设备(150)、一个或多个输出设备(160)和一个或多个通信连接(170)。互连计算环境(100)的组件的互连机制(未示出),诸如总线、控制器或网络。通常,操作系统软件(未示出)为在计算环境(100)中执行的其他软件提供操作环境,并且协调计算环境(100)的组件的活动。
存储器(120)可以包括存储装置(140)(尽管它们为了方便而在图1中单独描绘),存储装置(140)可以是可移动的或不可移动的,并且存储器(120)可以包括可以用于存储信息并且可在计算环境(100)内访问的计算机可读存储介质,诸如闪存驱动器、磁盘、磁带或盒式磁带、CD-ROM、CD-RW、DVD。存储装置(140)存储用于软件(180)的指令。
(多个)输入设备(150)可以是各种不同输入设备中的一个或多个。例如,(多个)输入设备(150)可以包括用户设备,诸如鼠标、键盘、轨迹球等。(多个)输入设备(150)可以实现一种或多种自然用户界面技术,诸如语音识别、触摸和手写笔识别、与(多个)输入设备(150)接触并且与(多个)输入设备(150)相邻的手势的识别、空气手势的识别、头部和眼睛跟踪、声音和语音识别、感测用户大脑活动(例如,使用EEG和相关方法)和机器智能(例如,使用机器智能来理解用户意图和目标)。作为其他示例,(多个)输入设备(150)可以包括扫描设备;网络适配器;CD/DVD读卡器;或者向计算环境(100)提供输入的另一设备。(多个)输出设备(160)可以是显示器、打印机、扬声器、CD/DVD写入器、网络适配器或提供来自计算环境(100)的输出的另一设备。(多个)输入设备(150)和(多个)输出设备(160)可以并入诸如触摸屏或虚拟现实系统等单个系统或设备中。
(多个)通信连接(170)使得能够通过通信介质与另一计算实体进行通信。另外,计算环境(100)的组件的功能可以在单个计算机器中实现,或者在能够通过通信连接进行通信的多个计算机器中实现。因此,计算环境(100)可以使用到一个或多个远程计算设备的逻辑连接在网络环境中操作,诸如手持计算设备、个人计算机、服务器、路由器、网络PC、对等设备或另一常见的网络节点。通信介质在调制数据信号中传送诸如数据或计算机可执行指令或请求等信息。调制数据信号是以能够在信号中对信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括利用电、光、RF、红外、声学或其他载体实现的有线或无线技术。
工具和技术可以在计算机可读介质的通用上下文中描述,计算机可读介质可以是存储介质或通信介质。计算机可读存储介质是可以在计算环境内访问的任何可用存储介质,但是术语计算机可读存储介质并不涉及传播信号本身。作为示例而非限制,利用计算环境(100),计算机可读存储介质包括存储器(120)、存储装置(140)和以上的组合。
工具和技术可以在在目标真实或虚拟处理器上的计算环境中执行的计算机可执行指令的通用上下文中描述,诸如被包括在程序模块中的那些。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。在各个方面,程序模块的功能可以根据需要在程序模块之间组合或分割。用于程序模块的计算机可执行指令可以在本地或分布式计算环境中执行。在分布式计算环境中,程序模块可以位于本地和远程计算机存储介质中。
为了呈现,详细描述使用诸如“确定”、“选择”、“调节”和“操作”等术语来描述计算环境中的计算机操作。这些和其他类似术语是由计算机执行的操作的高级抽象,并且不应当与由人类执行的行为相混淆,除非明确指出由人类(诸如“用户”)执行行为。与这些术语对应的实际计算机操作根据实现而变化。
II.类别应用搜索系统
A.类别应用搜索系统的概述
图2是可以结合其来实现所描述的方面中的一个或多个的类别应用搜索系统(200)的图(其还可以提供其他搜索,诸如单个应用搜索)。
关于图2和本文中其他地方讨论的各种设备和组件之间的通信可以使用计算机系统硬件来发送,诸如单个计算设备内的硬件、多个计算设备中的硬件和/或计算机网络硬件。如果该组件以能够指示系统将数据项或通信路由到目的地的方式将通信或数据项传递给系统,诸如通过包括与目的地相关的适当的标识符或地址,则可以认为组件将通信或数据项发送到目的地。此外,可以按照多种方式发送数据项,诸如通过直接发送项目或通过发送包括地址或指针的通知以供接收器使用以访问数据项。此外,可以通过发送请求执行多个任务的单个请求来发送多个请求。
现在参考图2,将讨论类别应用搜索系统(200)的组件。每个组件包括硬件,并且还可以包括软件。例如,图2或图3的组件可以完全在计算机硬件中实现,诸如在片上系统配置中。备选地,组件可以在根据计算机软件配置并且运行计算机软件的计算机硬件中实现。组件可以跨计算机器分布或以各种不同方式分组到单个计算机器中。例如,单个组件可以跨多个不同的计算机器分布(例如,组件的一些操作在一个或多个客户端计算设备上执行,并且组件的其他操作在服务器的一个或多个机器上执行)。
仍然参考图2,类别应用搜索系统(200)可以包括多个客户端设备(210),每个客户端设备可以托管平台。托管在客户端设备(210)上的平台可以包括不同设备上的各种平台。例如,平台可以包括一个或多个智能手机操作系统平台、一个或多个平板计算机操作系统平台、一个或多个膝上型和/或桌面操作系统平台等。如图2所示,客户端设备(210)可以包括托管平台A(212)的一个客户端设备(210)、托管平台B(214)的另一客户端设备(210)和托管另一平台C(216)的另一客户端设备(210)。可以在平台(212、214和216)的不同子集上各自支持不同的应用。作为示例,每个平台可以包括不同操作系统和/或在相同操作系统上操作的不同类别的设备(智能手机和平板计算机可以被认为是不同的平台,即使两者都使用相同的通用操作系统,诸如若干一些应用能够在智能手机上运行,但不能在平板计算机上运行,一些应用能够在平板计算机上运行,但不能在智能手机上运行,一些应用能够在平板计算机和智能手机上运行。
客户端设备(210)各自可以连接到网络(220),客户端设备(210)可以通过网络与可用的计算服务进行通信。例如,这样的计算服务可以包括应用商店(230),客户端设备(210)可以从应用商店(230)取回应用(232)以在相应的平台(212、214或216)上安装和运行。每个应用商店(230)还可以包括应用元数据(234)。应用元数据(234)可以包括用于每个应用(232)的应用站点(236)。这样的应用站点(236)可以包括关于应用的数据,诸如可以提供给客户端设备(210)以在客户端设备(210)上呈现的自然语言数据。例如,应用站点可以包括自然语言应用描述(238)和自然语言应用评论(240)。例如,描述(238)的内容可以由应用(232)的发布者提供,而应用评论(240)的内容可以由与应用的用户对应的用户简档提供。每个应用站点(236)还可以包括可以由用户输入选择以在客户端设备(210)上下载和安装相应应用(232)的应用下载控件(242)。作为示例,每个应用站点(236)可以是网页或被配置为由客户端设备(210)显示的某种其他类型的数字文档。
应用商店(230)可以提供一些应用搜索特征以便于找到期望的应用站点(236)。此外,类别应用搜索系统(200)可以包括单独的搜索服务(250)。搜索服务(250)可以是通用搜索服务,诸如提供通用web搜索的搜索服务。搜索服务(250)还可以提供用于在应用商店(230)上搜索应用(232)和相应的应用站点(236)的特定特征,这将在下面更详细地讨论。例如,搜索服务(250)可以提供增强的特征以帮助提供对应用搜索查询的有效应答,诸如类别应用搜索查询(其正在搜索应用类别)或单个应用搜索查询(其正在搜索单个应用)。本文中讨论的一个或多个搜索特征也可以并入专用于应用搜索的搜索服务中,诸如并入应用商店(230)的搜索服务。
B.应用搜索服务
现在参考图3,将更详细地讨论搜索服务(250)的一些组件。搜索服务(250)可以包括搜索接口(302),通过该搜索接口(302)可以将诸如实时查询(304)(以及对于离线处理的查询)等搜索请求提交给搜索服务(250),并且通过该搜索接口(302)可以从搜索服务(250)提供诸如实时查询响应(306)等响应。例如,这样的查询(304)和响应(306)可以来自客户端设备(210),诸如上面讨论的那些,并且实时查询响应(306)可以返回到这样的客户端设备(210)。
搜索服务(250)还可以包括查询处理器(310),查询处理器(310)可以处理传入查询(304),诸如通过执行模式匹配以确定每个传入查询(304)是否包括以下问题:除了或代替通用搜索结果(诸如通用web搜索结果,其可以包括网页和类似web搜索结果的列举),搜索服务(250)可以向谁提供目标应答。查询处理器(310)可以将查询(304)传递给通用搜索引擎(320)。
通用搜索引擎(320)可以执行在线搜索,诸如与统一资源定位符(URL)相关联的网页的搜索。通用搜索引擎(320)可以使用标准搜索引擎技术,诸如访问搜索索引(未示出)和使用搜索索引搜索关键词,以及将排名算法应用于响应于实时查询(304)的搜索结果。例如,排名算法可以应用多个加权因子,并且权重可以使用反馈循环来训练以增强搜索引擎性能。搜索引擎(320)可以包括多个性能增强特征,诸如查询扩展特征、使用点击数据和用于排名的其他反馈数据训练的加权模型的使用、以及其他搜索增强特征。响应于实时查询(304),搜索引擎(320)可以返回排名的通用搜索结果(324),诸如响应于实时查询(304)的网页的通用列举。
另外,如果查询处理器(310)将实时查询(304)标识为可以向其提供目标应答的查询类型,则查询处理器(310)可以将查询传递给应答引擎(322)。响应于这样的查询,应答引擎(322)可以被配置为生成应答。例如,查询处理器(310)可以识别实时查询(304)包括类别应用查询,类别应用查询正在搜索这样的应用的类别内的计算机应用。例如,查询处理器可以将每个传入的实时查询(304)与模式进行比较。如果传入的实时查询(304)与可应答查询的模式相匹配,则查询处理器(310)可以将查询标识为可应答查询,并且可以将查询(可能在一些处理之后)传递给应答引擎(322),可能具有标识由实时查询(304)询问的问题的特性的附加元数据。作为示例,类别应用查询可以陈述“搜索应用”。这样的查询可以被标识为正在寻找用于搜索的应用的查询。
应答引擎(322)可以通过为实时查询(304)中的标识的问题提供应答(326)来响应于实时查询(304)。例如,对于类别应用查询,应答引擎(322)可以提供被标识为与类别应用查询相匹配的应用的列举。作为另一示例,对于单个应用查询,应答引擎(322)可以提供与查询相匹配的单个应用的列举。当然,这样的结果可能并不总是完全匹配,但是本文中讨论的一些特征可以提供对这样的查询的更有效的响应,这可以产生更好的结果。
应答(326)和通用搜索结果(324)可以由响应处理器(330)包括在实时查询响应(306)中(诸如通过在网页中组合通用搜索结果和应答),实时查询响应(306)可以响应于实时查询(304)。例如,实时查询响应(306)可以是列举通用搜索结果(324)以及应答(326)的网页的形式。例如,应答可以列在页面的顶部,并且通用搜索结果(324)可以跟随。每个这样的列举可以包括标识用于列举的特征(应用的标题、应用的缩略图、可以被选择以取回具有相应统一资源定位符的应用的应用站点的控件(其可以是使用标题的超链接、缩略图链接或某种其他控件)和/或其他特征。实时查询响应(306)可以包括除了通用搜索结果(324)和应答之外的附加特征,诸如广告。另外,通用搜索结果(324)和/或应答(326)可以包括附加特征,诸如可以被选择以作为后续实时查询(304)来运行的建议的替代查询。
仍然参考图3,搜索服务(250)包括离线应答处理器(340),离线应答处理器(340)是离线处理数据以准备数据存储库(342)中的数据以便由应答引擎(322)在提供对实时查询(304)的应答时有效取回的计算机组件。与本文中讨论的其他组件一样,离线处理器(340)可以包括一起工作以被视为单个计算机组件的多个分布式组件。作为一个示例,离线处理器(340)可以处理数据以准备用于提供对类应用查询和/或单个应用查询(标识为搜索单个特定应用的查询)的响应。离线应答处理器(340)可以利用来自一个或多个应用商店(230)的数据和/或来自通用搜索引擎(320)和/或应答引擎(322)的数据,诸如通过经由搜索接口(302)提交查询并且接收对这些查询的响应。备选地,本文中讨论为由离线处理器(340)离线执行的一些或所有功能可以作为对实时查询(304)的实时响应的一部分来执行。
离线应答处理器(340)还可以与其他组件交互,诸如语言理解组件(344),语言理解组件(344)可以提供响应以帮助离线应答处理器(340)处理自然语言输入,诸如应用描述(238)和应用评论(240)中的自然语言文本数据。语言理解组件(344)可以是现有语言理解组件(344),其可以接收要被分析的文本以及要在文本中标识匹配的单词和/或短语的关键词和/或短语作为输入。语言理解组件(344)可以搜索含义与提交的关键词和/或短语对应的语言,诸如通过使用模式匹配技术,模式匹配技术使用诸如词典、同义词列表和替代措辞标识技术等语言工具进行补充。
在执行离线处理时,离线处理器(340)可以生成、存储、修改和/或访问数据存储库(342)中的各种不同数据项。这样的数据项可以存储在各种不同类型的数据结构中,诸如数据库表、树结构、节点图和/或其他结构。数据结构各自可以在物理存储装置中形成连续结构,或者可以形成分散但相关的结构。
数据存储库(342)中的数据项可以包括类别查询列举(350)。这样的列举可以包括用于多个类别查询中的每个类别查询的列举(350)。每个列表项可以包括类别查询(352)的文本本身、以及应用列表(354),应用列表(354)可以包括响应于类别查询(352)的应用列表。每个类别查询列举(350)还可以包括类别标记(356),类别标记(356)是指示与类别查询相关联的应用类别的数据单元。类别标记(356)的类别可以包括一个或多个子查询。例如,类别标记(356)可以将公用事业(Utility)和生活方式(Lifestyle)指示为与类别查询(352)对应的应用的类别。这表明,响应于该类别查询(352)的应用可能属于公用事业和生活方式应用类别,并且该类别查询(352)的类别是作为公用事业和生活方式类别的组合的自定义类别。这样的类别标记(356)可以由离线应答处理器(340)用于为其他相应的类别查询(352)生成应用列表(354),诸如不同平台集的相应的类别查询。每个类别查询列举(350)还可以包括查询建议列表(358)。查询建议列表(358)是要响应于类别查询(352)而提供的建议查询的列表,包括可以与实时查询响应(306)一起呈现的建议查询。
当接收针对应用类别的可应答的实时查询(304)时,应答引擎(322)可以将实时查询(304)与数据存储库(342)中保存的类别查询(352)进行匹配,并且可以在应答(326)中向实时查询(304)提供相应的应用列表(354)和查询建议列表(358)。另外,可以向应答引擎(322)通知由提交实时查询(304)的客户端设备(210)正在使用的平台类型。每个类别查询列举(350)可以与特定类别应用查询(352)和一个或多个平台的特定集合相关联。
数据存储库(342)中的数据还可以包括用于生成和保持类别查询列举(350)的数据结构。下面将更详细地讨论这样的结构的使用,但这里简要讨论一些这样的结构。例如,数据存储库可以包括查询类别集群(360),查询类别集群(360)可以将类别查询(352)分组为集群,每个集群具有相同的类别标记(356),并且因此具有其应用列表(354)中属于集群的类别的应用。这样的查询类别集群(360)的实际数据可以采用各种形式。例如,集群(360)可以包括用于集群中的类别查询(352)的类别查询列举(350)的指针或地址,或者查询类别集群(360)可以实际上对类别查询列举(350)或这样的列举的副本进行分组。数据存储库(342)中的数据还可以包括查询邻近图(370),查询邻近图(370)可以包括组中的查询的应用相似性得分(372),诸如查询类别集群(360)的集群中的查询的应用相似性得分。查询类别集群(360)和查询邻近图(370)可以用于生成查询建议列表(358),如下面更详细讨论的。
数据存储库(342)中的数据还可以包括应用依赖性图(380),应用依赖性图(380)可以是指示应用之间的依赖性的图(即,一个应用被指示为需要另一应用按顺序安装以运行正常的情况)。数据还可以包括平台支持应用集群(382)。每个平台支持应用集群(382)可以指示由同一组一个或多个平台支持的一组应用。例如,第一集群可以仅由平台A支持,第二集群可以仅由平台B支持,并且第三集群可以由平台A和B支持。因此,第三集群中的应用可以在平台A或平台B上运行,而第一和第二集群中的应用只能在平台A(对于第一集群)或平台B(对于第二集群)上运行。应用依赖性图(380)可以用于向平台支持应用集群(382)分配应用,如下面更详细讨论的。
平台支持应用集群(382)可以用于将类别查询列举(350)中的应用列表(354)限于由与特定集群对应的一组平台支持的应用。因此,当传入的实时查询(304)标识请求客户端设备(210)的平台时,应答引擎(322)可以使用应答(326)进行响应,该应答(326)包括限于被指示为由该客户端设备的平台支持的应用的应用列表(354)。例如,数据存储库可以包括针对每个类别查询(352)和每个平台支持应用集群(382)的单独的类别查询列举(350)。实际上,每个平台支持应用集群(382)的类别查询列举(350)可以被保持在数据存储库(342)中的单独索引中。备选地,可以按照某种其他方式组织类别查询列举(350)以提供取回限于适当的平台支持应用集群(382)的应用列表(354),诸如通过具有多个应用列表(354)的每个类别查询列举,其中每个平台支持应用集群(382)一个应用列表(354)。
C.为应用查询提供应答的增强特征
下面更详细地讨论用于提供对应用查询(诸如类别应用查询和/或单个应用查询)的应答的一些增强特征。这样的特征涉及跨平台应用查询类别、应用的平台兼容性检测和应用查询建议。
1.跨平台应用查询类别
离线应答处理器(340)可以实现跨平台应用查询类别以使用来自其中搜索被很好地开发的第一平台的应用的搜索结果来训练搜索其中搜索可能没有被很好地开发的第二平台的应用。参考图4的流程图和图2-3的图,可以针对多个应用类别查询中的每个应用类别查询执行图4所示的跨平台应用查询类别技术以产生用于这样的查询的应用列表(354)。类别查询本身可以从搜索引擎的搜索日志、手动输入和/或某些其他源提取。该技术可以包括离线处理器(340)从搜索引擎取回(410)类别应用查询响应,其中响应限于由第一组一个或多个平台(为方便起见,这里称为平台A)支持的应用。例如,可以使用查询扩充来限制搜索结果。作为这样的扩充的示例,结果可以限于包括平台A的应用的站点。此外,可以将附加查询参数传递给搜索引擎以将结果限于平台A的应用。作为具体示例,可以将以下查询提交给搜索引擎以从位于itunes.apple.com“汽车评论应用站点:itunes.apple.com”的相关在线商店的IOS操作系统取回汽车评论应用的结果或应用。备选地,搜索结果可以按照某种其他方式受到限制,诸如过滤从搜索引擎接收的结果,或者将查询定向到仅为平台A提供结果的搜索站点。
图4的技术还可以包括提取(420)从搜索引擎(320)取回的搜索结果中列举的应用的主要类别。这里讨论的主要和次要类别可以是应用商店中指示的类别。这样的应用商店类别可能与类别应用查询正在搜索的类别不同。例如,类别应用查询可以搜索汽车评论应用,但是在应用的应用商店中可能没有这样的类别。实际上,类别应用查询所寻求的应用类别通常比应用商店中保持的应用类别更窄。作为示例,本文中的类别标记可以使用从应用商店类别导出的自定义类别。
可以对应用列表进行评分以从搜索结果中确定评分最高的应用列举。在这样的评分的示例中,在搜索结果的前十个应用中列举应用的每个类别可以为每个这样的应用获取一个点。备选地,可以使用不同的评分系统,或者可以修改该评分系统。例如,如果类别查询短语(诸如“汽车评论”)存在于相应应用的标题中(或者可能仅在某些实现中在应用的描述中),则类别可能仅获取一半点。这是因为,使描述或标题包括被搜索的确切短语可以人为地提升结果中的应用的列举,即使该查询与其他搜索结果的类别查询不相关。为了将搜索的文本与应用标题进行比较,离线应答处理器(340)可以使用在搜索结果中返回的标题。备选地,为了在应用描述中搜索这样的短语,离线应答处理器可以从应用商店(230)取回应用描述(238),并且离线应答处理器(340)也可以从应用商店(230)取回应用评论(240)。可以在数据存储库(342)中保持和定期更新这样的应用描述(238)和应用评论(240)的副本。离线应答处理器(340)可以对应用标题或描述执行模式匹配技术以标识搜索的文本,或者可能标识与搜索短语紧密匹配(即使不是完全匹配)的短语。
作为示例,在如上所述搜索“汽车评论应用”时,列举的前十个应用可以包括应用商店的“生活方式”类别中的五个应用,这些应用中的一个应用在应用标题中具有与搜索查询相匹配的短语,以为“生活方式”类别提供得分4.5。应用可以包括“业务”类别中的一个应用,其中该应用的标题包括与查询的文本相匹配的短语,使得“业务”类别获取得分0.5。列举的应用可以包括“购物”类别中的两个应用,它们都不包括标题中的查询的文本,以为“购物”类别提供得分2.0。前十个结果还可以包括来自导航类别的一个应用和来自新闻类别的一个应用,它们都没有应用标题中的查询的文本。因此,前两个得分类别是得分为4.5的“生活方式”和得分为2.0的“购物”。因此,“生活方式”和“购物”可以被标识为查询的两个主要类别,并且“汽车评论应用”类别应用查询的类别标记(356)可以使用这两个类别来标记。该技术还可以包括使用主要类别标记(422)查询。
另外,图4的技术可以包括确定(430)是否提取次要类别。例如,如果至少有一个类别不是两个主要类别之一并且包括与查询的文本相匹配的应用标题中的短语(或者可能包括应用描述中的短语),则可以仅提取次要类别。如果存在一个或多个这样的类别,则可以提取满足这些标准的最高得分类别(432)作为次要类别。另外,可以使用次要类别标记查询(434)。这可以包括在类别标记(356)中插入次要类别的指示。在上面的示例中,“商业”类别可以作为次要类别被包括在类别标记(356)中,使得“汽车评论应用”类别应用查询的类别标记(356)将“生活方式”类别列举为最高得分主要类别,将“购物”类别列举为第二高得分主要类别,并且将“商业”类别列举为次要类别。
在向类别标记(356)分配查询时,离线应答处理器(340)可以执行附加处理。例如,离线应答处理器(340)可以保持不在类别标记(356)中一起出现的“反义词”类别的列表。如果对两个这样的类别进行评分,使得它们否则将被包括在类别标记(356)中,则可以排除这两个类别的较低得分,并且可以将次高得分类别包括在其位置中。此外,如果两个类别具有相同得分,则可以使用平局决胜(tie-breaking)技术。例如,可以考虑搜索结果中的应用的排名,其中在搜索结果中具有总体较高排名的应用的类别赢得了平局打破器并且被认为具有较高得分。
图4的技术还可以包括从搜索引擎(或者甚至可能从不同的搜索引擎)取回(440)类别应用查询响应,其中搜索结果限于不同的平台,如图4的平台B所示。例如,如果平台B是OS X操作系统的应用,则离线处理器(340)可以向搜索引擎(320)提交以下查询:“汽车评论应用站点:itunes.apple.com?mt=12”。这样的查询可以产生列举与OS X操作系统兼容的应用的结果。但是,结果可以包括与“汽车评论应用”类别查询不是特别相关的应用列举。因此,离线处理器(340)可以基于从平台A上支持的应用的搜索结果而产生的类别标记(356)来过滤(450)平台B的应用的结果。
作为过滤以产生平台B的列表的示例,离线处理器(340)可以分析平台B的应用的前50个结果以填充平台B的应用列表(354)的10个可用时隙。例如,离线处理器(340)可以使用在平台B的搜索结果中列举的属于从平台A的搜索应用的结果提取的类别标记(356)中的最高得分主要类别的最高排名应用来填充应用列表(354)中的十个可用时隙。如果在从最高评分类别获取所有应用之后在应用列表(354)中有可用的附加时隙,则离线应答处理器(340)可以按其在搜索结果中的排名顺序从第二得分最高得分主要类别获取列举的应用。如果应用列表(354)中仍有可用的附加时隙,则离线应答处理器(340)可以再次按应用在搜索结果中的排名顺序从次要类别中获取列举的应用(如果那些列举的应用包括与查询短语相匹配的应用的标题或描述中的短语)。因此,离线应答处理器(340)可以包括列举的应用,并且基于它们在平台B的搜索结果中的排名并且基于在从平台A的搜索结果提取类别标记时评分的应用的相关类别的高度,对应用列表(354)中的这些应用排名。因此,以这种方式,可以组装用于第二平台(上述示例中的平台B)的类别查询列举(350)的应用列表(354)。
该应用列表(354)可以在运行时由应答引擎(322)使用以响应与类别查询列举(350)中的类别查询(352)相匹配并且被标识为来自包括平台B或仅限于请求平台B支持的应用的设备的实时查询(304)。
此外,可以对应用列表(354)的排序进行一些修改。例如,离线应答处理器(340)可以分析应用的应用评论(240),并且可以根据评分技术标识具有最高用户评论得分的应用。如果该应用属于主要类别之一并且未在应用列表(354)的前3个位置中列举,则用于该最高评论得分应用的列举可以替换第三时隙中的应用列举,而其他应用可以向下移动一个时隙以适应这个最高得分评论应用的向上移动。评论的评分可以基于评论的数目,并且基于这些评论对应用的排名程度。当模型被微调时,可以利用和修改对评论数目和评论评级水平进行加权的不同公式(例如,平均五个星中有多少个星)。
以上对该技术的描述假定两个平台的应用之间的类别相同(平台A的应用的类别与平台B的应用的类别相同)。如果存在一些差异,则不同平台的不同类别可以相互映射,因此一个平台的应用类别可以被视为与另一平台的另一应用类别相同,用于这个交叉平台应用查询类别技术的目的。
2.应用的平台兼容性检测
如上所述,搜索服务(250)可以利用实时查询响应(306)来响应于实时查询(304),该实时查询响应(306)限于被指示为由特定的一组一个或多个平台支持(或兼容)的应用。但是,在某些情况下,很难准确标识哪些平台支持特定应用。在同一查询存储库包括多个平台的应用并且所有平台都不支持至少一些应用的情况下尤其如此。子部分中讨论的技术包括分析与应用相关的自然语言数据以帮助标识哪个(哪些)平台支持该特定应用。
可以针对一组多个应用中的每个应用执行图5所示的该平台兼容性检测技术。例如,可以针对上面讨论的数据存储库(342)中的应用列表(354)中列举的应用执行该技术。该技术可以包括将应用放置在与被确定为支持应用的(多个)平台对应的集群中。该信息可以用于限制应用列表(354),使得被确定为不被特定平台支持的应用可以从对寻求该平台的应用的查询的应答中被排除。
参考图5并且仍然参考图2-3,图5的技术可以包括取回(510)应用描述和应用评论。例如,离线处理器(340)可以从应用商店(230)取回应用描述(238)和应用评论(240)。备选地,离线处理器(340)可以按照某种其他方式取回应用描述(238)和应用评论(240),诸如通过取回为搜索引擎保持的高速缓存副本。
离线处理器(340)可以在标识要向其分配应用的平台支持应用集群(382)时执行多个不同的基于自然语言的分析中的一个或多个。
在一个这样的分析中,离线处理器(340)可以从应用描述(238)中为应用商店(230)中的应用站点(236)上的应用提取(520)平台语句。该提取(520)可以包括执行模式匹配,以将应用描述(238)中的语句与指示特定平台支持或不支持应用的模式语句相匹配。例如,应用描述(238)可以陈述“与平台A一起工作很好”,并且这可以被识别为与通用模式“与[平台名称]一起工作[]...”相匹配,以指示模式包括某种形式单词“工作”后跟单词“与”后跟平台名称。某些语句可以表明应用无法与特定平台一起被使用。例如,陈述“仅适用于平台A”表明该应用不适用于不同的平台,诸如平台B。
为了帮助识别可能具有与特定模式相同含义的语句,离线应答处理器(340)可以将描述的文本连同模式的描述一起提交给现有语言理解组件(344)。语言理解组件(344)可以是已经被配置和训练以帮助计算机理解自然语言文本的组件,并且可以用于标识与含义提交给语言理解组件的语句相似的语句(344)。
图5的技术还可以包括分析(522)从应用描述(238)提取的平台语句,以确定语句是否充分指示支持和不支持应用的一组一个或多个平台。例如,这可以包括对语句进行评分,包括增加其他一致语句的得分,以及降低被确定为与应用描述(238)中的其他语句不一致的语句的得分。
可以在标识应用的平台支持时执行的另一分析基于应用评论(240)。这可以包括从应用的应用评论(240)提取(530)平台语句。该提取(530)可以按照与应用描述(238)中的提取(520)相同的方式执行。然而,与应用描述(238)相比,由于应用评论(240)的不同性质,可以使用不同的模式语句来执行模式匹配。例如,在应用评论中,语句“我希望这可以在平台B上运行”可能表明平台B不支持该应用,并且可能会被包括在应用评论(240)中,但不太可能出现在应用描述(238)中。但是,某些语句可以与应用描述(238)中的语句类似。例如,应用评论(240)可以陈述“在平台A上工作很好”,以指示应用由平台A支持。还可以分析(532)从应用评论(240)提取的平台语句,以确定语句是否足以指示支持和/或不支持应用的一组一个或多个平台。该分析(532)可以类似于来自应用描述(238)的语句的分析(522)。分析(522)和/或分析(532)可以包括使用被称为情感分析的公知技术来推断某个应用是否适用于给定平台。例如,所提取的平台语句可以包括很多语句,表明应用X不适用于平台B,诸如:“应用X不适用于我的平台B”、“我试图在平台B上安装应用X但我总是失败!”等。例如,情绪分析可以用于在概率上推断“应用X与平台B不相容,其中置信度为K%”。
可以在标识应用的平台支持时执行的另一分析基于先决条件应用。具体地,该技术可以包括提取(540)自然语言先决条件语句和/或指示需要一个或多个应用来正确运行当前应用的其他语句。例如,应用描述(238)或应用评论(240)可以陈述“该应用仅在您已经具有应用Y时才有效。”可以提取(540)这样的语句并且以与提取和分析平台支持语句相同的方式进行分析(诸如通过使用模式匹配、情感分析和/或其他提取和分析技术)。这些先决条件语句可以用于生成(542)应用依赖性图(380)(并且生成(542)可以包括对所提取的先决条件语句的分析),其是指示先决条件依赖性的数据结构(其可以包括必须安装两个应用才能使任一应用正常工作的共同必要(co-requisite)依赖性)。依赖性图(380)的数据结构可以是各种不同类型中的任何一种,诸如单独的节点图、或者仅被包括在用于每个应用的现有列举中的元数据,该列表指示该应用所依赖的其他应用。可以分析(544)依赖性图(380)中的当前应用的一个或多个条目以标识当前应用所依赖的应用。另外,分析(544)可以包括标识(多个)先决条件应用所属的平台支持应用集群(382)。如果(多个)先决条件应用属于指示缺少特定平台的支持的支持应用集群(382),则这表明该平台也不支持当前应用。
图5的技术还可以包括考虑分析(522)、分析(532)和分析(544)的结果以标识支持当前应用的一个或多个平台和/或不支持当前应用的一个或多个更多平台。这可以指示与可以为其分配应用的集群对应的相应的一组平台。例如,可能有三个集群。一个集群可以仅由平台A支持,另一集群仅由平台B支持,另一集群可以由平台A和平台B支持。标识(550)可以考虑分析(522)、分析(532)和分析(544)的结果之间的任何感知到的不一致性,并且这样的不一致性可以通过适用的规则来解决。例如,可以是,指示平台不支持应用的依赖性图分析(544)的结果可能胜过指示平台支持应用的其他分析(522和532)中的任一个的结果。作为另一示例,在不一致的情况下,大多数可能占优势,并且如果指示上不存在多数,则可以不将应用分配给集群,或者可以将应用分配给不限于特定的一组一个或多个平台的通用集群。
图5的技术还可以包括将应用包括(552)在标识的集群(382)中。这可以包括在数据存储库(342)中的数据结构中插入指示当前应用仅由与其集群相关联的一组应用支持的数据。这样的聚类可以用于将应用列表(354)限于仅包括由与类别查询列举(350)对应的特定平台支持的应用。
3.应用查询建议
如上所述,搜索服务(250)可以将应答(326)中的查询建议列表(358)返回到实时查询(304)。这样的查询建议列表(358)可以与数据存储库(342)中的特定查询列举(350)相关联,并且可以由应答引擎(322)在响应于实时查询(304)时取回。该子部分讨论了用于为类别应用查询生成这样的查询建议列表(358)的技术。
参考图6并且仍然参考图2-3,该技术可以使用上面针对相应的类别查询(352)而讨论的类别标记(356)中的类别。响应于标识(610)集群(360)中在其类别标记(356)中具有匹配类别的类别查询(352)(诸如类别标记(356)中的所有相同类别或相同的主要(两个最高得分)类别),类别查询(352)可以在查询类别集群(360)中被聚类(620)在一起。这可以通过解析类别查询列举(350)中的类别标记(356)并且将所有类别查询(352)的指示与类别标记(356)中的匹配类别一起保存来完成。
图6的技术还可以包括为每个查询集群(360)生成(630)查询邻近图(370)。例如,这可以包括构建指示集群(360)中的多对查询中的每对的应用相似性得分(372)的数据结构。一对的得分(372)可以至少部分基于该对在两个类别查询(352)的应用列表(354)中具有共同点的应用的数目。此外,生成应用相似性得分(372)可以包括为主要类别中的常见应用提供比对次要类别中的常见应用更大的得分增加。
图6的技术还可以包括使用查询邻近图(370)生成(640)查询建议列表(358)。对于特定类别查询列举(350),该生成(640)可以包括在查询的集群(360)的查询邻近图(370)中标识包括该特定查询(352)的成对查询(352)的最高得分(372)。例如,离线应答处理器(340)可以定位最高的三个这样的得分。离线应答处理器(340)可以标识那些对中的其他类别查询(352)(除了特定查询(352)之外),并且在查询建议列表(358)中包括与特定查询(352)对应的那些其他类别查询(352)。
III.用于计算机应用元数据的平台支持集群技术
现在将讨论用于计算机应用元数据的平台支持集群的若干技术。这些技术中的每一种都可以在计算环境中执行。例如,每种技术可以在包括至少一个处理器和存储器的计算机系统中执行,该存储器包括存储在其上的指令,这些指令在由至少一个处理器执行时,使得至少一个处理器执行该技术(存储器存储指令(例如,目标代码),并且当(多个)处理器执行那些指令时,(多个)处理器执行该技术)。类似地,一个或多个计算机可读存储器可以具有包含在其上的计算机可执行指令,这些指令在由至少一个处理器执行时,使得至少一个处理器执行该技术。下面讨论的技术可以至少部分由硬件逻辑执行。
参考图7,将描述用于计算机应用元数据的平台支持集群的技术。该技术可以包括取回(710)计算机应用的应用元数据。元数据可以来自各种不同的源中的任何一个,但是在一个示例中,元数据可以与用于在线应用商店的元数据对应,应用从在线应用商店可获取,诸如其中至少一部分元数据包括与由在线商店提供的元数据相同的自然语言短语。可以生成(720)计算机可读应用集群。每个应用集群可以指示集群中的应用由集群的一个或多个平台的关联集合支持。集群可以是指示将应用在与集群对应的组中的包括的数据结构,但集群不需要包括集群数据结构中的应用本身的实际数据。集群的生成(720)可以包括对应用元数据中的自然语言数据执行模式匹配。可以使用(730)集群来生成一个或多个计算机应用的列表,该列表响应于请求列举指定平台支持的一个或多个计算机应用的结果的查询。指定平台可以是集群中的特定集群的一个或多个平台的关联集合中的平台。此外,列表的生成可以包括将列表限于特定集群中的一个或多个应用。而且,在该段中讨论的图7的这种一般技术可以与在下面参考图7和其中的附图标记的段落中讨论的每个特征的任何组合一起被使用。
仍然参考图7,该技术还可以包括接收(740)查询作为实时查询并且使用生成的列表响应(750)于实时查询。
集群的生成(720)可以包括对自然语言应用描述元数据执行模式匹配。例如,这样的元数据可以是由应用发布者提供的应用描述元数据。这样的应用描述元数据可以从在线应用商店或从另一源(例如,从在线商店获取元数据的另一计算机服务,或在线商店从其获取元数据的另一服务)取回。
集群的生成(720)可以包括对自然语言客户评论元数据执行模式匹配。此外,这些技术可以包括从在线应用商店或从另一源(例如,从在线商店获取元数据的另一计算机服务,或在线商店从其获取元数据的另一服务)取回自然语言客户评论元数据。
集群的生成(720)可以包括访问和分析依赖性数据图,该依赖性数据图指示要与一个或多个计算机应用中的每个计算机应用一起被使用的先决条件计算机应用。该技术并且特别是集群的生成(720)可以包括生成依赖性数据图。生成依赖性数据图可以包括标识从在线应用商店可获取的应用之间的先决条件依赖性。此外,对依赖性的标识可以包括对与在线商店的元数据对应的应用的应用元数据中的自然语言元数据执行模式匹配。
集群的生成(720)可以包括执行和组合以下任意组合的结果:对与在线应用商店的元数据对应的自然语言应用描述元数据执行模式匹配;对自然语言客户评论数据执行模式匹配;以及访问和分析依赖性数据图,该依赖性数据图指示要与一个或多个计算机应用中的每个计算机应用一起被使用的先决条件应用。
现在参考图8,将讨论用于计算机应用元数据的平台支持集群的另一种技术。该技术可以包括取回(810)计算机应用的应用元数据,其中元数据与用于在线应用商店的元数据对应,应用从在线应用商店可获取。可以生成(820)计算机可读应用集群。每个应用集群可以指示集群中的应用由集群的一个或多个平台的关联集合支持。而且,生成(820)可以包括分析应用元数据,诸如通过对自然语言元数据执行模式匹配。此外,将指定计算机平台支持的应用的应用查询的结果可以限于(830)其一个或多个平台的关联集合包括指定平台的一个或多个集群中的应用的列举。此外,本段中讨论的图8的这种通用技术可以与图8技术相关的特征的任何组合一起被使用,这些特征在下面的段落中分别讨论。
集群的生成(820)可以包括对来自在线应用商店的自然语言应用描述元数据执行模式匹配。此外,可以从在线应用商店或从另一源(例如,从在线商店获取元数据的另一计算机服务,或在线商店从其获取元数据的另一服务)取回应用描述元数据。
集群的生成(820)可以包括对自然语言客户评论数据执行模式匹配。可以从在线应用商店或从另一源(例如,从在线商店获取元数据的另一计算机服务,或在线商店从其获取元数据的另一服务)取回客户评论数据。
集群的生成(820)可以包括访问和分析依赖性数据图,该依赖性数据图指示将与一个或多个应用中的每个应用一起被使用的先决条件应用。此外,集群的生成(820)可以包括生成依赖性数据图。生成依赖性数据图可以包括标识从在线应用商店可获取的应用之间的先决条件依赖性。对依赖性的标识可以包括对来自在线应用商店的应用的应用元数据中的自然语言元数据执行模式匹配。
集群的生成(820)可以包括:对来自在线应用商店的自然语言应用描述元数据执行模式匹配;对自然语言客户评论数据执行模式匹配;和/或访问和分析依赖性数据图,该依赖性数据图指示要与一个或多个应用中的每个应用一起被使用的先决条件应用。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但是应当理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作被公开作为实现权利要求的示例形式。

Claims (20)

1.一种计算机系统,包括:
至少一个处理器;以及
存储器,所述存储器包括存储在其上的指令,所述指令在由至少一个处理器执行时,使得至少一个处理器执行动作,所述动作包括:
取回用于计算机应用的应用元数据,其中所述元数据与用于在线应用商店的元数据对应,所述应用从所述在线应用商店可获取;
生成计算机可读应用集群,其中所述应用集群中的每个应用集群指示所述集群中的应用由用于所述集群的一个或多个平台的关联集合支持,并且其中所述集群的所述生成包括标识由计算机应用平台针对对应的计算机应用的支持,其中所述支持的所述标识包括对所述应用元数据中的自然语言数据执行模式匹配;以及
使用所述集群生成一个或多个计算机应用的列表,所述列表响应于查询,所述查询请求列举由指定平台支持的一个或多个计算机应用的结果,其中所述指定平台是用于所述集群中的特定集群的一个或多个平台的所述关联集合中的平台,并且其中所述列表的所述生成包括将所述列表限于所述特定集群中的一个或多个应用。
2.根据权利要求1所述的计算机系统,其中所述动作还包括接收所述查询作为实时查询并且利用生成的所述列表响应于所述实时查询。
3.根据权利要求1所述的计算机系统,其中所述集群的所述生成包括对自然语言应用描述元数据执行模式匹配。
4.根据权利要求1所述的计算机系统,其中所述集群的所述生成包括对自然语言客户评论元数据执行模式匹配。
5.根据权利要求4所述的计算机系统,其中所述动作还包括从所述在线应用商店取回所述自然语言客户评论元数据。
6.根据权利要求1所述的计算机系统,其中所述集群的所述生成包括访问和分析依赖性数据图,所述依赖性数据图指示要与一个或多个计算机应用中的每个计算机应用一起被使用的先决条件计算机应用。
7.根据权利要求6所述的计算机系统,其中所述动作还包括生成所述依赖性数据图,其中所述依赖性数据图的所述生成包括标识从所述在线应用商店可获取的应用之间的先决条件依赖性,其中所述依赖性的所述标识包括对用于与用于所述在线应用商店的元数据对应的应用的所述应用元数据中的自然语言元数据执行模式匹配。
8.根据权利要求1所述的计算机系统,其中所述集群的所述生成包括:
对与来自所述在线应用商店的元数据对应的自然语言应用描述元数据执行模式匹配;
对自然语言客户评论数据执行模式匹配;以及
访问和分析依赖性数据图,所述依赖性数据图指示要与一个或多个计算机应用中的每个计算机应用一起被使用的先决条件应用。
9.根据权利要求8所述的计算机系统,其中所述集群的所述生成包括组合以下各项中的每项的结果:
模式匹配对与来自所述在线应用商店的元数据对应的自然语言应用描述元数据的所述执行;
模式匹配对自然语言客户评论数据的所述执行;以及
所述依赖性数据图的所述访问和分析,所述依赖性数据图指示要与一个或多个计算机应用中的每个计算机应用一起被使用的先决条件应用。
10.一种推断平台的计算机实现的方法,应用被配置为在所述平台上运行,所述方法包括:
取回用于计算机应用的应用元数据,其中所述元数据与用于在线应用商店的元数据对应,所述应用从所述在线应用商店可获取;
生成计算机可读应用集群,其中所述应用集群中的每个应用集群指示所述集群中的应用由用于所述集群的一个或多个平台的关联集合支持,并且其中所述集群的所述生成包括标识由计算机应用平台针对对应的计算机应用的支持,其中所述支持的所述标识包括对所述应用元数据中的自然语言数据执行模式匹配;以及
将针对用于由指定计算机平台支持的应用的应用查询的结果限于所述集群中的一个或多个集群中的应用的列举,所述一个或多个集群的一个或多个平台的关联集合包括所述指定计算机平台。
11.根据权利要求10所述的方法,其中所述集群的所述生成包括对来自所述在线应用商店的自然语言应用描述元数据执行模式匹配。
12.根据权利要求10所述的方法,其中所述集群的所述生成包括对自然语言客户评论数据执行模式匹配。
13.根据权利要求12所述的方法,还包括从所述在线应用商店取回所述自然语言客户评论数据。
14.根据权利要求10所述的方法,其中所述集群的所述生成包括访问和分析依赖性数据图,所述依赖性数据图指示要与一个或多个应用中的每个应用一起被使用的先决条件应用。
15.根据权利要求14所述的方法,其中所述集群的所述生成包括生成所述依赖性数据图,其中所述依赖性数据图的所述生成包括标识从所述在线应用商店可获取的应用之间的先决条件依赖性,其中所述依赖性的所述标识包括对用于来自在线应用商店的应用的所述应用元数据中的自然语言元数据执行模式匹配。
16.根据权利要求10所述的方法,其中所述集群的所述生成包括:
对来自所述在线应用商店的自然语言应用描述元数据执行模式匹配;
对自然语言客户评论数据执行模式匹配;以及
访问和分析依赖性数据图,所述依赖性数据图指示要与一个或多个应用中的每个应用一起被使用的先决条件应用。
17.一个或多个计算机可读存储器,所述计算机可读存储器具有体现于其上的计算机可执行指令,所述计算机可执行指令在由至少一个处理器执行时,使得至少一个处理器执行动作,所述动作包括:
从在线应用商店取回用于应用的应用元数据,所述应用从所述在线应用商店可获取;
生成计算机可读应用集群,其中所述应用集群中的每个应用集群指示所述集群中的应用由用于所述集群的一个或多个平台的关联集合支持,并且其中所述集群的所述生成包括标识由计算机应用平台针对对应的计算机应用的支持,其中所述支持的所述标识包括访问和分析依赖性数据图,所述依赖性数据图指示要与来自所述在线应用商店的所述应用中的一个或多个应用中的每个应用一起被使用的一个或多个先决条件应用,并且其中所述支持的所述标识包括分析所述应用元数据;
使用所述集群生成一个或多个计算机应用的列表,所述列表响应于查询,所述查询请求列举由指定平台支持的一个或多个计算机应用的结果,其中所述指定平台是用于所述集群中的特定集群的一个或多个平台的所述关联集合中的平台,并且其中所述列表的所述生成包括将所述列表限于所述特定集群中的一个或多个应用;
接收所述查询作为实时查询;以及
利用生成的所述列表响应于所述实时查询。
18.根据权利要求17所述的一个或多个计算机可读存储器,其中所述集群的所述生成包括对来自所述在线应用商店的自然语言应用描述元数据执行模式匹配。
19.根据权利要求17所述的一个或多个计算机可读存储器,其中所述集群的所述生成包括对自然语言客户评论数据执行模式匹配。
20.根据权利要求17所述的一个或多个计算机可读存储器,其中所述动作还包括生成所述依赖性数据图,其中所述依赖性数据图的所述生成包括标识从所述在线应用商店可获取的应用之间的先决条件依赖性,其中所述依赖性的所述标识包括对用于与用于所述在线应用商店的元数据对应的应用的所述应用元数据中的自然语言元数据执行模式匹配。
CN201780046580.XA 2016-07-27 2017-07-17 来自计算机应用元数据的平台支持集群 Active CN109564573B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/221,118 2016-07-27
US15/221,118 US10346457B2 (en) 2016-07-27 2016-07-27 Platform support clusters from computer application metadata
PCT/US2017/042297 WO2018022335A1 (en) 2016-07-27 2017-07-17 Platform support clusters from computer application metadata

Publications (2)

Publication Number Publication Date
CN109564573A CN109564573A (zh) 2019-04-02
CN109564573B true CN109564573B (zh) 2023-06-16

Family

ID=59388238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780046580.XA Active CN109564573B (zh) 2016-07-27 2017-07-17 来自计算机应用元数据的平台支持集群

Country Status (4)

Country Link
US (1) US10346457B2 (zh)
EP (1) EP3491542A1 (zh)
CN (1) CN109564573B (zh)
WO (1) WO2018022335A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10755294B1 (en) 2015-04-28 2020-08-25 Intuit Inc. Method and system for increasing use of mobile devices to provide answer content in a question and answer based customer support system
US10475044B1 (en) 2015-07-29 2019-11-12 Intuit Inc. Method and system for question prioritization based on analysis of the question content and predicted asker engagement before answer content is generated
US10572954B2 (en) 2016-10-14 2020-02-25 Intuit Inc. Method and system for searching for and navigating to user content and other user experience pages in a financial management system with a customer self-service system for the financial management system
US10733677B2 (en) 2016-10-18 2020-08-04 Intuit Inc. Method and system for providing domain-specific and dynamic type ahead suggestions for search query terms with a customer self-service system for a tax return preparation system
US10552843B1 (en) 2016-12-05 2020-02-04 Intuit Inc. Method and system for improving search results by recency boosting customer support content for a customer self-help system associated with one or more financial management systems
US10748157B1 (en) 2017-01-12 2020-08-18 Intuit Inc. Method and system for determining levels of search sophistication for users of a customer self-help system to personalize a content search user experience provided to the users and to increase a likelihood of user satisfaction with the search experience
US10929294B2 (en) * 2017-03-01 2021-02-23 QC Ware Corp. Using caching techniques to improve graph embedding performance
US10922367B2 (en) 2017-07-14 2021-02-16 Intuit Inc. Method and system for providing real time search preview personalization in data management systems
US11093951B1 (en) 2017-09-25 2021-08-17 Intuit Inc. System and method for responding to search queries using customer self-help systems associated with a plurality of data management systems
US11436642B1 (en) 2018-01-29 2022-09-06 Intuit Inc. Method and system for generating real-time personalized advertisements in data management self-help systems
US11269665B1 (en) 2018-03-28 2022-03-08 Intuit Inc. Method and system for user experience personalization in data management systems using machine learning
US20220343351A1 (en) * 2021-04-23 2022-10-27 Sovanta Ag Distributed scoring system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012043899A1 (ko) * 2010-09-29 2012-04-05 정보통신산업진흥원 자동차용 앱스토어 서비스 시스템 및 방법
WO2013119076A1 (ko) * 2012-02-08 2013-08-15 삼성전자 주식회사 분산형 앱스토어 서비스 제공 방법 및 시스템
CN103294640A (zh) * 2012-01-23 2013-09-11 索尼公司 分配用于异种平台的应用的框架和系统
CN104636919A (zh) * 2013-11-11 2015-05-20 杭州洱海科技有限公司 一种基于数据付费的应用程序商店模式
CN104854561A (zh) * 2012-10-16 2015-08-19 思杰系统有限公司 用于应用程序管理框架的应用程序封装
CN105279286A (zh) * 2015-11-27 2016-01-27 陕西艾特信息化工程咨询有限责任公司 一种交互式大数据分析查询处理方法

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005008396A2 (en) 2003-07-11 2005-01-27 Computer Associates Think, Inc. System and method for visualization of mainframe change management metadata
US7428530B2 (en) 2004-07-01 2008-09-23 Microsoft Corporation Dispersing search engine results by using page category information
WO2006012487A1 (en) 2004-07-22 2006-02-02 Genometric Systems Llc Method and apparatus for informational processing based on creation of term-proximity graphs and their embeddings into informational units
US7490317B1 (en) 2004-09-09 2009-02-10 Sun Microsystems, Inc. Methods and apparatus for representing application dependencies
US10372746B2 (en) 2005-10-26 2019-08-06 Cortica, Ltd. System and method for searching applications using multimedia content elements
US9043919B2 (en) 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
US8700789B2 (en) * 2009-03-16 2014-04-15 Apple Inc. Accessory and mobile computing device communication using an application communication protocol
US8606786B2 (en) 2009-06-22 2013-12-10 Microsoft Corporation Determining a similarity measure between queries
US9405841B2 (en) 2009-10-15 2016-08-02 A9.Com, Inc. Dynamic search suggestion and category specific completion
US8700624B1 (en) 2010-08-18 2014-04-15 Semantifi, Inc. Collaborative search apps platform for web search
US9069584B2 (en) 2010-09-13 2015-06-30 Samsung Electronics Co., Ltd. Multi-platform application player
US9881050B2 (en) * 2010-10-29 2018-01-30 Orange Method and system to recommend applications from an application market place to a new device
US20120124062A1 (en) 2010-11-12 2012-05-17 Microsoft Corporation Application Transfer Protocol
US9424002B2 (en) 2010-12-03 2016-08-23 Microsoft Technology Licensing, Llc Meta-application framework
US9805022B2 (en) 2010-12-09 2017-10-31 Apple Inc. Generation of topic-based language models for an app search engine
US20120198436A1 (en) 2011-01-27 2012-08-02 Preimesberger Lee A Compatible Operating System
US9483284B2 (en) 2011-02-25 2016-11-01 Red Hat, Inc. Version compatibility determination
US9891939B2 (en) 2011-03-03 2018-02-13 Microsoft Technology Licensing, Llc Application compatibility with library operating systems
US20120316955A1 (en) 2011-04-06 2012-12-13 Yahoo! Inc. System and Method for Mobile Application Search
US8762360B2 (en) 2011-05-06 2014-06-24 Microsoft Corporation Integrating applications within search results
US9015702B2 (en) 2012-01-13 2015-04-21 Vasanth Bhat Determining compatibility of an application with different versions of an operating system
US10031737B2 (en) * 2012-02-16 2018-07-24 Microsoft Technology Licensing, Llc Downloading and distribution of applications and updates to multiple devices
US9201946B2 (en) 2012-04-26 2015-12-01 Quixey, Inc. Application representation for application editions
US9152674B2 (en) 2012-04-27 2015-10-06 Quixey, Inc. Performing application searches
US9372901B2 (en) 2012-04-27 2016-06-21 Quixey, Inc. Searching for software applications based on application attributes
US9552414B2 (en) 2012-05-22 2017-01-24 Quixey, Inc. Dynamic filtering in application search
US9405832B2 (en) 2012-05-31 2016-08-02 Apple Inc. Application search query classifier
WO2014031044A1 (en) 2012-08-23 2014-02-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and node for enabling automatic deployment of resource components
US9280595B2 (en) 2012-08-30 2016-03-08 Apple Inc. Application query conversion
US20140108451A1 (en) 2012-10-11 2014-04-17 Electronics And Telecommunications Research Institute Method and apparatus for integrated application search in multiple app stores
US9092527B2 (en) 2013-01-30 2015-07-28 Quixey, Inc. Performing application search based on entities
US8745617B1 (en) 2013-02-11 2014-06-03 Google Inc. Managing applications on a client device
KR20140107713A (ko) * 2013-02-25 2014-09-05 한국전자통신연구원 통합 앱스토어 장치, 상기 장치에서의 애플리케이션 제공 방법 및 통합 앱스토어 시스템
US9727577B2 (en) 2013-03-28 2017-08-08 Google Inc. System and method to store third-party metadata in a cloud storage system
US8868689B1 (en) 2013-05-17 2014-10-21 Google Inc. Device configuration based content selection
US11328344B2 (en) 2013-05-31 2022-05-10 Itron, Inc. Utility application delivery platform
US20140379747A1 (en) 2013-06-19 2014-12-25 Microsoft Corporation Identifying relevant apps in response to queries
US20150039580A1 (en) 2013-07-31 2015-02-05 Microsoft Corporation App annotation and facilitaton of user search task and user action
US20160085868A1 (en) 2013-10-06 2016-03-24 Ronald P. Young Digital search filter that presents results focused only on the most relevant solutions
US9202249B1 (en) 2014-07-03 2015-12-01 Palantir Technologies Inc. Data item clustering and analysis

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012043899A1 (ko) * 2010-09-29 2012-04-05 정보통신산업진흥원 자동차용 앱스토어 서비스 시스템 및 방법
CN103294640A (zh) * 2012-01-23 2013-09-11 索尼公司 分配用于异种平台的应用的框架和系统
WO2013119076A1 (ko) * 2012-02-08 2013-08-15 삼성전자 주식회사 분산형 앱스토어 서비스 제공 방법 및 시스템
CN104854561A (zh) * 2012-10-16 2015-08-19 思杰系统有限公司 用于应用程序管理框架的应用程序封装
CN104636919A (zh) * 2013-11-11 2015-05-20 杭州洱海科技有限公司 一种基于数据付费的应用程序商店模式
CN105279286A (zh) * 2015-11-27 2016-01-27 陕西艾特信息化工程咨询有限责任公司 一种交互式大数据分析查询处理方法

Also Published As

Publication number Publication date
EP3491542A1 (en) 2019-06-05
US10346457B2 (en) 2019-07-09
WO2018022335A1 (en) 2018-02-01
US20180032607A1 (en) 2018-02-01
CN109564573A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
CN109564573B (zh) 来自计算机应用元数据的平台支持集群
US10387435B2 (en) Computer application query suggestions
US11645317B2 (en) Recommending topic clusters for unstructured text documents
EP3575984A1 (en) Artificial intelligence based-document processing
US9069859B2 (en) Search query processing
JP4160578B2 (ja) ウェブデータベースのスキーママッチングの方法およびシステム
US11126630B2 (en) Ranking partial search query results based on implicit user interactions
US20190205472A1 (en) Ranking Entity Based Search Results Based on Implicit User Interactions
US9348871B2 (en) Method and system for assessing relevant properties of work contexts for use by information services
US7895595B2 (en) Automatic method and system for formulating and transforming representations of context used by information services
US20130282749A1 (en) Instant search results with page previews
US10585927B1 (en) Determining a set of steps responsive to a how-to query
US20130339001A1 (en) Spelling candidate generation
US20190205465A1 (en) Determining document snippets for search results based on implicit user interactions
JP2017220204A (ja) 検索クエリに応答してホワイトリストとブラックリストを使用し画像とコンテンツをマッチングする方法及びシステム
US8364672B2 (en) Concept disambiguation via search engine search results
US10740420B2 (en) Computer-implemented platform for generating query-answer pairs
US10339148B2 (en) Cross-platform computer application query categories
Kumar Apache Solr search patterns
KR20120038418A (ko) 탐색 방법 및 디바이스
US20220269735A1 (en) Methods and systems for dynamic multi source search and match scoring of software components
TWI547888B (zh) A method of recording user information and a search method and a server
Kulkarni et al. Information Retrieval based Improvising Search using Automatic Query Expansion
JP2011018152A (ja) 情報提示装置、情報提示方法およびプログラム
Hartmann et al. Using similarity measures for context-aware user interfaces

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant