System and method for determining entities based on trademark combination similarity

By generating trademark combination profiles and calculating similarity scores using machine learning, the problem of cross-regional trademark management is solved, efficient query and monitoring of trademark combinations is achieved, potential competitors are identified, and management efficiency is improved.

CN120344987APending Publication Date: 2025-07-18CAMELOT UK BIDCO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380084213.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-12-20
Filing Date
2023-12-01
Publication Date
2025-07-18

AI Technical Summary

Technical Problem

Trademark owners have difficulty effectively monitoring and managing trademark portfolio changes in competitive entities across regions and jurisdictions, and face challenges brought about by large data scale, trademark registration and cancellation, making it difficult to identify potential competitors.

Method used

By building a trademark combination generator and analyzer, a trademark combination profile is generated, a machine learning model is used to calculate trademark combination similarity scores, providing a user interface to query and monitor similar trademark combinations, and supporting users to set filtering standards and monitor alerts.

Benefits of technology

It realizes efficient inquiry and monitoring of trademark portfolios, helps trademark owners identify and manage potential competitors, and improves the efficiency and accuracy of trademark portfolio management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120344987A_ABST
    Figure CN120344987A_ABST
Patent Text Reader

Abstract

Systems and methods for determining a second entity having a similar trademark combination as a first entity are described. In an embodiment, a user submits a request to identify a first entity. A trademark combination generator compiles a trademark combination of a first entity by accessing a trademark database. The trademark combination analyzer analyzes characteristics of the trademark combination to form a trademark combination profile. The combination similarity score calculator determines a trademark combination similarity score based on determining a similarity between the trademark combination profile of the first entity and the trademark combination profile of the second entity. In an embodiment, feature vectors related to trademark combination profiles of two or more entities are compared to generate a combination similarity score. Based on the combination similarity score, the user interface presents the second entity to the user as an entity having a similar trademark combination as the first entity.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - reference to related applications

[0002] This international application claims the priority benefit of U.S. Non - Provisional Patent Application No. 18 / 068,825, filed on December 20, 2022, the entire content of which is incorporated herein by reference. Background Art

[0003] A trademark is used to indicate the source of goods or services. A trademark can include words and / or designs associated with the sale of goods or services. When registering a trademark, the registrant provides the classification of the trademark and a description of the goods or services represented by the trademark. A registered trademark serves to exclude others from using a similar trademark for similar goods and services. To exclude others, the trademark owner needs to know whether there are competing entities offering similar goods or services.

[0004] The trademark owner faces many challenges in monitoring competing entities and their use of trademarks. Trademark registrations and laws vary widely by geographic region and jurisdiction. The number and scale of trademark data sources also pose significant obstacles to trademark owners. Additionally, the trademark portfolios of competing entities change over time as new trademarks are registered and unused trademarks are cancelled. Summary of the Invention

[0005] In this summary, a selection of inventive concepts is introduced in a simplified form, which will be described in detail in the detailed implementation section. This summary is not intended to identify the key features or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter.

[0006] Systems and methods for determining the similarity between trademark portfolios of different entities are described herein. In an embodiment, a user submits a request to identify a first entity. A trademark portfolio generator compiles the trademark portfolio of the first entity by accessing a trademark database. A trademark portfolio analyzer analyzes the characteristics of the trademark portfolio to form a trademark portfolio profile. A portfolio similarity score calculator determines a trademark portfolio similarity score by at least determining the similarity between the trademark portfolio profile of the first entity and the trademark portfolio profile of a second entity. In some embodiments, a machine - learning model is applied to the trademark portfolio profile to generate the trademark portfolio similarity score. Based on the portfolio similarity score, a user interface presents the second entity to the user as an entity having a trademark portfolio similar to that of the first entity.

[0007] The following describes in detail other features and advantages of the embodiments, as well as the structure and operation of various embodiments, with reference to the accompanying drawings. It should be noted that the claimed subject matter is not limited to the specific embodiments described herein. Such embodiments presented herein are for illustrative purposes only. Based on the teachings contained herein, other embodiments will be apparent to those skilled in the art. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The accompanying drawings are incorporated herein and form a part of the specification, which illustrate embodiments of the present application and, together with the specification, are further used to explain the principles of the embodiments so that those skilled in the art can make and use the embodiments. The dashed portions of the drawings may represent optional steps and / or elements.

[0009] Figure 1 A block diagram showing an example system for determining similarity between trademark combinations according to an embodiment is shown.

[0010] Figure 2A A block diagram showing an example system for determining similarity between trademark combinations according to an embodiment is shown.

[0011] Figure 2B A block diagram showing an example system for determining similarity between trademark combinations according to an embodiment is shown.

[0012] Figure 3 A flowchart depicting a method for determining similarity between trademark combinations according to an embodiment is shown.

[0013] Figure 4A and Figure 4B A flowchart depicting a method for determining trademark combinations associated with one or more entities according to an embodiment is shown.

[0014] Figure 4C A flowchart depicting a method for determining similarity between trademark combinations according to an embodiment is shown.

[0015] Figure 5A and 5B A flowchart depicting a method for monitoring trends in trademark combinations according to an embodiment is shown.

[0016] Figure 6 A flowchart depicting a method for filtering entities based on filtering criteria according to an embodiment is shown.

[0017] Figure 7 An example user interface (UI) element according to an embodiment is shown through which a user can query entities having similar trademark combination profiles.

[0018] Figure 8 A block diagram showing an example computer system in which various embodiments can be implemented is shown.

[0019] The following is a detailed description with reference to the accompanying drawings, which will more clearly illustrate the features and advantages of the embodiments described herein. In the drawings, the same reference numerals always identify corresponding elements. In the drawings, the same reference numerals generally represent the same, functionally similar, and / or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit in the corresponding reference numeral. Detailed Embodiments

[0020] I. Introduction

[0021] The following detailed embodiments disclose a plurality of exemplary embodiments. The scope of this patent application is not limited to the disclosed embodiments, but also includes combinations of the disclosed embodiments and modifications to the disclosed embodiments.

[0022] References in the specification to "an embodiment", "embodiment", "exemplary embodiment", etc. indicate that the described embodiment may include a particular feature, structure, or characteristic, but each embodiment does not necessarily include that particular feature, structure, or characteristic. Moreover, these phrases do not necessarily refer to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, whether or not explicitly described, influencing such feature, structure, or characteristic in connection with other embodiments is within the knowledge of those skilled in the art.

[0023] In the discussion, unless otherwise specified, adjectives such as "substantially" and "about" that modify one or more features of the embodiments of the present disclosure, which are conditions or relationship characteristics, should be understood to mean that the condition or characteristic is defined within an allowable deviation that is acceptable for the operation of the embodiment for the application it is directed to.

[0024] As used herein, the term "trademark" is intended to cover any symbol, logo, image, word, or phrase that is legally registered, established by use, or claimed to represent a company, product, or service. The term "trademark" also includes service marks.

[0025] As used herein, the term "trademark portfolio" can simply be a logical grouping or collection of trademarks owned by one or more entities.

[0026] As used herein, the term "goods / services" shall be construed as equivalent to the term "goods and / or services".

[0027] The example embodiments described herein are provided for illustrative purposes and not for limitation. The examples described herein can be applied to any type of method or system for obtaining evidence of online commercial use of a trademark. Other structural and operational embodiments (including modifications / variations) will be apparent to those skilled in the art in accordance with the teachings herein.

[0028] Multiple exemplary embodiments are described below. It should be noted that any section / subsection headings provided herein are not restrictive. Embodiments are described throughout this document, and any type of embodiment can be included under any section / subsection. Additionally, embodiments disclosed in any section can be combined with any other embodiments described in the same section and / or different sections.

[0029] II. Exemplary Embodiments

[0030] As discussed in the Background section above, trademark owners face many challenges in monitoring competing entities and their use of trademarks. Trademark registration and laws vary widely depending on the geographical region and jurisdiction. The number and scale of trademark data sources also pose significant obstacles to trademark owners. Additionally, the trademark portfolios of competing entities change over time as new trademarks are registered and unused trademarks are cancelled.

[0031] The embodiments described herein relate to techniques for determining the similarity between trademark portfolios. For example, competing entities can be determined based on the similarity of trademarks and / or features in a trademark portfolio owned by an entity. Some features can include the number of trademarks an entity owns in each trademark class or subclass, the percentage of trademarks an entity owns in each trademark class or subclass, the geographical region of trademark registration, etc. The similarity of goods and services provided by an entity can be inferred from the classification information of the trademarks. In some embodiments, text analysis of goods and services descriptions can be used to classify trademarks.

[0032] The techniques described herein advantageously enable a user to easily query and monitor trademarks to determine the presence of current and / or future competitors. For example, a user can input one or more input entities to find other entities having a trademark portfolio similar to the trademarks owned by the input entity. Features can be extracted from the trademarks and / or trademark portfolio owned by the input entity to create a first feature vector. Then, the first feature vector can be provided to a trademark portfolio similarity score calculator for comparison with other feature vectors corresponding to known second entities. Based on the trademark portfolio similarity scores corresponding to each second entity, one or more of the second entities are provided to the user.

[0033] In other embodiments, feature extraction can produce multiple feature vectors, where each feature vector relates to a specific aspect of the input entity. As an example, one feature vector can be related to a service mark for a service provided to the input entity that the input entity has, while another feature vector can be related to a trademark for a good sold by the input entity that the input entity has. In other embodiments, the multiple feature vectors can be respectively related to different market segments or geographical regions of the input entity. Additionally, in some embodiments, a user can assign weights to each of the multiple feature vectors to specify the relative importance of each feature vector when performing a query. In such embodiments, the trademark portfolio similarity score calculator will consider the weights assigned by the user when calculating the trademark portfolio score.

[0034] As an example, the trademark portfolio similarity score calculator can calculate the trademark portfolio similarity score by determining the similarity or distance between the feature vectors, including but not limited to cosine similarity, Euclidean distance, etc. In some embodiments, the portfolio similarity score calculator can be implemented as a machine learning model. As new trademark information emerges, the machine learning model can be updated or retrained to further improve its accuracy. The machine learning model can also be updated based on feedback from the user. For example, if the user indicates that an entity is not a competitor, the machine learning model can be updated to reflect that feedback.

[0035] Additionally, a graphical user interface (GUI) can be provided to the user. The GUI can enable the user to search for competitors by inputting one or more query entities. When the user inputs a query entity, one or more similar entities can be suggested to the user to include in the query. The user can also be provided with the option to include trademarks owned by subsidiaries of the query entity in the query. The GUI can also provide the user with filtering options to filter the results based on any number of factors, including but not limited to a similarity score threshold, a maximum number of results, the geographical region of the entity, the market segment of the entity, etc. Additionally, the GUI can enable the user to assign weights to each feature vector when performing a query to specify the relative importance of each feature vector.

[0036] In other embodiments, the user can also subscribe to monitoring alerts. By entering monitoring criteria, the user can be prompted with the entities that trigger the monitoring criteria. For example, the monitoring criteria include, but are not limited to, one or more of the following: the count of trademarks owned by an entity in one or more trademark classes or trademark subclasses, the percentage of trademarks owned by an entity in one or more trademark classes or trademark subclasses, a similarity score threshold, a geographical region, and so on. For example, when an entity registers a new trademark in different trademark classes or trademark subclasses, the combined similarity score between the reference feature vector and the other feature vectors of other entities is recalculated. Monitor the trend or change of the trademark similarity score over time. When the trend or change of the trademark similarity score meets the user-defined or predetermined criteria, an alert identifying the triggering entity is generated and provided to the user. The monitoring alert can notify the user of new entities in the market, entities that have expanded into new geographical regions or market segments, candidates for mergers or acquisitions, etc.

[0037] The embodiments can be configured in various ways in various environments. For example, Figure 1 FIG. shows a block diagram of a system 100 for determining the similarity between two or more trademark combinations. The system 100 can include a client 102, one or more servers 104, and one or more trademark sources 108 connected via one or more networks 106. The client 102 can interact with one or more servers 104 via a user interface (UI) 130 over one (or more) networks 106. In addition, each server 104 includes a trademark combination similarity determiner 110, a user interface manager 126, and a trademark database 128. The trademark combination similarity determiner 110 includes a request processor 112, a trademark combination profile generator 114, a trademark combination profile analyzer 116, and a result preparer 118. The trademark combination profile generator 114 includes a trademark analyzer 120. The trademark combination profile analyzer 116 includes a combined similarity score calculator 122. The result preparer 118 includes a sorter / filter 124. Each component of the system 100 is described in detail below.

[0038] The client 102 includes any computing device suitable for performing the functions belonging to the client in the following description (as will be understood by those skilled in the art, including those functions mentioned elsewhere in this document or otherwise known). The various example implementations of the client 102 are described below with reference to Figure 8 the computing device 802. The client 102 is communicatively connected to one or more servers 104. Although only a single client 102 is shown for illustrative purposes Figure 1 in, it should be understood that the system 100 can include any number of clients, each capable of communicating with one or more servers 104 to invoke and / or perform functions related to determining the trademark combination similarity described herein.

[0039] One or more servers 104 are intended to broadly represent one or more arbitrary server computing devices suitable for performing the functions of a server as described below (as will be understood by those skilled in the art, including those functions mentioned elsewhere in this document or otherwise known). Referring to the exemplary computing environment 800 described below, one or more servers 104 may be implemented as a local server 892, a part of a network-based server infrastructure 870, or both. Figure 8 of the exemplary computing environment 800, one or more servers 104 may be implemented as a local server 892, a part of a network-based server infrastructure 870, or both.

[0040] One or more networks 106 are intended to broadly represent one or more arbitrary networks suitable for interconnecting and enabling data communication between computing devices. One or more networks 106 may include one or more networks, such as local area networks (LANs), wide area networks (WANs), enterprise networks, the Internet, etc., and may include one or more wired and / or wireless portions.

[0041] One or more trademark sources 108 are any databases containing trademark information. One or more trademark sources 108 include a repository of information related to trademarks stored in a non-volatile memory in an organized manner across one or more storage components or devices. For example, one or more trademark sources 108 may include a privately managed database of trademark information that is compiled from multiple trademark registers across multiple different geographical regions and / or countries and updated regularly. Optionally, one or more trademark sources 108 may include, for example, a publicly available database of trademark information maintained and updated by a trademark office associated with a particular country, region, or organization. One or more trademark sources 108 may include information related to registered trademarks, trademarks pending registration, and / or trademarks whose registration has expired. For a given trademark, one or more trademark sources 108 may store information such as, but not limited to, trademark country, trademark name, trademark image (e.g., design or logo), trademark class and subclass, product / service description for each class, serial number, application date, registration number, registration date, owner information, trademark description, trademark type, and trademark status.

[0042] In Figure 1In the example implementation shown, the application includes a "front-end" component, which at least includes: a user interface 130 executed on the client 102, and multiple "back-end" components executed on one (or more) servers 104. The client 102 (e.g., via one (or more) networks 106 or some other network or peer-to-peer connection) is communicatively connected to one (or more) servers 104 such that these components can interact with each other. However, this is only an example implementation. In an alternative implementation, all components of the application can be executed on a single computing device. In another alternative implementation, the component distribution between the client 102 and one (or more) servers 104 can be different from Figure 1 the distribution shown.

[0043] The user interface 130 executed on the client 102 is the interface through which the user interacts with the application. The user interface 130 can be operated to accept input from the user for the application and present the output of the application to the user. The user interface 130 can include one or more of the following: a graphical UI (GUI), a touchscreen GUI, a menu-driven interface, a command-line interface, a voice UI, a conversational UI, etc., including additional or alternative user interface elements mentioned elsewhere in this document. In some embodiments, the user interface 130 can be presented to the user through a browser executed on the client 102.

[0044] As Figure 1 shown, the "back-end" components of the application implemented on one (or more) servers 104 include: a trademark portfolio similarity determiner 110, a user interface manager 126, and a trademark database 128.

[0045] The trademark database 128 includes a repository of information related to trademarks stored in a non-volatile memory in an organized manner across one or more storage components or devices. For example, the trademark database 128 can include a privately managed database of trademark information that is compiled from multiple trademark registers across multiple different geographical regions and / or countries and updated regularly. The trademark database 128 can include information related to registered trademarks, trademarks pending registration, and / or trademarks whose registration has expired. For a given trademark, the trademark database 128 can store information such as, but not limited to, the trademark country, trademark name, trademark image (e.g., design or logo), trademark class and subclass, product / service description for each class, serial number, application date, registration number, registration date, owner information, trademark description, trademark type, and trademark status.

[0046] The user interface manager 126 is a component of the application that operates to receive input from a user via the user interface 130 and to invoke features of the application in response to those inputs. The user interface manager 126 also operates to present the output of the application to the user via the user interface 130.

[0047] In response to receiving a request, the user interface manager 126 provides the request to the trademark portfolio similarity determiner 110, which utilizes information from the trademark database 128 and / or one (or more) trademark sources 108 to generate a list of one or more entities having trademark portfolio profiles similar to one or more input entities. The user interface manager 126 then presents the results generated by the trademark portfolio similarity generator 110 to the user via the user interface 130.

[0048] Note that, in an alternative embodiment, Figure 1 the system 100 may be configured in an alternative manner. For example, Figure 2A and Figure 2B FIGs. depict block diagrams of systems 200A and 200B, each configured to determine the similarity between two or more trademark portfolios. Systems 200A and 200B are described in further detail below.

[0049] Referring Figure 2A , system 200A may include one or more servers 104. Each server 104 includes a trademark portfolio similarity determiner 110, a user interface manager 126, and a trademark database 128. System 200A represents Figure 1 a more advanced embodiment of the system 100 depicted in Figure 2B . Referring Figure 1 , system 200B represents a system for determining trademark portfolio similarity using machine learning. Specifically, system 200B includes

[0050] In some embodiments, one or more training datasets 206 are used to generate a model 202 based on a supervised machine learning algorithm. The training dataset 206 may include a data subset used by a trainer 204 to train the model and a data subset for testing the trained model. In some embodiments, one (or more) training datasets 206 may include some or all of the data of one (or more) trademark sources 108 and the trademark database 128. The trainer 204 may extract features associated with each trademark combination in the training data to generate one (or more) second feature vectors for classifying new feature vectors. The trainer 204 may use the test dataset to test the trained model.

[0051] The model 202 may classify the first feature vector by calculating the distance between the first feature vector and one (or more) second feature vectors to predict an entity corresponding to one (or more) second feature vectors that is most similar to the first feature vector. The model 202 may output an identifier and a confidence score of the entity corresponding to one (or more) second feature vectors that is most similar to the first feature vector. In some embodiments, the combined similarity score may be based on the confidence score. The model 202 may be based on any known classification model algorithm, such as but not limited to neural networks, Naive Bayes, k-nearest neighbor, support vector machine, etc.

[0052] Figure 1 The system 100 may operate in various ways, including the ways described above and other ways. For example, Figure 3 FIG. 300 is a flowchart showing a method for determining the similarity between trademark combinations according to an embodiment. In one embodiment, the flowchart 300 may be implemented by the system 100. Accordingly, reference will continue to be made to Figure 1 describe the flowchart 300. Based on the following discussion of the flowchart 300 and the system 100, other structural and operational embodiments will be apparent to those skilled in the art.

[0053] As Figure 3 shown, the method of the flowchart 300 begins at step 302, where a user request identifying one or more entities is received. For example, the user interface manager 126 may receive, via the user interface 130, from the user a search request for competing entities having a profile similar to one or more input entities. The user may identify the input entities in the request. The request is provided to the trademark combination similarity determiner 110 and processed by the request processor 112.

[0054] In step 304, a trademark portfolio is determined for the input entity. For example, the trademark portfolio similarity determiner 110 can access the trademark database 128 and / or one (or more) trademark sources 108 to retrieve trademark information related to the input entity and provide the trademark information to the trademark portfolio profile generator 114. In the embodiments discussed below with reference to Figure 4A the trademark portfolio can include trademarks related to subsidiaries of the input entity and trademarks related to companies recommended by one (or more) servers 104.

[0055] In step 306, a trademark portfolio profile is determined for the trademark portfolio of the input entity. For example, the trademark portfolio profile generator 114 can receive the trademark portfolio and extract one or more features or characteristics of the trademarks in the trademark portfolio. The features or characteristics of the trademarks include, for example but not limited to, the following information: trademark country, trademark name, trademark image (e.g., design or logo), trademark class and subclass, product / service description for each class, serial number, application date, registration number, registration date, owner information, trademark description, trademark type, and trademark status. Additionally, the trademark analyzer 120 can perform text and / or graphical analysis of the trademark name, trademark image (e.g., design or logo), product / service, and / or trademark description to infer the trademark class or subclass of the trademark. The first trademark portfolio profile can also include features or characteristics of the trademark portfolio, such as but not limited to the count or percentage of trademarks within a specific trademark class, trademark subclass, and / or trademark country. As will be discussed below with reference to Figure 4B the trademark portfolio profile generator 114 can generate a first feature vector representing the features or characteristics of the trademark portfolio.

[0056] In step 308, a similarity score is determined between the first trademark portfolio and each trademark portfolio profile of a plurality of second entities. For example, the trademark portfolio profile generator 114 can transmit the first trademark portfolio profile as an input to the portfolio similarity score calculator 122 to generate a trademark portfolio similarity score between the first trademark portfolio and a second trademark portfolio profile representing the trademark portfolio of a second entity. Step 308 can be repeated for each second entity among the plurality of second entities to determine a plurality of similarity scores.

[0057] In step 310, it is determined whether the score meets the criteria. For example, the trademark portfolio profile analyzer 116 compares the trademark portfolio similarity score with a predetermined, dynamic, and / or user-defined criterion. If the trademark portfolio similarity score meets the criteria, method 300 proceeds to step 312. If the trademark portfolio similarity score does not meet the criteria, method 300 proceeds to step 314.

[0058] In step 312, include the second entity in the first output entity set. For example, the result preparer 118 may include the second entity in the output entity set based on the trademark portfolio similarity score meeting the criteria.

[0059] In step 314, determine whether there are more entities under consideration. For example, the trademark portfolio profile analyzer 116 determines whether there are additional second entities under consideration. If there are more second entities under consideration, method 300 returns to step 308, where steps 308, 310, and / or 312 may be repeated for the additional second entities. If there are no more second entities under consideration, method 300 proceeds to step 316.

[0060] In step 316, provide the user with a list of entities selected from the first output entity set. For example, the sorter / filter 124 may determine the second entity with the highest similarity score meeting the criteria. The list of entities may be provided to the result preparer 118 for formatting in an appropriate format for output to the user, and then provided to the user interface manager 126 for output to the user through the user interface 130.

[0061] Figure 4A Flowchart 400A depicts a method for determining similarity between trademark portfolios according to an embodiment. The method of flowchart 400A may represent sub-steps related to Figure 3 step 304. In one embodiment, flowchart 400A may be implemented by system 100. Accordingly, the description of flowchart 400A will continue with reference to Figure 1 the following. Based on the discussion of flowchart 400A and system 100 below, other structural and operational embodiments will be apparent to those skilled in the art.

[0062] In step 402, receive identifiers of one or more input entities. For example, the user interface manager 126 may receive, through the user interface 130, a search request from the user for competing entities having a profile similar to one or more input entities.

[0063] In step 404, include the trademarks owned by the one or more input entities in the combined trademark portfolio. For example, the trademark portfolio similarity determiner 110 may access the trademark database 128 and / or one (or more) trademark sources 108 to retrieve trademark information related to the input entities, and provide the trademark information to the trademark portfolio profile generator 114 to include in the combined trademark portfolio.

[0064] In optional step 406, it is determined whether the input entity has subsidiaries. For example, the trademark portfolio profile generator 114 can access one or more databases containing corporate ownership data to determine whether the input entity has any subsidiaries. In some embodiments, the trademark portfolio similarity determiner 110 can prompt the user for input to determine whether trademarks owned by subsidiaries should be included in the combined trademark portfolio.

[0065] In step 408, one or more trademarks owned by any subsidiaries of one or more entities are included in the combined trademark portfolio. For example, if a subsidiary exists and if the user selects to include the subsidiary in the query, then the trademark portfolio profile generator 114 can include the trademarks owned by the subsidiary in the combined trademark portfolio.

[0066] In optional step 410, the method determines whether additional entities should be recommended to the user. For example, the trademark portfolio profile generator 114 can suggest entities to the user for inclusion in the query. In one embodiment, when the user enters text into a text field of the user interface 130, additional entities can be provided as part of an autocomplete feature.

[0067] In optional step 412, similar entities are recommended to the user for inclusion in the query. For example, the user interface manager 126 can provide the suggested entities to the user via the user interface 130.

[0068] In optional step 414, it is determined whether the user accepts the recommendation. For example, the trademark portfolio profile generator 114 can determine whether the user accepts the recommended entity. For example, the user can click on one or more user-selectable elements of the user interface 130 representing the additional entity to include the additional entity in the query.

[0069] In optional step 416, one (or more) trademarks owned by any recommended entities accepted by the user are included in the combined trademark portfolio. For example, the trademark portfolio profile generator 114 includes the trademarks owned by any recommended entities accepted by the user in the combined trademark portfolio.

[0070] In step 418, method 400A proceeds to Figure 4B method 400B, where the combined trademark portfolio is analyzed to generate a trademark portfolio profile.

[0071] Figure 4B Depicts a flowchart 400B of a method for determining similarity between trademark portfolios according to an embodiment. The method of flowchart 400B can represent sub-steps related to Figure 3 steps 306 and 308. In one embodiment, flowchart 400B can be implemented by system 100. Accordingly, reference will continue to Figure 1Describe flowchart 400B. Based on the following discussion of flowchart 400B and system 100, other structural and operational embodiments will be apparent to those skilled in the art.

[0072] In step 420, features are extracted from the trademark portfolio to generate a first feature vector. For example, the trademark portfolio profiler 116 can analyze the trademark portfolio to generate a first feature vector. The features or characteristics of a trademark include, for example, but are not limited to the following information: trademark country, trademark name, trademark image (e.g., design or logo), trademark class and subclass, product / service description for each class, serial number, application date, registration number, registration date, owner information, trademark description, trademark type, and trademark status. Additionally, the trademark analyzer 120 can perform textual and / or graphical analysis of the trademark name, trademark image (e.g., design or logo), product / service, and / or trademark description to infer the trademark class or subclass of the trademark. The combined trademark portfolio profile can also include features or characteristics of the trademark portfolio, such as, for example, but not limited to, the count or percentage of trademarks within a specific trademark class, trademark subclass, and / or trademark country.

[0073] In step 422, the feature vector is provided to the portfolio similarity score calculator. In step 424, the similarity between the first feature vector and a second feature vector is calculated, where the second feature vector represents the trademark portfolio profile of a second entity. For example, the portfolio similarity score calculator 122 can calculate the trademark portfolio similarity score by determining the similarity or distance between the feature vectors. One or more techniques (including but not limited to cosine similarity, Euclidean distance, etc.) can be used to determine the similarity or distance. In some embodiments, the portfolio similarity score calculator 122 can be implemented as a machine learning model. As new trademark information becomes available, the machine learning model can be updated or retrained to further improve its accuracy. The machine learning model can also be updated based on feedback from the user. For example, if the user indicates that an entity is not a competitor, the machine learning model can be updated to reflect that feedback. User feedback can be used to update user-specific machine learning models and / or global machine learning models.

[0074] In step 426, the identifier of the second entity and its corresponding portfolio similarity score are received from the output of the portfolio similarity score calculator. For example, the portfolio similarity score calculator 122 provides the trademark portfolio similarity score and / or the identifier of the corresponding second entity. For example, the portfolio similarity score calculator can provide the trademark portfolio similarity score and / or the identifier of the corresponding second entity to the result preparer 118 for sorting, filtering, and / or outputting to the user via the user interface 130.

[0075] Figure 4CFIG. 400B is a flowchart depicting a method for determining similarity between trademark portfolios according to an embodiment. The method of flowchart 400C may represent sub-steps related to Figure 4B step 424. In one embodiment, flowchart 400C may be implemented by the combined similarity score calculator 122 of system 100 and / or 200B. Accordingly, reference will continue to be made to Figure 1 and Figure 2B to describe flowchart 400B. Based on the following discussion of flowchart 400C and systems 100 and 200B, other structural and operational embodiments will be apparent to those skilled in the art.

[0076] In step 428, a first feature vector is received, the first feature vector containing features of the extracted trademark portfolio. For example, the combined similarity score calculator 122 receives a first feature vector generated by extracting features of a first trademark portfolio. For example, the combined similarity score calculator 122 may input the first feature vector 208 into the model 202.

[0077] In step 430, the distance between the first feature vector and one (or more) second feature vectors corresponding to a second trademark portfolio is calculated. For example, the model 202 may calculate the distance between the first feature vector and one (or more) second feature vectors corresponding to a second trademark portfolio profile associated with a second entity. Based on the calculated distance between the first feature vector and one (or more) second feature vectors, the model 202 may determine one (or more) nearest second feature vectors corresponding to the trademark portfolio most similar to the combined trademark portfolio.

[0078] In step 432, one (or more) combined similarity scores are calculated based on the distance between the first feature vector and one (or more) nearest second feature vectors. For example, the model 202 may calculate the one (or more) combined similarity scores for each of the one (or more) nearest second feature vectors. In some embodiments, the one (or more) combined similarity scores may be confidence scores based on the distance between the first feature vector and each of the one (or more) nearest second feature vectors.

[0079] In step 434, the combined similarity scores and identifiers of one (or more) second entities corresponding to one (or more) nearest second feature vectors are returned as output. For example, the model 202 may output the identifiers of the entities corresponding to each of the one (or more) nearest second feature vectors and their respective combined similarity scores.

[0080] Figure 5AFIG. 500A is a flowchart depicting a method for monitoring similarity between trademark portfolios in accordance with an embodiment. The method of flowchart 500A may represent an alternative feature enabling a user to monitor an entity based on monitoring criteria. In one embodiment, flowchart 500A may be implemented by system 100. Accordingly, reference will continue to be made to Figure 1 describe flowchart 500A. Based on the following discussion regarding flowchart 500A and system 100, other structural and operational embodiments will be apparent to those skilled in the art.

[0081] In optional step 502, a user monitoring request is received, the user monitoring request including monitoring criteria. For example, the user may input monitoring criteria via user interface 130, which when met will trigger the transmission of a notification identifying one or more entities newly meeting the monitoring criteria. Alternatively, step 502 may be optional, and the trademark portfolio similarity determiner 110 may adopt the user's original query as the monitoring criteria.

[0082] In step 504, the trend of the trademark portfolio similarity score between a first trademark portfolio profile and a second trademark portfolio profile is monitored. In some embodiments, step 504 may include monitoring a plurality of trademark portfolio similarity scores indicative of the similarity between a first trademark portfolio profile of a first entity and a plurality of second trademark portfolio profiles corresponding to a plurality of second entities. As will be referenced below Figure 5B in the discussion, the trademark portfolio profile generator 114 may recalculate and track trademark portfolio similarity scores to determine trends in the trademark portfolio similarity scores.

[0083] In step 506, the method determines whether one (or more) trends meet the monitoring criteria. For example, the trademark portfolio similarity determiner 110 may determine whether the trend in the trademark portfolio similarity scores meets the monitoring criteria. For example, the monitoring criteria may be met when the trademark similarity score meets a threshold, etc. If the monitoring criteria are met, method 500 proceeds to step 508. If the monitoring criteria are not met, method 500 returns to step 504, where the method continues to monitor the trend in one (or more) trademark portfolio similarity scores. In an embodiment, the monitoring may be performed continuously, in real time, periodically, and / or according to any other timing scheme.

[0084] In step 508, the user is alerted that the second entity meets the monitoring criteria. For example, the results preparer 118 may generate a notification including an identifier of the second entity newly meeting the monitoring criteria. The notification may be provided to the user interface manager 126 and displayed to the user via user interface 130. Alternatively, the notification may be sent via an external channel (such as but not limited to e-mail, short message service (SMS), push notification, etc.).

[0085] Figure 5B shows a flowchart 500B of a method for monitoring the similarity between trademark portfolios according to an embodiment. The method of flowchart 500B may represent sub-steps related to Figure 5A step 504. In one embodiment, flowchart 500B may be implemented by system 100. Accordingly, reference will continue to be made to Figure 1 describe flowchart 500B. Based on the following discussion of flowchart 500B and system 100, other structural and operational embodiments will be apparent to those skilled in the art.

[0086] In optional step 510, changes in one or more external trademark sources are monitored. For example, the trademark portfolio similarity determiner 110 may monitor one or more trademark sources 108 for newly registered, updated, and / or cancelled trademarks. Optionally, Figure 5B the trademark database 128 may be updated without actively monitoring one or more trademark sources 108. For example, the trademark portfolio similarity determiner 110 may subscribe to any update notifications, including but not limited to newly registered, updated, and / or cancelled trademarks.

[0087] In step 512, the trademark database is updated to include any changes detected in the external trademark sources. For example, the trademark portfolio similarity determiner 110 may update the trademark database 128 based on any detected changes in one or more trademark sources 108.

[0088] In step 514, a trademark portfolio similarity score is calculated, which indicates the similarity between a first trademark portfolio profile and a second trademark portfolio profile. For example, when changes are detected in the trademark portfolios of the first entity and / or the second entity, the portfolio similarity score calculator 122 may recalculate the trademark portfolio similarity score for indicating the similarity between the first trademark portfolio profile of the first entity and the second trademark portfolio profile corresponding to the second entity.

[0089] In step 516, changes in one or more trademark portfolio similarity scores are tracked. For example, the trademark portfolio similarity determiner 110 may maintain a record of at least a portion of one or more historical trademark portfolio similarity scores over time. The trademark portfolio similarity determiner 110 may use the maintained record to determine the trend of one or more trademark portfolio similarity scores.

[0090] Figure 6FIG. 600 is a flowchart of a method for filtering results according to an embodiment. The method of flowchart 600 may represent an optional feature that enables a user to filter the results provided by the trademark portfolio similarity determiner 110. In one embodiment, flowchart 600 may be implemented by system 100. Accordingly, reference will continue to be made to Figure 1 describe flowchart 600. Based on the following discussion of flowchart 600 and system 100, other structural and operational embodiments will be apparent to those skilled in the art.

[0091] In optional step 602, a user request is received that includes filtering criteria. For example, a user may input one or more filtering criteria via user interface 130 to limit the results provided by the trademark portfolio similarity determiner 110. Optionally, the trademark portfolio similarity determiner 110 may filter the results based on default filtering criteria. For example, the default filtering criteria may be maintained as user preferences, which the user may change.

[0092] In step 604, a trademark similarity score between a first trademark portfolio profile and a second trademark portfolio profile of a second entity is determined. For example, the portfolio similarity score calculator 122 may determine a trademark portfolio similarity score that indicates the similarity between the first trademark portfolio profile of a first entity and the second trademark portfolio profile corresponding to a second entity. Step 604 may correspond to Figure 3 step 308 of Figure 4B method 400B of

[0093] In step 606, it is determined whether the trademark portfolio similarity score meets the filtering criteria. For example, the trademark portfolio profile analyzer 116 may compare the newly calculated or previously calculated trademark portfolio similarity score with the filtering criteria. If the trademark portfolio similarity score meets the filtering criteria, method 600 proceeds to step 608. If the trademark portfolio similarity score does not meet the filtering criteria, method 600 proceeds to step 610.

[0094] In step 608, the second entity is included in the filtered entity set. For example, the result preparer 118 may include the second entity in the filtered entity set based on the trademark portfolio similarity score meeting the filtering criteria.

[0095] In step 610, it is determined whether there are more entities under consideration. The trademark portfolio profiler 116 can determine whether there are additional entities under consideration. If there are more entities under consideration, method 600 returns to step 604, where steps 604, 606, and / or 608 can be repeated for each additional entity under consideration. If there are no more entities under consideration, method 600 proceeds to step 612, where a list including the filtered set of entities is returned to the user. For example, the trademark portfolio similarity determiner 110 can provide the newly generated list of entities to the user via the user interface 130. Optionally, the existing list of entities currently displayed to the user in the user interface 130 can be updated to reflect any changes in the filtering criteria.

[0096] Figure 7 FIG. 700 shows a graphical user interface (GUI) for determining similarity between trademark portfolios according to an embodiment. In one embodiment, GUI 700 can be implemented by system 100. Accordingly, reference will continue to Figure 1 describe GUI 700. Based on the following discussion of GUI 700 and system 100, other structural and operational embodiments will be apparent to those skilled in the art.

[0097] As Figure 7 shown, GUI 700 can represent an example of the user interface 130. GUI 700 can include one or more windows 702. Window 702 can include a search section 704 and a results section 706. The search section 704 includes one or more text input fields for entering one or more entities and / or one or more filtering or monitoring criteria. The results section 706 can include zero or more entities that satisfy the user-entered query. For example, entities 1 to 6 can represent entities having corresponding trademark portfolio similarity scores that meet a predetermined or user-defined criterion. Additionally, the user can interact with the results in the results section 706 to expand and / or collapse the results to show a detailed results section 708. For example, when the user expands the result representing entity 6, the detailed results section 708 can appear. The detailed results section 708 can display a comparison 710 of the count and / or percentage of trademarks owned by entity A and entity 6 in each trademark class and / or trademark subclass. In an embodiment, more than one result can be expanded simultaneously. Additionally, the user can also interact with one or more elements of window 702 to increase or decrease the amount of information displayed to the user about an entity (e.g., entity A, entity 1, etc.). Figure 7 The elements of GUI 700 shown in FIG. are merely exemplary, and more elements can be included in or fewer elements excluded from GUI 700.

[0098] III. Example Mobile Device and Computer System Implementations

[0099] Referenced above Figures 1 to 7The described systems and methods (including client 102, one or more servers 104, one or more networks 106, one or more trademark sources 108, trademark portfolio similarity determiner 110, request processor 112, trademark portfolio profile generator 114, trademark portfolio profile analyzer 116, result preparer 118, trademark analyzer 120, portfolio similarity score calculator 122, sorter / filter 124, user interface manager 126, trademark database 128, user interface 130, each of the components described therein, and / or the steps of flowcharts 300, 400A, 400B, 500A, 500B, and / or 600, and / or GUI 700) can be implemented in hardware, or in a combination of hardware with one or two of software and / or firmware. For example, client 102, one or more servers 104, one or more networks 106, one or more trademark sources 108, trademark portfolio similarity determiner 110, request processor 112, trademark portfolio profile generator 114, trademark portfolio profile analyzer 116, result preparer 118, trademark analyzer 120, portfolio similarity score calculator 122, sorter / filter 124, user interface manager 126, trademark database 128, user interface 130, and / or each of the components described therein, the steps of flowcharts 300, 400A, 400B, 500A, 500B, and / or 600, and / or GUI 700 can be implemented separately as computer program code / instructions configured to be executed in one or more processors and stored in a computer-readable storage medium. Optionally, client 102, one or more servers 104, one or more networks 106, one or more trademark sources 108, trademark portfolio similarity determiner 110, request processor 112, trademark portfolio profile generator 114, trademark portfolio profile analyzer 116, result preparer 118, trademark analyzer 120, portfolio similarity score calculator 122, sorter / filter 124, user interface manager 126, trademark database 128, user interface 130, and / or each of the components described therein, the steps of flowcharts 300, 400A, 400B, 500A, 500B, and / or 600, and / or GUI 700 can be implemented in one or more system on chips (SoCs). The SoC can include an integrated circuit chip that includes one or more of the following: a processor (e.g., a central processing unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc.), a memory, one or more communication interfaces, and / or other circuitry, and the SoC can optionally execute the received program code and / or include embedded firmware to perform functions.

[0100] The embodiments disclosed herein may be implemented in one or more computing devices, which may be mobile (mobile devices) and / or stationary (fixed devices), and may include any combination of the characteristics of such mobile and fixed computing devices. Examples of computing devices in which the embodiments may be implemented are referenced Figure 8 and described below. Figure 8 FIG. shows a block diagram of an exemplary computing environment 800 that includes a computing device 802. In some embodiments, the computing device 802 is communicatively coupled via a network 804 to a device external to the computing environment 800 ( Figure 8 not shown). The network 804 may include one or more networks, such as a local area network (LAN), a wide area network (WAN), a corporate network, the Internet, etc., and the network may include one or more wired and / or wireless portions. The network 804 may additionally or optionally include a cellular network for cellular communication. The computing device 802 is described in detail below.

[0101] The computing device 802 may be any of a variety of types of computing devices. For example, the computing device 802 may be a mobile computing device, such as a handheld computer (e.g., a personal digital assistant (PDA)), a laptop computer, a tablet computer (e.g., an Apple iPad TM ), a hybrid device, a notebook computer (e.g., a Google Chromebook from Google LLC TM ), a netbook, a mobile phone (e.g., a cellular phone, a smartphone (e.g., an Apple iPhone from Apple Inc. iPhone ), a phone implementing the Google Android TM operating system, etc.), a wearable computing device (e.g., a head-mounted augmented reality and / or virtual reality device including smart glasses (e.g., Google Glasses TM ), the Oculus Rift from Facebook Technologies, LLC ), etc.) or other types of mobile computing devices. The computing device 802 may optionally be a fixed computing device, such as a desktop computer, a personal computer (PC), a fixed server device, a minicomputer, a mainframe, a supercomputer, etc.

[0102] As Figure 8As shown, the computing device 802 includes various hardware and software components, including a processor 810, a storage 820, one or more input devices 830, one or more output devices 850, one or more wireless modems 860, one or more wired interfaces 880, a power supply 882, a location information (LI) receiver 884, and an accelerometer 886. The storage 820 includes a memory 856 and a storage device 890. The memory 856 includes a non-removable memory 822 and a removable memory 824. The storage 820 also stores an operating system 812, application programs 814, and application data 816. One (or more) wireless modems 860 include a WI-FI modem 862, a Bluetooth modem 864, and a cellular modem 866. One (or more) output devices 850 include a speaker 852 and a display 854. One (or more) input devices 830 include a touch screen 832, a microphone 834, a camera 836, a physical keyboard 838, and a trackball 840. Not Figure 8 All components of the computing device 802 shown are present in all embodiments. There may be other components not shown, and any combination of components may be present in a particular embodiment. These components of the computing device 802 are described as follows.

[0103] A single processor 810 (e.g., a central processing unit (CPU), a microcontroller, a microprocessor, a signal processor, an application specific integrated circuit (ASIC), and / or other physical hardware processor circuits) or multiple processors 810 may be present in the computing device 802 to perform tasks such as program execution, signal encoding, data processing, input / output processing, power control, and / or other functions. The processor 810 may be a single-core or multi-core processor, and each processor core may be single-threaded or multi-threaded (to provide multiple execution threads simultaneously). The processor 810 is configured to execute program code stored in a computer-readable medium, such as the program code of the operating system 812 and the application programs 814 stored in the storage 820. The operating system 812 controls the allocation and use of the components of the computing device 802 and provides support for one or more application programs 814 (also referred to as “applications” or “apps”). The application programs 814 may include common computing applications (e.g., an email application, a calendar, a contact manager, a web browser, a messaging application), other computing applications (e.g., a word processing application, a map application, a media player application, a productivity suite application), one or more machine learning (ML) models, and applications related to the embodiments disclosed herein.

[0104] Although not shown for ease of illustration, any component in computing device 802 can communicate with any other component based on functionality. For example, as Figure 8 shown, bus 806 is a multi-signal line communication medium (e.g., conductive traces in silicon, metal traces along a motherboard, electrical wires, etc.) that can communicatively couple processor 810 to each of the other components of computing device 802. However, in other embodiments, alternative buses, additional buses, and / or one or more individual signal lines may be present to communicatively couple the components. Bus 806 represents any one or more of a variety of types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any one of a variety of bus architectures.

[0105] Storage 820 is physical storage that includes one or both of memory 856 and storage device 890 and stores operating system 812, application 814, and application data 816 according to any distribution. Non-removable memory 822 includes one or more of the following: random access memory (RAM), read-only memory (ROM), flash memory, solid state drive (SSD), hard disk drive (e.g., a disk drive for reading from and writing to a hard disk), and / or other physical memory device types. Non-removable memory 822 may include main memory and may be separate from or fabricated in the same integrated circuit as processor 810. As Figure 8 shown, non-removable memory 822 stores firmware 818, which can be used to provide low-level control of the hardware. Examples of firmware 818 include the Basic Input / Output System (BIOS) (e.g., on a personal computer) and boot firmware (e.g., on a smart phone). Removable memory 824 can be inserted into a socket of computing device 802 or otherwise coupled to computing device 802 and can be removed from computing device 802 by a user. Removable memory 824 can include any suitable removable memory device type, including a Secure Digital (SD) card, a Subscriber Identity Module (SIM) card well known in Global System for Mobile Communications (GSM) communication systems, and / or other removable physical memory device types. One or more storage devices 890 may be present inside and / or outside the housing of computing device 802 and may be removable or non-removable. Examples of storage devices 890 include hard disk drives, SSDs, thumb drives (e.g., Universal Serial Bus (USB) flash drives), or other physical storage devices.

[0106] One or more programs may be stored in storage 820. Such programs include operating system 812, one or more application programs 814, and other program modules and program data. For example, examples of such application programs may include computer program logic (e.g., computer program code / instructions) for implementing client 102, one (or more) servers 104, one (or more) networks 106, one (or more) trademark sources 108, trademark portfolio similarity determiner 110, request processor 112, trademark portfolio profile generator 114, trademark portfolio profile analyzer 116, result preparer 118, trademark analyzer 120, combined similarity score calculator 122, sorter / filter 124, user interface manager 126, trademark database 128, user interface 130, and / or each component described therein and any component and / or its sub-components described herein, and the flowcharts / flow diagram illustrations described herein (e.g., flowchart 300, 400A, 400B, 500A, 500B, and / or 600), including portions thereof, and / or other examples described herein.

[0107] Storage 820 also stores data used and / or generated by operating system 812 and application programs 814 as application data 816. Examples of application data 816 include web pages, text, images, tables, sound files, video data, and other data, which may also be sent to one or more network servers or other devices and / or received from one or more network servers or other devices via one or more wired or wireless networks. Storage 820 may be used to store other data, including user identifiers (such as International Mobile Subscriber Identity (IMSI)) and device identifiers (such as International Mobile Equipment Identifier (IMEI)). Such identifiers may be transmitted to network servers to identify users and devices.

[0108] A user may input commands and information into the computing device 802 via one or more input devices 830, and may receive information from the computing device 802 via one or more output devices 850. One (or more) input devices 830 may include one or more of the following: a touch screen 832, a microphone 834, a camera 836, a physical keyboard 838, and / or a trackball 840, and one (or more) output devices 850 may include one or more of the following: a speaker 852 and a display 854. Each input device 830 and output device 850 may be integrated into the computing device 802 (e.g., built into the housing of the computing device 802) or external to the computing device 802 (e.g., communicatively coupled to the computing device 802 wired or wirelessly via one (or more) wired interfaces 880 and / or one (or more) wireless modems 860). Additional input devices 830 (not shown) may include a Natural User Interface (NUI), a pointing device (computer mouse), a joystick, a video game controller, a scanner, a touchpad, a stylus, a voice recognition system that receives voice input, a gesture recognition system that receives gesture input, etc. Other possible output devices (not shown) may include piezoelectric or other haptic output devices. Some devices may provide more than one input / output function. For example, the display 854 may display information and may also function as a touch screen 832, receiving user commands and / or other information (e.g., via touch, finger gestures, a virtual keyboard, etc.) as a user interface. Any number of each type of input device 830 and output device 850 may be present, including multiple microphones 834, multiple cameras 836, multiple speakers 852, and / or multiple displays 854.

[0109] One or more wireless modems 860 may be coupled to one (or more) antennas (not shown) of computing device 802 and may support two-way communication between processor 810 and devices external to computing device 802 via network 804, which will be understood by those skilled in the art. Wireless modem 860 is shown as generic and may include a cellular modem 866 for communicating with one or more cellular networks (e.g., a GSM network for data and voice communication within a single cellular network, between cellular networks, or between a mobile device and the public switched telephone network (PSTN)). Wireless modem 860 may also or alternatively include other radio-based modem types, such as a Bluetooth modem 864 (also referred to as a "Bluetooth device") and / or a WI-FI 862 modem (also referred to as a "wireless adapter"). The WI-FI modem 862 is configured to communicate with an access point or other WI-FI-enabled remote device according to one or more wireless network protocols based on the Institute of Electrical and Electronics Engineers (IEEE) 802.11 series of standards, which are commonly used for local area networking and Internet access of devices. The Bluetooth modem 864 is configured to communicate with another Bluetooth-enabled device according to one (or more) short-range wireless technology standards (e.g., IEEE802.15.1 and / or those managed by the Bluetooth Special Interest Group (SIG)).

[0110] Computing device 802 may also include a power supply 882, an LI receiver 884, an accelerometer 886, and / or one or more wired interfaces 880. Example wired interfaces 880 include: USB ports, IEEE 1394 (FireWire) ports, RS-232 ports, high-definition multimedia interface (HDMI) ports (e.g., for connecting to an external display), DisplayPort ports (e.g., for connecting to an external display), audio ports, Ethernet ports, and / or Apple Lightning Ports, the respective purposes and functions of which are known to those skilled in the relevant art. One (or more) wired interfaces 880 of the computing device 802 provide a wired connection between the computing device 802 and the network 804, or provide a wired connection between the computing device 802 and one or more devices / peripherals (e.g., a pointing device, display 854, speaker 852, camera 836, physical keyboard 838, etc.) when such devices / peripherals are external to the computing device 802. The power supply 882 is configured to power each component of the computing device 802 and can receive power from a battery inside the computing device 802 and / or from a power cord inserted into a power port (e.g., a USB port, an A / C power port) of the computing device 802. The LI receiver 884 can be used for location determination of the computing device 802 and can include a satellite navigation receiver (such as a Global Positioning System (GPS) receiver), or can include other types of location determiners configured to determine the location of the computing device 802 based on received information (e.g., using cellular tower triangulation, etc.). An accelerometer 886 can be present to determine the orientation of the computing device 802.

[0111] It should be noted that the components of the computing device 802 shown are not necessary or all-inclusive, and those skilled in the art can recognize that there can be fewer or more components. For example, the computing device 802 can also include one or more of the following: a gyroscope, a barometer, a proximity sensor, an ambient light sensor, a digital compass, etc. The processor 810 and the memory 856 can be co-located in the same semiconductor device package, e.g., optionally included in an integrated circuit chip, an FPGA, or a system-on-chip (SOC) together with other components of the computing device 802.

[0112] In an embodiment, the computing device 802 is configured to implement any of the features of the flowcharts described above herein. The computer program logic for performing any of the operations, steps, and / or functions described herein can be stored in the storage 820 and executed by the processor 810.

[0113] In some embodiments, a server infrastructure 870 can be present in the computing environment 800 and can be communicatively coupled to the computing device 802 via the network 804. The server infrastructure 870 (when present) can be a set of network-accessible servers (e.g., a cloud-based environment or platform). As Figure 8 shown, the server infrastructure 870 includes clusters 872. Each of the clusters 872 can include one or more groups of computing nodes and / or one or more groups of storage nodes. For example, as Figure 8As shown, the cluster 872 includes nodes 874. Each node 874 can be accessed via a network 804 (e.g., in a "cloud-based" embodiment) to build, deploy, and manage applications and services. Any node 874 can be a storage node that includes a plurality of physical storage disks, SSDs, and / or other physical storage devices that can be accessed via the network 804 and are configured to store data associated with the applications and services managed by the node 874. For example, as Figure 8 shown, the node 874 can store application data 878.

[0114] Each node 874 can include one or more server computers, server systems, and / or computing devices as a computing node. For example, the node 874 can include one or more of the components of the computing device 802 disclosed herein. Each node 874 can be configured to execute one or more software applications (or "applications") and / or services and / or manage hardware resources (e.g., processors, memory, etc.), which can be used by users (e.g., customers) of a network-accessible set of servers. For example, as Figure 8 shown, the node 874 can operate an application program 876. In one embodiment, the nodes in the node 874 can operate or include one or more virtual machines, where each virtual machine emulates a system architecture (e.g., an operating system) in an isolated manner, on which an application, such as the application program 876, can be executed.

[0115] In one embodiment, one or more clusters in the cluster 872 can be co-located (e.g., in one or more nearby buildings with associated components such as backup power, redundant data communication, environmental control, etc.) to form a data center, or can be arranged in other ways. Thus, in one embodiment, one or more clusters in the cluster 872 can be data centers in a distributed collection of data centers. In an embodiment, the exemplary computing environment 800 includes a part of a cloud-based platform, such as Amazon Web Services of Amazon.com, Inc. or Google Cloud Platform of Google LLC TM , but these are only examples and not restrictive.

[0116] In an embodiment, the computing device 802 can access the application program 876 to execute in any manner, e.g., via a client application and / or a browser at the computing device 802. Example browsers include Microsoft Edge of Microsoft Corporation, Redmond, Washington , Mozilla Firefox of Mozilla Corporation, Mountain View, California , Safari of Apple Inc., Cupertino, California and Google Chrome of Google LLC, Mountain View, California Chrome.

[0117] For purposes of network (e.g., cloud) backup and data security, computing device 802 may additionally and / or alternatively synchronize a copy of application 814 and / or application data 816 to be stored at network-based server infrastructure 870 as application 876 and / or application data 878. For example, operating system 812 and / or application 814 may include a file hosting service client, such as Microsoft One Drive , Amazon Simple Storage Service (Amazon S3) of Amazon Web Services, Inc. , Dropbox of Dropbox, Inc. , Google Drive of Google LLC TM , etc., which are configured to synchronize applications and / or data stored in storage 820 at network-based server infrastructure 870.

[0118] In some embodiments, an on-premises server 892 may exist in computing environment 800 and may be communicatively coupled to computing device 802 via network 804. When present, the on-premises server 892 is hosted within the organization's infrastructure and, in many cases, is physically located within the organization's facilities. The on-premises server 892 is controlled, managed, and maintained by the organization's IT (information technology) personnel or the organization's IT partner. Application data 898 may be shared among the organization's computing devices (including computing device 802 when it is part of the organization) by the on-premises server 892 via the organization's local network and / or via other networks accessible to the organization (including the Internet). Additionally, the on-premises server 892 may provide applications (such as application 896) to the organization's computing devices (including computing device 802). Thus, the on-premises server 892 may include storage 894 (which includes one or more physical storage devices such as hard disks and / or SSDs) for storing application 896 and application data 898, and may include one or more processors for executing application 896. Further, computing device 802 may be configured to synchronize a copy of application 814 and / or application data 816 for backup storage at on-premises server 892 as application 896 and / or application data 898.

[0119] The embodiments described herein may be implemented in one or more of the following: computing device 802, network-based server infrastructure 870, and local server 892. For example, in some embodiments, computing device 802 may be used to implement the systems, clients, or devices or their components / sub-components disclosed elsewhere herein. In other embodiments, a combination of computing device 802, network-based server infrastructure 870, and / or local server 892 may be used to implement the systems, clients, or devices, or their components / sub-components disclosed elsewhere herein.

[0120] As used herein, terms such as "computer program medium", "computer-readable medium", and "computer-readable storage medium" are used to refer to physical hardware media. Examples of such physical hardware media include any hard disk, optical disk, SSD, other physical hardware media such as RAM, ROM, flash memory, digital video disk, zip disk, microelectronic machine (MEM) memory, nanotechnology-based storage devices, and other types of physical / tangible hardware storage media of storage 820. Such computer-readable media and / or storage media are distinct from and do not overlap with communication media and propagated signals (excluding communication media and propagated signals). Communication media includes computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave. The term "modulated data signal" refers to a signal in which one or more of the characteristics in its characteristics set are set or changed in order to encode information in the signal. By way of example and not limitation, communication media includes wireless media (such as acoustic, RF, infrared, and other wireless media) and wired media. Embodiments also relate to such communication media that are independent of and do not overlap with embodiments related to computer-readable storage media.

[0121] As described above, computer programs and modules (including application 814) may be stored in storage 820. Such computer programs may also be received via network 804 via one (or more) wired interfaces 880 and / or one (or more) wireless modems 860. When executed or loaded by an application, such computer programs enable computing device 802 to implement the features of the embodiments discussed herein. Thus, such computer programs represent the controller of computing device 802.

[0122] Embodiments also relate to a computer program product that includes computer code or instructions stored on any computer-readable medium or computer-readable storage medium. Such computer program products include the physical storage of storage 820 and other physical storage types.

[0123] IV. Summary

[0124] Although various embodiments have been described above, it is to be understood that these embodiments are merely illustrative and not restrictive. Those skilled in the art can understand that various changes can be made to the forms and details thereof without departing from the spirit and scope of the embodiments as defined in the appended claims. Therefore, the breadth and scope of the present embodiments should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the appended claims and their equivalents.

Claims

1. A method (300) for determining similarity between two or more combinations of trademarks, comprising: Receiving (302) a user request that identifies a first entity; Determining (304, 400A) a first combination of trademarks, the first combination of trademarks including trademarks owned by the first entity; Determining (306, 420) a first trademark combination profile of the first entity based on the first combination of trademarks; Calculating (308, 424, 432) a first combination similarity score that indicates the similarity between the first trademark combination profile and a second trademark combination profile corresponding to a second entity; Based on the first combination similarity score meeting a predetermined criterion (310), including (312) the second entity in a first set of output entities; And Providing (316) the first set of output entities to the user.

2. The method according to claim 1, wherein, Determining the first trademark combination profile includes: generating a first feature vector by extracting features related to a first trademark from the first combination of trademarks.

3. The method according to claim 2, wherein, Calculating the first combination similarity score includes: Providing the first feature vector as an input to a combination similarity score calculator, and Receiving, as an output from the combination similarity score calculator, an identifier of the second entity and the first combination similarity score, the first combination similarity score indicating the similarity between the first feature vector and a second feature vector corresponding to the second entity.

4. The method according to claim 2, wherein, The first feature vector includes features related to at least one of the following: The trademark class or trademark subclass of each trademark in the first combination of trademarks, The count of trademarks owned by the first entity in the at least one trademark class or trademark subclass, or The percentage of trademarks owned by the first entity in each trademark class or trademark subclass of the at least one trademark class or trademark subclass out of the total number of trademarks in the first combination of trademarks.

5. The method according to claim 3, wherein The first feature vector includes features related to at least one of the following: At least one trademark class or trademark subclass of each trademark in the first combination of trademarks, The count of trademarks owned by the first entity in the at least one trademark class or trademark subclass, or The percentage of trademarks owned by the first entity in each trademark class or trademark subclass of the at least one trademark class or trademark subclass out of the total number of trademarks in the first combination of trademarks.

6. The method according to claim 1, further comprising: Receiving a monitoring criterion from the user; Monitoring a trend in a second combination similarity score that indicates the similarity between the first trademark combination profile and a third trademark combination profile corresponding to a third entity; And When the trend monitored in the second combination similarity score meets the monitoring criterion, providing an alert to the user that identifies the third entity.

7. The method according to claim 6, wherein The monitoring the trend in the second combination similarity score includes: Updating a trademark database by adding newly registered trademarks to generate an updated trademark database; Recalculate the second combined similarity score between the first trademark portfolio profile and the third trademark portfolio profile; and Track the change of the second combined similarity score over time.

8. The method according to claim 1, further comprising: Receiving a filtering criterion from the user; Filtering a plurality of additional entities based on the filtering criterion to generate a set of filtered entities; And Providing the set of filtered entities to the user.

9. According to the method of claim 8, wherein The filtering criterion includes at least one of the following: A similarity score threshold; The maximum number of filtered entities to be included in the set of filtered entities, The geographical region of the filtered entities, or The market area of the filtered entities.

10. The method according to claim 1, wherein, The first trademark portfolio further includes trademarks owned by a subsidiary of the first entity.

11. A system (100, 200A, 200B, 800) for determining the similarity between two or more trademark portfolios, comprising: A processor circuit (810); And A memory (820, 894) storing program code (814, 876, 896), the program code being configured to be executed by the processor circuit (810), the program code (814, 876, 896) being configured to cause the system (100, 200A, 200B, 800) to execute a method (300) when executed by the processor circuit, the method comprising: Receiving (302) a user request that identifies a first entity; Determining (304, 400A) a first trademark portfolio that includes trademarks owned by the first entity; Determining (306, 420) a first trademark portfolio profile of the first entity based on the first trademark portfolio; Calculating (308, 424, 432) a first combined similarity score that indicates the similarity between the first trademark portfolio profile and a second trademark portfolio profile corresponding to a second entity; Including (312) the second entity in a first set of output entities based on the first combined similarity score; and Providing (316) the first set of output entities to the user.

12. The system according to claim 11, wherein Determining the first trademark portfolio profile includes: generating a first feature vector by extracting features related to the first trademark from the first trademark portfolio.

13. The system according to claim 12, wherein, Calculating the first combined similarity score includes: Providing the first feature vector as an input to a combined similarity score calculator, and Receiving, as an output from the combined similarity score calculator, an identifier of the second entity and the first combined similarity score, the first combined similarity score indicating the similarity between the first feature vector and a second feature vector corresponding to the second entity.

14. The system according to claim 12, wherein, The first feature vector includes features related to at least one of the following: At least one trademark class or trademark subclass of each trademark in the first trademark portfolio, The count of trademarks owned by the first entity in the at least one trademark class or trademark subclass, or The percentage of trademarks owned by the first entity in each trademark class or subclass within the at least one trademark class or subclass out of the total number of trademarks in the first trademark portfolio.

15. The system according to claim 13, wherein The first feature vector includes features related to at least one of the following: At least one trademark class or subclass of each trademark in the first trademark portfolio, The count of trademarks owned by the first entity in the at least one trademark class or subclass, or The percentage of trademarks owned by the first entity in each trademark class or subclass within the at least one trademark class or subclass out of the total number of trademarks in the first trademark portfolio.

16. The system according to claim 11, wherein, The method further includes: Receiving a monitoring criterion from the user; Monitoring a trend in a second portfolio similarity score that indicates the similarity between the first trademark portfolio profile and a third trademark portfolio profile corresponding to a third entity; and Providing an alert to the user that identifies the third entity when the trend monitored in the second portfolio similarity score meets the monitoring criterion.

17. The system according to claim 11, wherein, The monitoring of the trend in the second portfolio similarity score includes: Updating a trademark database by adding newly registered trademarks to generate an updated trademark database; Recalculating the second portfolio similarity score between the first trademark portfolio profile and the third trademark portfolio profile; and Tracking the change in the second portfolio similarity score over time.

18. The system according to claim 11, wherein, The method further includes: Receiving a filtering criterion from the user; Filtering a plurality of additional entities based on the filtering criterion to generate a set of filtered entities; and Providing the set of filtered entities to the user.

19. The system according to claim 18, wherein, The filtering criterion includes at least one of the following: A similarity score threshold; The maximum number of filtered entities to be included in the set of filtered entities, The geographical region of the filtered entities, or The market area of the filtered entities.

20. A computer-readable storage medium (820, 894) having program instructions (814, 876, 896) recorded thereon, the program instructions, when executed by at least one processor (810), perform a method (300) for determining the similarity between two or more trademark portfolios, the method including: Receiving (302) a user request that identifies a first entity; Determining (304, 400A) a first trademark portfolio that includes trademarks owned by the first entity; Determining (306, 420) a first trademark portfolio profile of the first entity based on the first trademark portfolio; Calculating (308, 424, 432) a first portfolio similarity score that indicates the similarity between the first trademark portfolio profile and a second trademark portfolio profile corresponding to a second entity; Including (312) the second entity in a first output entity set based on the first portfolio similarity score; And Providing (316) the first output entity set to the user.

21. The computer-readable storage medium according to claim 20, wherein, Determining that the first trademark portfolio profile includes: generating a first feature vector by extracting features related to the first trademark from the first trademark portfolio.

22. The computer-readable storage medium according to claim 21, wherein, Calculating the first portfolio similarity score includes: Providing the first feature vector as an input to a portfolio similarity score calculator, and Receiving, as an output from the portfolio similarity score calculator, an identifier of the second entity and the first portfolio similarity score, the first portfolio similarity score indicating a similarity between the first feature vector and a second feature vector corresponding to the second entity.

23. The computer-readable storage medium according to claim 21, wherein, The first feature vector includes features related to at least one of the following: At least one trademark class or trademark subclass of each trademark in the first trademark portfolio, A count of trademarks owned by the first entity in the at least one trademark class or trademark subclass, or A percentage of trademarks owned by the first entity in each trademark class or trademark subclass of the at least one trademark class or trademark subclass with respect to the total number of trademarks in the first trademark portfolio.

24. The computer-readable storage medium according to claim 22, wherein, The first feature vector includes features related to at least one of the following: At least one trademark class or trademark subclass of each trademark in the first trademark portfolio, A count of trademarks owned by the first entity in the at least one trademark class or trademark subclass, or A percentage of trademarks owned by the first entity in each trademark class or trademark subclass of the at least one trademark class or trademark subclass with respect to the total number of trademarks in the first trademark portfolio.

25. The computer-readable storage medium according to claim 20, wherein, The method further includes: Receiving a monitoring criterion from the user; Monitoring a trend in a second portfolio similarity score, the second portfolio similarity score indicating a similarity between the first trademark portfolio profile and a third trademark portfolio profile corresponding to a third entity; and Providing an alert to the user identifying the third entity when the trend monitored in the second portfolio similarity score meets the monitoring criterion.

26. The computer-readable storage medium according to claim 25, wherein, Monitoring the trend in the second portfolio similarity score includes: Updating a trademark database by adding newly registered trademarks to generate an updated trademark database; Recalculating the second portfolio similarity score between the first trademark portfolio profile and the third trademark portfolio profile; and Tracking the change in the second portfolio similarity score over time.

27. The computer-readable storage medium according to claim 20, wherein, The method further includes: Receiving a filtering criterion from the user; Filtering a plurality of additional entities based on the filtering criterion to generate a set of filtered entities; and Providing the set of filtered entities to the user.

28. The computer-readable storage medium according to claim 27, wherein, The filtering criterion includes at least one of the following: A similarity score threshold; A maximum number of filtered entities to be included in the set of filtered entities, The geographical region of the filtered entities, or The market area of the filtered entities.