CN105283841A - 应用定制的对象再利用和再循环 - Google Patents

应用定制的对象再利用和再循环 Download PDF

Info

Publication number
CN105283841A
CN105283841A CN201480033218.5A CN201480033218A CN105283841A CN 105283841 A CN105283841 A CN 105283841A CN 201480033218 A CN201480033218 A CN 201480033218A CN 105283841 A CN105283841 A CN 105283841A
Authority
CN
China
Prior art keywords
display object
described display
recycle
certain content
user
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.)
Granted
Application number
CN201480033218.5A
Other languages
English (en)
Other versions
CN105283841B (zh
Inventor
杜琪星
阿什温·巴特
乔纳森·M·卡尔多
I·建·彭
乔舒亚·利
张康
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.)
Meta Platforms Inc
Original Assignee
Facebook 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 Facebook Inc filed Critical Facebook Inc
Publication of CN105283841A publication Critical patent/CN105283841A/zh
Application granted granted Critical
Publication of CN105283841B publication Critical patent/CN105283841B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • 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/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

在一个实施方式中,计算设备接收对于用于与系统相关联的屏幕的可显示区域中的内容布局的内容的请求。设备基于应用定制的再循环政策确定再循环器是否包括适合于再循环或再利用的显示对象。如果不包括,则设备创建显示对象并将其填充有内容。如果包括,并且如果显示对象包含该内容,则设备根据需要更新显示对象的元素;否则,如果显示对象不包含内容,则设备将显示对象填充有该内容并且将显示对象返回。本文中描述的实施方式还可以对显示对象的子元素执行,其中有一些显示对象可包括嵌套显示对象。

Description

应用定制的对象再利用和再循环
技术领域
本公开总体上涉及对象生命周期管理。
背景技术
创建显示对象并且将它们填充有内容会构成内容密集应用的延迟的显著原因。当渲染其中内容在折线(thefold)以下延伸的特定显示画面的内容布局时(需要用户滚动该内容布局以将内容带入视野),当它们进入视野时可以创建显示对象并且填充有内容,并且当它们从视野消失时再循环显示对象。由操作系统提供的默认再循环效用被证实不满足这样的内容密集应用的需求,尤其是对于最近请求的显示对象在短时间段以内可能重复地被再次请求的应用。
发明内容
为了便于以内容识别方式再使用和再循环昂贵的显示对象,可以利用应用专用的再循环政策以确定如何评价显示对象以及何时将显示对象转移至应用定制对象再循环器以便由应用再利用。当接收对于待显示的特定内容元素的请求时,应用创建显示对象并且渲染显示对象。在将其返回至操作系统用于显示之前,应用可以根据按照应用专用的再循环政策的显示对象的评估将显示对象装入廉价创建的包装对象。当操作系统调用对象在准备中的最后确定的方法以将对象发送至操作系统的默认再循环效用时,应用提取并缓存再循环器中的显示对象,并且允许操作系统根据其默认再循环政策处置(空的)包装对象。当再次请求相同的内容元素时,应用从再循环器检索显示对象,将其装入包装对象,并且返回经包装的显示对象。
附图说明
图1A是使用显示对象渲染内容布置的线框图。
图1B是示出图1A的细节部分的线框图。
图2示出用于应用控制的对象再循环的示例性方法。
图3示出与社交网络系统相关联的示例性网络环境。
图4示出了示例性社交图谱。
图5示出示例性计算机系统。
具体实施方式
可以在对基于内容或基于使用的上下文进行任何识别的情况下,统一处理通过默认再循环效用的显示对象的再循环。这会触发不必要的和昂贵的操作,该操作比可能以其他方式需要而更频繁地创建显示对象并且将内容填入效率低地再循环的显示对象。当显示对象具有变得非常大的潜在性时(例如,安卓的ListView或GridView对象),并且用户可以遍历列表或网格重复地来回经过相同的内容元素,更加期望的是避免由于无法有效再利用最近请求的显示对象而导致的不必要的操作。
为了便于以内容识别的方式再使用和再循环昂贵的显示对象,应用程序可以应用专用的再循环政策以确定怎样评价显示对象以及何时将显示对象转移至应用定制的对象再循环器以供应用程序再利用。当接收对于待显示的特定内容元素的请求时,应用程序创建显示对象并且渲染显示对象。在将其返回操作系统以供显示之前,应用程序可以根据按照应用专用的再循环政策对显示对象的评估将显示对象装入廉价创建的包装对象。当操作系统在准备调用对象的最后确定的方法以将对象发送至操作系统的默认再循环效用时,应用程序提取显示对象并缓存在再循环器中,并且允许操作系统根据其默认再循环政策处置(空的)包装对象。当再次请求相同的内容元素时,应用从再循环器检索显示对象,将其装入包装对象,并且返回经包装的显示对象。包装对象本身可以重新创建或由操作系统的默认再循环效用提供,与创建和/或填充显示对象的昂贵的操作相比,由于新的包装对象的创建而导致的任何延迟是非常低的。
在具体实施方式中,再循环器可以使用任何合适的数据结构(例如,堆)实现,显示对象可以存储在其中并且可以使用适合于应用程序的任何检索关键字从再循环器检索显示对象。例如,在由社交网络系统提供的按时间顺序组织的新鲜事应用中,其中新鲜事中的每个列表与用户的社交图谱中的连接的活动有关系,可以与检索关键字相联系地存储的每个显示对象包括:新鲜事项ID号、基于新鲜事项的元素生成的散列关键字、新鲜事中的新鲜事项的位置、与新鲜事项相关联的时间戳、基于与特定内容相关的社交图谱中的任何元素相关联的标识符生成的标识符、或者基于与特定内容相关的社交图谱中的任何元素相关联的信息的散列关键字。在具体实施方式中,基于应用程序的需求,存在应用程序的一个或多个再循环器。例如,应用程序可以为每个显示对象类型保留一个再循环器。在另一个实例中,应用程序可以为迅速到期和/或必须经常更新的显示对象保留一个再循环器,并且为不到期或者长达更长的时间段保持有效的显示对象保留另一个再循环器。如本领域的技术人员将意识到的,可以利用任意数量的再循环器,视具体应用程序的需求而定。
本文中描述的实施方式还可以对显示对象的子元素执行,其中有一些显示对象可包括嵌套显示对象。
图1A是示出基于许多显示对象渲染的以便在平板设备上显示的社交网络系统的用户的新鲜事页面的内容布局100的示例性线框图的线框图。内容布局100的可显示区域(由虚线指出的)包括适合于平板设备的屏幕尺寸(在折线以上)的内容布局100的部分。
内容布局100包括页眉区域110、菜单栏120、左边侧栏130、右边侧栏140以及主体区域150。每个区域与它自身的显示对象相关联,每个显示对象可以包括许多元素诸如通过实例而不是限制:图像、视频、文本、链接、表格以及交互元素。这些元素中的每一个可以由一个或多个嵌套显示对象表示。
与标题区域110相关联的显示对象包括社交网络用户的交互简档照片112,由社交网络用户选择的文本块114、背景图像116以及主题音乐。交互简档照片112基于显示对象渲染,该显示对象可以包括图像、文本、链接以及Java脚本代码以便渲染显示当诸如鼠标的点控设备悬浮在简档照片上时出现的社交网络用户的简档的概要的弹出窗口。
与菜单栏120相关联显示对象包括五个菜单选项125A-F,每个菜单选项包括图像、文本和链接。
与左边侧栏130相关联的显示对象包括用于混合的推荐的内容(包括赞助内容)(仅示出135A-E,但可以存在很多推荐),每个推荐内容基于显示对象渲染。用于推荐的每个显示对象可以包括交互图像、标题、推荐的文本以及获得与推荐有关的进一步信息的链接。用于新鲜事项的每个显示对象还可以包括一个或多个图像或视频。
与右边侧栏140相关联的显示对象包括一个或多个广告145的内容,每个广告内容基于显示对象渲染。如在图1A中示出的实例中示出的,广告145A出现在折线以上,然而145B尚未在视野中。广告的内容可以至少部分地由第三方广告商确定。
与主体区域150相关联的显示对象包括许多新鲜事项(仅示出155A-E,但可以存在很多新鲜事项),每个新鲜事项基于与用户的朋友(即,社交图谱联系)有关的活动相关联的显示对象渲染。
图1B是示出图1A的细节部分的线框图:内容布局100的主体区域150中的新鲜事项155B-E。如在图1A中指出的,内容布局100的可显示的区域(由虚线指出的)包括将适合平板设备的画面上的内容布局100的部分。
新鲜事项155的每个显示对象可以包括:朋友的交互简档照片160、朋友的名字165、新鲜事项的文本170、时间敏感的信息175(例如,已观看/评论/“点赞”列表的人的数量的持续更新计数、观看/评论/“点赞”列表的最近的一个或两个人的短列表等)、到“点赞”新鲜事项的链接180、到新鲜事项的评论的链接185、以及到“分享”新鲜事项的链接190。用于新鲜事项的每个显示对象还可以包括一个或多个图像195或视频。
每个交互简档照片160基于显示对象渲染,该显示对象可以包括图像、文本、链接以及Java脚本代码以便渲染显示当诸如鼠标的点控设备悬浮在简档照片上时出现的社交网络用户的简档的概要的弹出窗口。
图2示出用于应用控制的对象再循环的示例性方法。在步骤210中,应用程序接收对特定内容(例如,新鲜事项155C)的请求,针对该请求需要以包含所请求的内容的显示对象来响应。如上所述,显示对象可以包含许多元素,该元素本身可以是显示对象。例如,新鲜事项155C包括可以由显示对象渲染的交互简档照片160。
在步骤220中,应用程序根据应用定制再循环政策确定应用定制再循环器中是否存在适合于再利用或再循环的的显示对象。如果显示对象包含与当前请求的内容相同或相似的内容,则该显示对象可能适合于再利用。如果显示对象是相同类型的对象但是填充有不同的内容,则该显示对象可能适合于再循环。这个判定可以取决于应用专用、设备专用和/或用户专用的再循环政策。在具体实施方式中,应用程序可以根据应用需求、内容类型、设备属性(例如,可用存储器和/或显示屏幕的尺寸)、内容统计、使用模式和偏好、或者任何其他合适因素设置再循环政策。这样的政策可以支配多少对象保留在再循环器中、什么类型的对象存储在再循环器中、怎样确定显示对象是否适合于再利用和/或再循环、何时再利用而不是再循环显示对象等。
在步骤225中,存在再循环器返回空值的两种情况。第一种情况是简单的--在再循环器中没有找到正确类型的显示对象。在第二种情况中,在再循环器中找到适合于再循环而不是再利用的显示对象,然而再循环政策禁止显示对象的再循环。
例如,在图1B中示出的新鲜事布局中,用户先前观看和滚动通过了新鲜事项155A,并且可显示的区域由新鲜事项155B-E占据。这意味着用于新鲜事项155A的显示对象可能已经预先生成、填充有内容、显示然后存储在再循环器中。如果用户向下滚动,并且应用程序接收到对于包含用于新鲜事项155F的内容的显示对象的请求,那么应用程序将确定用于新鲜事项155A的显示对象是否可以为新鲜事项155F再循环。如果应用程序仅允许已存储在再循环器中的许多显示对象的对象再循环一次(以便鼓励再利用,而不是持续再循环),那么再循环器可返回空值,以便迫使创建用于新鲜事项155F的新的显示对象(并且预期新鲜事项155A可能很快被再次请求,预先保存用于新鲜事项155A的显示对象)。
但不论是哪种情况,应用程序创建合适类型的新的显示对象以显示请求的内容,然后用请求的内容填充显示对象(步骤250)。这是最昂贵的途径,因为创建新的显示对象和填充空的显示对象两者是成本高的操作。因此,应用程序可能需要在确定何时禁止再循环器中存储的另外的合适的显示对象再循环时平衡冲突的优先级。
在步骤230中,如果合适的显示对象在再循环器中可用,则应用程序确定显示对象中的内容是否与请求内容相同或相似。
在步骤235中,如果显示对象包含与请求内容相同或相似的内容,则应用可以为这个请求再利用检索到的显示对象。例如,在图1B中示出的新鲜事布局中,用户先前观看和滚动去新鲜事项155A,并且可显示的区域由新鲜事项155B-E占据。这意味着新鲜事项155A的显示对象可能已经之前生成、填充有内容、显示然后存储在再循环器中。如果用户倒退滚动,并且应用接收到对于包含新鲜事项155A的内容的显示对象的请求,那么包含新鲜事项155A的内容的显示对象可以从再循环器检索并再利用。
为了重新使用检索到的显示对象,必需根据需要更新显示对象的特定元素(步骤240),诸如时间敏感的元素。例如,新鲜事项155可能需要更新时间敏感的信息175(例如,已观看/评论/“点赞”列表的人的数量的持续更新计数、观看/评论/“点赞”列表的最近的一个或两个人的短列表等)。在一些情况下,包含于显示对象的内容可以与请求内容非常相似但不是完全相同。在一些实施方式中,应用可以识别到需要更新的元素,并且仅更新那些元素。在一些实施方式中,应用可以执行内容比较(例如,比较散列)以确定需要更新和不需要更新的元素。在一些实施方式中,应用能够基于与请求内容相关联的元数据和/或属性确定哪些元素需要更新。
应用定制的再循环政策可以应用规则以基于需要确定何时更新特定元素是高效的以及何时从头开始重新填入显示对象是更高效的(参见步骤250)。无论如何,显示对象的再利用通常是最便宜的途径,因为消除了创建新的显示对象以及填充空的显示对象这两个成本高的操作。
在步骤245中,如果再循环器中的显示对象是与请求内容相同的显示对象类型,但是未填充有与请求内容相同或非常相似的内容,则应用可以为这个请求再循环该显示对象。例如,在图1B中示出的新鲜事布局中,用户先前观看和滚动过去了新鲜事项155A,并且可显示的区域由新鲜事项155B-E占据。这意味着用于新鲜事项155A的显示对象可能之前已经生成、填充有内容、显示然后存储在再循环器中。如果用户向下滚动,并且应用接收到对于包含新鲜事项155F的内容的显示对象的请求,那么包含新鲜事项155A的内容的显示对象可以从再循环器检索并且为新鲜事项155F再循环(如果应用的再循环政策允许的话)。在这种情况下,应用从头开始将请求内容填充显示对象(步骤250),从而重写如果不是全部至少大多数的显示对象中的现有内容。这没有再利用显示对象更令人期望,因为填充显示对象是成本高的操作,但是再循环也至少避免了创建新的显示对象的成本。这里,在具体实施方式中,步骤220-270可以对显示对象的子元素以递推的方式进行,其中有一些显示对象本身包括嵌套显示对象。
在步骤260中,应用可以将显示对象封装在包装对象中。在具体实施方式中,由操作系统提供的默认再循环效用已试图基于请求的显示对象提供再循环的包装对象。如果为显示对象提供包装对象,那么应用可以使用所提供的包装对象;如果没有,那么应用可以创建新的包装对象。在步骤270中,响应请求,应用返回经封装的显示对象。
在步骤280中,应用可以接收显示区域中的内容布局不再需要显示对象的指示。在步骤290中,应用在再循环器中存储显示对象。如果使用包装对象,则应用可以在存储显示对象之前从包装对象提取显示对象,以便允许由操作系统提供的默认再循环效用从而再循环现在空的包装对象。
本文中公开的实施方式描述为由应用执行;然而,如本领域技术人员将意识到的,本文中公开的示例性方法200和其他实施方式中的许多步骤可以由在一个或多个抽象层处操作的一个或多个软件执行。例如,在安卓操作系统的上下文内,可以为片段提供再循环器和/或可以为活动提供再循环器。在另一个实例中,再循环器的功能可以由与应用分开执行的软件执行。
具体实施方式可重复图2中的方法的一个或者多个步骤,视情况而定。尽管本公开描述并且示出了图2中以具体顺序发生的方法的具体步骤,然而本公开考虑了图2中以任意合适顺序发生的方法的任意合适步骤。而且,尽管本公开描述并且示出了完成图2中的方法的具体步骤的具体部件、设备或者系统,然而本公开考虑执行图2中的方法的任意合适步骤的任意合适部件、设备或者系统的任意合适组合。
图3示出与社交网络系统相关联的示例性网络环境300。网络环境300包括通过网络310连接至彼此的客户端系统330、社交网络系统360以及第三方系统370。尽管图3示出了客户端系统330、社交网络系统360、第三方系统370以及网络310的具体布置,然而本公开考虑了客户端系统330、社交网络系统360、第三方系统370以及网络310的任何合适的布置。作为实例而不是不作为限制,客户端系统330、社交网络系统360以及第三方系统370中的两个以上可旁路网络310而彼此直接连接。作为另一实例,客户端系统330、社交网络系统360以及第三方系统370中的两个以上可以物理上或者逻辑上全部或者部分地彼此共同定位。而且,尽管图3示出了具体数目的客户端系统330、社交网络系统360、第三方系统370以及网络310,然而本公开也考虑了任何合适数目的客户端系统330、社交网络系统360、第三方系统370以及网络310。作为实例而不是作为限制,网络环境300可包括多个客户端系统330、多个社交网络系统360、多个第三方系统370以及多个网络310。
本公开考虑了任何合适的网络310。作为实例而不是作为限制,网络310的一个或多个部分可包括自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网的一部分、公共交换电话网(PSTN)的一部分、蜂窝电话网络或者这些中的两个以上的组合。网络310可包括一个或多个网络310。
链路350可以将客户端系统330、社交网络系统360和第三方系统370连接至通信网络310或连接至彼此。本公开考虑了任何合适的链路350。在具体实施方式中,一个或多个链路350包括一个或多个有线链路(诸如,数字用户线路(DSL)或电缆数据服务接口规范(DOCSIS))、无线链路(诸如,Wi-Fi或全球互通微波访问(WiMAX))、或者光链路(诸如,同步光纤网(SONET)或同步数字系统(SDH))。在具体实施方式中,一个或多个链路350均包括自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、以蜂窝技术为基础的网络、以卫星通信技术为基础的网络、另一个链路350或两个以上此类链路350的组合。整个网络环境300中的链路350并不需要必须相同。一个或多个第一链路350可以在一个或多个方面不同于一个或多个第二链路350。
在具体实施方式中,客户端系统330可以是包括硬件、软件、或嵌入式逻辑部件、或两个以上这样的部件的组合并能够执行由客户端系统330实施或支持的适当功能的电子设备。作为实例而不是作为限制,客户端系统330可以包括计算机系统,如台式计算机、笔记本、或便携式计算机、网本、平板电脑、电子书阅读器、GPS设备、照相机、个人数字助理(PDA)、手持式电子设备、蜂窝电话、智能手机、其他合适的电子设备、或者其任何合适的组合。本公开考虑了任何合适的客户端系统330。客户端系统330可以使客户端系统330处的网络用户能够接入网络310。客户端系统330能够使其用户与其他客户端系统330处的其他用户通信。
在具体实施方式中,客户端系统330可包括网络浏览器332,诸如,MICROSOFTINTERNETEXPLORER、GOOGLECHROME、或MOZILLAFIREFOX,并且可具有一个或多个附加元件、插件、或其他扩展,诸如,TOOLBAR或YAHOOTOOLBAR。客户端系统330处的用户可以进入将网络浏览器332引导至特定服务器(诸如,服务器362或者与第三方系统370相关联的服务器)的统一资源定位器(URL)或者其他地址,并且网络浏览器332可以生成超文本传输协议(HTTP)请求并且将HTTP请求传送至服务器。服务器可接受HTTP请求并且响应于HTTP请求将一个或多个超文本标记语言(HTML)文件传送至客户端系统330。客户端系统330可基于HTML文件从服务器渲染(render)网页以用于展示给用户。本公开考虑了任何合适的网页文件。作为实例而不是作为限制,可根据具体需要从HTML文件、可扩展超文本标记语言(XHTML)文件或者可扩展标记语言(XML)文件渲染网页。例如但并不限于,这些页面还可执行诸如以JAVASCRIPT、JAVA、MICROSOFTSILVERLIGHT、标记语言的组合编排的脚本以及诸如AJAX(异步JAVASCRIPT和XML)的脚本等。这些网页还可执行脚本程序,例如但并不限于,以JAVASCRIPT、JAVA、MICROSOFTSILVERLIGHT,诸如AJAX(异步Javascript和XML)的标记语言和脚本程序的组合编排的程序等。本文中,在合适的情况下,网页参考包括一个或多个对应的网页文件(浏览器可以用其渲染网页),反之亦然。
在具体实施方式中,社交网络系统360可以是可承载在线社交网络的网络可寻址计算系统。社交网络系统360可生成、存储、接收以及发送社交网络数据,例如,用户简档数据、概念简档数据、社交图谱信息、或者与在线社交网络有关的其他合适数据。网络环境300中的其他部件可直接访问或者经由网络310访问社交网络系统360。在具体实施方式中,社交网络系统360可以包括一个或多个服务器362。每个服务器362可以是单一式服务器或跨越多个计算机或多个数据中心的分布式服务器。服务器362可以是各种类型,例如但不限于,网络服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交易服务器、数据库服务器、代理服务器、适用于执行此处所描述的功能或过程的另一个服务器或者它们的任何组合。在具体实施方式中,每个服务器362均可包括硬件、软件或嵌入式逻辑部件或用于进行由服务器362实施或支持的适当功能的两个以上这样的部件的组合。在具体实施方式中,社交网络系统364可以包括一个或多个数据存储器364。数据存储器364可用于存储各种类型的信息。在具体实施方式中,可根据特定数据结构组织数据存储器364中存储的信息。在具体实施方式中,每个数据存储器364可以是关联的、圆柱形的、相关的或者其他适当的数据库。尽管本公开内容描述或者示出了数据库的具体类型,但是本公开考虑了任何合适的数据库类型。具体实施方式可提供能够使客户端系统330、社交网络系统360或者第三方系统370管理、检索、修改、添加或者删除存储在数据存储器364中的信息的接口。
在具体实施方式中,社交网络系统360可将一个或多个社交图谱存储在一个或多个数据存储器364中。在具体实施方式中,社交图谱可以包括多个节点,其可包括多个用户节点(每个节点对应于具体用户)或多个概念节点(每个节点对应于具体概念),以及连接节点的多个边线。社交网络系统360可为在线社交网络中的用户提供与其他用户通信和交互的能力。在具体实施方式中,用户可以经由社交网络系统360加入在线社交网络,然后将连接(例如,关系)添加到他们想要连接的社交网络系统360的许多其他用户。此处,术语“朋友”可指社交网络系统360中用户已经由社交网络系统360与其形成连接、关联或关系的任何其他用户。
在具体实施方式中,社交网络系统360可向用户提供对由社交网络系统360支持的各种类型的项目或对象采取行动的能力。作为实例而不是作为限制,项目和对象可以包括社交网络系统360的用户所属于的社交网络的组、用户可能感兴趣的事件或日历条目、用户可以使用的利用计算机的应用、允许用户通过服务购买或出售项目的交易、用户可以进行的与广告的交互、或者其他合适的项目或对象。用户可与社交网络系统360中能够表示的任何事物交互或者通过第三方系统370的外部系统与任何事物交互,第三方系统370的外部系统与社交网络系统360分离并且经由网络310耦接至社交网络系统360。
在具体实施方式中,社交网络系统360能够链接各个实体。作为实例而不是作为限制,社交网络系统360能够使用户彼此交互以及从第三方系统370或者其他实体接收内容,或者允许用户通过应用程序编程接口(API)或者其他通信信道与这些实体交互。
在具体实施方式中,第三方系统370可包括一个或多个类型的服务器、一个或者多个数据存储器、一个或者多个接口,其中包括但不限于API、一个或者多个网络服务、一种或者多种内容来源、一个或者多个网络或者(例如,服务器可与其通信的)任何其他合适部件。第三方系统370可由与操作社交网络系统360的实体不同的实体操作。然而,在具体实施方式中,社交网络系统360和第三方系统370可彼此结合运行,以将社交网络服务提供给社交网络系统360或者第三方系统370中的用户。在这种意义上,社交网络系统360可以提供平台或者骨干链路,诸如第三方系统370的其他系统可使用该平台或骨干链路通过互联网将社交网络服务和功能提供给用户。
在具体实施方式中,第三方系统370可包括第三方内容对象提供商。第三方内容对象提供商可包括被传送至客户端系统330的内容对象的一个或者多个来源。作为实例而不是作为限制,内容对象可包括关于用户感兴趣的事物或者活动的信息,例如电影放映时间、电影评论、餐馆评论、餐馆菜单、产品信息及评论或者其他合适的信息。作为另一实例而不是作为限制,内容对象可包括诸如赠券、打折票、礼品券或者其他合适的激励对象等的激励内容对象。
在具体实施方式中,社交网络系统360还包括用户生成内容对象,该用户生成内容对象可提高用户与社交网络系统360的交互。用户生成内容可包括用户可添加、上传、发送或者“发贴”到社交网络系统360上的任何事物。作为实例而不是作为限制,用户将帖子从客户端系统330传送至社交网络系统360。帖子可包括诸如状态更新或者其他文本数据、位置信息、照片、视频、链接、音乐或者其他类似数据或者媒体的数据。第三方还可通过诸如新鲜事或者流等“通信渠道”将内容添加到社交网络系统360中。
在具体实施方式中,社交网络系统360可包括各种服务器、子系统、程序、模块、日志以及数据存储器。在具体实施方式中,社交网络系统360可以包括以下一个或多个:网络服务器、动作日志器、API请求服务器、相关和排序引擎、内容对象分类器、通知控制器、动作日志、第三方内容对象曝光日志、推断模块、授权/隐私服务器、检索模块、广告目标模块、用户界面模块、用户简档存储器、连接存储器、第三方内容存储器或位置存储器。社交网络系统360还可以包括如网络接口的部件、安全机构、负载均衡器、故障转移服务器、管理和网络操作控制台、其他合适的部件或它们的任何合适的组合。在具体实施方式中,社交网络系统360可包括用于存储用户简档的一个或者多个用户简档存储器。例如,用户简档可包括,例如,传记信息、人口统计信息、行为信息、社交信息或者其他类型的描述性信息,诸如工作经历、教育背景、嗜好或者喜好、兴趣、亲缘关系、或者位置。兴趣信息可包括与一个或者多个种类有关的兴趣。类别可以为一般种类或者特殊种类。作为实例而不作为限制,如果用户“点赞”关于鞋的品牌的物品,那么种类可以是品牌,或“鞋”或“衣服”的总体种类。连接存储器可以用于存储关于用户的连接信息。连接信息可显示具有相似或者共同工作经历、组群成员关系、爱好、教育背景、或者以任何方式与共同属性有关或者享有共同属性的用户。连接信息还可以包括不同的用户和内容之间用户限定的连接(内部和外部两者)。网络服务器可以用于将社交网络系统360通过网络310链接至一个或多个客户端系统330或一个或多个第三方系统370。网络服务器可包括用于接收和路由社交网络系统360与一个或者多个客户端系统330之间的消息的邮件服务器或者其他消息功能。API请求服务器可以允许第三方系统370通过调用一个或多个API访问来自社交网络系统360的信息。动作日志器可以用于接收来自网络服务器的关于用户在社交网络系统360之上或之外的动作的信息。结合动作日志,第三方内容对象日志可以保存用户对第三方内容对象的曝光。通知控制器可以提供有关客户端系统330的内容对象的信息。信息可以作为通知推送至客户端系统330,或者可以响应于从客户端系统330接收的请求从客户端系统330拖曳信息。授权服务器可以用于执行社交网络系统360的用户的一个或多个隐私设置。用户的隐私设置确定与用户相关联的特定信息可以如何分享。授权服务器可以允许用户决定是否允许由社交网络系统360日志其活动,或者诸如通过设置合适的隐私设置与其他系统(例如,第三方系统370)共享其活动。第三方内容对象存储器可用于存储从诸如第三方系统370的第三方接收的内容对象。位置存储器可用于存储从与用户相关联的客户端系统330接收的位置信息。广告定价模块可结合社交信息、当前时间、位置信息或者其他合适的信息,从而以通知形式将相关广告提供给用户。
图4示出了示例性社交图谱400。在具体实施方式中,社交网络系统360可将一个或多个社交图谱400存储在一个或多个数据存储器中。在具体实施方式中,社交图谱400可包括多个节点(其可包括多个用户节点402或多个概念节点404)以及连接节点的多个边线406。出于教导之目的,以二维可视地图表示出了图4中所示的示例性社交图谱400。在具体实施方式中,社交网络系统360、客户端系统330、或者第三方系统370可访问社交图谱400及合适的应用的相关社交图谱信息。例如,在数据存储器(诸如,社交图谱数据库)中,社交图谱400的节点和边线可被储存为数据对象。这样的数据存储器可包括社交图谱400中的节点或者边线的一个或者多个可搜索或者可查询的索引。
在具体实施方式中,用户节点402可对应于社交网络系统360的用户。作为实例而不是作为限制,用户可以是与社交网络系统360交互或通信或者通过社交网络系统360交互或通信的个体(人类用户)、实体(例如,企业、公司或者第三方应用)或者组群(例如,个体或者实体)。在具体实施方式中,当用户在社交网络系统360中注册账户时,社交网络系统360可创建对应于用户的用户节点402并且将用户节点402存储在一个或多个数据存储器中。在适当的情况下,此处所描述的用户和用户节点402可指注册用户和与注册用户相关联的用户节点402。此外或者可替代地,在适当的情况下,此处所描述的用户和用户节点402可指未注册至社交网络系统360的用户。在具体实施方式中,用户节点402可以与由用户提供的信息或者通过包括社交网络系统360的各个系统采集的信息相关联。作为实例而不是作为限制,用户可提供其姓名、简档图片、联系信息、出生日期、性别、婚姻状况、家庭状况、职业、教育背景、喜好、兴趣、或者其他人口统计信息。在具体实施方式中,用户节点402可以与对应于与用户相关联的信息的一个或多个数据对象相关联。在具体实施方式中,用户节点402可对应于一个或者多个网页。
在具体实施方式中,概念节点404可对应于概念。作为实例而不是作为限制,概念可以对应于位置(例如,电影院、餐馆、地标或城市);网站(例如,与社交网络系统360相关联的网站或者与网络应用服务器相关联的第三方网站);实体(例如,个人、企业、组群、体育团体或名人);可以位于社交网络系统360以内或者诸如网络应用服务器的外部服务器上的资源(例如,音频文件、视频文件、数字照片、文本文件、结构化文档或者应用);不动产或知识产权(例如,雕刻、绘画作品、电影、游戏、歌曲、构思、照片或书面作品);游戏;活动;构思或原理;另一个合适的概念;或者两个以上这样的概念。概念节点404可以与由用户提供的概念信息或者通过包括社交网络系统360的各个系统采集的概念信息相关联。作为实例而不是作为限制,概念信息可包括名称或者标题;一个或多个图像(例如,书籍封面页图像);位置(例如,地址或者地理位置);网站(其可与URL相关联);联系信息(例如,电话号码或者电子邮件地址);其他合适的概念信息;或者这样的信息的任何合适的组合。在具体实施方式中,概念节点404可与对应于与概念节点404相关联的信息的一个或多个数据对象相关联。在具体实施方式中,概念节点404可对应于一个或者多个网页。
在具体实施方式中,社交图谱400中的节点可表示网页或者可以由网页表示(其可被称之为“简档页面”)。简档页面可承载在社交网络系统360中或者对于社交网络系统360可访问。简档页面还可承载在与第三方服务器370相关联的第三方网站中。作为实例而不是作为限制,对应于特定外部网页的简档页面可以是特定外部网页并且该简档页面可对应于特定的概念节点404。所有的其他用户或者其他用户的选择子集可查看简档页面。作为实例而不是作为限制,用户节点402可具有其中相应用户添加内容、做出声明、或者以其他方式表达其自身的对应用户简档页面。作为另一实例而不是作为限制,概念节点404可具有其中一个或多个用户可添加内容、做出声明、或者表达其自身的对应概念简档页面,具体地,具有与对应于概念节点404的概念有关的对应概念简档页面。
在具体实施方式中,概念节点404可表示由第三方系统370承载的第三方网页或者资源。第三方网页或者资源除了其他元素还可包括内容、可选择的或者其他图标、或者表示动作或者活动的其他可互动的对象(例如,可以JavaScript、AJAX、或者PHP代码实现)。作为实例而不是作为限制,第三方网页可包括诸如“点赞”、“签到”、“吃”、“推荐”、或者其他合适的动作或者活动的可选择的图标。查看第三方网页的用户可通过选择图标中的一个(例如,“吃”)执行动作,从而使客户端系统330将指示用户动作的消息发送至社交网络系统360。社交网络系统360可响应于该消息在对应于用户的用户节点402与对应于第三方网页或者资源的概念节点404之间创建边线(例如,“吃”边线)并且将边线406存储在一个或者多个数据存储器中。
在具体实施方式中,社交图谱400中的一对节点可通过一个或多个边线406连接至彼此。连接一对节点的边线406可表示该对节点之间的关系。在具体实施方式中,边线406可包括或者表示对应于一对节点之间的关系的一个或多个数据对象或者属性。作为实例而不是作为限制,第一用户可指示第二用户为第一用户的“朋友”。社交网络系统360可响应此指示将“朋友请求”发送至第二用户。如果第二用户确认“朋友请求”,则社交网络系统360可在社交图谱400中创建将第一用户的用户节点402连接至第二用户的用户节点402的边线406,并且将边线406作为社交图谱信息存储在一个或多个数据存储器364中。在图4的实例中,社交图谱400包括指示用户“A”与用户“B”的用户节点402之间的朋友关系的边线406,以及指示用户“C”与用户“B”的用户节点402之间的朋友关系的边线。尽管本公开内容描述或示出了具有连接具体用户节点402的具体属性的具体边线406,但是本公开内容考虑了具有连接用户节点402的任何合适属性的任何合适的边线406。作为实例而不是作为限制,边线406可表示朋友关系、家庭关系、业务或者雇佣关系、粉丝关系、跟随关系、访问关系、订阅关系、上级/下级关系、互惠关系、非互惠关系、另一合适类型的关系、或者这样的关系中的两个以上。而且,尽管本公开整体描述了处于连接的节点,然而,本公开还描述了处于连接的用户或者概念。此处,在适当的情况下,处于连接的用户或者概念的参考可指对应于社交图谱400中通过一个或多个边线406连接的用户或者概念的节点。
在具体实施方式中,用户节点402与概念节点404之间的边线406可表示由与用户节点402相关联的用户对与概念节点404相关联的概念执行的特定动作或者活动。作为实例而不是作为限制,如图4所示,用户可以“点赞”、“参与”、“播放”、“收听”、“烹饪”、“工作于”、或者“观看”概念,其中每个均对应于边线类型或者子类型。例如,对应于概念节点404的概念简档页面可包括,例如,可选择的“签到”图标(例如,可点击的“签到”图标)或者可选择的“添加到收藏夹”图标。同样,在用户点击这些图标之后,社交网络系统360可响应对应于相应动作的用户动作创建“喜好”边线或者“签到”边线。作为另一实例而不是作为限制,用户(用户“C”)可使用具体应用(SPOTIFY,即,在线音乐应用)收听具体歌曲(“RambleOn”)。在这种情况下,社交网络系统360可在对应于用户的用户节点402与对应于歌曲和应用的概念节点404之间创建“收听”边线406和“使用”边线(如图4所示),以指示用户收听过该歌曲并且使用过该应用。而且,社交网络系统360可在对应于歌曲与应用的概念节点404之间创建“播放”边线406(如图4所示),以指示通过特定应用播放该特定歌曲。在这种情况下,“播放”边线406对应于通过外部应用(SPOTIFY)对外部音频文件(歌曲“Imagine”)所执行的动作。尽管本公开描述了具有连接用户节点402与概念节点404的特定属性的特定边线406,然而,本公开考虑了具有连接用户节点402与概念节点404的任何合适属性的任何合适边线406。而且,尽管本公开描述了表示用户节点402与概念节点404之间单一关系的边线,但本公开考虑了表示用户节点402与概念节点404之间的一个或多个关系的边线。作为实例而不是作为限制,边线406可表示用户点赞并且使用过特定概念。可替代地,另一边线406可表示用户节点402与概念节点404之间的各种关系(或者多个单一关系)(如图4中所示用户“E”的用户节点402与“SPOTIFY”的概念节点404之间)。
在具体实施方式中,社交网络系统360可在社交图谱400中创建用户节点402与概念节点304之间的边线406。作为实例而不是作为限制,查看概念简档页面的用户(例如,通过使用网络浏览器或由用户的客户端系统330承载的专用应用)可以通过点击或选择“点赞”图标指示他或她点赞由概念节点404表示的概念,这会使得用户的客户端系统330将指示用户点赞与概念简档页面相关联的概念的消息发送给社交网络系统360。社交网络系统360响应该消息可在与用户相关联的用户节点402与概念节点404之间创建边线406,如用户与概念节点404之间的“点赞”边线406所示。在具体实施方式中,社交网络系统360可将边线406存储在一个或多个数据存储器中。在具体实施方式中,边线406可以通过社交网络系统360响应特定用户动作自动形成。作为实例而不是作为限制,如果第一用户上传图片、观看电影、或者收听歌曲,则可在对应于第一用户的用户节点402与对应于这些概念的概念节点404之间形成边线406。尽管本公开描述了以特定方式形成特定边线406,但本公开考虑了以任何合适方式形成任何合适的边线406。
在具体实施方式中,广告可以是文本(可以是HTML链接的)、一个或多个图像(可以是HTML链接的)、一个或多个视频、音频、一个或多个ADOBEFLASH文件、这些的合适的组合、或者以一个或多个网页上渲染的任何合适的数字格式的任何其他合适的广告,一个或多个电子函件中的、或与由用户请求的搜索结果有关的任何其他合适的广告。此外或者可替换的,广告可以是一个或多个赞助故事(例如,社交网络系统360上的新鲜事或收报机项)。赞助故事可以用户的社交行动(诸如“点赞”页面、“点赞”或评论页面上的帖子、RSVP与页面相关联的事件、对页面上发布的问题投票、签到至位置、使用应用或玩游戏、或者“点赞”或分享网站)广告商(例如)通过将社交行动渲染在用户的简档页面或其他页面的预先确定的区域以内、渲染与广告商相关联的附加信息、提高或另外突出其他用户的新鲜事或收报机来宣传,或者以其他方式宣传。广告商会对社交动作宣传付费。作为实例而不是作为限制,广告可以包括在搜索结果页的搜索结果之中,其中赞助内容在非赞助内容之上宣传。
在具体实施方式中,广告可以在社交网络系统网页、第三方网页、或其他页面以内请求显示。广告可以在页面的专用部分中显示,诸如在页面的顶上处的横幅区域中、在页面的侧面处的纵行中、在页面的GUI中、在弹出窗口中、在下拉菜单中、在页面的输入字段中、在页面的内容的顶部上、或者相对于页面的其它地方。此外或作为可替换的,广告可以在应用以内显示。广告可以在专用页面以内显示,需要用户在用户可以访问页面之前与广告交互或观看广告、或利用应用。用户可以,例如通过网络浏览器查看广告。
用户可以任何合适的方式与广告交互。用户可以点击或以另外方式选择广告。通过选择广告可以将用户(或者由用户使用的浏览器或其他应用)引导至与广告相关联的页面。在与广告相关联的页面处,用户可以采取另外的动作,诸如购买与广告相关联的产品或服务、接收与广告相关联信息、或者订阅与广告相关联的简报。具有音频或视频的广告可以通过选择广告的部件(像“播放按钮”)来播放。可替换地,通过选择广告,社交网络系统360可以执行或修改用户的特定动作。
广告还可以包括用户可以与其交互的社交网络系统功能。作为实例而不是作为限制,广告可以使用户能够通过选择与支持相关联的图标或链接“点赞”或者另外支持广告。作为实例而不是作为限制,广告可以使得用户能够搜索(或者通过执行查询)与广告商相关的内容。相似地,用户可以(例如,通过社交网络系统360)与另一个用户分享广告或(例如,通过社交网络系统360)对与广告相关联的事件RSVP。此外或者作为可替换的,广告可以包括引导向用户的社交网络系统上下文。作为实例而不是作为限制,广告可以显示关于采取与广告的主题相关联的动作的社交网络系统360以内的用户的朋友的信息。
在具体实施方式中,社交网络系统360可以确定各种社交图谱实体彼此之间的社交图谱亲近度(本文中可以称为“亲近度”)。亲近度可以表示与在线社交网络相关联的特定对象之间的关系的强度或兴趣的等级,诸如用户、概念、内容、动作、广告、与在线社交网络相关联的其他对象,或者它们的任何合适的组合。亲近度还可以根据与第三方系统370或其他合适的系统相关联的对象确定。可以建立每个用户对社交图谱实体的总体亲近度、主题、或内容的类型。总体亲近度可以基于与社交图谱实体相关联的动作或关系的持续监测来改变。尽管本公开描述了以特定方式确定特定亲近度,然而本公开考虑了以任何合适方式确定任何合适的亲近度。
在具体实施方式中,社交网络系统360可以使用亲和系数(本文中可以称为“系数”)测量或量化社交图谱亲近度。系数可以表示或量化与在线社交网络相关联的特定对象之间的关系的强度。系数还可以表示基于用户对动作的兴趣测量用户将进行特定动作的可能性的可能性或功能。以这种方法,用户的未来动作可以基于用户的先前动作预测,其中系数可以至少在用户的动作的历史的部分中计算。系数可以用于预测可以在在线社交网络以内或者在在线社交网络之外的任何数量的动作。作为实例而不是作为限制,这些动作可以包括各种类型的通信,诸如发送消息、发布内容、或对内容评论;各种类型观察动作,诸如访问或查看简档页面、媒体、或其他合适的内容;各种类型的关于两个以上社交图谱实体的一致信息,诸如在相同的组群中、在相同的照片中被加标签、在相同的位置处签到、或者参加相同的事件;或者其他合适的动作。尽管本公开描述了以特定方式测量亲近度,然而本公开考虑了以任何合适方式测量亲近度。
在具体实施方式中,社交网络系统360可以使用各种因素来计算系数。这些因素可以包括,例如,用户动作、对象之间的关系的类型、位置信息、其他合适的因素、或它们的任何组合。在具体实施方式中,在计算系数时不同的因素可以被不同地加权。每个因素的权重可以是静态的或者权重可以根据以下因素改变,例如,用户、关系类型、动作类型、用户的位置等。因素的比率可以根据他们的权重组合以确定用户的总系数。作为实例而不是作为限制,特定用户动作可以被分配比率和权重两者,同时与特定用户动作相关联的关系被分配比率和相关的权重(例如,所以总权重100%)。为了计算用户对特定对象的系数,分配到用户的动作的比率可以包括,例如,60%的总系数,同时用户和对象之间的关系可以包括40%的总系数。在具体实施方式中,社交网络系统360在确定用于计算系数的各种因素的权重时可以考虑各种变量,诸如,自访问信息起的时间、衰变因数、访问频率、与信息的关系或者与关于访问的信息的对象的关系、与连接至对象的社交图谱实体的关系、用户动作的短期或长期的平均值、用户反馈、其他合适的变量、或者它们的任何组合。作为实例而不是作为限制,系数可以包括使得由特定动作提供的信号的强度随时间衰减的衰变因数,使得当计算系数时更近的动作更相关。比率和权重可以基于对系数基于的动作的持续追踪连续更新。对每个因素的比率和分配到因素的权重的分配、结合、平均等可以采用任何类型的处理或算法。在具体实施方式中,社交网络系统360可以使用在历史动作和过去的用户响应、或者用户通过暴露他们至各种选项并且测量响应形成的数据上训练的机器学习算法确定系数。尽管本公开描述了以特定方式计算系数,然而本公开考虑了以任何合适方式计算系数。
在具体实施方式中,社交网络系统360可以基于用户的动作计算系数。社交网络系统360可以监测在线社交网络上、第三方系统370上、其他合适的系统上、或者它们的任何组合上的这样的动作。可以追踪或监测任何合适的类型的用户动作。典型的用户动作包括查看简档页面、创建或发布内容、与内容交互、加入组群、列出并确定出席事件、在所在地签到、点赞特定页面、创建页面、以及进行便于社交动作的其他任务。在具体实施方式中,社交网络系统360可以基于用户对特定类型的内容的动作计算系数。内容可以与在线社交网络、第三方系统370、或另一个合适的系统相关联。内容可以包括用户、简档页面、帖子、新闻故事、标题行、即时消息、聊天室谈话、电子邮件、广告、图片、视频、音乐、其他合适的对象、或它们的任何组合。社交网络系统360可以分析用户的动作以确定一个或多个动作是否指示对主题、内容、其他用户等的亲近度。作为实例而不是作为限制,如果用户经常发布与“咖啡”或其变形相关的内容,则社交网络系统360可以确定用户具有对于概念“咖啡”的高系数。特定动作或动作类型可以被分配比其他动作更高的权重和/或比率,这样可以影响总体计算的系数。作为实例而不是作为限制,如果第一用户电子邮件第二用户,则该动作的权重或比率可以是高于第一用户仅查看了第二用户的用户简档页面。
在具体实施方式中,社交网络系统360可以基于特定对象之间的关系类型计算系数。参考社交图谱400,社交网络系统360可以在计算系数时分析连接特定用户节点402和概念节点404的边线406的数量和/或类型。作为实例而不是作为限制,通过配偶类型边线(表示两个用户已结婚)连接的用户节点402可以比通过朋友类型边线连接的用户节点402分配更高的系数。换言之,根据分配到特定用户的动作和关系的权重,总体亲近度可以被确定为关于用户的配偶的内容比关于用户的朋友的内容更高。在具体实施方式中,用户与另一个对象的关系可以根据计算的那个对象的系数影响用户的动作的权重和/或比率。作为实例而不是作为限制,如果用户在第一张照片中被加标签,但仅点赞第二张照片,则社交网络系统360可以确定用户具有对于第一张照片比对于第二张照片更高的系数,因为与内容具有加标签类型的关系可以比与内容具有点赞类型的关系被分配更高的权重和/或比率。在具体实施方式中,社交网络系统360可以基于一个或多个第二用户与特定对象具有的关系计算第一用户的系数。换言之,其他用户与对象具有的连接和系数可以影响第一用户与对象的系数。作为实例而不是作为限制,如果第一用户被连接至或者具有与一个或多个第二用户的高系数,并且那些第二用户被连接到或者具有与特定对象的高系数,则社交网络系统360可以确定第一用户也应当具有与该特定对象的相对高的系数。在具体实施方式中,系数可基于特定对象之间的分离程度。低系数可以表示第一用户将分享在社交图谱400中间接连接至第一用户的用户的感兴趣的内容对象的减少的可能性。作为实例而不是作为限制,在社交图谱400中靠近的社交图谱实体(即,更少的分离程度)可具有比在社交图谱400中的相隔更远的实体更高的系数。
在具体实施方式中,社交网络系统360可以基于位置信息计算系数。地理上靠近彼此的对象可以被考虑为与更远距离的对象相比彼此更相关或更感兴趣。在具体实施方式中,用户对特定对象的系数可基于对象的位置和与用户(或者用户的客户系统330的位置)相关联的当前位置的接近度。第一用户会对靠近第一用户的其他用户或概念更感兴趣。作为实例而不是作为限制,如果用户距机场一英里并且距加油站两英里,则社交网络系统360可以基于机场与用户的接近度确定用户对于机场比对于加油站具有更高的系数。
在具体实施方式中,社交网络系统360可以基于系数信息进行对于用户的特定动作。系数可以用于基于用户对动作的兴趣预测用户是否将进行特定动作。当向用户生成或渲染任何类型的对象时可以使用系数,诸如广告、搜索结果、新闻故事、媒体、消息、通知、或其他合适的对象。系数还可以用于排序并排列这样的对象,视情况而定。以这种方法,社交网络系统360可提供与用户的兴趣和当前情况有关的信息,增加他们寻找到这样的感兴趣的信息的可能性。在具体实施方式中,社交网络系统360可以基于系数信息生成内容。内容对象可以基于用户特定系数提供或选择。作为实例而不是作为限制,系数可以用于生成用户的媒体,其中可以为用户渲染用户具有对于媒体对象的高的总系数的媒体。作为实例而不是作为限制,系数可以用于生成用户的广告,其中可以为用户渲染用户具有对于广告的对象的高的总系数的广告。在具体实施方式中,社交网络系统360可以基于系数信息生成搜索结果。特定用户的搜索结果可以基于对于询问用户的与搜索结果相关联的系数打分或排序。作为实例而不是作为限制,对应于具有更高系数的对象的搜索结果可以在搜索结果页面上排序的高于对应于具有低系数的对象的结果。在具体实施方式中,社交网络系统360可以响应来自特定系统或处理的系数的请求计算系数。为了预测用户在给定的情况下会采取的可能的动作(或者可以是其对象),任何处理可以请求用户的计算的系数。请求还可以包括用于计算系数的各种因素的一组权重。这个请求可以来自在线社交网络、来自第三方系统370(例如,经由API或其他通信信道),或者来自另一个合适的系统上运行的处理。响应请求,社交网络系统360可以计算系数(或者如果先前已计算和存储系数则访问系数信息)。在具体实施方式中,社交网络系统360可以对于特定处理测量亲近度。不同的处理(在线社交网络内部和外部两者)可以请求特定对象或一组对象的系数。社交网络系统360可以提供与请求亲近度测量的特定处理有关的亲近度的测量。以这种方法,每个处理接收处理将使用亲近度的测量的不同的上下文适合的亲近度的测量。
在社交图谱亲近度和亲近度系数方面,具体实施方式可以利用以下专利申请中公开的一个或多个系统、部件、元件、功能、方法、操作、或步骤:于2006年8月11日提交的美国专利申请No.11/503093、于2010年12月22日提交的美国专利申请No.12/977027、于2010年12月23日提交的美国专利申请No.12/978265、以及于2012年10月1日提交的美国专利申请No.13/632869,以上均通过引用结合。
图5示出示例性计算机系统500。在具体实施方式中,一个或多个计算机系统500执行此处所描述或者示出的一个或多个方法的一个或多个步骤。在具体实施方式中,一个或多个计算机系统500提供本文描述或示出的功能。在具体实施方式中,运行在一个或多个计算机系统500上的软件执行本文描述或示出的一个或多个方法的一个或多个步骤或者提供本文描述或示出的功能。具体实施方式包括一个或多个计算机系统500的一个或多个部分。此处,在适当情况下,对计算机系统的引用可包含计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可包括一个或多个计算机系统。
本公开考虑了任何合适数目的计算机系统500。本公开考虑了采用任何合适的物理形式的计算机系统500。作为实例,而不是作为限制,计算机系统500可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(诸如,电脑模组(COM)或系统模组(SOM))、台式计算机系统、便携式或笔记本计算机系统、互动平台、主机、计算机系统网格、移动手机、个人数字助理(PDA)、服务器、平板计算机系统、或者这些的两个以上的组合。在适当的情况下,计算机系统500可包括一个或多个计算机系统500、可以是单一式或者分布式、跨多个位置、跨多台机器、跨多个数据中心、或者驻留在云中,云可包括一个或多个网络中的一个或多个云部件。在适当情况下,一个或者多个计算机系统500可执行本文所描述或者示出的一个或多个方法的一个或者多个步骤,而基本没有空间和时间限制。作为实例而不是作为限制,一个或者多个计算机系统500可实时地或以批量模式执行本文所描述或者示出的一个或多个方法的一个或者多个步骤。在适当情况下,一个或者多个计算机系统500可在不同时间或者在不同地点执行本文所描述或者示出的一个或多个方法的一个或者多个步骤。
在具体实施方式中,计算机系统500包括处理器502、内存504、存储器506、输入/输出(I/O)接口508、通信接口510、以及总线512。尽管本公开描述并且示出了具有特定布置中的特定数目的特定部件的特定计算机系统,然而,本公开考虑了具有任何合适布置中的任何合适数目的任何合适部件的任何合适计算机系统。
在具体实施方式中,处理器502包括用于执行诸如组成计算机程序的指令的硬件。作为实例而不是作为限制,为了执行指令,处理器502可检索(或者获取)来自内部寄存器、内部缓存、内存504、或者存储器506的指令、对其进行解码和执行指令、然后将一条或多条结果写入内部寄存器、内部缓存、内存504、或者存储器506中。在具体实施方式中,处理器502可包括用于数据、指令或地址的一个或多个内部缓存。在适当情况下,本公开内容考虑了包括任何合适数目的任何合适的内部缓存的处理器502。作为实例而不是作为限制,处理器502可包括一个或多个指令缓存、一个或多个数据缓存以及一个或多个转换后备缓冲器(TLB)。指令缓存中的指令可以是内存504或者存储器506中的指令的副本,并且指令缓存可加速处理器502检索那些指令。在数据缓存中的数据可以是在用于在处理器502中执行指令操作的内存504或存储器506中数据的副本;用于由在处理器502中执行的后续指令访问或用于写入内存504或存储器506的在处理器502中执行的先前指令的结果;或者其他合适的数据。数据缓存可加速处理器502读取或者写入操作。TLB可以加速处理器502的虚拟地址转换。在具体实施方式中,处理器502可包括用于数据、指令或地址的一个或多个内部寄存器。在适当情况下,本公开内容考虑了包括任何合适数量的任何合适的内部寄存器的处理器502。在适当情况下,处理器502可包括一个或多个算术逻辑单元(ALU);多核处理器;或者包括一个或多个处理器502。尽管本公开内容描述和说明了特定的处理器,但是本公开内容考虑了任何合适的处理器。
在具体实施方式中,内存504包括用于存储使处理器502执行的指令或者用于使处理器502运行的数据的主存储器。作为实例而不是作为限制,计算机系统500可将来自存储介质506或者另一来源(诸如,另一计算机系统500)的指令上传到内存504中。然后,处理器502可将指令从内存504加载至内部寄存器或内部缓存。为了执行该指令,处理器502可从内部寄存器或者内部缓存检索指令并且将它们进行解码。在指令的执行之中或之后,处理器502可将一个或多个结果(其可以是中间结果或最终结果)写入到内部寄存器或内部缓存。然后,处理器502可将那些结果中的一个或多个写入到内存504。在具体实施方式中,处理器502仅在一个或多个内部寄存器或内部缓存或内存504(与存储器506相反的位置或其他位置)中执行指令,并且仅在一个或多个内部寄存器或内部缓存或内存504(与存储器506相反的位置或其他位置)中操作数据。一个或多个内存总线(每个可包括地址总线和数据总线)可将处理器502耦接至内存504。如下所述,总线512可包括一个或多个内存总线。在具体实施方式中,一个或多个内存管理单元(MMU)位于处理器502与内存504之间,并且促进由处理器502请求的对内存504的访问。在具体实施方式中,内存504包括随机存取存储器(RAM)。在适当情况下,该RAM可以是易失性存储器。在适当情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当情况下,该RAM可以是单端口或多端口的RAM。本公开内容考虑了任何合适的RAM。在适当情况下,内存504可包括一个或多个内存504。尽管本公开内容描述和说明了具体的内存,但是本公开内容考虑了任何合适的内存。
在具体实施方式中,存储器506包括用于数据或者指令的大容量存储器。作为实例而不是作为限制,存储器506可包括硬盘驱动(HDD)、软盘驱动、闪存存储器、光盘、磁光盘、磁带、或者通用串行总线(USB)驱动、或者这些中的两种或者多种的组合。在适当情况下,存储器506可包括可移除的或者不可移除的(或固定的)介质。在适当情况下,存储器506可以在计算机系统500的内部或外部。在具体实施方式中,存储器506是非易失性的固态内存。在具体实施方式中,存储器506包括只读存储器(ROM)。在适当情况下,该ROM可以是掩码编程ROM、可编程ROM(PROM)、可擦PROM(EPROM)、电可擦PROM(EEPROM)、电可改写ROM(EAROM)或闪存或这些的两个或更多的组合。本公开内容考虑了采用任何合适物理形式的大容量存储器506。在适当情况下,存储器506可包括促进处理器502与存储器506之间通信的一个或多存储器控制单元。在适当情况下,存储器506可包括一个或多个存储器506。尽管本公开内容描述和说明了具体的存储器,但是本公开内容考虑了任何合适的存储器。
在具体实施方式中,I/O接口508包括提供用于计算机系统500与一个或多个I/O设备之间通信的一个或多个接口的硬件、软件、或者硬件和软件。在适当情况下,计算机系统500可包括这些I/O设备中的一个或多个。这些I/O装置的一个或多个可使人和计算机系统500之间能够通信。作为实例而不是限制性,I/O设备可包括键盘、按键、麦克风、监控器、鼠标、打印机、扫描仪、扬声器、照相机、触控笔、平板、触摸屏、追踪球、摄影机、另一个合适的I/O设备或它们中两个或更多的组合。I/O设备可包括一个或多个传感器。本公开内容考虑了任何合适的I/O设备和它们的任何合适的I/O接口508。在适当情况下,I/O接口508可包括使处理器502能够驱动这些I/O设备中的一个或多个的一个或多个设备或软件驱动器。在适当情况下,I/O接口508可包括一个或多个I/O接口508。尽管本公开内容描述和示出了具体的I/O接口,但是本公开内容考虑了任何合适的I/O接口。
在具体实施方式中,通信接口510包括提供用于计算机系统500与一个或多个其他计算机系统500或者一个或多个网络之间通信(诸如,基于包的通信)的一个或多个接口的硬件、软件、或者硬件和软件。作为实例而不是作为限制,通信接口510可包括用于与以太网或其他基于有线的网络通信的网络接口控制器(NIC)或网络适配器或者用于与诸如WI至FI网络等无线网络通信的无线NIC(WNIC)或无线适配器。本公开内容考虑了任何合适的网络和它的任何合适的通信接口510。作为示例而非限制性方式,计算机系统500可与自组织网络、个人区域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)或互联网的一个或多个部分或它们的两个或更多的组合通信。一个或多个这些网络的一个或多个部分可以是有线的或无线的。作为实例,计算机系统500可与无线PAN(WPAN)(诸如,BLUETOOTHWPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(诸如,全球移动通信系统(GSM)网络)或其他合适的无线网络或者这些的两个以上的组合通信。在适当情况下,计算机系统500可包括用于这些网络中的任何一个的任何合适的通信接口510。在适当情况下,通信接口510可包括一个或多个通信接口510。尽管本公开描述和示出了具体的通信接口,但是本公开内容考虑了任何合适的通信接口。
在具体实施方式中,总线512包括将计算机系统500的部件耦接至彼此的硬件、软件、或者硬件和软件。作为实例而不是作为限制,总线512可包括图形加速端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、HYPERTRANSPORT(HT)互连、工业标准架构(ISA)总线、INFINIBAND互连、低脚位(LPC)总线、内存总线、微通道结构(MCA)总线、外部设备互连(PCI)总线、PCI快递(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者这些中的两个以上的结合。在适当情况下,总线512可包括一个或多个总线512。尽管本公开内容描述和示出了具体的总线,然而本公开内容考虑了任何合适的总线或者互连。
在本文中,在适当情况下,计算机可读非暂时性存储介质或媒介可包括一个或多个以半导体为基础的或其他集成电路(IC)(诸如,场可编程门阵列(FPGA)或应用专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光盘驱动器、软盘、软磁盘(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、SECUREDIGITAL卡或驱动器、任何其他合适的计算机可读非易失性存储介质或这些中的两个以上任何合适的组合。在适当情况下,计算机可读非易失性存储介质可以是易失性、非易失性、或者易失性与非易失性的组合。
此处,除非另有明确指示或者上下文另有指示,否则,“或者”为包含的而非排外的。因此,此处,除非另有明确指示或者上下文另有指示,否则,“A或者B”指“A,B,或者A和B”。此外,除非另有其他明确表示或通过上下文的其他表示,否则“和”是两者结合及多个。因此,在本文中,除非另有其他明确表示或通过上下文的其他表示,否则“A和B”意味着“结合地或分别地A和B”。
本公开的范围包括本领域普通技术人员会理解的对此处所描述或示出的示例性实施方式的所有更改、替换、变形、变更、以及修改。本公开的范围并不局限于此处所描述或者示出的示例性实施方式。此外,尽管本公开内容将本文中各个实施方式描述并且示出为包括具体部件、元件、功能、操作或步骤,但是本领域普通技术人员应当理解的是,这些实施方式中的任何一个可包括本文中任何地方描述或示出的任何部件、元件、功能、操作或步骤的任何组合或置换。此外,所附权利要求中引用的适配于、布置为、能够、配置为、使能够做、可操作为或有效的执行具体功能的设备或系统或者设备或系统的部件包括设备、系统、部件,不管是否它或者具体功能被激活、接通或解锁,只要该设备、系统或部件被如此适配、布置、能够、配置、能够做、可操作或有效的。

Claims (20)

1.一种方法,包括:
由计算设备接收对于用于与所述计算设备相关联的屏幕的可显示区域中的内容布局的特定内容的请求;
由所述计算设备基于应用定制的再循环政策确定再循环器是否包括适合于再循环或再利用的显示对象,所述显示对象包含所述特定内容;
如果所述再循环器不包括适合于再循环或再利用的所述显示对象:
由所述计算设备创建所述显示对象;以及
由所述计算设备以所述特定内容填充所述显示对象;
如果所述再循环器包括适合于再循环或再利用的显示对象:
由所述计算设备确定所述显示对象是否包含所述特定内容;
如果所述显示对象包含所述特定内容:
由所述计算设备根据需要更新所述显示对象的元素;
如果所述显示对象不包含所述特定内容:
由所述计算设备以所述特定内容填充所述显示对象;
由所述计算设备返回所述显示对象。
2.根据权利要求1所述的方法,进一步包括:
接收不再需要用于所述可显示区域中的所述内容布局的所述显示对象的指示;以及
将所述显示对象存储在所述再循环器中。
3.根据权利要求2所述的方法,进一步包括:
在返回所述显示对象之前将所述显示对象封装在包装对象中,其中,返回所述显示对象包括返回经封装的所述显示对象;以及
在接收到不再需要所述显示对象的指示时,由所述计算设备在将所述显示对象存储在所述再循环器中之前从所述包装对象中提取所述显示对象。
4.根据权利要求3所述的方法,其中,在提取所述显示对象之后,通过由操作系统管理的再循环效用再循环所述包装对象。
5.根据权利要求1所述的方法,其中,所述应用定制的再循环政策包括:应用专用的再循环政策、设备专用的再循环政策、或用户专用的再循环政策。
6.根据权利要求1所述的方法,其中,所述显示对象与检索关键字相关联地存储在所述再循环器中,所述检索关键字包括:所述特定内容在所述内容布局中的位置、内容标识符、基于所述特定内容生成的散列关键字、或者与所述特定内容有关的活动的时间戳。
7.根据权利要求1所述的方法,其中,所述特定内容包括社交网络信息,并且其中,所述显示对象与检索关键字相关联地存储在所述再循环器中,所述检索关键字包括与所述特定内容相关的社交图谱中的一个或多个元素相关联的标识符。
8.一个或多个计算机可读非易失性存储介质,包含软件,所述软件在执行时可操作为:
接收对于用于屏幕的可显示区域中的内容布局的特定内容的请求;
基于应用定制的再循环政策确定再循环器是否包括适合于再循环或再利用的显示对象,所述显示对象包含所述特定内容;
如果所述再循环器不包括适合于再循环或再利用的所述显示对象:
创建所述显示对象;以及
以所述特定内容填充所述显示对象;
如果所述再循环器包括适合于再循环或再利用的显示对象:
确定所述显示对象是否包含所述特定内容;以及
如果所述显示对象包含所述特定内容:
根据需要更新所述显示对象的元素;
如果所述显示对象不包含所述特定内容:
以所述特定内容填充所述显示对象;
返回所述显示对象。
9.根据权利要求8所述的介质,其中,所述软件当执行时进一步可操作为:
接收不再需要用于所述可显示区域中的所述内容布局的所述显示对象的指示;以及
将所述显示对象存储在所述再循环器中。
10.根据权利要求9所述的介质,其中,所述软件当执行时进一步可操作为:
在返回所述显示对象之前将所述显示对象封装在包装对象中,其中,返回的所述显示对象包括经封装的所述显示对象;以及
在接收到不再需要所述显示对象的指示时,在将所述显示对象存储在所述再循环器中之前从所述包装对象中提取所述显示对象。
11.根据权利要求10所述的介质,其中,在提取所述显示对象之后,通过由操作系统管理的再循环效用再循环所述包装对象。
12.根据权利要求8所述的介质,其中,所述应用定制的再循环政策包括:应用专用的再循环政策、设备专用的再循环政策、或用户专用的再循环政策。
13.根据权利要求8所述的介质,其中,所述显示对象与检索关键字相关联地存储在所述再循环器中,所述检索关键字包括:所述特定内容在所述内容布局中的位置、内容标识符、基于所述特定内容生成的散列关键字、或者与所述特定内容有关的活动的时间戳。
14.根据权利要求8所述的介质,其中,所述特定内容包括社交网络信息,并且其中,所述显示对象与检索关键字相关联地存储在所述再循环器中,所述检索关键字包括与所述特定内容相关的社交图谱中的一个或多个元素相关联的标识符。
15.一种系统,包括:
一个或多个处理器;以及
存储器,耦接至所述处理器并且所述存储器包括由所述处理器能够执行的指令,所述处理器在执行所述指令时能够操作为:
接收对于用于所述系统相关联的屏幕的可显示区域中的内容布局的特定内容的请求;
基于应用定制的再循环政策确定再循环器是否包括适合于再循环或再利用的显示对象,所述显示对象包含所述特定内容;
如果所述再循环器不包括适合于再循环或再利用的所述显示对象:
创建所述显示对象;以及
以所述特定内容填充所述显示对象;
如果所述再循环器包括适合于再循环或再利用的显示对象:
确定所述显示对象是否包含所述特定内容;以及
如果所述显示对象包含所述特定内容:
根据需要更新所述显示对象的元素;
如果所述显示对象不包含所述特定内容:
以所述特定内容填充所述显示对象;
返回所述显示对象。
16.根据权利要求15所述的系统,其中,当执行所述指令时所述处理器进一步能够操作为:
接收不再需要用于所述可显示区域中的所述内容布局的所述显示对象的指示;以及
将所述显示对象存储在所述再循环器中。
17.根据权利要求16所述的系统,其中,当执行所述指令时所述处理器进一步能够操作为:
在返回所述显示对象之前将所述显示对象封装在包装对象中,其中,返回的所述显示对象包括经封装的所述显示对象;以及
在接收到不再需要所述显示对象的指示时,在将所述显示对象存储在所述再循环器中之前从所述包装对象中提取所述显示对象。
18.根据权利要求17所述的系统,其中,在提取所述显示对象之后,通过由操作系统管理的再循环效用再循环所述包装对象。
19.根据权利要求15所述的系统,其中,所述应用定制的再循环政策包括:应用专用的再循环政策、设备专用的再循环政策、或用户专用的再循环政策。
20.根据权利要求15所述的系统,其中,所述显示对象与检索关键字相关联地存储在所述再循环器中,所述检索关键字包括:所述特定内容在所述内容布局中的位置、内容标识符、基于所述特定内容生成的散列关键字、或者与所述特定内容有关的活动的时间戳。
CN201480033218.5A 2013-04-11 2014-04-03 应用定制的对象再利用和再循环 Active CN105283841B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/861,250 US9760964B2 (en) 2013-04-11 2013-04-11 Application-tailored object re-use and recycling
US13/861,250 2013-04-11
PCT/US2014/032793 WO2014168809A1 (en) 2013-04-11 2014-04-03 Application-tailored object re-use and recycling

Publications (2)

Publication Number Publication Date
CN105283841A true CN105283841A (zh) 2016-01-27
CN105283841B CN105283841B (zh) 2019-03-12

Family

ID=51686486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480033218.5A Active CN105283841B (zh) 2013-04-11 2014-04-03 应用定制的对象再利用和再循环

Country Status (11)

Country Link
US (2) US9760964B2 (zh)
EP (1) EP2984560B1 (zh)
JP (1) JP6313425B2 (zh)
KR (1) KR101851254B1 (zh)
CN (1) CN105283841B (zh)
AU (1) AU2014251235B2 (zh)
BR (1) BR112015026009A2 (zh)
CA (1) CA2908354C (zh)
IL (1) IL241900B (zh)
MX (1) MX354559B (zh)
WO (1) WO2014168809A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9207986B2 (en) 2013-04-11 2015-12-08 Facebook, Inc. Identifying a next window of idle time to perform pre-generation tasks of content portions outside of the displayable region stored in a message queue
US10594808B2 (en) * 2013-04-23 2020-03-17 Facebook, Inc. Pre-fetching newsfeed stories from a social networking system for presentation to a user
US10679304B2 (en) * 2013-08-07 2020-06-09 Microsoft Technology Licensing, Llc System and method for positioning sponsored content in a social network interface
US10884723B2 (en) * 2016-01-21 2021-01-05 Facebook, Inc. Modification of software behavior in run time
CN107153528A (zh) * 2016-03-02 2017-09-12 阿里巴巴集团控股有限公司 混合模型列表项重用的方法及设备
CN107748741B (zh) * 2017-11-20 2021-04-23 维沃移动通信有限公司 一种文本编辑方法及移动终端
CN111339455B (zh) 2018-12-18 2024-02-23 阿里巴巴集团控股有限公司 浏览器应用加载页面首屏的方法和装置
US11301780B2 (en) 2019-02-15 2022-04-12 Samsung Electronics Co., Ltd. Method and electronic device for machine learning based prediction of subsequent user interface layouts
CN110764779B (zh) 2019-10-21 2023-09-15 百度在线网络技术(北京)有限公司 封装方法、注册方法、装置和渲染设备
CN110727504B (zh) 2019-10-21 2022-04-22 百度在线网络技术(北京)有限公司 代码执行方法、装置和渲染设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436131A (zh) * 2008-12-15 2009-05-20 北大方正集团有限公司 一种交互操作软件中实现重复操作的方法及系统
US20100023690A1 (en) * 2008-07-22 2010-01-28 International Business Machines Corporation Caching dynamic contents and using a replacement operation to reduce the creation/deletion time associated with html elements
CN101866285A (zh) * 2009-04-20 2010-10-20 株式会社日立制作所 软件再利用支援方法以及装置
US20110055683A1 (en) * 2009-09-02 2011-03-03 Facebook Inc. Page caching for rendering dynamic web pages

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07219738A (ja) 1994-02-03 1995-08-18 Matsushita Electric Ind Co Ltd 情報処理装置
US5608909A (en) 1994-04-15 1997-03-04 Microsoft Corporation Method and system for caching presentation data of a source object in a presentation cache
JP2964926B2 (ja) 1995-08-29 1999-10-18 富士ゼロックス株式会社 データベース管理装置及び方法
US5794016A (en) 1995-12-11 1998-08-11 Dynamic Pictures, Inc. Parallel-processor graphics architecture
US6085226A (en) 1998-01-15 2000-07-04 Microsoft Corporation Method and apparatus for utility-directed prefetching of web pages into local cache using continual computation and user models
US6182133B1 (en) 1998-02-06 2001-01-30 Microsoft Corporation Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching
US6173316B1 (en) * 1998-04-08 2001-01-09 Geoworks Corporation Wireless communication device with markup language based man-machine interface
US7392308B2 (en) 1999-09-10 2008-06-24 Ianywhere Solutions, Inc. System, method, and computer program product for placement of channels on a mobile device
JP4344898B2 (ja) 1999-10-05 2009-10-14 富士ゼロックス株式会社 画像処理装置、画像処理方法、画像形成装置
JP4032641B2 (ja) 2000-12-08 2008-01-16 富士ゼロックス株式会社 Gui装置およびgui画面表示プログラムを記録したコンピュータ読み取り可能な記憶媒体
JP3948911B2 (ja) 2001-05-30 2007-07-25 富士通株式会社 視野データに従う仮想空間におけるリンクされた複数の情報オブジェクトの表示
US6912533B1 (en) 2001-07-31 2005-06-28 Oracle International Corporation Data mining agents for efficient hardware utilization
US7146617B2 (en) 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US20040205514A1 (en) 2002-06-28 2004-10-14 Microsoft Corporation Hyperlink preview utility and method
US7548795B2 (en) 2003-03-17 2009-06-16 Mitsubishi Denki Kabushiki Kaisha Numerical control system
GB2418509A (en) 2003-06-03 2006-03-29 Forbes Holton Norris Iii Flexible, dynamic menu-based web-page architecture
US7870100B2 (en) 2003-06-10 2011-01-11 International Business Machines Corporation Methods and systems for publishing electronic documents with automatic fragment detection
EP1652071A2 (en) 2003-07-11 2006-05-03 Computer Associates Think, Inc. System and method for dynamic generation of a graphical user interface
US9098475B2 (en) 2003-08-20 2015-08-04 Xerox Corporation Apparatus and method for generating reusable composite components during dynamic document construction
US8103742B1 (en) 2003-11-24 2012-01-24 Amazon Technologies, Inc. Deferred and off-loaded rendering of selected portions of web pages to incorporate late-arriving service data
US7430340B2 (en) 2004-03-16 2008-09-30 Advanced Tracking Technologies, Inc. Geographic information data base engine
WO2006055751A2 (en) 2004-11-16 2006-05-26 Compography, Inc. Display/layout methods and apparatuses including content items and display containers
US7975019B1 (en) 2005-07-15 2011-07-05 Amazon Technologies, Inc. Dynamic supplementation of rendered web pages with content supplied by a separate source
JP2007058755A (ja) 2005-08-26 2007-03-08 Dainippon Screen Mfg Co Ltd 電子掲示板システム、電子掲示板システムのサーバー、電子掲示板システムのクライアントにおけるスレッド表示処理方法、およびプログラム
US8402094B2 (en) 2006-08-11 2013-03-19 Facebook, Inc. Providing a newsfeed based on user affinity for entities and monitored actions in a social network environment
US20070297560A1 (en) 2006-03-03 2007-12-27 Telesecurity Sciences, Inc. Method and system for electronic unpacking of baggage and cargo
US8102398B2 (en) 2006-03-03 2012-01-24 Ati Technologies Ulc Dynamically controlled power reduction method and circuit for a graphics processor
JP4947407B2 (ja) 2006-03-29 2012-06-06 日本電気株式会社 高効率キャッシュシステム、高効率キャッシュ格納方法、及び高効率キャッシュ操作プログラム
JP2007286745A (ja) 2006-04-13 2007-11-01 Canon Inc 画像形成装置、画像形成方法及びプログラム
EP2023292B1 (en) 2006-05-11 2020-02-26 Panasonic Intellectual Property Management Co., Ltd. Processing device
US8112751B2 (en) 2007-03-01 2012-02-07 Microsoft Corporation Executing tasks through multiple processors that process different portions of a replicable task
US7818194B2 (en) 2007-04-13 2010-10-19 Salesforce.Com, Inc. Method and system for posting ideas to a reconfigurable website
US8832650B2 (en) 2007-09-26 2014-09-09 Ncr Corporation Automated code generation for an automated teller machine
US20090182618A1 (en) 2008-01-16 2009-07-16 Yahoo! Inc. System and Method for Word-of-Mouth Advertising
WO2010001324A2 (en) 2008-06-30 2010-01-07 Mominis Ltd Method of generating and distributing a computer application
US20100281224A1 (en) 2009-05-01 2010-11-04 International Buisness Machines Corporation Prefetching content from incoming messages
US9015619B2 (en) 2009-06-17 2015-04-21 Oracle International Corporation Pop-up panel for multiple messages
US8024374B2 (en) * 2009-07-24 2011-09-20 Oracle International Corporation Computer object conversion using an intermediate object
US8364611B2 (en) * 2009-08-13 2013-01-29 Yahoo! Inc. System and method for precaching information on a mobile device
EP2357575A1 (en) 2010-02-12 2011-08-17 Research In Motion Limited Image-based and predictive browsing
US10304066B2 (en) 2010-12-22 2019-05-28 Facebook, Inc. Providing relevant notifications for a user based on location and social information
US20120166532A1 (en) 2010-12-23 2012-06-28 Yun-Fang Juan Contextually Relevant Affinity Prediction in a Social Networking System
JP2012148429A (ja) 2011-01-17 2012-08-09 Canon Inc 印刷データ処理装置、キャッシュ処理方法及びプログラム
US8880592B2 (en) 2011-03-31 2014-11-04 Cloudera, Inc. User interface implementation for partial display update
US9152616B2 (en) 2011-04-28 2015-10-06 Flipboard, Inc. Template-based page layout for web content
US20120284662A1 (en) 2011-05-04 2012-11-08 Microsoft Corporation Virtualized caching of user interface controls
JP5276145B2 (ja) * 2011-06-13 2013-08-28 株式会社ソニー・コンピュータエンタテインメント リスト表示装置
KR101799978B1 (ko) 2011-06-17 2017-11-22 삼성전자주식회사 타일 근접성을 사용하는 타일 기반 렌더링 방법 및 장치
US9852054B2 (en) * 2012-04-30 2017-12-26 Vmware, Inc. Elastic caching for Java virtual machines
US9654591B2 (en) 2012-10-01 2017-05-16 Facebook, Inc. Mobile device-related measures of affinity
KR20140122292A (ko) 2013-03-28 2014-10-20 삼성전자주식회사 디스플레이 장치의 디스플레이 방법 및 디스플레이 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100023690A1 (en) * 2008-07-22 2010-01-28 International Business Machines Corporation Caching dynamic contents and using a replacement operation to reduce the creation/deletion time associated with html elements
CN101436131A (zh) * 2008-12-15 2009-05-20 北大方正集团有限公司 一种交互操作软件中实现重复操作的方法及系统
CN101866285A (zh) * 2009-04-20 2010-10-20 株式会社日立制作所 软件再利用支援方法以及装置
US20110055683A1 (en) * 2009-09-02 2011-03-03 Facebook Inc. Page caching for rendering dynamic web pages

Also Published As

Publication number Publication date
MX2015014305A (es) 2016-04-20
JP6313425B2 (ja) 2018-04-18
AU2014251235A1 (en) 2015-11-26
CN105283841B (zh) 2019-03-12
EP2984560A4 (en) 2016-12-14
KR101851254B1 (ko) 2018-04-23
MX354559B (es) 2018-03-09
CA2908354C (en) 2018-07-31
EP2984560B1 (en) 2021-09-15
US20140306978A1 (en) 2014-10-16
CA2908354A1 (en) 2014-10-16
EP2984560A1 (en) 2016-02-17
US9760964B2 (en) 2017-09-12
US10210590B2 (en) 2019-02-19
AU2014251235B2 (en) 2018-02-15
WO2014168809A1 (en) 2014-10-16
IL241900B (en) 2018-08-30
BR112015026009A2 (pt) 2017-07-25
US20170316539A1 (en) 2017-11-02
JP2016514880A (ja) 2016-05-23
KR20150140376A (ko) 2015-12-15

Similar Documents

Publication Publication Date Title
CN105283841A (zh) 应用定制的对象再利用和再循环
CN105103084B (zh) 基于位置或者速度改变用户界面
CN103597512B (zh) 从有机活动流创建赞助故事单元
CN104737565B (zh) 关于预测移动装置用户的未来状态的方法
CN105210392B (zh) 通信方法和计算机可读非暂时性存储媒体
CN105283845B (zh) 显示对象预生成
CN105917330B (zh) 用于在线社交网络的客户端搜索模板
CN104781813B (zh) 用于结构化搜索查询的语法模型
CN111602152A (zh) 用于对不同内容进行排名的机器学习模型
CN105122235B (zh) 推断上下文的用户状态和持续时间
US10032176B2 (en) Real time statistics extraction from arbitrary advertising audiences
CN105210049B (zh) 通信方法、通信系统和计算机可读永久性储存介质
CN105493057B (zh) 利用精确性控制的内容选择
CN109791680A (zh) 在线社交网络上的视频关键帧显示
CN105229485A (zh) 多因素位置验证
CN106164906A (zh) 用于计算网页上的电话号码的显著性分值并且自动将其注释/附加至广告的方法
CN105378727A (zh) 将逆算子用于在在线社交网络上查询
CN107210948A (zh) 用户感知的通知递送
CN107111859A (zh) 针对网元的社交评分
CN105556512A (zh) 用于分析关注实体特性的设备、系统以及方法
CN102227744A (zh) 用于在社交网络中分发的可定制内容
JP2016502167A (ja) 通知中のスポンサー記事
CN105283835B (zh) 应用程序定制的对象预填充
CN105210017A (zh) 实时的人脸
CN107924413A (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
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Yuan platform Co.

Address before: California, USA

Patentee before: Facebook, Inc.

CP01 Change in the name or title of a patent holder