There are million of issued and pending patents in the United States of America alone, each with one or more inventors listed on the patent. Regulatory websites, such as the United States Patent and Trademark Office's website, allow users to search through this collection of patents and applications. Information associated with the patents such as inventorship, assignee, class, and related patents is also made available to users of the USPTO web site in free text form.
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which:
The following detailed description includes references to the accompanying drawings, which form a part of the detailed description. The drawings show, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments, which are also referred to herein as “examples,” are illustrated in enough detail to enable those skilled in the art to practice the invention. The embodiments may be combined, other embodiments may be utilized, or structural, logical, and electrical changes may be made without departing from the scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims and their equivalents. In this document, the terms “a” or “an” are used, as is common in patent documents, to include one or more than one. In this document, the term “or” is used to refer to a nonexclusive or, unless otherwise indicated.
In an example embodiment, a patent connection system maintains a plurality of user profiles. The user profiles may have one or more roles associated with the patenting process. For example, there may be an inventor profile role. Users of the system (registrants) may interact with the system through a combination of input and display devices (e.g., a website displayed on a monitor and a mouse). Roles may include, but are not limited to, inventors, patent attorneys, assignees, patent examiners, and litigants.
In some example embodiments, a user profile may designate one or more patents with which it is associated. For example, a user profile with an inventor role may be associated with a patent in which there is a textual match between a registrant's name and an inventor's name listed on the patent. In an example embodiment, a home screen may be displayed to a registrant on a display device upon the system receiving verified login credentials (e.g., user name and password). The home screen may display one or more patents that have been designated by the user profile through a textual match or other methods.
In further example embodiments, a first user profile may indicate a connection is to be made to a second user profile. In one example embodiment, a connection between two user profiles signifies that the registrants of the two user profiles have agreed to allow information to be shared between the user profiles. In various embodiments, a user profile may configured to watch another user profile. Watching may include monitoring a user profile for changes. In some example embodiments, information associated with connected user profiles and watched user profiles is displayed on the home screen. Suggested connections may also be displayed to registrants of the system based on information associated with the user such as patents on which they are listed as an inventor.
While this document focuses on patents, other uses may include other professional fields that include public or private databases that have records that people may wish to create relationships around. For example, a system may be created around the tax system with users registering and then having tax information scraped into a system which may include who prepared a person's taxes. Suggested connections may then be made surrounding this scraped information. Other possible uses include creating a network based on real estate records.
It will be appreciated that the present invention may be relevant to other applications, but the following sections will assume the example of the user 101 using a personal computer as the user device 102 and an internet browser (such as Internet Explorer distributed by Microsoft) as the user interface 107. In an example embodiment, user profile database 112 maintains connections between user profiles and designations as indicated by users.
In some example embodiments, the one or more patent numbers 108 may be sent to more than one server device 110. Further, server device 110 may be connected to a plurality of additional server devices. Additionally, server device 110 may be connected to a plurality of other databases in addition to user profile database 112. Further, though not depicted, this server device 110 and/or plurality of server devices may be operatively coupled to any one of a number of databases that may serve as an intermediary between the server device 110 and databases such as user profile database 112.
User device 102 may communicate the one or more patent numbers 108 to network 109 in one or more manners. Some examples may include, but are not limited to, direct wired communication (e.g., through an Ethernet connection) and wireless communication (e.g., 802.11a/b/g/n). In another example embodiment, the user device 102 may communicate through a network hub or router which then communicates with network 109.
In an example embodiment, the server device 110 may communicate with network 109 in one or more manners. Some examples may include, but are not limited to, direct wired communication (e.g., through an Ethernet connection) and wireless communication (e.g., 802.11a/b/g/n). In another example embodiment, server device 110 may communicate through a network hub or router which then communicates with network 109.
Example user profile database 112 includes exemplary representation of differing user profile roles. Illustrated is an inventor role 206, attorney role 208, examiner role 210, and litigants role 212. While only four roles are shown, the system may support the creation of additional roles as defined by an administrator of the system. An inventor role may be identified in one or more storage devices as an inventor profile record. Additionally, it may be possible for a user profile to be generated with no role 214 defined. In further example embodiments, temporary profiles may be generated by the system or by privileged user profiles. In an example embodiment, the role of the user profile facilitates textual matching between a user profile stored in a user profile database and a patent database. For example, the textual match between an inventor's user profile and a patent may be between the inventor's name as stored in the user profile as an inventor name field and an inventor field in a patent record stored in the patent database. The textual match between an assignees' user profile and a patent may be between the assignees' name as stored in the user profile and an assignee field in a patent record stored in the patent database.
To facilitate use of the system, one or more user interfaces may be presented to registrants of the system. For example, there may be an enrollment interface, a home screen interface, and a search interface. Each interface may have one or more input fields and activity controls which allow users to interact with data stored in the system. The interfaces may be displayed to registrants and users of the system on one or more display devices. Information placed into the input fields and activations of the activity controls may be transmitted to the server device for processing. In some example embodiments, the user interfaces are embedded within webpages that are presented on the display device. In further example embodiments, the interfaces are included as part of a network enabled stand-alone application.
In an example embodiment, the enrollment interface is used by registrants to create a user profile and be registered with the system. Upon successfully registering, a user profile record may be stored in a user profile database.
The registrant may fill in the input fields using an input device (e.g., a mouse, touch screen, keyboard) and the inputted information may be transmitted to the server device. In an example embodiment, the server device creates a user profile for the registrant and stores the user profile in a user profile database as user profile record. If the user profile is for an inventor an inventor profile record may be stored in the database. In some example embodiments, the server device attempts to verify the information received for the registrant. For example, if a chosen user name is not available, the server device may request the submission of an alternate user name. In an example embodiment, after the creation of the user profile, the user profile is transformed such that the user profile designates the patents submitted by the user as being associated with the user profile. This may be accomplished through identifying a textual match between the user profile and the submitted patents. As discussed above, the textual match may between any portion of the patent and registrant's submitted information (e.g., inventor of a patent and the name of the registrant). Transforming the user profile may include adding additional data fields for each patent identified by the user.
In an example embodiment, network updates are messages that are displayed associated with user profiles connected to the current user profile. Connection suggestions may be suggested user profile connections based on textual matches between two user profiles or relation matching. In further example embodiments, the watch feed displays messages associated with user profiles or patents designated by the current user profile.
In an example embodiment, suggested patents are displayed in a user interface such as illustrated in
In an example embodiment, the system utilizes information stored in the one or more databases to generate a suggested patents list for a user profile. The system may look for textual matches between the name stored in the user profile and the inventor(s) on patents stored in the patent database. In example embodiments, the textual match may include variants such that “Joe Smith” matches to “Joseph Smith.” In further example embodiments, approximations may be included such that “Joe Smith” matches potential improperly entered information (e.g., “Joa Smith”).
Further, suggested patents may come from temporary profiles. In an example embodiment, a temporary profile may have been created by a privileged user profile that has designated one or more patents as being associated with the temporary profile. For example, a privileged role may include an attorney role such that the attorney knows patent ABC and patent XYZ both have the same inventor. The attorney may create a temporary profile that designates patents ABC and XYZ as associated patents. The temporary profile may be used in at least two ways. First, upon a registrant registering with the system, matching temporary profiles may be displayed to the registrant. The registrant may verify that one or more of the temporary profiles includes patents in which he or she is listed as the inventor. The system may then transform the current user profile to include patents designated by the temporary profile. In an example embodiment, verified temporary profiles are erased from the system.
Second, a temporary profile may be used upon the active user profile designating a patent to be associated with. For example, assume the system receives a command to have a user profile designate patent ABC as an associated patent. The system may detect that the temporary profile described above designates patent ABC as an associated patent. The system may then include patent XYZ as a suggested patent. In an example embodiment, the system first verifies that patent XYZ includes at least an approximate textual match between the user profile and patent XYZ (e.g., inventor name and registrant's name).
In some example embodiments, the system presents suggested connections. The system may generate suggested connections by analyzing user profile data. For example, with reference to
Connection suggestions may also be based on relationships between patents, including but not limited to, citations of other patents, class/sub-class, geography, time, attorney, and examiner. The system may detect that a user profile designates a patent and that one or more additional patents have been cited within a patent. The system may identify inventors listed on the additional patents and suggest the inventors as connections. This information may be used in other components of the system as well. For example, a watch criteria may be set up to tell an inventor which other inventors are listed on patents being cited against him or her. Similarly, the system may suggest the examiner listed on the designated patents as a possible connection. Similarly, system may suggest connections between examiner and inventors listed on patents. The system may also suggest connections based on patents within the same class or sub/class. In further example embodiment, attorney suggestions may be presented to an inventor based on geographic location and art field.
A user may choose to view a sub-set of the suggested connections using filtering criteria. For example, the filtering criteria may include, but not limited to, geography, time in relationship to the present date, time in relationship to the identified patents, and number of connections shown.
In further example embodiments, search interfaces helps to facilitate users of the system to find other user profiles, patents, and other information stored in the one or more databases in the system. In an example embodiment, a search field is presented to the user and a category to search. The categories may include general fields of search such as user profiles, or more particular fields of search such as issued dates of patents. In some example embodiments, the search interface supports multiple search categories that may be disjunctively or conjunctively applied. The information entered into the search interface may be transmitted to the service device where a query may be formatted to find the requested data. In an example embodiment the query is formatted according to the Structured Query Language (SQL). The server device may process the query and display the search results on a display device.
In an example embodiment, one or more options may be presented next to the search results depending on the category of search. For example, if the search is for one or more patents, an option may be presented that allows the user to designate the patent as an associated patent. The system may then transform the user profile to include the designation and update the user profile database. Similarly, if the search is for other user profiles, an option may be presented to establish a connection to the user profiles returned in the search.
Some example embodiments may include the previously illustrated components (e.g., operations) being implements across a distributed programming environment. For example, operations providing logic functionality may reside on a first computer system that is remotely located from a second computer system containing an Interface or Storage functionality. These first and second computer systems can be configured in a server-client, peer-to-peer, or some other configuration. These various levels can be written using the above illustrated operation design principles and can be written in the same programming language, or a different programming language. Various protocols are implemented to enable these various levels, and operations contained therein, to communicate regardless of the programming language used to write these operations. For example, a module written in C++ using the Common Object Request Broker Architecture (CORBA) or Simple Object Access Protocol (SOAP) can communicate with another remote module written in Java. These protocols include SOAP, CORBA, or some other suitable protocol. These protocols are well-known in the art.
In some embodiments, the above illustrated operations that make up the platform architecture communicate using the Open Systems Interconnection Basic Reference Model (OSI) or the Transmission Control Protocol/Internet Protocol (TCP/IP) protocol stack models for defining network protocols that facilitate the transmission of data. Applying these models, a system of data transmission between a server and client computer system can be illustrated as a series of roughly five layers comprising as a: physical layer, data link layer, network layer, transport layer and application layer. Some example embodiments may include the various levels (e.g., the Interface, Logic and storage levels) residing on the application layer of the TCP/IP protocol stack. The present application may utilize HTTP to transmit content between the server and client applications, whereas in other embodiments another protocol known in the art is used. Content from an application residing at the application layer is loaded into the data load field of a TCP segment residing at the transport layer. This TCP segment also contains port information for a recipient application or a module residing remotely. This TCP segment is loaded into the data field of an IP datagram residing at the network layer. Next, this IP datagram is loaded into a frame residing at the data link layer. This frame is then encoded at the physical layer and the content transmitted over a network such as the Internet, Local Area Network (LAN) or Wide Area Network (WAN). The term Internet refers to a network of networks. Such networks may use a variety of protocols for exchange of information, such as TCP/IP etc., and may be used within a variety of topologies or structures. This network may include a Carrier Sensing Multiple Access Network (CSMA) such as an Ethernet-based network. This network may include a Code Division Multiple Access (CDMA) network or some other suitable network.
The exemplary computer system 2800 includes a processor 2802 (e.g., a central processing unit (CPU) a graphics processing unit (GPU) or both), a main memory 2804 and a static memory 2806, which communicate with each other via a bus 2808. The computer system 2800 may further include a video display unit 2810 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 2800 also includes an alphanumeric input device 2812 (e.g., a keyboard), a cursor control device 2814 (e.g., a mouse), a disk drive unit 2816, a signal generation device 2818 (e.g., a speaker) and a network interface device 2820.
The disk drive unit 2816 includes a machine-readable medium 2822 on which is stored one or more sets of instructions (e.g., software 2824) embodying any one or more of the methodologies or functions described herein. The software 2824 may also reside, completely or at least partially, within the main memory 2804 and/or within the processor 2802 during execution thereof by the computer system 2800, the main memory 2804 and the processor 2802 also constituting machine-readable media.
The software 2824 may further be transmitted or received over a network 2826 via the network interface device 2820.
While the machine-readable medium 422 is shown in an exemplary embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals.
Method embodiments illustrated herein may be computer-implemented. Some embodiments may include computer-readable media encoded with a computer program (e.g., software), which includes instructions operable to cause an electronic device to perform methods of various embodiments. A software implementation (or computer-implemented method) may include microcode, assembly language code, or a higher-level language code, which further may include computer readable instructions for performing various methods. The code may form portions of computer program products. Further, the code may be tangibly stored on one or more volatile or non-volatile computer-readable media during execution or at other times. These computer-readable media may include, but are not limited to, hard disks, removable magnetic disks, removable optical disks (e.g., compact disks and digital video disks), magnetic cassettes, memory cards or sticks, Random Access Memories (RAMs), Read Only Memories (ROMs), and the like.
It is to be understood that the above description is intended to be illustrative, and not restrictive. For example, the above-illustrated embodiments (and/or aspects thereof) may be used in combination with each other. Many other embodiments may be apparent to those of skill in the art upon reviewing the above description.
This application claims the priority of U.S. Provisional Application Ser. No. 61/152,550, filed Feb. 13, 2009, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61152550 | Feb 2009 | US |