Static rankings for search queries on online social networks
18 claims: 11 independent, 7 dependent
- 11つまたは複数のコンピューティング・デバイスが、 オンライン・ソーシャル・ネットワークの第1のユーザのクライアント・システムから第1のクエリを受け取る工程であって、前記第1のクエリは複数のクエリ・タイプのうちの第1のクエリ・タイプのクエリである、工程と、 1つまたは複数のデータ・ストアの前記第1のクエリにマッチするオブジェクトからなるオブジェクトのリストを識別する識別工程であって、各データ・ストアは、複数のオブジェクト・タイプのうちの特定のオブジェクト・タイプの1つまたは複数のオブジェクトを記憶しており、各オブジェクトは、少なくとも部分的には前記オブジェクトの所定の静的ランクに基づき識別され、前記所定の静的ランクは静的スコア付けアルゴリズムに基づき計算され、各オブジェクトに対する前記静的ランクは、少なくとも部分的には前記第1のクエリ・タイプに基づく、工程と、 最 終スコア付けアルゴリズムに基づき 、識別された前記オブジェクトの各々 に対する最終ランク を計算する 工程と、 識別された前記 オブジェクト の各々 の前記静的ランクと前記最終ランクとの比較に基づいて、前記静的スコア付けアルゴリズムを修正する工程であって、前記静的スコア付けアルゴリズムは、 識別された 前記オブジェクトの前記静的ランクと前記最終ランクとの間の差を減少させるように修正される、工程と、を行う方法。
- 2前記識別工程は、 各データ・ストアから前記第1のクエリにマッチする指定数のオブジェクトを取り出す工程であって、各データ・ストアに対するオブジェクトの前記指定数は、前記データ・ストアによって記憶されているオブジェクトのオブジェクト・タイプに基づく、工程と、 前記1つまたは複数のデータ・ストアからの取り出された前記オブジェクトを集約する工程と、を含む請求項 1 に記載の方法。
- 3少なくとも部分的には修正された前記静的スコア付けアルゴリズムに基づき、前記データ・ストアのうちの1つまたは複数に対する前記指定数のオブジェクトのうちの1つまたは複数を修正する工程、をさらに備える請求項 2 に記載の方法。
- 4第1の構文解析アルゴリズムを使用して前記第1のクエリを構文解析し、前記第1のクエリに基づいてクエリ・コマンドを生成する工程であって、前記クエリ・コマンドは、1つまたは複数のクエリ制約を含み、各クエリ制約は、前記第1の構文解析アルゴリズムによって指定される指定オブジェクト・タイプの指定数のオブジェクトについてのクエリ制約である、工程をさらに備える、請求項 1 に記載の方法。
- 5前記識別工程は、 前記第1のクエリに対応する前記クエリ・コマンドの前記クエリ制約の前記指定オブジェクト・タイプのオブジェクトを記憶している1つまたは複数のデータ・ストアにアクセスする工程と、 前記第1のクエリに対応する前記クエリ・コマンドの前記クエリ制約の少なくとも一部分にマッチする前記データ・ストアの1つまたは複数のオブジェクトを識別する工程と、を含む、請求項 4 に記載の方法。
- 6前記指定オブジェクト・タイプは、ユーザ、フォト、投稿、ウェブページ、アプリケーション、ロケーション、およびユーザ・グループからなる群から選択される、請求項 4 に記載の方法。
- 7各データ・ストアは、ユーザ・データ・ストア、フォト・データ・ストア、投稿データ・ストア、ウェブページ・データ・ストア、アプリケーション・データ・ストア、ロケーション・データ・ストア、およびユーザ・グループ・データ・ストアからなる群から選択される、請求項 1 に記載の方法。
- 8識別された前記オブジェクトのうちの 1つまたは複数のオブジェクトに対する1つまたは複数の静的ランクを各オブジェクトの前記静的ランクと前記最終ランクとの比較に基づき修正する静的ランク修正工程をさらに備える、請求項1に記載の方法。
- 9前記静的ランク修正工程は、 識別された前記 オブジェクト の各々 について、該オブジェクトの前記所定の静的ランクと該オブジェクトの計算された前記最終ランクとの間の差を決定する工程と、 決定された前記差に基づいて、前記オブジェクトのうちの1つまたは複数の前記静的ランクのうちの1つまたは複数を修正する工程と、を含む、請求項 8 に記載の方法。
- 10修正された前記静的スコア付けアルゴリズムに基づき 識別された前記オブジェクトのうちの 1つまたは複数のオブジェクトに対する1つまたは複数の修正された静的ランクを計算する工程、をさらに備える請求項1に記載の方法。
- 11各オブジェクトの前記所定の静的ランクは、前記静的スコア付けアルゴリズムに基づき計算される前記オブジェクトの所定の静的スコアに基づく、請求項1に記載の方法。
- 12各オブジェクトの前記最終ランクは、前記最終スコア付けアルゴリズムに基づき計算される前記オブジェクトの最終スコアに基づく、請求項1に記載の方法。
- 13複数のノードと前記複数のノードを接続する複数のエッジとを含むソーシャル・グラフにアクセスする工程をさらに備え、前記複数のノードのうちの2つのノードの間の前記エッジの各々は、前記2つのノードの間の一次の隔たりを表し、前記複数のノードは、 オンライン・ソーシャル・ネットワークの 前記 第1のユーザに対応する第1のノードと、 前記オンライン・ソーシャル・ネットワークに関連付けられている複数のオブジェクトにそれぞれ対応する複数の第2のノードと、を含み、 前記第1のクエリは前記第1のノードに対応し、 識別された前記 オブジェクト の各々 は、前記複数の第2のノードのうちの特定の第2のノードに対応する、請求項1に記載の方法。
- 14前記第1のクエリは、前記複数のノードからの1つまたは複数の選択されたノードと前記複数のエッジからの1つまたは複数の選択されたエッジとに対する参照を含む構造化クエリである、請求項 13 に記載の方法。
- 15前記第1のクエリは、1つまたは複数のn-グラムを含む非構造化テキスト・クエリである、請求項1に記載の方法。
- 16前記第1のクエリは、オンライン・ソーシャル・ネットワークのユーザからのアーカイブされたクエリを含む、請求項1に記載の方法。
- 17ソフトウェアを具現化する1つまたは複数の非一時的なコンピュータ可読記憶媒体であって、前記ソフトウェアは、実行されたとき、 オンライン・ソーシャル・ネットワークの第1のユーザのクライアント・システムから第1のクエリを受け取る工程であって、前記第1のクエリは複数のクエリ・タイプのうちの第1のクエリ・タイプのクエリである、工程と、 1つまたは複数のデータ・ストアの前記第1のクエリにマッチするオブジェクトからなるオブジェクトのリストを識別する識別工程であって、各データ・ストアは、複数のオブジェクト・タイプのうちの特定のオブジェクト・タイプの1つまたは複数のオブジェクトを記憶しており、各オブジェクトは、少なくとも部分的には前記オブジェクトの所定の静的ランクに基づき識別され、前記所定の静的ランクは静的スコア付けアルゴリズムに基づき計算され、各オブジェクトに対する前記静的ランクは、少なくとも部分的には前記第1のクエリ・タイプに基づく、工程と、 最 終スコア付けアルゴリズムに基づき 、識別された前記オブジェクトの各々 に対する最終ランク を計算する 工程と、 識別された前記 オブジェクト の各々 の前記静的ランクと前記最終ランクとの比較に基づいて、前記静的スコア付けアルゴリズムを修正する工程であって、前記静的スコア付けアルゴリズムは、 識別された 前記オブジェクトの前記静的ランクと前記最終ランクとの間の差を減少させるように修正される、工程と、を行うように動作可能である、媒体。
- 181つまたは複数のプロセッサと、前記プロセッサに結合されており前記プロセッサによって実行可能な命令を含むメモリとを備えるシステムであって、前記プロセッサは、前記命令を実行するとき、 オンライン・ソーシャル・ネットワークの第1のユーザのクライアント・システムから第1のクエリを受け取る工程であって、前記第1のクエリは複数のクエリ・タイプのうちの第1のクエリ・タイプのクエリである、工程と、 1つまたは複数のデータ・ストアの前記第1のクエリにマッチするオブジェクトからなるオブジェクトのリストを識別する識別工程であって、各データ・ストアは、複数のオブジェクト・タイプのうちの特定のオブジェクト・タイプの1つまたは複数のオブジェクトを記憶しており、各オブジェクトは、少なくとも部分的には前記オブジェクトの所定の静的ランクに基づき識別され、前記所定の静的ランクは静的スコア付けアルゴリズムに基づき計算され、各オブジェクトに対する前記静的ランクは、少なくとも部分的には前記第1のクエリ・タイプに基づく、工程と、 最 終スコア付けアルゴリズムに基づき 、識別された前記オブジェクトの各々 に対する最終ランク を計算する 工程と、 識別された前記 オブジェクト の各々 の前記静的ランクと前記最終ランクとの比較に基づいて、前記静的スコア付けアルゴリズムを修正する工程であって、前記静的スコア付けアルゴリズムは、 識別された 前記オブジェクトの前記静的ランクと前記最終ランクとの間の差を減少させるように修正される、工程と、を行うように動作可能である、システム。
Independent claims18
73 paragraphs, as filed
0001This disclosure generally relates to searching for objects and performing searches within social graphs and social networking environments.
0002A social networking system (which can include a social networking website) is one in which a user of the social networking system (such as a person or organization) uses the social networking system and through that social networking system. It can be possible to interact with each other. The social networking system can use input from a user to create a user profile associated with that user and store it within the social networking system. The user profile can include demographic information, communication channel information, and information about the user's personal interests. Social networking systems use input from users to create and store records of their relationships with other users of the social networking system, as well as services (eg, wall postings, photo sharing). , Event organization, messaging, games, or advertising) can also be provided to facilitate social interaction between users.
0003Social networking systems can send content or messages related to their services to a user's mobile or other computing device through one or more networks. Users can also install software applications on their mobile or other computing devices to access their user profile and other data in social networking systems. Social networking systems can generate a personalized set of content objects to display to a user, such as a news feed of an aggregated story of other users connected to the user.
0004Social graph analysis looks at social relationships in terms of network theory, which consists of nodes and edges. Nodes represent individual actors in the network, and edges represent relationships between actors. The resulting graph-based structure is often very complex. It is possible that there are many types of nodes, and many types of edges for connecting nodes together. The social graph, in its simplest form, is a map of all the edges that are relevant between all the nodes being investigated.
0005<figref num="1">Diagram showing an exemplary network environment associated with a social networking system.</figref><figref num="2">Diagram showing an exemplary social graph.</figref><figref num="3">Diagram showing exemplary partitioning for storing objects in a social networking system.</figref><figref num="4">Diagram showing an exemplary web page of an online social network.</figref><figref num="5A">Diagram showing an exemplary query for a social network.</figref><figref num="5B">Diagram showing an exemplary query for a social network.</figref><figref num="6">A diagram illustrating an exemplary method for improving the static scoring of objects for search queries.</figref><figref num="7">The figure which shows the example method for improving the parsing of a search query.</figref><figref num="8">The figure which shows an exemplary computer system.</figref>
0006In certain embodiments, users of social networking systems can use search queries to search for objects associated with the system.
0007In certain embodiments, the social networking system can improve the processing of search queries by improving the static score / rank of objects stored in the data store. When a social networking system retrieves an object from a data store in response to a query, the object is associated with a given static object (for example, based on how the object is indexed). It can be retrieved based on the target score or static rank. Objects retrieved from all data stores are then retrieved by social networking systems (based on various factors, such as relevance to queries, social graph affinity, user history, etc.). It can be aggregated and scored, and then these final scores or ranks can be used to determine which objects will be generated as search results displayed to the query user. Is. However, this process can be inefficient if the social networking system has to retrieve excessive objects from the data store to generate a sufficient number of search results. This process can be improved if the static rank of the object matches more closely to the final rank determined by the social networking system when generating search results for the user. This allows social networking systems to reduce the number of matching objects that need to be retrieved in order to respond to a query and generate a sufficient number of search results. To improve the static scores of indexed objects in one or more data stores, social networking systems use the static scores of objects retrieved from the data stores to search results for users. Generate To calculate the static score (or static score) of an indexed object so that the static score matches the final score more closely compared to the final score calculated by the social networking system. The scoring algorithm used) can be modified or adjusted. For example, a social networking system can access a set of archived search queries and optimize the static scores of the objects retrieved by those queries. This is done for different queries or query types so that the static score can be optimized to match the final score as closely as possible for different queries.
0008In certain embodiments, social networking systems can improve the processing of search queries by improving how query commands are generated. Once the query is parsed and a query command is generated, the query command can be specified to retrieve a certain number of objects of one or more object types. The number of objects of each object type to retrieve may be specified by the parsing configuration parameters of the parsing algorithm used to generate the query command. The retrieved objects may then be scored / ranked and the top N scored objects may be sent to the query user. However, this process is social to retrieve the top N scored objects. Can be inefficient, especially in relation to inefficient use of processing power, when the networking system has to retrieve an excessive number of object types from a particular data store. This process retrieves some or all of the objects with the best final score, allowing the quality of the generated search results sent back to the user to be maintained, while retrieving the objects from each data store. It can be improved if the number can be reduced. To reduce the number of objects retrieved, the social networking system compares the number of objects retrieved from each data store with the final score for those objects calculated by the social networking system. You can modify the syntax analysis algorithm so that the query command requires fewer objects while maintaining virtually the same quality of search results. For example, a social networking system can access a set of archived search queries and optimize parsing algorithms based on the final scores of the objects retrieved by these queries. Archived queries may be submitted to one or more data stores, thereby based on the number of objects to retrieve specified by the query command generated for those queries by the parsing algorithm. , The result of the first number can be retrieved. Each retrieved object may then be scored to determine the final score / rank, and then the final score / rank is compared to the number of retrieved objects and the top N scoring results. It is possible to determine whether it is possible to reduce the number of objects retrieved for a particular object type while retrieving a sufficient number of them. When possible, the parsing algorithm was generated in response to a particular query
0009Figure 1 shows an exemplary network environment 100 associated with a social networking system. The network environment 100 includes a client system 130, a social networking system 160, and a third party system 170 that are connected to each other by a network 110. Although FIG. 1 shows a particular configuration of client system 130, social networking system 160, third party system 170, and network 110, the present disclosure presents client system 130, social networking system 160. , Third-party system 170, and any suitable configuration of network 110 is envisioned. By way of example, but not limited to, a plurality of client systems 130, social networking systems 160, and third-party systems 170 can bypass network 110 and connect directly to each other. As another example, a plurality of client systems 130, social networking systems 160, and third-party systems 170 are physically or logically co-located with each other in whole or in part. It is possible. Moreover, FIG. 1 shows a specific number of client systems 130, social networking systems 160, third party systems 170, and networks 110, but the present disclosure shows any suitable number of clients. It envisions system 130, social networking system 160, third-party system 170, and network 110. By way of example, the network environment 100 can include a plurality of client systems 130, a social networking system 160, a third party system 170, and a network 110.
0010The present disclosure assumes any suitable network 110. By way of example, one or more parts of network 110 are ad hoc networks, intranets, extranets, virtual private networks (VPNs), local area networks (LANs), and wireless LANs (WLANs). ), Wide area network Includes a WAN, Wireless WAN (WWAN), Metropolitan Area Network (MAN), Part of the Internet, Part of the Public Switched Telephone Network (PSTN), Cellular Telephone Network, or a combination of multiple of these. Can be done. The network 110 can include one or more networks 110.
0011The link 150 can connect the client system 130, the social networking system 160, and the third party system 170 to or to the communication network 110. This disclosure assumes any suitable link 150. In certain embodiments, the one or more links 150 are one or more wired links (eg, Digital Subscriber Line (DSL) or Data Over Cable Service Interface Specification (DOCSIS)). , Wireless link (eg Wi-Fi or Worldwide Interoperability for Microwave Access (WiMAX)), or Optical Link (eg Synchronous Optical Network (SONET) or Synchronous Digital Hierarchy (SDH)) )including. In certain embodiments, one or more links 150 are ad hook networks, intranets, extranets, VPNs, LANs, WLANs, WANs, WWANs, MANs, parts of the Internet, parts of the PSTN, cellular, respectively. Includes a technology-based network, a satellite communications technology-based network, another link 150, or a combination of multiple such links 150. The link 150 does not necessarily have to be the same throughout the network environment 100. The one or more first links 150 can differ from the one or more second links 150 in one or more points.
0012In certain embodiments, the client system 130 may perform hardware, software, or embedded logic components, or a plurality of such components, capable of performing the appropriate functions implemented or supported by the client system 130. It can be an electronic device that contains a combination of components. By way of example, the client system 130 is a computer system such as a desktop computer, notebook computer or laptop computer, netbook, tablet computer, ebook reader, GPS device, camera, mobile phone. It can include information terminals (PDAs), handheld electronic devices, cellular phones, smartphones, other suitable electronic devices, or any suitable combination thereof. This disclosure assumes any suitable client system 130. The client system 130 can allow network users of the client system 130 to access the network 110. The client system 130 can allow its users to communicate with other users of other client systems 130.
0013In certain embodiments, the client 130 can include a web browser 132 such as MICROSOFT INTERNET EXPLORER, GOOGLE CHROME, or MOZILLA FIREFOX, one or more add-ons, plug-ins, or TOOLBAR or YAHOO TOOLBAR. It can have other extensions. The user of client system 130 enters a uniform resource locator (URL) or other address that directs the web browser 132 to a particular server, such as server 162, or a server associated with third-party system 170. The web browser 132 can generate a Hypertext Transfer Protocol (HTTP) request and communicate the HTTP request to the server. The server can accept the HTTP request and communicate one or more Hypertext Markup Language (HTML) files to the client system 130 in response to the HTTP request. Client system 130 A web page can be rendered based on an HTML file from the server for presentation to the user. This disclosure assumes any suitable web page file. As an example, but not limited to, a web page can be rendered from an HTML file, an extensible hypertext markup language (XHTML) file, or an extensible markup language (XML) file, depending on your specific needs. Such pages are not limited, for example, scripts such as JAVASCRIPT®, JAVA®, scripts written in MICROSOFT SILVERLIGHT, marks such as AJAX (Asynchronous JAVASCRIPT® and XML). You can also execute combinations of XML and scripts. As used herein, a reference to a web page includes, where appropriate, one or more corresponding web page files (which can be used by the browser to render that web page). The reverse is also true.
0014In certain embodiments, the social networking system 160 can host an online social network.It can be a computing system that can be network-addressed. The social networking system 160 generates social networking data, such as user profile data, concept profile data, social graph information, or other suitable data related to online social networks. It is possible to do, remember, receive, and send. The social networking system 160 can be accessed directly by or through the network 110 by other components of the network environment 100. In certain embodiments, the social networking system 160 may include one or more servers 162. Each server 162 can be a single server or a distributed server across multiple computers or multiple data centers. The server 162 is not limited, and includes, for example, a web server, a news server, a mail server, a message server, an advertisement server, a file server, an application server, an Exchange server, a database server, a proxy server, and a book. It can be of various types, such as another server suitable for performing the functions or processes described in the specification, or any combination thereof. In certain embodiments, each server 162 contains hardware, software, or built-in logic components, or a combination of a plurality of such components, to perform the appropriate functions implemented or supported by the server 162. Can include. In certain embodiments, the social networking system 164 may include one or more data stores 164. Data store 164 can be used to store different types of information. Specific fruit In embodiments, the information stored in the data store 164 can be organized according to a particular data structure. In certain embodiments, each data store 164 can be a relational database. In certain embodiments, the client system 130, the social networking system 160, or the third party system 170 manages, retrieves, modifies, or adds information stored in the data store 164. An interface can be provided that allows you to do or remove it.
0015In certain embodiments, the social networking system 160 can store one or more social graphs in one or more data stores 164. In certain embodiments, the social graph is a plurality of nodes (multiple user nodes (each corresponding to a particular user), or multiple concept nodes (each corresponding to a particular concept). Can include) and can include multiple edges that connect the nodes together. Social network The system 160 can provide users of online social networks with the ability to communicate and interact with other users. In certain embodiments, users join an online social network through social networking system 160 and then connect to multiple other users of social networking system 160 that they want to connect with. (Ie, relationships) can be added. As used herein, the term "friend" may refer to any other user of a social networking system 160 with whom a user is connected, associated, or forming a relationship through the social networking system 160. it can.
0016In certain embodiments, the social networking system 160 can provide the user with the ability to take action on various types of items or objects supported by the social networking system 160. By way of example, but not limited to, those items and objects are groups or social networks to which users of the social networking system 160 can belong, events or calendar entries that users may be interested in, Computer-based applications that you can use, transactions that allow you to buy or sell items through services, interactions with advertisements that you can perform, or other suitable items or objects. Can include. The user is connected to the social networking system 160 in the social networking system 160 or through an external system of the third party system 170 (separate from the social networking system 160 and through the network 110). ) Can interact with anything that can be represented by.
0017In certain embodiments, the social networking system 160 is capable of linking different entities. As an example, but not limited to, social networking system 160 can allow users to interact with each other and receive content from third party systems 170 or other entities, or users. Can interact with these entities through application programming interfaces (APIs) or other communication channels.
0018In certain embodiments, the third-party system 170 includes one or more types of servers, one or more data stores, one or more interfaces (including, but not limited to, APIs). It can include one or more web services, one or more content sources, one or more networks, or any other suitable component (for example, a server can communicate with). The third party system 170 can be operated by a different entity than the entity that operates the social networking system 160. However, in certain embodiments, the social networking system 160 and the third party system 170 work together to provide social networking services to users of the social networking system 160 or the third party system 170. Can function. In this sense, the social networking system 160 provides a platform, or backbone, that other systems, such as the third-party system 170, can use to provide users with social networking services and features over the Internet. be able to.
0019In certain embodiments, the third party system 170 is a third party co. Can include content object providers. Third-party content object providers can include one or more sources of content objects, which can be communicated to client system 130. As an example, but not limited, a Content Object is information about an object or activity that is of interest to the user, such as movie start time, movie reviews, restaurant reviews, restaurant menus, product information and reviews, or more. Appropriate information can be included. As another example, but not limited, content objects can include incentive content objects such as coupons, discount tickets, gift certificates, or other suitable incentive objects.
0020In certain embodiments, the social networking system 160 also includes user-generated content objects, which can enhance the user's interaction with the social networking system 160. .. The content generated by the user can include anything that the user can add, upload, send, or "post" to the social networking system 160. As an example, but not limited, the user communicates posts from client system 130 to social networking system 160. Posts may include data such as status updates or other textual data, location information, photos, videos, links, music, or other similar data or media. Content can also be added to social networking system 160 by third parties through "communication channels" such as news feeds or streams.
0021In certain embodiments, the social networking system 160 can include various servers, subsystems, programs, modules, logs, and data stores. In certain embodiments, the social networking system 160 is a web server, action logger, API request server, relevance and ranking engine, content object classifier, notification controller, action log, third party. Content Object Exposure Log, Guess Module, Authorization / Privacy Server, Search Module, Advertising Targeting Module, User Interface Module, User Profile Store, Connection Store, Third Party Content Store, or Location Store Can include one or more of them. The Social Networking System 160 includes the appropriate components, such as network interfaces, security mechanisms, load balancers, failover servers, management and network operations consoles, other appropriate components, or any appropriate of them. Combinations can also be included. In certain embodiments, the social networking system 160 may include one or more user profile stores for storing user profiles. A user profile may be, for example, biographical information, demographic information, behavioral information, social information, or other type of descriptive information, such as work experience, educational background, hobbies or preferences, interests, familiarity, or location. Can be included. Interest information can include interests related to one or more categories. The category can be general or specific. As an example, but not limited, users like an article about a brand of shoes. The category can be the brand, or the general category of "shoes" or "clothing". A connection store can be used to store connection information about a user. Connection information can indicate users who have similar or common work experience, group membership, hobbies, educational background, are somehow related, or share common attributes. it can. Connection information is available to various users And can also include user-defined connections between content (both internal and external). A web server can be used to link the social networking system 160 to one or more client systems 130 or one or more third party systems 170 through network 110. The web server can include a mail server or other messaging function to receive and forward messages between the social networking system 160 and one or more client systems 130. The API request server can allow the third party system 170 to access information from the social networking system 160 by calling one or more APIs. Action loggers can be used to receive communications from web servers regarding user actions on or outside the social networking system 160. Along with the action log, it is possible to keep a third-party content object log about the user's exposure to the third-party content object. The notification controller can provide information about the content object to the client system 130. The information can be pushed to the client system 130 as a notification, or the information can be pulled from the client system 130 in response to a request received from the client system 130. An authorization server can be used to enforce the privacy settings of one or more users of the social networking system 160. A user's privacy settings identify how certain information associated with a user can be shared. The authorization server allows the user to set the appropriate privacy, for example. Opt-in or opt-out of recording your actions by social networking system 160 or sharing with other systems (eg, third-party system 170), such as by setting a default. Can be made possible to do. A third-party content object store can be used to store content objects received from a third party, such as third-party system 170. A location store can be used to store the location information received from the client system 130 associated with the user. Advertising pricing modules can combine social information, current time, location information, or other relevant information to serve relevant ads to users in the form of notifications.
0022Figure 2 shows an exemplary social graph 200. In certain embodiments, the social networking system 160 may store one or more social graphs 200 in one or more data stores. In certain embodiments, the social graph 200 includes a plurality of nodes (which may include a plurality of user nodes 202, or a plurality of concept nodes 204) and a plurality of edges 206 connecting the nodes. be able to. The exemplary social graph 200 shown in FIG. 2 is shown in a two-dimensional visual map display for teaching purposes. In certain embodiments, the social networking system 160, client system 130, or third party system 170 can access the social graph 200 and associated social graph information for the appropriate application. The nodes and edges of the social graph 200 can be stored as data objects, for example, in a data store (such as a social graph database). Such a data store can include one or more searchable or queryable indexes of one or more nodes or edges of the Social Graph 200.
0023In certain embodiments, user node 202 is social networking. -It can support users of system 160. By way of example, but not limited to, a user interacts with or communicates with or through a social networking system 160, an individual (human user), an entity (eg, a corporate, business, or third-party application). ), Or a group (for example, an individual or an entity). In certain embodiments, if a user registers for an account with the social networking system 160, the social networking system 160 will create a user node 202 for that user and that user. Node 202 can be stored in one or more data stores. The user and user node 202 described herein can, where appropriate, indicate a registered user and a user node 202 associated with the registered user. In addition or as an alternative, the users and user nodes 202 described herein can indicate users who are not registered with the social networking system 160, where appropriate. In certain embodiments, the user node 202 can be associated with information provided by the user or information collected by various systems, including the social networking system 160. As an example, but not limited, users may use their name, profile image, contact information, date of birth, gender, marital status, family status, place of employment, educational background, preferences, interests, or other demographic information. Can be provided. In certain embodiments, the user node 202 can be associated with one or more data objects that correspond to the information associated with the user. In certain embodiments, the user node 202 is on one or more web pages.
0024In certain embodiments, the concept node 204 can accommodate the concept. As an example, but not limited, the concept is a location (eg, a movie theater, restaurant, landmark, or city, etc.), a website (eg, a website associated with the social network system 160, or a web application server. A third-party website associated with, an entity (such as a person, company, group, sports team, or celebrity), within a social networking system 160, or an external server such as a web application server. Resources that can be placed on top (eg audio files, sales files, digital photos, text files, structured documents, or applications, etc.), physical or intellectual property (eg, sculpture, painting, etc.) It can accommodate movies, games, songs, ideas, photographs, or writings), games, activities, ideas or theories, other suitable concepts, or multiple such concepts. Concept node 204 can be associated with information about the concept provided by the user or information collected by various systems, including the social networking system 160. As an example, but not limited, concept information can be associated with a name or title, one or more images (eg, a book cover image), a location (eg, an address or geographic location), (URL). It can include (possible) websites, contact information (eg, phone numbers or email addresses), other suitable concept information, or any suitable combination of such information. In certain embodiments, the concept node 204 can be associated with one or more data objects that correspond to the information associated with the concept node 204. Noh. In certain embodiments, the concept node 204 can accommodate one or more web pages.
0025In certain embodiments, the nodes in the social graph 200 can represent or be represented by a web page (sometimes referred to as a "profile page"). Profile page is Social Network It can be hosted by the system 160 or accessible to the social networking system 160. The profile page can also be hosted on a third party website associated with the third party server 170. As an example, but not limited to, a profile page that corresponds to a particular external web page can be that particular external web page, and that profile page corresponds to a particular concept node 204. Can be done. The profile page can be viewed by all or a selected subset of other users. By way of example, but not limited to, user node 202 may have a corresponding user profile page, on which the corresponding user adds content, makes a statement. , Or other forms of self-expression. As another example, but not limited to, a concept node 204 can have a corresponding concept profile page, in which one or more users, especially the concept node 204. It is possible to add content, make statements, or express oneself in relation to the corresponding concept.
0026In certain embodiments, concept node 204 may represent a third-party web page or resource hosted by third-party system 170. A third-party web page or resource represents, among other things, content, selectable or other icons, or actions or activities (eg, implemented in JAVASCRIPT®, AJAX, or PHP code. Can include other interactive objects (which can be). As an example, but not limited, a third-party web page contains selectable icons such as Like, Check In, Eat, Recommend, or another appropriate action or activity. be able to. A user browsing a third-party web page takes an action by selecting one of those icons (for example, "eat") and tells the client system 130 that user's action. The indicated message can be sent to the social networking system 160. In response to that message, the social networking system 160 has an edge (eg, "eat") between the user node 202, which corresponds to the user, and the concept node 204, which corresponds to the third-party web page or resource. Edges) can be created to store Edge 206 in one or more data stores.
0027In certain embodiments, a pair of nodes in the social graph 200 can be connected to each other by one or more edges 206. The edge 206 connecting the pair of nodes can represent the relationship between those pair of nodes. In certain embodiments, the edge 206 can include or represent one or more data objects or attributes that correspond to the relationships between a pair of nodes. By way of example, the first user can indicate that the second user is a "friend" of the first user. In response to this display, the social networking system 160 can send a "friend request" to a second user. If the second user approves the "friend request", the social networking system 160 will change the user node 202 of the first user to the user node 202 of the second user in the social graph 200. You can create an edge 206 to connect to and store the edge 206 as social graph information in one or more of the data stores 24. In the example of FIG. 2, the social graph 200 shows the edge 206 showing the friendship between the user node 202 of user "A" and the user node 202 of user "B", and the user "C". Includes an edge indicating a friendship between user node 202 and user node 202 of user "B". This disclosure is for specific user node 2 02 Describes or shows a particular edge 206 with a particular attribute that connects the user nodes 202, but the present disclosure describes any suitable edge 206 with any suitable attribute that connects the user nodes 202 to each other. I'm assuming. As an example, but not limited to, Edge 206 is a friendship, family relationship, business or employment relationship, fan relationship, follower relationship, visitor relationship, subscriber relationship, hierarchical relationship, reciprocal relationship, non-reciprocal relationship, another appropriate relationship. It can represent a type of relationship, or multiple such relationships. Moreover, while the present disclosure is generally described as connecting nodes to each other, the present disclosure is also described as connecting users or concepts. As used herein, references to connected users or concepts are referred to, where appropriate, to those users or concepts connected within the social graph 200 by one or more edges 206. Corresponding nodes can be shown.
0028In certain embodiments, the edge 206 between user node 202 and concept node 204 is executed by the user associated with user node 202 for the concept associated with concept node 204. Can represent a particular action or activity that has been performed. As an example, not a limitation, users like the concept, as shown in Figure 2. You may have done "expressing", "going", "playing", "listening", "cooking", "working", or "watching", each of them Can correspond to an edge type or subtype. The concept profile page corresponding to concept node 204 contains, for example, a selectable "check-in" icon (for example, a clickable "check-in" icon) or a selectable "add to favorites" icon. be able to. Similarly, after the user clicks on these icons, the social networking system 160 can create a "favorite" edge or a "check-in" edge in response to the user's action corresponding to each action. .. As another example, but not limited to, a user (user "C") may use a particular application (an online music application, SPOTIFY) to listen to a particular song ("Imagine"). In this case, the social networking system 160 is between the user node 202 corresponding to the user and the concept node 204 corresponding to the song and application (as shown in FIG. 2). ) You can create a "listened" edge 206 and a "used" edge to indicate that the user listened to the song and used the application. Moreover, the social networking system 160 "played" (as shown in Figure 2) between the concept node 204 corresponding to the song and the concept node 204 corresponding to the application. You can create an edge 206 to indicate that the particular song was played by that particular application. In this case, the "played" edge 206 is an action performed on an external audio file (song "Imagine") by an external application (SPOTIFY). Corresponds to Although the present disclosure describes a particular edge 206 with specific attributes connecting the user node 202 and the concept node 204, the present disclosure describes any particular edge 206 connecting the user node 202 and the concept node 204. Assuming any suitable edge 206 with the appropriate attributes. Moreover, while the present disclosure describes the edge between user node 202 representing a single relationship and concept node 204, the present disclosure describes user node 202 representing one or more relationships. The edge between and the concept node 204 is envisioned. As an example, without limitation, Edge 206 can represent both that the user has liked a particular concept and that he or she has used that particular concept. .. Alternatively, another edge 206 may be a user node 202 (as shown in FIG. 2 between a user node 202 representing user "E" and a concept node 204 representing "SPOTIFY"). Each spotify with concept node 204 Can be expressed both as a statement and the use of that particular concept. Alternatively, another edge 206 may be a user node 202 (as shown in FIG. 2 between a user node 202 representing user "E" and a concept node 204 representing "SPOTIFY"). Each spotify with concept node 204 Can be expressed both as a statement and the use of that particular concept. Alternatively, another edge 206 may be a user node 202 (as shown in FIG. 2 between a user node 202 representing user "E" and a concept node 204 representing "SPOTIFY"). Each spotify with concept node 204 It can represent an ip relationship (or a collection of a single relationship).
0029In certain embodiments, the social networking system 160 can create an edge 206 between the user node 202 and the concept node 204 within the social graph 200. Not limited, but as an example, a user browsing the concept profile page (for example, by using a web browser hosted by the user's client system 130 or a dedicated application) is "Like". You can indicate that you like the concept represented by Concept Node 204 by clicking or selecting the Like icon, and you can click or select the Like icon. , A user's client system 130 can be made to send a message to the social networking system 160 indicating that the user likes the concept associated with the concept profile page. In response to that message, the social networking system 160 likes between the user and the concept node 204. An edge 206 can be created between the user node 202 and the concept node 204 associated with that user, as indicated by the edge 206. In certain embodiments, the social networking system 160 may store the edge 206 in one or more data stores. In certain embodiments, the edge 206 can be automatically formed by the social networking system 160 in response to a particular user action. By way of example, if the first user uploads an image, watches a movie, or listens to a song, Edge 206 is the user node that corresponds to the first user. It can be formed between 202 and the concept nodes 204 corresponding to those concepts. Although the present disclosure describes forming a particular edge 206 in a particular fashion, the disclosure contemplates forming any suitable edge 206 in any suitable fashion.
0030Figure 3 shows exemplary partitioning for storing objects in the social networking system 160. Multiple data stores 164 (which may also be called "verticals") can store objects in social networking system 160. The amount of data stored in a data store (eg, data about the social graph 200) can be very large. As an example, but not limited to, the social graph used by Facebook®, Inc. of Menlo Park, California, USA is 10.<sup>8</sup>Numerous nodes of order and 10<sup>10</sup>Can have a large number of edges on the order of. Typically, a collection of big data, such as a big database, can be divided into a large number of partitions. Partitioning can improve performance when accessing the database because the index for each partition of the database is smaller than the index for the entire database. Partitioning can also improve performance and reliability when accessing the database, as partitions can be distributed across many servers. In general, the database can be partitioned by storing the rows (or columns) of the database separately. In certain embodiments, the database can be partitioned based on object type. Data objects are stored in multiple partitions, each partition holding a single object type of data object. In certain embodiments, the social networking system 160 responds to a search query by submitting the search query to a particular partition that stores objects of the same object type as the expected search query results. Can be taken out. The present disclosure describes the storage of an object in a particular manner, but the present disclosure describes the storage of an object in any suitable manner. Also intend.
0031In certain embodiments, each object may correspond to a particular node in the social graph 200. An edge 206 connecting one node to another may indicate the relationship between the objects corresponding to these nodes. In addition to storing objects, a particular data store may also store social graph information related to the object. Alternatively, social graph information about a particular object may be stored in a different data store than the object. The social networking system 160 may update the search index of a data store based on newly received objects and the relationships associated with the received objects.
0032In certain embodiments, each data store 164 may be configured to store a particular object of a plurality of object types in its own data storage device 340. Object types are, for example, user, photo, post, comment, message, event list, web page, application, user profile page, concept profile page, user group, audio file, video, offer / It may be a coupon, or another suitable type of object. Although the present disclosure describes a particular type of object, the present disclosure also contemplates any suitable type of object. As an example, but not limited to, the user vertical P1 shown in FIG. 3 may store a user object. Each user object stored in user vertical P1 may include an identifier (eg, a string), a username, and a profile picture of a user on an online social network. The social networking system 160 provides user objects such as language, location, academic background, contact information, interests, dating status, friends / contact list, family member list, and privacy settings in User Vertical P1. The associated information can also be stored. By way of example, but not by limitation, the post vertical P2 shown in FIG. 3 may store a post object. Each post object stored in the post vertical P2 may include an identifier and a text string for the post posted to the social networking system 160. The social networking system 160 is a post vertical P2 user who likes the time stamp, creator, privacy settings, and posts. It can also remember information associated with post objects, such as the number of "", comments, number of comments, and location. As an example, but not limited to, a photo vertical P3 may store a photo object (or other media type object such as video or audio). Each photo object stored in Photo Vertical P3 may have an identifier and a photo. The social networking system 160 is a photo object in Photo Vertical P3, such as time stamps, creators, privacy settings, users tagged in photos, users who like photos, comments, etc. Information associated with can also be stored. In certain embodiments, each data store may also be configured to store information associated with each stored object in the data storage device 340.
0033In certain embodiments, the objects stored in each vertical 164 can be indexed by one or more search indexes. The search index may be hosted by each index server 330 with one or more computing devices (eg, servers). The index server 330 provides data (eg, photos and information associated with photos) submitted to social networking system 160 by users of social networking system 160 (or third-party systems) or other processes. Based on that, the search index can be updated. Index server 330 goes around the search index It can also be updated on a timely basis (eg, every 24 hours). The index server 330 receives a query with a search term, accesses search results from one or more search indexes corresponding to the search term, and retrieves the search results. In some embodiments, the vertical corresponding to a particular object type comprises multiple physical or logical partitions, each with its own search index.
0034In certain embodiments, the social networking system 160 can receive search queries from PHP (Hypertext Preprocessor) process 310. PHP process 310 can include one or more computing processes hosted by one or more servers 162 of the social networking system 160. The search query may be a text string or structured query submitted to the PHP process by a user of social networking system 160 (or third party system 170) or another process.
0035Further information regarding indexes and search queries is incorporated herein by reference to U.S. Patent Application No. 13/560212, filed July 27, 2012, and U.S. Patent Application No. 13/560212, filed July 27, 2012, respectively. It can be found in 13/560901, US Patent Application 13/723861 filed December 21, 2012, and US Patent Application 13/870113 filed April 25, 2013.
0036Figure 4 shows an exemplary web page of an online social network. In certain embodiments, the user can submit a query to the social networking system 160 by entering text in the query field 450. Users of online social networks provide search engines with short phrases often called "search queries" that describe an object or object type, thereby providing a specific content object associated with the online social network. You can search for ("object") or content object type ("object type") (eg, user, concept, web page, external content or resource). The query can be a text query and can include one or more strings (which can contain one or more n-grams). In general, the user enters any string containing one or more characters in the query field 450 to search for objects on the social networking system 160 that match at least a portion of the string. be able to. The social networking system 160 can then search one or more vertical 164s to identify objects that match the query. Search engines use a variety of search algorithms to perform query-based searches, and the objects most likely to be associated with the search query (for example, user profile pages, content profile pages, or external resources). Can generate search results that identify. To perform a search, the user can enter or send a search query to a search engine. In response, search engines identify one or more resources that are likely to be associated with a search query. Each of these resources may be individually referred to as a "search result", or collectively referred to as a "search results" in response to that search query. .. The identified object may include, for example, a social graph element (ie, User Node 202, Concept Node 204, Edge 206), a profile page, an external web page, or any combination thereof. The social networking system 160 can then generate a search result web page with search results corresponding to the identified object and send the search result web page to the user. In certain embodiments, search engines search for online social networks. It can be limited to the objects associated with the computer. However, in certain embodiments, search engines may search for objects associated with other sources, such as third-party systems 170, the Internet or the World Wide Web, or other suitable sources. Good. Although this disclosure describes contacting the online social network 160 in a particular manner, this disclosure intends to contact the online social network 160 in any suitable manner.
0037In connection with the search query and search results, in certain embodiments, US Patent Application No. 11/503093, filed August 11, 2006, each of which is incorporated herein by reference, on April 19, 2010. US Patent Application No. 12/763162 filed, US Patent Application No. 12/977027 filed on December 22, 2010, US Patent Application No. 12/978265 filed on December 23, 2010, One or more systems or components disclosed in US Patent Application No. 13/556072 filed on July 23, 2012, and US Patent Application No. 13/732101 filed on December 31, 2010. , Elements, functions, methods, actions, or processes may be utilized.
0038In certain embodiments, the social networking system 160 can improve the processing of search queries by improving the static score / rank of objects stored in data store 164. When the social networking system 160 retrieves an object from data store 164 in response to a query, the object is associated with the object (for example, based on how the object is indexed). It can be retrieved based on the static score or static rank of. Objects retrieved from all data stores 164 are then aggregated by the social networking system 160 (based on various factors, such as relevance to queries, social graph affinity, user history, etc.). It can be scored and then these final scores or ranks can be used to determine which objects will be generated as search results displayed to the query user. .. However, this process can be inefficient if the social networking system 160 has to retrieve an excessive number of objects from the data store 164 to generate a sufficient number of search results. As an example, but not as a limitation, the social networking system 160 retrieves 100 matching objects from a particular data store 164, where each object has an associated static rank. If 100 objects are scored by the social networking system 160, the top 5 ranked objects are, for example, objects with static ranks of 4, 12, 20, 78, and 95. possible. This process is the final rank determined by the social networking system 160 when generating search results for users. Can be improved if the static rank of the object matches more closely. This allows the social networking system 160 to reduce the number of matching objects that need to be retrieved in order to respond to a query and generate a sufficient number of search results. To improve the static score of indexed objects in one or more data stores 164, the social networking system 160 gives the static score of objects retrieved from data store 164 to the user. The static score (or static) of the indexed object is compared to the final score calculated by the social networking system 160 to generate search results so that the static score matches the final score more closely. The scoring algorithm used to calculate the score) can be modified or adjusted. As an example, but not exclusively, the social networking system 160 accesses a set of archived search queries and optimizes the static scores of the objects retrieved by these queries. The scoring algorithm used to calculate) can be modified or adjusted. As an example, but not exclusively, the social networking system 160 accesses a set of archived search queries and optimizes the static scores of the objects retrieved by these queries. The scoring algorithm used to calculate) can be modified or adjusted. As an example, but not exclusively, the social networking system 160 accesses a set of archived search queries and optimizes the static scores of the objects retrieved by these queries. Can be Archived queries may be submitted to one or more data stores 164, which allows a first number of results to be retrieved based on their static rank. Each retrieved object may then be scored to determine the final score / rank, then the final score / rank may be compared to the static rank, and the static rank matches the final rank more closely. It can be changed to. This is done for different queries or query types so that the static score can be optimized to match the final score as closely as possible for different queries. Although this disclosure describes improving static ranking in a particular manner, this disclosure intends to improve static ranking in any suitable manner.
0039In certain embodiments, the social networking system 160 can improve the processing of search queries by improving how query commands are generated. When the query is parsed and a query command is generated, the query command is a specific number of objects of one or more object types (for example, the number to score for each vertical 164 accessed). Can be specified to retrieve. As an example, in response to the text query "Steph", but not as a limitation, the social networking system 160 has 10 primary connections, 50 secondary connections, of query users from user vertical 164. And can generate query commands requesting 20 pages from page vertical 164. The number of objects of each object type to retrieve may be specified by the parsing configuration parameters of the parsing algorithm used to generate the query command. The retrieved objects may then be scored / ranked and the top N scored objects may be sent to the query user. However, this process is especially processed when the social networking system 160 has to retrieve an excessive number of object types from a particular vertical 164 in order to retrieve the top N scored objects ( CPU) can be inefficient in relation to inefficient use of power. This process retrieves some or all of the objects with the best final score / rank, allowing objects to be retrieved from each vertical 164 while maintaining the quality of the generated search results sent back to the user. Can be improved if the number of can be reduced. As an example, but not as a limitation, to continue with the previous example, 10 primary connections, 25 secondary connections (instead of 50), and 10 pages (instead of 20). It may be possible to generate search results of the same quality (ie, still retrieve virtually all of the top N scored objects) by generating a query command that requests only. To reduce the number of objects retrieved, the social networking system 160 compares the number of objects retrieved from each vertical 164 with the final score for those objects calculated by the social networking system 160. You can modify the parsing algorithm so that the query command requires fewer objects, while still maintaining virtually the same quality of search results. As an example, but not as a limitation, the social networking system 160 accesses a set of archived search queries and optimizes parsing algorithms based on the final scores of the objects retrieved by these queries. Can be done. Archived queries may be submitted to one or more data stores 164, thereby based on the number of objects to retrieve specified by the query command generated for those queries by the parsing algorithm. The result of the first number can be retrieved. Each retrieved object may then be scored to determine the final score / rank, and then the final score / rank is compared to the number of retrieved objects and the top N scoring results. Is it possible to retrieve (or at least a sufficient number of the top N results) while reducing the number of objects retrieved for a particular object type? The algorithmic networking system 160 compares the number of objects retrieved from each vertical 164 with the final score for those objects calculated by the social networking system 160, resulting in virtually the same quality of search results. You can modify the parsing algorithm so that the query command requires fewer objects, while still maintaining it. As an example, but not as a limitation, the social networking system 160 accesses a set of archived search queries and optimizes parsing algorithms based on the final scores of the objects retrieved by these queries. Can be done. Archived queries may be submitted to one or more data stores 164, thereby based on the number of objects to retrieve specified by the query commands generated for those queries by the parsing algorithm. The result of the first number can be retrieved. Each retrieved object may then be scored to determine the final score / rank, and then the final score / rank is compared to the number of retrieved objects and the top N scoring results. Is it possible to retrieve (or at least a sufficient number of the top N results) while reducing the number of objects retrieved for a particular object type? The algorithmic networking system 160 compares the number of objects retrieved from each vertical 164 with the final score for those objects calculated by the social networking system 160, resulting in virtually the same quality of search results. You can modify the parsing algorithm so that the query command requires fewer objects, while still maintaining it. As an example, but not as a limitation, the social networking system 160 accesses a set of archived search queries and optimizes parsing algorithms based on the final scores of the objects retrieved by these queries. Can be done. Archived queries may be submitted to one or more data stores 164, thereby based on the number of objects to retrieve specified by the query commands generated for those queries by the parsing algorithm. The result of the first number can be retrieved. Each retrieved object may then be scored to determine the final score / rank, and then the final score / rank is compared to the number of retrieved objects and the top N scoring results. Is it possible to retrieve (or at least a sufficient number of the top N results) while reducing the number of objects retrieved for a particular object type? You can access and optimize parsing algorithms based on the final scores of the objects retrieved by these queries. Archived queries may be submitted to one or more data stores 164, thereby based on the number of objects to retrieve specified by the query command generated for those queries by the parsing algorithm. The result of the first number can be retrieved. Each retrieved object may then be scored to determine the final score / rank, and then the final score / rank is compared to the number of retrieved objects and the top N scoring results. Is it possible to retrieve (or at least a sufficient number of the top N results) while reducing the number of objects retrieved for a particular object type? You can access and optimize parsing algorithms based on the final scores of the objects retrieved by these queries. Archived queries may be submitted to one or more data stores 164, thereby based on the number of objects to retrieve specified by the query command generated for those queries by the parsing algorithm. The result of the first number can be retrieved. Each retrieved object may then be scored to determine the final score / rank, and then the final score / rank is compared to the number of retrieved objects and the top N scoring results. Is it possible to retrieve (or at least a sufficient number of the top N results) while reducing the number of objects retrieved for a particular object type? Can be decided. If possible, the parsing algorithm may be modified to specify that the query command generated in response to a particular query retrieves fewer objects or object types. Although this disclosure describes improving how query commands are generated in a particular fashion, this disclosure describes how query commands can be improved in any suitable format. Attempt to improve.
0040In certain embodiments, the social networking system 160 can access a set of online social network queries received from one or more users of the online social network. Search queries submitted by users are stored by the social networking system 160. It may be retrieved later to perform experiments that optimize the processing of the search query. As an example, but not as a limitation, a set of queries can include multiple archived queries from multiple users of an online social network. Tests that use archived queries, for example, have the social networking system 160 execute the query, parse the query and analyze the objects retrieved by the query, and then optimize certain aspects of the query process. It may be done by doing. Although this disclosure describes accessing a particular set of queries in a particular manner, the present disclosure intends to access any suitable set of queries in any suitable manner.
0041Figures 5A-5B show exemplary queries for online social networks. In certain embodiments, in response to a text query received from a first user (ie, the querying user), the social networking system 160 parses the text query and addresses the particular social graph element. You can identify the part of the text query that you want to do. The social networking system 160 then generates a set of structured queries, where each structured query corresponds to one of the possible matching social graph elements. These structured queries can be based on columns generated by the grammatical model, as given in natural language syntax with reference to the relevant social graph elements. These structured queries can be presented to the query user, who chooses from among the structured queries and the selected structured query is executed by the social networking system 160. Can show what to do. Figures 5A-5B show the various exemplary text queries in query field 450 and the various structured queries generated in response to the dropdown menu 400 (but other suitable graphical users). Interface is also possible). By providing suggested structured queries in response to the user's text query, the social networking system 160 allows users of the online social network to be represented in the social graph 200. It can provide a powerful way to search for elements based on their social graph attributes and their relationships to various social graph elements. Structured queries can allow query users to search for content that is connected to a particular user or concept in the social graph 200 by a particular edge type. Structured queries (for example, Crier) It may be sent to the first user (by the input process) and displayed in the drop-down menu 400, where the first user selects the appropriate query and searches for the desired content. be able to. Some of the benefits of using structured queries described herein are in the limited information of finding users of online social networks and the relationship of content to various social graph elements. Based on, it involves collecting virtual indexes of that content from online social networks, or finding content that is associated with you and / or your friends. This disclosure describes the generation of a particular structured query in a particular fashion, as shown in Figures 5A-5B, The present disclosure contemplates generating any suitable structured query in any suitable manner.
0042In certain embodiments, the social networking system 160 can receive unstructured text queries from the query / first user (corresponding to the first user node 202). As an example, but not as a limitation, the first user is (1) the primary friend of the first user and (2) associated with Stanford University (ie, User Node 202 is the school " You may want to search for other users (connected by an edge 206 to the concept node 204 corresponding to "Stanford"). So the first user is the text query "friends Stanford," as shown in Figures 5A-5B. Stanford) "can be entered in query field 450. When the query user enters this text query into the query field 450, the social networking system 160 can provide a variety of proposed structured queries, as shown in the dropdown menu 400. As used herein, an unstructured text query refers to a simple text string entered by the user. Text queries can, of course, be structured around standard language / grammar rules (eg, English grammar). However, text queries are usually not structured with respect to social graph elements. In other words, a simple text query usually does not include an embedded reference to a particular social graph element. Thus, as used herein, a structured query refers to a query that contains a reference to a particular social graph element that allows a search engine to search based on the identified element. Moreover, text queries do not have to be structured on the basis of formal query syntax. In other words, a simple text query is not necessarily in the form of a query command that can be executed directly by a search engine (for example, the text query "Friend Stanford" is parsed as a query in a social graph database. A query command that can be executed "intersect (which can form school (Stanford University), friends (me)"). Although this disclosure describes receiving a particular query in a particular manner, this disclosure Intended to receive any appropriate query in any appropriate format.
0043In certain embodiments, the social networking system 160 parses an unstructured text query (also referred to simply as a search query) received from a first user (ie, the query user) and one or more. Can identify n-grams. In general, an n-gram is a contiguous sequence of n items from a given sequence of text or speech. These items may be characters, phonemes, syllables, letters, words, base pairs, prefixes, or other identifiable items from a text or phonetic sequence. The n-gram can contain one or more characters (alphabetic characters, numbers, punctuation marks, etc.) of the text entered by the querying user. A size 1 n-gram may be called a "unigram", a size 2 n-gram may be called a "bigram" or a "digram", and a size 3 n-gram may be called a "trigram". The same applies below. Each n-gram can contain one or more parts from a text query received from the query user. In certain embodiments, each n-gram can include a string entered by a first user (eg, one or more characters in the text). As an example, but not exclusively, the social networking system 160 can parse the text query "friend Stanford" to identify the following n-grams: friend; Stanford; friend Stanford. As another example, but not as a limitation, the social networking system 160 parses the text query "friends in palo alto" into the following n-gram, i.e. friends. ; Of (in); Palo (palo); Alto (alto); friends (friends in); Palo (in pal) o); Palo alto; friends in palo; in palo also; friends in palo alto can be identified. In certain embodiments, in certain embodiments, each n-gram can contain a contiguous sequence of n items from a text query. Although this disclosure describes parsing a particular query in a particular manner, the disclosure contemplates parsing any suitable query in any suitable manner. In connection with element discovery and parsing of search queries, in certain embodiments, U.S. Patent Application No. 13/556072, filed July 23, 2012, each incorporated herein by reference, 12/2012. One or more systems, components, elements, functions, methods, operations, or processes disclosed in US Patent Application No. 13/732101 filed on 31 May may be utilized.
0044In certain embodiments, the social networking system 160 can generate one or more structured queries. Structured queries may be based on natural language strings generated by one or more grammars in the grammar model. Each structured query can include a reference to one or more of the identified nodes or one or more of the identified edges 206. This type of structured query is performed by the social networking system 160 searching for content connected to or otherwise associated with identified user node 202 and identified edge 206. , Allows you to search for resources and content associated with online social networks (eg, profile pages, etc.) more efficiently. As an example, in response to the text query "Show me my girlfriend's friend", but not as a limitation, the social networking system 160 can generate the structured query "Stephanie's friends". , Where "friend" and "stephanie" in the search query are references that correspond to a particular social graph element. The reference to "Stephanie" corresponds to a particular user node 202 (where the social networking system 160 parses the n-gram "My Girlfriend" and the user to the user "Stephanie". References to "friends" (corresponding to node 202) correspond to friend type edge 206 connecting that user node 202 to another user node 202 (ie, edge 206 is "Stephanie's" 1 Connect to the next friend). When this structured query is executed, the social networking system 160 can identify one or more user nodes 202 connected by friend type edge 206 to the user node 202 corresponding to "Stephanie". it can. As another example, with limitation Instead, in response to the text query "Friends who like Facebook", the social networking system 160 likes the structured query "Facebook". "Friends" can be generated, and "Friends", "Like", and "Facebook" in this structured query are as described above. References that correspond to specific social graph elements (ie, friend type edge 206, "like" type edge 206, and concept node 204 corresponding to the company "Facebook"). Although this disclosure describes generating a particular structured query in a particular manner, the disclosure contemplates generating any suitable structured query in any suitable manner.
0045In certain embodiments, the social networking system 160 can receive a choice of one of the structured queries from the query user. The nodes and edges referenced in the received structured query may be referred to as the selected node and the selected edge, respectively. As an example, but not as a limitation, the web browser 132 on the query user's client system 130 displays the sent structured query in the dropdown menu 300, as shown in FIGS. 5A-5B. Then the user clicks on it or in some other form (for example, the user's key) You can select it (by simply pressing Enter on the board) to indicate the specific structured query you want the social networking system 160 to execute. When a particular structured query is selected, the user's client system 130 can request or otherwise instruct the social networking system 160 to execute the selected structured query. Although this disclosure describes receiving a particular structured query selection in a particular manner, the present disclosure intends to receive any suitable structured query selection in any suitable manner.
0046Further information on structured queries and grammatical models is incorporated herein by reference to U.S. Patent Application No. 13/556072 filed July 23, 2012, and U.S. Patent filed November 12, 2012, respectively. It is found in Application No. 13/674695 and US Patent Application No. 13/731866 filed December 31, 2012.
0047In certain embodiments, the social networking system 160 can generate query commands based on queries received from query users (eg, text queries or structured queries). Query commands can then be used to search for objects in data store 164 of social networking system 160. In certain embodiments, query commands may be provided for searches using a search index on one or more data stores or verticals in social networking system 160. The query command can contain one or more query constraints. Each query constraint can be identified by the social networking system 160 based on the parsing of the query by the parsing algorithm. Each query constraint can be a request for a particular object type. In certain embodiments, the query command can include query constraints in symbolic or S-expressions. The social networking system 160 parses the structured query "Photos I like" and _ by the query command (photos_liked_by: <me> (<I> :). It can be _photo)) that has been "liked". The query command (photos_liked_by: <me>) is the user with a single result type of photo (ie, the <me> corresponding to the query user. ) Shows a query for photos that have been liked. Query constraints are, for example, social graph constraints (eg, requests for a particular node or node type, requests for nodes connected to a particular edge or edge type), object constraints (eg, a particular object, or Includes a request for an object type), a location constraint (for example, a request for an object or social graph entity associated with a particular geographic location), other suitable constraints, or any combination of these. Can be done. In certain embodiments, the query command can include a prefix and an object. An object can correspond to a particular node in the social graph 200, while a prefix connects to a particular node in the social graph 200 (indicating a particular type of relationship) to a particular edge 206 or edge.. It can correspond to the type. As an example, but not as a limitation, the query command (pages_liked_by: <user> (_pages liked by <user>:)) was liked by the prefix pages_liked_by (). ), And the object <user>. Although this disclosure describes generating a particular query command in a particular manner, the present disclosure intends to generate any suitable query command in any suitable manner. In certain embodiments, the social networking system 160 can generate query commands that include a "weak and" (WAND) or "strong or" (SOR) operator. .. Further information regarding WAND and SOR operators can be found in U.S. Patent Application No. 13/560901, filed July 27, 2012, incorporated herein by reference. including. Although this disclosure describes generating a particular query command in a particular manner, the present disclosure intends to generate any suitable query command in any suitable manner. In certain embodiments, the social networking system 160 can generate query commands that include a "weak and" (WAND) or "strong or" (SOR) operator. .. For more information on WAND and SOR operators, see U.S. Patent Application No. 13/560901, filed July 27, 2012, incorporated herein by reference. And found in US Patent Application No. 13/887049, filed May 3, 2012.
0048In certain embodiments, the parsing algorithm used to generate the query command can include one or more parsing configuration parameters. Parsing configuration parameters can specify how to generate query commands for a particular type of query received from the user. The parsing configuration parameter specifies, for example, an instruction to generate a query command with a specified number of query constraints on a specified number of objects of a specified object type that should be retrieved from a specified number of data stores 164. Can be done. In other words, the parsing configuration parameter can specify the type of object to be searched and the type / number of vertical 164 to be accessed. For each vertical 164 accessed, the parsing configuration parameter can specify the number of objects to retrieve from each vertical 164. As an example, the social networking system 160 can generate the following query command in response to the search query input "kais", but not as a limitation.
0049((AND (name: "kais")) (OR friends of :( friends of: <me>): num_to_score: 50) (OR pages: <>: num_to_score: 25)) This query command contains the first query constraint (OR friends of: (friends of: <me>): num_to_score: 50), which accesses the user vertical 164 with the string "kais (kais)". Instructs the social networking system 160 to search for users who are friends of the query user's friends that match "Kais)" and retrieve the top 50 results. Second query constraint (OR 25) instructs the social networking system 160 to access the web page vertical 164, search for pages that match the string "kais", and retrieve the top 25 results. However, this process can be inefficient if the social networking system 160 has to retrieve an excessive number of objects of a particular object type in order to generate a sufficient number of search results. To improve the amount of processing (CPU) power consumed when processing queries, the social networking system 160 retrieves enough objects to retrieve the top N scored objects. , Parsing configuration parameters can be used to minimize the number of object types and the number of objects retrieved from each vertical 164. As an example, but not as a limitation, to continue with the previous example, in order to generate the top 10 search results, the social networking system 160 has the top 25 friends of friends, and the top 15 pages. It may only need to be taken out. This could be because, for example, all friends of friends ranked 26-50 have a final score that is ranked outside the top 10 search results. Therefore, fewer users need to be pulled out to maintain the same quality of search results. This allows for the processing power consumed by each search query. Parsing configuration parameters modified so that more or less object types (and possibly additional vertical 164) are searched, or more or less objects of each object type are retrieved. Can be done. Although this disclosure describes generating a particular query command in a particular manner, the present disclosure intends to generate any suitable query command in any suitable manner.
0050In certain embodiments, the social networking system 160 has one or more verticals that match at least a portion of the query constraints of a query command. You can retrieve objects from 4. The social networking system 160 can access one or more verticals 164 in response to search queries received from users, as specified by query commands. Each vertical 164 can store one or more objects associated with an online social network. The number and type of vertical 164 accessed in response to a search query can be based on the query constraints of the query command. Each vertical 164 can store an object associated with an online social network of the object type specified by the query constraint. As an example, not as a limitation, but as one of the query constraints of a query command to a user, the social networking system 160 accesses the user vertical 164 to identify one or more users that match the query. be able to. The social networking system 160 uses any suitable format, for example, one or more column matching algorithms, to put a string into one or more of the characters associated with each of the objects. Matching objects can be identified by matching with columns. As an example, the social networking system 160 accesses one or more user verticals 164 and one or more page verticals 164 in response to the search query input "kais", but not as a limitation. You can search for accessed verticals to identify the objects stored in those verticals (for example, user profile page or concept profile page). The social networking system 160 can submit the following query command to each accessed vertical:
0051(AND (name: "kais") (OR friends of :( friends of: <me>): num_to_score: 50) (OR pages: <>: num_to_score: 25)) The social networking system 160 can access the index server 330 of each vertical 164 to ensure that the index server 330 returns results that match the query command. As an example, but not exclusively, the social networking system 160 accesses the index server 330 of the user vertical 164 to access the user <Kaisen L>, <represented by the user identifier, respectively. Nathen Kaiser>, <Catie Kaiser>, and <Alex Kaiser> can be identified by the index server 330. That is, users <Kaisen L>, <Nathen Kaiser>, <Catie Kaiser>, and <Alex Kaiser> can have names that match "Kais". In addition, each of these identified users matches a query constraint (friends of :( friends of: <me>)) that requests an object corresponding to a user who is a friend of the query user's friends. The social networking system 160 can also access the index server 330 of the page vertical 164 to allow the index server 330 to identify the pages of the band <Kaiser Chiefs>. That is, the band <Kaiser Chiefs> has a name that matches "kais". In addition, the identification page matches the query constraint (pages: <>) that requires the object corresponding to the page. In certain embodiments, the social networking system 160 uses query commands from a particular node along a particular connection edge 206 (or edge type) to identify one or more search results. By tracing the social graph 200 to the node corresponding to the specified object, it is possible to identify the object that matches the query command. With an example And, not as a limitation, the query command (pages_liked_by: <user>) is "liked" by the <user> along the "like" type edge 206 from the user node 202 corresponding to the <user>. Can be performed by the social networking system 160 by following the social graph 200 to the concept node 204 corresponding to the declared page. Although the present disclosure describes searching for and searching for a particular object in a particular manner, the present disclosure intends to search for and search for an object in any suitable manner.
0052In certain embodiments, when searching the vertical 164 to identify matching objects, the social networking system 160 may only identify and score matching nodes up to a threshold number within the particular vertical 164. it can. When social networking system 160 retrieves an object from vertical 164 in response to a query (or a specific query constraint), the object is retrieved based on the static score or static rank of the indexed object. Good. As an example, an object with a static rank up to a threshold, but not as a limitation, calculates the final score for the retrieved object based on various factors, for example, to determine the search results to send back to the querying user. It can be retrieved and further processed by a scoring algorithm that can be. Each object stored in Vertical 164 can be associated with a given static score based on a static scoring algorithm. In certain embodiments, a given static score for each object can be a given rank for the object for a particular type of query. As an example, but not as a limitation, a structured query might be part of a "Alex's Friend" (which could be a larger query, such as "Alex's Friend's Photo" or "Alex's Friend's Friend"). When included, the user node 202 corresponding to a friend of user "Alex" can have a predetermined static score for this structured query. Alex's top three friends can be, for example, "Rally," "Mu," and "Joe," in ranked order. Therefore, the query "Alex's Friend" (or the query command friends_of: <Alex> ), The user "rally", "mu", and "joe" may be retrieved as the top three objects by searching the user vertical 164. When searching the vertical 164, the social networking system 160 can retrieve the object based on the static score of the object, where it is possible to retrieve the object with the highest / best static score. .. The threshold number of matching objects may then be scored and ranked by the social networking system 160. The number of thresholds can be selected to improve search quality or optimize the processing of search results. As an example, but not as a limitation, the social networking system 160 responds to the query command requesting user with the top N matching objects in the user vertical 164 (ie, in the examples used herein). Only the number to be scored in the sexp, i.e. "num_to_score"), may be identified. The top N objects may be determined by the object's static score in the search index corresponding to user vertical 164 (eg, rank based on the user's current social graph affinity for the querying user). The static score may be pre-determined by the social networking system 160 using a static scoring algorithm. However, this process causes the social networking system 160 to find an excessive number of objects from vertical 164 in order to find the top N scored objects according to a scoring algorithm that determines which objects are sent back to the user as search results. Can be inefficient if you have to take it out. As an example, but not as a limitation, the social networking system 160 responds to queries to access specific verticals 164 and matches 100. The scoring algorithm can then calculate the final score for these 100 objects (eg, based on social graph affinity). The top five scored objects according to the scoring algorithm can be, for example, objects with static ranks of 4, 12, 20, 78, and 95. This process can be improved, for example, if the static rank of the top N objects is the same as the top N objects by the final rank. By more closely matching the static rank of an object with the final rank calculated by a search engine, the social networking system retrieves and scores the social networking system to generate a sufficient number of search results. It may be possible to reduce the number of matching objects that need to be attached. In certain embodiments, the static score of an object can be based on the search query itself. In other words, depending on a particular query or query type, an object can have different static scores relative to that query or query type. As an example, the top 500 objects may be identified if the number to be scored is 500, not as a limitation. These 500 objects may then be scored based on one or more factors (eg, match against search query or other query constraints, social graph affinity, search history, etc.), followed by top. M results may be generated as search results to be displayed to the query user. In certain embodiments, the top results after one or more rounds of ranking may be sent to the aggregator 320 for final round ranking, where the identified objects may be sorted. Redundant results may be discarded, or any other type of result processing may be performed prior to presentation to the query user. This disclosure describes identifying a particular number of objects. However, the disclosure is intended to identify any suitable number of objects. Further, although this disclosure describes the ranking of objects in a particular manner, the present disclosure intends to rank objects in any suitable manner.
0053In certain embodiments, the social networking system 160 can score one or more objects identified as matching query constraints. The score (also called the final score) for each retrieved / identified object may be calculated in any suitable manner, for example, by using a particular scoring algorithm. Each identified object may correspond to a particular user node 202 or concept node 204 in the social graph 200. When a query command contains multiple query constraints, the social networking system 160 can score nodes that match each query constraint individually or together. The social networking system 160 can score the first set of identified nodes by accessing the data store 164 that corresponds to the object type of the identified node. As an example, not as a limitation, but as a query constraint (extract authors: (term) When generating an identified node that matches posts_liked_by: <mark>)), the social networking system 160 sets the set of users (<tom>, <dick>, <harry>) in the user vertical 164. Can be identified. The social networking system 160 can then score users <Tom>, <Dick>, and <Harry> based on their respective social affinity for user <Mark>. For example, at that time, the post vertical 164 social networking system 160 will use user <tom>, <, based on the number of lists in the list of posts that have been liked by user <mark>. The identified nodes of Dick> and <Harry> can be scored. Users <Tom>, <Dick>, and <Harry> are posted that have been liked by user <Mark>, namely <post 1>, <post 2>, <post 3>, <post. 4>, <post 5>, <post You may have created 6>. User <D Like> creates posts <post 1>, <post 2>, <post 3>, user <tom> creates posts <post 5> and <post 6>, user <Harry> creates posts <post If you create a 4>, the social networking system 160 will give the user <Dick> the highest because Dick created most of the posts in the list of posts that were liked by the user <Mark>. Can be scored, followed by <Tom> and <Harry> having lower scores. As another example, using the previous example, but not as a limitation, the social networking system 160 can access a forward index that maps posts to the "like" count of posts. .. The index server can access the forward index and retrieve a "like" count for each post in the list of posts that the user <mark> has liked. The index server is the post in the list of posts (ie <post 1>, <post 2>, <post 3>, <post 4>, <post 5>, <post 6>) are scored based on their respective "like" counts to create the top scored posts (for example, the top 3 scored or most liked posts) Can be returned to the social networking system 160 as the first identified node. After each appropriate scoring factor is considered for a particular identified node, the overall score for the identified node can be determined. Based on node scoring, the social networking system 160 can then generate one or more sets of identified nodes. As an example, but not as a limitation, the social networking system 160 may only generate a set of identified nodes that correspond to nodes that have a score greater than the threshold score. As another example, but not as a limitation, the social networking system 160 ranks the scored nodes and accommodates nodes with ranks higher than the threshold rank (eg, top 10, top 20, etc.). Only the set of identified nodes may be generated. Although this disclosure describes scoring matching nodes in a particular fashion, the disclosure contemplates scoring matching nodes in any suitable fashion.
0054In certain embodiments, the social networking system 160 can score search results based on the social graph affinity associated with the query user (or user node 202 of the query user). .. The scoring algorithm used to score the retrieved objects can use social graph affinity as a factor. The social networking system 160 can determine the mutual social graph affinity (sometimes referred to herein as "affinity") of various social graph entities. Affinity is between certain objects associated with an online social network, such as users, concepts, content, actions, advertisements, other objects associated with an online social network, or any of these. It can represent the intensity of a relationship or level of interest, such as between the appropriate combinations. In certain embodiments, the social networking system 160 can use an affinity factor (sometimes referred to herein as a "coefficient") to measure or quantify social graph affinity. Coefficients can represent or quantify the strength of relationships between specific objects associated with an online social network. The coefficient may represent a probability or function that measures the predicted probability that a user will perform an action based on the user's interest in that action. In certain embodiments, social graph affinity may be used as a factor when scoring search results. As an example, in response to the structured query "Photos of my friends", not as a limitation, the social networking system 160 uses the query command (photos_of (users: <friends>>). You can decide to look at the photo. When a user's friend scores the identified concept node 204 corresponding to the tagged photo in the photo, the social networking system 160 relates to the photo-tagged user for the query user (eg, for example). Photos can be scored higher based on each social graph affinity of the query user (measured by the affinity factor). In addition, the more friends tagged to a photo, the greater the affinity of the querying user for that particular photo, so a photo showing more of the querying user's friends will have fewer of the user's friends. Can be more highly tagged than the photo shown. Although this disclosure describes scoring search results based on affinity in a particular manner, the disclosure contemplates scoring search results based on affinity in any suitable manner. In addition, in relation to social graph affinity and affinity coefficients, U.S. Patent Application No. 11/503093, 2010, filed on August 11, 2006, in which certain embodiments are incorporated herein by reference, respectively. U.S. Patent Application No. 12/977027 filed on December 22, 2010, U.S. Patent Application No. 12/977027 filed on December 23, 2010, U.S. Patent Application No. 12 filed on October 1, 2012. One or more systems, components, elements, functions, methods, operations, or processes disclosed in 13/632869 may be utilized.
0055In certain embodiments, the social networking system 160 modifies one or more of the retrieved objects to one or more of the retrieved objects based on a comparison of the final score of the retrieved objects with the static score. The static score given can be determined. The static score associated with the indexed object can be improved by modifying the static score based on test runs using archived search queries. Archived queries can be parsed to generate query commands, and the query commands must be submitted to vertical 164 to retrieve the first number of objects based on their static scores. Is possible. The retrieved objects can be calculated for their final score. The final score may then be compared to the static score, which can be modified so that they match the final score more closely. This is done for different queries so that the static score can be optimized to match the final score as closely as possible for different queries. In certain embodiments, the social networking system 160 can modify the static scoring algorithm based on the modified static score. The static scoring algorithm is modified to calculate a given static score for an object, respectively, based on one or more of the retrieved objects or one or more of the modified static scores. It is possible to be done. In certain embodiments, the social networking system 160 may modify the static score by determining the difference between a given static score for each object and a calculated final score for each object. it can. The social networking system 160 then reconciles one or more of the static scores of one or more of the objects based on the determined difference. You can modify the number. As an example, but not as a limitation, continuing with the previous example, the top five objects in the final score by the scoring algorithm are, for example, objects with static ranks of 4, 12, 20, 78, and 95. possible. The static ranks of all objects can be modified higher so that they have static ranks closer to 1-5. Note that in theory, the ideal static ranks would be 1, 2, 3, 4, and 5. However, the final score can be based on various factors such as social graph affinity and user history, so the ideal static rank for the first query user or first query type is the second query user. Or it may differ from the ideal static rank for the second query type. Therefore, the static rank of an object should match the final rank of the object more closely for different user and query types. Can be fixed. Although this disclosure describes modifying the static scoring algorithm in a particular manner, the present disclosure intends to modify the static scoring algorithm in any suitable manner.
0056In certain embodiments, the social networking system 160 has one or more modified parsing configuration parameters based on a final score comparison of the retrieved objects with the scores of a specified number of objects in the query constraint. Can be generated. Parsing algorithms can be improved by modifying the way query constraints are generated based on test runs that use archived search queries. Archived queries can be parsed to generate query commands, and query commands can be submitted to one or more verticals 164 to retrieve the first number of objects. is there. The social networking system 160 can then calculate the final score for the retrieved objects, and then any specified object, while retrieving some or all of the results of the top N scores. The final score can be analyzed to determine if it is possible to reduce the number of objects retrieved for the type. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, thereby modifying one or more of the specified number of objects of the specified object type. It is possible to make it decrease based on the parsing configuration parameters. As an example, for the S-expression of a particular query command generated by a parsing algorithm in response to a particular query command, not as a limitation, because the social networking system 160 generates that query command. Modify the parsing configuration parameters used in, thereby retrieving some or all of the results of the top N scores (for example, a sufficient number of tops to maintain the threshold quality of search results). Decreases the specified number of objects specified by "num_to_score" (while retrieving the results of N scores) Can be done. If num_to_score can be reduced, the parsing algorithm (or certain parsing configuration parameters) can be modified to retrieve fewer objects or object types. The amount by which num_to_score is reduced can directly correlate with the processing power consumed by the social networking system 160. When these tests are run using archived queries, the social networking system 160 generates score quality vs. CPU power (or simply num_to_score) data and uses that data to identify. You can find points where the social networking system 160 is still getting enough high quality results (ie, high scoring results) for your query or query type, while significantly reducing the power consumed. .. In other words, it may be worth sacrificing some search result quality, where there is a sufficient savings in processing power. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, whereby one or more of the query constraints are modified parsing configuration parameters. It is possible to remove it from the query commands generated by the parsing algorithm based on. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, thereby allowing one or more of the specified number of data stores 164 to be accessed. , Can be reduced based on the modified parsing configuration parameters. As an example, but not as a limitation, continuing with the previous example, the social networking system 160 can generate the following query command in response to the search query input "kais". Can be done. If num_to_score can be reduced, the parsing algorithm (or certain parsing configuration parameters) can be modified to retrieve fewer objects or object types. The amount by which num_to_score is reduced can directly correlate with the processing power consumed by the social networking system 160. When these tests are run using archived queries, the social networking system 160 generates score quality vs. CPU power (or simply num_to_score) data and uses that data to identify. You can find points where the social networking system 160 is still getting enough high quality results (ie, high scoring results) for your query or query type, while significantly reducing the power consumed. .. In other words, it may be worth sacrificing some search result quality, where there is a sufficient savings in processing power. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, whereby one or more of the query constraints are modified parsing configuration parameters. It is possible to remove it from the query commands generated by the parsing algorithm based on. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, thereby allowing one or more of the specified number of data stores 164 to be accessed. , Can be reduced based on the modified parsing configuration parameters. As an example, but not as a limitation, continuing with the previous example, the social networking system 160 can generate the following query command in response to the search query input "kais". Can be done. If num_to_score can be reduced, the parsing algorithm (or certain parsing configuration parameters) can be modified to retrieve fewer objects or object types. The amount by which num_to_score is reduced can directly correlate with the processing power consumed by the social networking system 160. When these tests are run using archived queries, the social networking system 160 generates score quality vs. CPU power (or simply num_to_score) data and uses that data to identify. You can find points where the social networking system 160 is still getting enough high quality results (ie, high scoring results) for your query or query type, while significantly reducing the power consumed. .. In other words, it may be worth sacrificing some search result quality, where there is a sufficient savings in processing power. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, whereby one or more of the query constraints are modified parsing configuration parameters. It is possible to remove it from the query commands generated by the parsing algorithm based on. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, thereby allowing one or more of the specified number of data stores 164 to be accessed. , Can be reduced based on the modified parsing configuration parameters. As an example, but not as a limitation, continuing with the previous example, the social networking system 160 can generate the following query command in response to the search query input "kais". If possible, the parsing algorithm (or a particular parsing configuration parameter) can be modified to retrieve fewer objects or object types. The amount by which num_to_score is reduced can directly correlate with the processing power consumed by the social networking system 160. When these tests are run using archived queries, the social networking system 160 generates score quality vs. CPU power (or simply num_to_score) data and uses that data to identify. You can find points where the social networking system 160 is still getting enough high quality results (ie, high scoring results) for your query or query type, while significantly reducing the power consumed. .. In other words, it may be worth sacrificing some search result quality, where there is a sufficient savings in processing power. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, whereby one or more of the query constraints are modified parsing configuration parameters. It is possible to remove it from the query commands generated by the parsing algorithm based on. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, thereby allowing one or more of the specified number of data stores 164 to be accessed. , Can be reduced based on the modified parsing configuration parameters. As an example, but not as a limitation, continuing with the previous example, the social networking system 160 can generate the following query command in response to the search query input "kais". If possible, the parsing algorithm (or a particular parsing configuration parameter) can be modified to retrieve fewer objects or object types. The amount by which num_to_score is reduced can directly correlate with the processing power consumed by the social networking system 160. When these tests are run using archived queries, the social networking system 160 generates score quality vs. CPU power (or simply num_to_score) data and uses that data to identify. You can find points where the social networking system 160 is still getting enough high quality results (ie, high scoring results) for your query or query type, while significantly reducing the power consumed. .. In other words, it may be worth sacrificing some search result quality, where there is a sufficient savings in processing power. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, whereby one or more of the query constraints are modified parsing configuration parameters. It is possible to remove it from the query commands generated by the parsing algorithm based on. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, thereby allowing one or more of the specified number of data stores 164 to be accessed. , Can be reduced based on the modified parsing configuration parameters. As an example, but not as a limitation, continuing with the previous example, the social networking system 160 can generate the following query command in response to the search query input "kais". Ta) can be modified to retrieve fewer objects or object types. The amount by which num_to_score is reduced can directly correlate with the processing power consumed by the social networking system 160. When these tests are run using archived queries, the social networking system 160 generates score quality vs. CPU power (or simply num_to_score) data and uses that data to identify. You can find points where the social networking system 160 is still getting enough high quality results (ie, high scoring results) for your query or query type, while significantly reducing the power consumed. .. In other words, it may be worth sacrificing some search result quality, where there is a sufficient savings in processing power. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, whereby one or more of the query constraints are modified parsing configuration parameters. It is possible to remove it from the query commands generated by the parsing algorithm based on. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, thereby allowing one or more of the specified number of data stores 164 to be accessed. , Can be reduced based on the modified parsing configuration parameters. As an example, but not as a limitation, continuing with the previous example, the social networking system 160 can generate the following query command in response to the search query input "kais". Ta) can be modified to retrieve fewer objects or object types. The amount by which num_to_score is reduced can directly correlate with the processing power consumed by the social networking system 160. When these tests are run using archived queries, the social networking system 160 generates score quality vs. CPU power (or simply num_to_score) data and uses that data to identify. You can find points where the social networking system 160 is still getting enough high quality results (ie, high scoring results) for your query or query type, while significantly reducing the power consumed. .. In other words, it may be worth sacrificing some search result quality, where there is a sufficient savings in processing power. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, whereby one or more of the query constraints are modified parsing configuration parameters. It is possible to remove it from the query commands generated by the parsing algorithm based on. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, thereby allowing one or more of the specified number of data stores 164 to be accessed. , Can be reduced based on the modified parsing configuration parameters. As an example, but not as a limitation, continuing with the previous example, the social networking system 160 can generate the following query command in response to the search query input "kais". It can directly correlate with the processing power consumed by the stem 160. When these tests are run using archived queries, the social networking system 160 generates score quality vs. CPU power (or simply num_to_score) data and uses that data to identify. You can find points where the social networking system 160 is still getting enough high quality results (ie, high scoring results) for your query or query type, while significantly reducing the power consumed. .. In other words, it may be worth sacrificing some search result quality, where there is a sufficient savings in processing power. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, whereby one or more of the query constraints are modified parsing configuration parameters. It is possible to remove it from the query commands generated by the parsing algorithm based on. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, thereby allowing one or more of the specified number of data stores 164 to be accessed. , Can be reduced based on the modified parsing configuration parameters. As an example, but not as a limitation, continuing with the previous example, the social networking system 160 can generate the following query command in response to the search query input "kais". It can directly correlate with the processing power consumed by the stem 160. When these tests are run using archived queries, the social networking system 160 generates score quality vs. CPU power (or simply num_to_score) data and uses that data to identify. You can find points where the social networking system 160 is still getting enough high quality results (ie, high scoring results) for your query or query type, while significantly reducing the power consumed. .. In other words, it may be worth sacrificing some search result quality, where there is a sufficient savings in processing power. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, whereby one or more of the query constraints are modified parsing configuration parameters. It is possible to remove it from the query commands generated by the parsing algorithm based on. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, thereby allowing one or more of the specified number of data stores 164 to be accessed. , Can be reduced based on the modified parsing configuration parameters. As an example, but not as a limitation, continuing with the previous example, the social networking system 160 can generate the following query command in response to the search query input "kais". It is possible to find points where the social networking system 160 is still producing sufficiently high quality results (ie, high scoring results), while significantly reducing the power being done. In other words, it may be worth sacrificing some search result quality, where there is a sufficient savings in processing power. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, whereby one or more of the query constraints are modified parsing configuration parameters. It is possible to remove it from the query commands generated by the parsing algorithm based on. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, thereby allowing one or more of the specified number of data stores 164 to be accessed. , Can be reduced based on the modified parsing configuration parameters. As an example, but not as a limitation, continuing with the previous example, the social networking system 160 can generate the following query command in response to the search query input "kais". It is possible to find points where the social networking system 160 is still producing sufficiently high quality results (ie, high scoring results), while significantly reducing the power being done. In other words, it may be worth sacrificing some search result quality, where there is a sufficient savings in processing power. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, whereby one or more of the query constraints are modified parsing configuration parameters. It is possible to remove it from the query commands generated by the parsing algorithm based on. In certain embodiments, the social networking system 160 modifies the parsing algorithm based on the parsing configuration parameters, thereby allowing one or more of the specified number of data stores 164 to be accessed. , Can be reduced based on the modified parsing configuration parameters. As an example, but not as a limitation, continuing with the previous example, the social networking system 160 can generate the following query command in response to the search query input "kais". The working system 160 modifies the parsing algorithm based on the parsing configuration parameters, thereby causing one or more of the specified number of data stores 164 to be accessed to have the parsing configuration parameters modified. It is possible to reduce based on. As an example, but not as a limitation, continuing with the previous example, the social networking system 160 can generate the following query command in response to the search query input "kais". The working system 160 modifies the parsing algorithm based on the parsing configuration parameters, thereby causing one or more of the specified number of data stores 164 to be accessed to have the parsing configuration parameters modified. It is possible to reduce based on. As an example, but not as a limitation, continuing with the previous example, the social networking system 160 can generate the following query command in response to the search query input "kais".
0057((AND (name: "kais")) (OR friends of :( friends of: <me>): num_ to_score: 50) (OR pages: <>: num_to_score: 25)) If the analysis of the final score of the retrieved pages from page vertical 164 shows that the retrieved pages are not among the top N results, then the entire query constraint can be removed. In other words, the parsing algorithm can be modified so that the page vertical 164 is not retrieved in response to this query type. In certain embodiments, the social networking system 160 has a syntax based on the number of objects that need to be retrieved from the data store in order to retrieve all identified objects that have a final score greater than or equal to the threshold score. The parsing algorithm can be modified. As an example, but not as a limitation, a social networking system can identify each retrieved object with a score (or rank) greater than or equal to a threshold score. The social networking system 160 then determines, for each query constraint of each query command, the number of objects that need to be retrieved from the data store to retrieve each identified object that has a score greater than or equal to the threshold score. can do. Based on the determined number of objects that need to be retrieved from the data store, the social networking system 160 can modify one or more of the parsing configuration parameters. Although this disclosure describes modifying the parsing algorithm in a particular manner, the present disclosure intends to modify the parsing algorithm in any suitable manner.
0058Figure 6 shows an exemplary method 600 for improving the static scoring of objects for search queries. The method can start from step 610, where the social networking system 160 is the first set of online social network queries received from one or more users of the online social network. Can be accessed. In step 620, the social networking system 160 retrieves a first number of objects from one or more data stores 164 for each query in the first set of queries that matches at least a portion of the query. Can be done. Each data store 164 can store one or more objects associated with an online social network. In addition, each object can be associated with a given static score based on a static scoring algorithm. The social networking system 160 can retrieve a first number of objects based on the static score of the objects. At step 630, the social networking system 160 can calculate the final score for each retrieved object, based on the final scoring algorithm, for each query. In step 640, the social networking system 160 has modified one or more for one or more of the retrieved objects based on a comparison of the final score of the retrieved objects with the static score. A static score can be determined. In a particular embodiment, one or more steps of the method of FIG. 6 can be repeated as appropriate. Although this disclosure describes and illustrates the specific steps of the method of FIG. 6 occurring in a particular order, the present disclosure contemplates any suitable step of the method of FIG. 6 occurring in any suitable order. In addition, the present disclosure is an exemplary method for improving the static scoring of objects for search queries involving the specific steps of Figure 6. Explains, but the present disclosure is a static score of an object for a search query, including any suitable steps that may or may not include all or part of the steps of the method of FIG. Contemplate any suitable method for improving attachment. In addition, while this disclosure describes and illustrates a particular component, device, or system that performs a particular step in the method of FIG. 6, the present disclosure performs any suitable step in the method of FIG. Contemplate any suitable combination of the right components, devices, or systems.
0059Figure 7 shows an exemplary method 700 for improving the parsing of search queries. The method is Starting from about 710, here the social networking system 160 accesses the first set of online social network queries received from one or more users of the online social network. be able to. In step 720, the social networking system 160 can use the first parsing algorithm to parse each query in the first set of queries and generate a query command based on each query. it can. Each query command can have one or more query constraints. In addition, each query constraint can be a query constraint on a specified number of objects of the specified object type specified by one or more parsing configuration parameters of the first parsing algorithm. At step 730, the social networking system 160 can retrieve a specified number of objects from one or more data stores 164 for each query constraint for each query command that match at least a portion of the query constraint. .. Each data store 164 can store one or more objects associated with an online social network of the specified object type of query constraint. At step 740, the social networking system 160 can score each retrieved object for each query command based on the first scoring algorithm. At step 750, the social networking system 160 generates one or more modified parsing configuration parameters based on the score comparison between the retrieved object and the specified number of objects in the query constraint. Can be done. In a particular embodiment, one or more steps of the method of FIG. 7 can be repeated as appropriate. Although the present disclosure describes and illustrates the specific steps of the method of FIG. 7 that occur in a particular order, the present disclosure occurs in any suitable order. Any suitable step of the method of FIG. 7 is intended. In addition, although the present disclosure illustrates and illustrates exemplary methods for improving parsing of search queries involving the specific steps of FIG. 7, the present disclosure will optionally include all or all of the steps of the method of FIG. Any suitable method for improving the parsing of a search query, including any suitable steps that may or may not be included, is contemplated. In addition, although this disclosure describes and illustrates a particular component, device, or system that performs a particular step in the method of FIG. 7, this disclosure performs any suitable step in the method of FIG. Contemplate any suitable combination of the right components, devices, or systems.
0060In certain embodiments, the social networking system 160 can generate one or more search results in response to a query received from the query user, which search results correspond to the query. The social networking system 160 can identify objects that satisfy or otherwise match the query (eg, user, photo, profile page (or profile page content), and so on). Each search result can correspond to a node in the social graph 200. Search results corresponding to each identified object can then be generated. As an example, in response to the query "Matt and Stephanie's Photos", but not as a limitation, the social networking system 160 will display photos in which both the user's "Matt" and "Stephanie" are tagged in the photo. Can be identified. The search results corresponding to this photo can then be generated and sent to the user. In certain embodiments, each search result is associated with one or more objects, and each query constraint of the query command that corresponds to the query is one or more of the objects associated with the particular search result. May be filled with more than one. As an example, but not as a limitation, continuing with the previous example, in response to the structured query "Matt and Stephanie's Photo", the social networking system 160 parses the query into a query command (intersect). You can generate (photos_of: <mat>), (photos_of: <stephanie>)), which both the user's "mat" and "stephanie" (both referenced in the structured query) Photos are tagged (ie, those user nodes 202 are tagged-i) It can be performed to generate search results for a photo (n-type) edge 206 connected to a concept node 204 for a photo. In other words, because the photo is connected to the user's "mat" and "stephanie" user nodes 202, the constraints on (photos_of: <mat>) and (photos_of: <stephanie>)) are both due to the photo. It is filled. Nodes identified as matching the query may be scored (possibly ranked), and one or more (eg, the number of thresholds) may be generated as search results to display to the user. Although this disclosure describes generating search results in a particular format, the present disclosure intends to generate search results in any suitable format.
0061In certain embodiments, the social networking system 160 may send one or more search results to the querying user. Search results may be sent to the user, for example, in the form of a list of links on the search results web page, where each link is associated with a different web page that contains some of the identified resources or content. .. In certain embodiments, each link in the search results can be in the form of a uniform resource locator (URL) that identifies where the corresponding web page is located and the mechanism for retrieving the corresponding web page. The social networking system 160 may then send the search results web page to the web browser 132 on the user's client system 130. The user then optionally clicks on a URL link or otherwise selects content from a search results web page to provide content from social networking system 160, or (eg, a third party). Can access content from external systems (such as party system 170). In certain embodiments, each search result may include a link to a profile page and a description or summary (or node corresponding to that page) of the profile page. The search results may be presented and sent as a search results page to the querying user. When generating search results, the social networking system 160 may generate one or more snippets for each search result. Here, snippets are contextual information about the subject of a search result (ie, social graph entity, profile page, or other content that corresponds to a particular search result). In certain embodiments, the social networking system 160 may only send search results with scores / ranks above a particular threshold score / rank. Not limited, but as an example The social networking system 160 may respond to a particular search query and send only the top 10 results to the querying user. Although the present disclosure describes that certain search results are transmitted in a particular manner, the present disclosure also contemplates transmitting any suitable search results in any suitable manner.
0062Further information regarding the generation of search results can be found in US Patent Application No. 13/731939, filed December 31, 2012, incorporated herein by reference. FIG. 8 shows an exemplary computer system 800. In certain embodiments, one or more computer systems 800 perform one or more steps of one or more of the methods described or shown herein. In certain embodiments, one or more computer systems 800 provide the functionality described or shown herein. In certain embodiments, the software running on one or more computer systems 800 performs one or more steps of one or more of the methods described or shown herein. To perform or provide the functions described or shown herein. Certain embodiments include one or more parts of one or more computer systems 800. As used herein, references to computer systems can include computing devices, where appropriate. Moreover, references to computer systems make one or more computer systems where appropriate. Can be included.
0063This disclosure assumes any suitable number of computer systems 800. The present disclosure envisions a computer system 800 that takes any suitable physical form. As an example, but not limited to, Computer System 800 includes embedded computer systems, system-on-chip (SOC), single-board computer systems (SBC) (eg, computer-on-module (COM) or system-on-module (SOM)). , Desktop computer system, laptop or notebook computer system, interactive kiosk, mainframe, computer system mesh, mobile phone, mobile information terminal (PDA), server, tablet computer system, or It can be a combination of a plurality of these. Where appropriate, the computer system 800 may include one or more computer systems 800, be single or distributed, span multiple locations, span multiple machines, multiple data. It can span centers or reside in the cloud, which can contain one or more cloud components in one or more networks. Where appropriate, one or more computer systems 800 may perform one or more steps of one or more of the methods described or shown herein in a substantial space. It can be executed without any time limit. By way of example, but not limited to, one or more computer systems 800 perform one or more steps of one or more methods described or shown herein in real time or in batches. -Can be executed in mode. One or more computer systems 800, where appropriate, perform one or more steps of one or more of the methods described or shown herein at different times or at different times. Separate
0064In certain embodiments, computer system 800 includes processor 802, memory 804, storage 806, input / output (I / O) interface 808, communication interface 810, and bus 812. Although the present disclosure describes and presents a particular computer system having a particular number of particular components in a particular configuration, the present disclosure includes any suitable number of any suitable component. It is assumed that any suitable computer system has a suitable configuration.
0065In certain embodiments, the processor 802 includes hardware for executing instructions, such as instructions that make up a computer program. As an example, but not by limitation, in order to execute an instruction, the processor 802 fetches (or fetches) the instruction from an internal register, an internal cache, a memory 804, or a storage 806, decodes and executes those instructions, and executes them. One or more results can then be written to an internal register, internal cache, memory 804, or storage 806. In certain embodiments, processor 802 may include one or more internal caches for data, instructions, or addresses. The present disclosure envisions a processor 802 containing any suitable number of any suitable internal caches, where appropriate. As an example, without limitation, processor 802 can include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (TLBs). The instructions in the instruction cache can be copies of the instructions in memory 804 or storage 806, and the instruction cache can speed up the retrieval of those instructions by the processor 802. The data in the data cache is a copy of the data in memory 804 or storage 806 based on when an instruction executed in processor 802 functions, for access by subsequent instructions executed in processor 802, or in memory 804. Or the result of a previous instruction executed on processor 802 for writing to storage 806, or any other appropriate data. It is possible to be a data. The data cache can speed up read or write operations by processor 802. TLB can speed up virtual address translation for processor 802. In certain embodiments, processor 802 may include one or more internal registers for data, instructions, or addresses. The present disclosure envisions a processor 802 containing any suitable number of any suitable internal registers, where appropriate. Where appropriate, the processor 802 can include one or more arithmetic logic units (ALUs), be a multi-core processor, or include one or more processor 802s. Although this disclosure describes and shows a particular processor, this disclosure assumes any suitable processor.
0066In certain embodiments, memory 804 includes instructions for execution by processor 802 or main memory for storing data based on the functioning of processor 802. By way of example, but not limited to, computer system 800 can load instructions from storage 806 or another source (for example, another computer system 800) into memory 804. Processor 802 can then load instructions from memory 804 into internal registers or internal caches. To execute an instruction, the processor 802 can retrieve the instruction from an internal register or internal cache and decode those instructions. During or after the execution of an instruction, processor 802 may write one or more results, which may be intermediate or final results, to an internal register or internal cache. Processor 802 can then write one or more of those results to memory 804. In certain embodiments, processor 802 executes only instructions in one or more internal registers or caches (rather than storage 806 or elsewhere) or in memory 804 (storage 806 or other). Works only on data in one or more internal registers or caches (rather than in memory 804) or in memory 804. One or more memory buses, each of which can include an address bus and a data bus, can combine processor 802 with memory 804. Bus 812 can include one or more memory buses as described below. In certain embodiments, one or more memory management units (MMUs) reside between the processor 802 and the memory 804, facilitating access to the memory 804 required by the processor 802. In certain embodiments, memory 804 is a random access memory ( RAM) is included. This RAM can be a volatile memory, where appropriate. Where appropriate, this RAM can be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, where appropriate, this RAM can be single-port RAM or multi-port RAM. This disclosure assumes any suitable RAM. The memory 804 can include one or more memories 804, where appropriate. Although the present disclosure describes and presents a particular memory, the present disclosure assumes any suitable memory.
0067In certain embodiments, storage 806 includes mass storage for data or instructions. By way of example, the Storage 806 is a hard disk drive (HDD), floppy (registered trademark) disk drive, flash memory, optical disk, magneto-optical disk, magnetic tape, or universal serial bus (USB). ) Drives, or combinations of multiple of these. Storage 806 can include removable or non-removable (ie, fixed) media, where appropriate. Storage 806 can reside inside or outside computer system 800, where appropriate. In certain embodiments, the storage 806 is a non-volatile solid state memory. Smell of a particular embodiment Storage 806 includes read-only memory (ROM). Where appropriate, this ROM can be a mask program ROM, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), electrically rewritable ROM (EAROM), or flash memory. Or it can be a combination of a plurality of these. The present disclosure envisions mass storage 806 in any suitable physical form. The storage 806 can optionally include one or more storage control units that facilitate communication between the processor 802 and the storage 806. Where appropriate, the storage 806 can include one or more storage 806s. Although this disclosure describes and presents specific storage, this disclosure assumes any suitable storage.
0068In certain embodiments, the I / O interface 808 is hardware, software, or software that provides one or more interfaces for communication between the computer system 800 and one or more I / O devices. Includes or both. Computer system 800 may include one or more of these I / O devices, as appropriate. One or more of these I / O devices can enable communication between a person and the computer system 800. By way of example, I / O devices include keyboards, keypads, microphones, monitors, mice, printers, scanners, speakers, still cameras, stylus, tablets, touch screens, trackballs, video cameras, and others. It can include suitable I / O devices, or a combination of these. The I / O device can include one or more sensors. The present disclosure envisions any suitable I / O devices and any suitable I / O interface 808 for those I / O devices. Where appropriate, the I / O interface 808 provides one or more device or software drivers that allow the processor 802 to drive one or more of these I / O devices. Can include. The I / O interface 808 can include one or more I / O interfaces 808, where appropriate. Although this disclosure describes and presents a particular I / O interface, this disclosure assumes any suitable I / O interface.
0069In certain embodiments, the communication interface 810 provides communication between the computer system 800 and one or more other computer systems 800 or one or more networks (eg, packet-based communication). Includes hardware, software, or both that provide one or more interfaces for. By way of example, communication interface 810 is a network interface controller (NIC) or network adapter for communicating with Ethernet® or other wired-based networks, or wireless such as a WI-FI network. It can include a wireless NIC (WNIC) or wireless adapter to communicate with the network. The present disclosure envisions any suitable network and any suitable communication interface 810 for that network. As an example, but not limited to, Computer System 800 includes Ad Hook Network, Personal Area Network (PAN), Local Area Network (LAN), Wide Area Network (WAN), Metropolitan Area Network. It can communicate with a network (MAN), or one or more parts of the Internet, or a combination of these. One or more parts of one or more of these networks can be wired or wireless. As an example, the computer system 800 includes a wireless PAN (WPAN) (eg, Bluetooth WPAN), WI-FI network, WI-MAX network, cellular telephone network (eg, Global System for Mobile Communications (GSM)). Registered trademark)) network, etc.), or other suitable wireless network, or this It is possible to communicate with a plurality of combinations of these. The computer system 800 can include any suitable communication interface 810 for any of these networks, where appropriate. The communication interface 810 may include one or more communication interfaces 810, where appropriate. Although the present disclosure describes and presents a particular communication interface, the present disclosure assumes any suitable communication interface.
0070In certain embodiments, bus 812 includes hardware, software, or both that connect the components of computer system 800 to each other. By way of example, the Bus 812 is an Accelerated Graphics Port (AGP) or other Graphics Bus, Enhanced Industry Standard Architecture (EISA) Bus, Front Side Bus (FSB), Hyper Transport (HT) Interconnect, Industry Standard Architecture (ISA) Bus, Infiniband Interconnect, Low Pin Count (LPC) Bus, Memory Bus, Micro Channel Architecture (MCA) Bus, Peripheral Component Interconnect ( PCI) Bus, PCI Express (PCIe) Bus, Serial Advanced Technology Attachment (SATA) Bus, Video Electronics Standards Association Local (VLB) Bus, or another suitable bus, or more than one of these. Can include combinations of. Bus 812 can include one or more buses 812, where appropriate. Although this disclosure describes and shows a particular bus, this disclosure assumes any suitable bus or interconnect.
0071As used herein, one or more non-transitory computer-readable storage media are, where appropriate, one or more semiconductor-based or other integrated circuit (ICs) (eg, field programmable gates). Arrays (FPGAs) or application-specific integrated circuits (ASICs), hard disk drives (HDDs), hybrid hard drives (HHDs), floppies, floppies drives (ODDs), optical magnetic disks, optical magnetics Drives, Floppy® Discets, Floppy® Disk Drives (FDDs), Magnetic Tapes, Solid State Drives (SSDs), RAM Drives, Secure Digital Cards or Drives, or Any Other Appropriate It can include non-temporary computer-readable storage media, or a combination of these. The non-temporary computer-readable storage medium can be volatile, non-volatile, or a combination of volatile and non-volatile, where appropriate.
0072As used herein, "or (or)" is inclusive and not exclusive (provided that it is explicitly stated that it is not, or that it is not indicated by context. Except when). Accordingly, in the present specification, "A or B" means "A, B, or both" (provided that it is explicitly stated that it is not, or that it is not, depending on the context. Except where indicated). Moreover, "and (and)" are both inclusive and individual (except when it is explicitly stated that they are not, or where the context indicates that they are not. ). Accordingly, in the present specification, "A and B" means "A and B collectively or individually" (provided that this is not the case, or that it is not. Unless the context indicates).
0073The scope of this disclosure is all modifications, substitutions, modifications, modifications to exemplary embodiments described or shown herein that will be understood by standard technicians in the art. , And modifications. The scope of this disclosure is not limited to the exemplary embodiments described or shown herein. Moreover, the disclosure is described herein. Each embodiment in the description is described and shown as including a specific component, element, function, operation, or process, but any of these embodiments is understood by a standard technician in the art. It may include any combination or permutation of any component, element, function, operation, or process described or indicated anywhere in the specification that will. In addition, it is adapted to perform a particular function, is arranged to perform, can be performed, is configured to perform, is capable of performing, and performs. References in the claims attached to a device or system, or a component of a device or system that can function or function to perform, are that the device, system, component, or specific function thereof is active. The device, system, or component, whether turned on, turned on, or unlocked, is adapted or arranged to do so. The device, system, as long as it is, can, is configured to do so, is capable of doing so, can function to do so, or works to do so. Includes components.
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| WO2012117234A1 | Cites | World Intellectual Property Organization (WIPO) |
| US6944609B1 | Cites | United States of America |
| US20120185472A1 | Cites | United States of America |
32 members in 7 offices
Members32
| Document | Office | Kind | |
|---|---|---|---|
| CA2919667A1 | Canada | A1 | |
| CA2937188A1 | Canada | A1 | |
| US2015039596A1 | United States of America | A1 | |
| WO2015017322A1 | World Intellectual Property Organization (WIPO) | A1 | |
| KR20160030334A | Republic of Korea | A | |
| AU2014296448A1 | Australia | A1 | |
| US9317614B2 | United States of America | B2 | |
| IL243766A0 | Israel | A0 | |
| AU2014296448B2 | Australia | B2 | |
| US2016162491A1 | United States of America | A1 | |
| AU2016203560A1 | Australia | A1 | |
| KR20160083956A | Republic of Korea | A | |
| KR101640186B1 | Republic of Korea | B1 | |
| IL243766A | Israel | A | |
| CA2919667C | Canada | C | |
| JP2016533548A | Japan | A | |
| JP6054577B2 | Japan | B2 | |
| JP2017076417A | Japan | A | |
| AU2016203560B2 | Australia | B2 | |
| US9753992B2 | United States of America | B2 | |
| AU2017221801A1 | Australia | A1 | |
| JP6208317B2This record | Japan | B2 | |
| US2017316013A1 | United States of America | A1 | |
| KR101826826B1 | Republic of Korea | B1 | |
| JP2018022506A | Japan | A | |
| KR20180015758A | Republic of Korea | A | |
| IL246825A | Israel | A | |
| IL246825B | Israel | B | |
| JP6388988B2 | Japan | B2 | |
| CA2937188C | Canada | C | |
| US10255331B2 | United States of America | B2 | |
| KR101992118B1 | Republic of Korea | B1 |
15 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of no payment of annual feesLAPS | LAPS | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Written notification of registration of transferJAPANESE INTERMEDIATE CODE: R350R350 | R350 | |
| Written request for registration of change of nameJAPANESE INTERMEDIATE CODE: R313533S533 | S533 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Notification of acceptance of power of attorneyJAPANESE INTERMEDIATE CODE: R3D02RD02 | RD02 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Report on accelerated examinationJAPANESE INTERMEDIATE CODE: A971005A975 | A975 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 | |
| Explanation of circumstances concerning accelerated examinationJAPANESE INTERMEDIATE CODE: A871A871 | A871 |
Numbers
- Publication
- 6208317
- Application
- 232697
Titles2
- Japanese
- オンライン・ソーシャル・ネットワークにおける検索クエリのための静的ランク付け
- English
- Static ranking for search queries in online social networks
Classification
- CPC, 6
- G06F16/24578
- G06F16/9535
- G06F16/248
- G06F16/9024
- G06Q10/40
- G06F16/9536
- IPC, 2
- G06F17 30
- G06Q50 00
