The disclosure relates to a system and method of detecting and preventing illegal inmate-to-inmate communications in a controlled environment facility.
In current prison facilities, inmates are generally permitted to communicate, using the prison's communication system, with a wide variety of individuals both inside and outside of the prison facility. As such, inmates of a particular facility may be capable of communicating with other inmates, either in their own facility, or in other facilities. Even if direct contact is prohibited, such communication can still occur via an intermediary.
There are monitoring systems and methods currently implemented in controlled environment facilities. However, the ability of inmates to communicate with other inmates presents a number of challenges that are unique to a controlled environment facility and that are not sufficiently hampered by current monitoring and control systems.
Embodiments are described with reference to the accompanying drawings. In the drawings, like reference numbers indicate identical or functionally similar elements. Additionally, the left most digit(s) of a reference number identifies the drawing in which the reference number first appears.
The following Detailed Description refers to accompanying drawings to illustrate exemplary embodiments consistent with the disclosure. References in the Detailed Description to “one exemplary embodiment,” “an exemplary embodiment,” “an example exemplary embodiment,” etc., indicate that the exemplary embodiment described may include a particular feature, structure, or characteristic, but every exemplary embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same exemplary embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an exemplary embodiment, it is within the knowledge of those skilled in the relevant art(s) to affect such feature, structure, or characteristic in connection with other exemplary embodiments whether or not explicitly described.
Embodiments may be implemented in hardware (e.g., circuits), firmware, computer instructions, or any combination thereof. Embodiments may be implemented as instructions stored on a machine-readable medium, which may be read and executed by one or more processors. A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device). For example, a machine-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices, or other hardware devices Further, firmware, routines, computer instructions may be described herein as performing certain actions. However, it should be appreciated that such descriptions are merely for convenience and that such actions in fact results from computing devices, processors, controllers, or other devices executing the firmware, routines, instructions, etc. Further, any of the implementation variations may be carried out by a general purpose computer, as described below.
For purposes of this discussion, the term “module” shall be understood to include at least one of hardware (such as one or more circuit, microchip, processor, or device, or any combination thereof), firmware, computer instructions, and any combination thereof. In addition, it will be understood that each module may include one, or more than one, component within an actual device, and each component that forms a part of the described module may function either cooperatively or independently of any other component forming a part of the module. Conversely, multiple modules described herein may represent a single component within an actual device. Further, components within a module may be in a single device or distributed among multiple devices in a wired or wireless manner.
The following Detailed Description of the exemplary embodiments will so fully reveal the general nature of the disclosure that others can, by applying knowledge of those skilled in relevant art(s), readily modify and/or adapt for various applications such exemplary embodiments, without undue experimentation, without departing from the spirit and scope of the disclosure. Therefore, such adaptations and modifications are intended to be within the meaning and plurality of equivalents of the exemplary embodiments based upon the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by those skilled in relevant art(s) in light of the teachings herein.
Those skilled in the relevant art(s) will recognize that this description may be applicable to many different communications protocols.
American correctional facilities house millions of individuals in controlled environments all over the country. An ongoing problem for such correctional facilities is the ability for inmates to communicate with other inmates in order to arrange illegal activities. Such illegal activities might include a hit (e.g., orchestrated killing) on a person that is incarcerated or perhaps is part of the general public. Another example of such illegal activities might be to arrange and organize a riot. The ability of inmates to plan and coordinate these events with other inmates over the prison communication system is a serious security concern with potentially fatal consequences.
Generally, correctional facilities restrict phone access by designating the time and place of calls permitted to the inmates. Correctional facilities also restrict phone access for inmates by permitting communication with only preapproved individuals or prohibiting inmates from dialing specific numbers. In extreme situations, correctional facilities may terminate all prison communication services for a certain period of time, particularly during a riot or other emergency situation.
Most communications made by inmates are closely monitored by correctional facilities. However, regardless of the measures taken by correctional facilities, inmates repeatedly attempt to avoid detection of suspicious communication regarding illegal activities by relaying messages to other inmates or third parties outside of the correctional facilities. For example, in some instances, an inmate may be permitted to directly contact an inmate within their own facility, or within a separate facility. This provides a direct line of communication to facilitate the coordination of criminal acts. In other instances, an inmate may call an outside third party and instruct the third party to contact another inmate in order to relay certain information. In this manner, the inmate is able to skirt the restrictions in order to effectively “communicate” with the other inmate. Thus, even without the direct line of communication, coordination can still occur via the use of the intermediary.
As illustrated by these examples, there are many unique concerns associated with monitoring the communications by inmates of a controlled facility. To further complicate matters, certain facilities may be outfitted to allow inmates to carry personal inmate devices (PIDs) and use their own personal devices, in the form of tablet computers, smartphones, etc. for personal calls, digital content streaming, among other uses.
With these concerns in mind, it is preferable to implement a system and/or method of detecting and preventing inmate-to-inmate message relays. With this objective in mind, the following description is provided for a system and method which monitors separate inmate communications for similar phrases. These similar phrases may be overlapping in real time, for example as part of a conference call, or can occur at separate times in separate communications. Communications are scored based on their similarity, and the resulting score is compared to a threshold. If the score is above the threshold, any number of preventative measures are taken, such as flagging the communications and alerting authorities. Additional measures may include identifying whether the communications contain illegal matter and then disconnecting the communications, restricting future communications, and/or preparing countermeasures to thwart the illegal activity.
In an embodiment, the detection and prevention system 110 performs a variety of functions with respect to the communications, such as monitoring for key words and/or phrases indicative of a rules violation, recording conversations for future review by an investigator or other authorized person, as well as call control, such as disconnecting the call in response to the detection of a rules violation, alerting an official of a rules violation, etc. The function of the detection and prevention system 110 may vary depending on the time sensitivity of communications between outsider parties and inmates in the controlled environments 120A-C. For time sensitive communications, such as live telephone calls, the detection and prevention system 110 is transparent to the communication and monitors the ongoing communication until the detection and prevention system 110 detects a rule violation or until the communication ends. For non-time sensitive communications, such as emails and texts, the detection and prevention system 110 may act as a communication interceptor, withholding the communication while it is being analyzed for a rules violation before releasing the communication (e.g., forwarding it) to the intended recipient.
In an embodiment, the controlled environment communication system 120A provides a local wireless network 130 for providing wireless communication connectivity to wireless communication devices 135A. Wireless communication devices 135A may include electronic wireless communication devices such as smart phones, tablet computers, PIDs, game consoles, and laptops, among others. In an embodiment, wired communication devices 135B are also connected to the controlled environment communication system 120A. Wired communication devices 135B may include telephones, workstations, computers, in-pod kiosks, game consoles, and fax machines, among others.
In an embodiment, communication devices outside of the controlled environment 145A-B communicate with devices within the controlled environment 105A. Wireless communication devices 145A may be connected to the controlled environment communication system 120A through a wireless network 140. In an embodiment, wired communication devices 145B are connected directly to the controlled environment communication system 120A without an intervening network.
The communication transceiver 210 detects communications sent to/from the controlled environment. The communications may be time sensitive, such as phone calls or video conferences, in which case the communication transceiver 210 detects real time communications between inmates and outsider third parties. Examples of real time communications include voice calls, video conference calls, video visitation sessions, video hand messaging sessions, multi-player game sessions, among others. In another embodiment, the communication transceiver 210 detects non time sensitive communications such as, voice messages, email messages, text messages, among others. The communication transceiver 210 is connected to the processing subsystem 205 in order to further analyze the communication.
The communication storage 220 receives and stores communications detected by the communication transceiver 210, according to an embodiment of the invention. The communications are stored in the appropriate file format in which the communications have been detected by the communication transceiver 210. The communication storage 220 stores the detected communications in the appropriate file format according to the type of communication. Audio communications are stored in various uncompressed and compressed audio file formats. Exemplary audio file formats include, WAV, AIFF, FLAC, WavPack, MP3, among others. In an embodiment, communications detected by the communication transceiver 210 may be in the form of audio, video, text or other suitable formats depending on the type of communication received. Video communications are stored in various video file formats such as WMV, AVI, Quicktime, among others. Text communications are stored in various text file formats such as TXT, CSV, DOC, among others.
The image detector 225 receives and analyzes video files stored in the communication storage 220, according to an embodiment of the invention. In order to determine whether two or more inmates are present on the same video communication, the image detector 225 captures images from the video communication and utilizes well-known 2D and 3D image recognition algorithms to determine the images of the participants. The image detector 225 compares the determined images of the video communication participants with images of inmates at the controlled environment. Upon a determination by the image detector 225 that there are two or more inmates present on the same video communication, the image detector 225 transmits a notification signal regarding the violating communication to the alerting module 270. In an embodiment, the image detector 225 can determine the presence of the same inmate on two or more simultaneous video communications made to the same phone number, IP address, or MAC address. In other words, the image detector 225 is capable of detecting a violating video communication between two or more inmates connected by each inmate separately calling the same phone number, IP address, or MAC address at the same time.
The transcriber 230 receives and transcribes audio files stored in the communication storage 220, according to an embodiment of the invention. In order to monitor the communications for rule violations, the transcriber 230 directly transcribes the audio file into a text file. The resulting text file contains the transcript of the detected communication. In an embodiment, the transcriber 230 receives and transcribes audio associated with video files stored in the communication storage 220.
The transcriber 230 performs analysis of the audio file for the transcription and annotation of speech signals by comparing the speech signals with known sound waveforms and speech signature frequencies stored in the language dictionary 286. The language dictionary 286 contains sound waveforms and speech signature frequencies for different languages. In an embodiment, the transcriber 286 can analyze an audio file containing different languages by comparing it with the sound waveforms and speech signature frequencies for the corresponding language contained in the language dictionary 286. In another embodiment, the transcriber 230 conducts voice analysis of the audio file and recognizes phonemes and/or intonations and identifies the speech as associated with the different speakers using voice analysis techniques. In other words, the transcriber can assign speech segments to different speakers in order to generate a dialog transcript of the actual conversation. The transcriber 230 lists and names the different participants in the audio file and labels the sentences in the transcript in order to indicate which speaker is communicating in that particular portion of the transcript. The transcriber 230 transcribes events that occur during the conversation such as long pauses, extra dialed digits, progress tones, among others into the transcript. The transcriber 230 can conduct phonetic transcription of the audio based on a phoneme chart stored in the language dictionary 286.
The language converter 240 receives the communications from the transcriber 230 and the communication storage 220 and converts the communications into a standard language, according to an embodiment of the invention. As mentioned above, the communications may be conducted in different languages. The conversion into a standard language facilitates a more efficient and universal method of monitoring the communications to detect rule violations. In an embodiment, the language converter 240 converts the communications into English. The language dictionary contains dictionaries for many different languages. When the language converter 240 receives a communication containing languages other than English, the language converter 240 searches the language dictionary 286 for the corresponding words and phrases in English and converts the communication accordingly. Using well-known grammatical algorithms, the language converter 240 is able to perform the language conversion without significant grammatical errors in the converted text. The conversion results in a text file containing a transcript of the detected communication in a standard language. In an embodiment, the language converter 240 and the transcriber work as part of a combined system to simultaneously perform language conversion and transcription.
The metadata extractor 250 receives the transcribed and/or converted communication from the language converter 240 and extracts metadata from the communication, according to an embodiment of the invention. The metadata summarizes basic information about the communication. For example, the basic information about the communication may include the names of the people communicating, the phone numbers or email accounts, and the date and time of the communication, among others. The metadata extractor 250 transmits and saves the metadata in the metadata database 282 and the text file containing the corresponding communication in the transcript database 284.
The detection and prevention analysis engine 260 receives the communication from the metadata extractor 250 and analyzes the communication for illegal or suspicious contents, according to an embodiment of the invention. The detection and prevention analysis engine 260 analyzes the communication and compares it to past communications to detect rule violations. The detection and prevention analysis engine 260 will be described in detail in the following
Upon the determination of a rule violation, the detection and prevention analysis engine 260 transmits a notification signal regarding the violating communication to the alerting module 270. Subsequently, the alerting module 270 alerts responsible supervising personnel at the controlled environments 105A-C. In an embodiment, the alerting module 270 may disconnect a real time communication upon receipt of a notification signal from the detection and prevention analysis engine 260. The alerting module may withhold the transmission of the non time sensitive communication until the supervising personnel reviews and “OKs” the communication. In some embodiments, the alerting module transmits the converted transcript of the violating communication along with the notification signal.
The metadata database 282 stores the metadata extracted from most communications detected by the detection and prevention system 200, according to an embodiment of the invention. The metadata in the metadata database 282 contains basic information about the corresponding communication stored in the transcript database. Basic information about a communication may include the names of the people communicating, the numbers and accounts used, the time and date of the communication, among others. The metadata database 282 helps the detection and prevention system 200 organize the large volume of communications and provides digital identification for each communication detected by the detection and prevention system 200. The metadata database 282 supports archiving and preserving the communications detected by the system. The metadata database 282 assists with searching for previous communications in the transcript database 284 by accommodating an initial search within the metadata database 282 for past communications based on basic information such as the name of the inmates or the phone numbers used in the communication. The initial search through the metadata database 282 allows the system to narrow the search to identified past communications in the transcript database 284.
The transcript database 284 contains the communications detected by the detection and prevention system 200 in a text file format, according to an embodiment of the invention. The communications in the transcript database 284 have mostly been converted to a standard language and have corresponding metadata in the metadata database 282.
The language dictionary 286 includes the language dictionaries of different types of languages. The language dictionary 286 also includes sound waveforms and speech signature frequencies for each respective language. For example, the language dictionary 286 may include vocabulary and phrases in Spanish, Arabic, Chinese, Japanese, Korean, among others. The keyword database 288 includes keywords that are typically used by controlled environments to monitor inmate communications. In an embodiment, the use of a keyword in an inmate communication would be detected by the detection and prevention system 200 and consequently trigger the monitoring of the communication for an extended period of time. For example, keywords may include “kill,” “drugs,” and “riot” and the detection of a key word in an inmate communication would trigger the extended monitoring of the communication.
The signal I/O 305A receives and transmits the communications to be analyzed by the detection and prevention analysis engine 300. The keyword searching and monitoring module 310 receives and searches the communication for keywords and/or phrases stored in the keyword database 288, according to an embodiment of the invention. When a keyword is detected, the monitoring function is triggered and the message is monitored for an extended period of time. The monitored communication is received by the scoring module to be compared with relevant past communications stored in the transcript database 284. The keyword searching and monitoring module 310 reads the metadata associated with the communication, which will be used by the metadata to the metadata search engine 320 to conduct a search for past communications containing similar metadata. In another embodiment, the keyword searching and monitoring module 310 searches the received communication for terms and phrases that indicate contact information. Such terms and phrases may include addresses, phone numbers, email addresses, among others. For example, the keyword searching and monitoring module 310 is capable of recognizing a string of spoken numbers that resemble a phone number. Any received communication that contains an address, phone number, email address, or any other means of contacting a different party is assigned a predetermined high score.
The metadata search engine 320 receives the metadata associated with a monitored communication and conducts a search in the metadata database 282 for any overlap in the metadata for past communications, according to an embodiment of the invention. The search of the metadata database 282 identifies the relevant metadata with corresponding communication transcripts stored in the transcript database 284. The metadata search engine 320 receives the corresponding communication transcripts from the transcript database 284. The corresponding communication transcripts are provided to the scoring module 330 to be compared with the monitored communication transmitted by the keyword searching and monitoring module 310.
The scoring module 330 scores the monitored communication transmitted by the keyword searching and monitoring module 310, according to an embodiment of the invention. The scoring module compares the monitored communication with the relevant communication transcripts transmitted by the metadata search engine 320. The scoring module 330 searches and compares similar phrases contained in the monitored communication with the relevant communication transcripts. The scoring module 330 assigns a score to the monitored communication and compares the score with a predetermined threshold. If the score is higher than the threshold, the communication is flagged and a notification signal is sent to the alerting module 260. The scoring module 330 will be described in detail in the following
The real time communication scoring module 410 scores real time communications by comparing similar phrases and keywords within the real time communications with relevant past communications, according to an embodiment of the invention. The real time communications scoring module 410 receives monitored communications from the keyword searching and monitoring module 310 and determines whether there are any rule violations within the real time communication. An example of a rule violation within a real time communication would be an ongoing conversation containing message relays from one inmate to another. Accordingly, the focus of the real time communication scoring module 410 is to determine the similarities of words being spoken between the participants in a real time communication in relation to a past communication. The real time communication scoring module 410 compares the monitored communication with relevant past communications stored in the transcript database 284 in order to determine the similarities of words between the relevant past communications and the real time communication. The real time communication scoring module 410 calculates and assigns a score to the monitored communication.
In an embodiment, the monitored communication received by the real time communication scoring module 410 is in the form of a language converted transcript. The transcript indicates who is communicating in each specific section of the transcript. The real time communication scoring module 410 distinguishes the different participants in the monitored communication and searches for similarities between the communications of each participant. The real time communication scoring module 410 identifies the same or similar textual content within the transcript and compares the textual content with relevant past communications. The real time communication scoring module 410 calculates a score for the monitored communication by calculating a correlation of between the contents of the monitored communication and relevant past communications. The score for the monitored communication can vary depending on the number of times a similar phrase is used and the significance of the phrase. The score is higher for monitored communications containing a higher correlation and/or a higher frequency of similar phrases used, and the use of a suspicious or illegal keyword. The score is lower for communications containing a lower correlation and/or a lower frequency of similar phrases used, and the use of benign phrases. In another embodiment, the real time communication scoring module 410 accesses the key word database 288 and the score may additionally or alternatively depend on the frequency of key words detected in the real time communication. The score is higher for monitored communications containing a higher frequency of key words.
The separate communication scoring module 420 scores communications that are not in real time, according to an embodiment of the invention. An example of a separate communication includes emails and texts sent between inmates at separate times, among others. The separate communication scoring module 420 focuses on comparing the monitored communication with relevant past communications stored in the transcript database 284 in order to determine the similarities of words between the separate communications. The separate communication scoring module 420 calculates and assigns a score to the monitored communication.
In an embodiment, the separate time communication scoring module 420 receives a monitored communication from the keyword searching and monitoring module 310. The separate time communication scoring module 420 receives past communications related to the monitored communication from the metadata search engine 320. The communications are in the form of a language converted transcript. The separate time communication scoring module 420 identifies the same or similar textual content between the monitored communication and the relevant past communications and calculates a score for the monitored communication based on the comparison. The separate time communication scoring module 420 calculates a correlation between the contents of the relevant past communications with the current monitored communication. The score for the monitored communication can vary depending on the number of times a similar phrase is used and the significance of the phrase. The score is higher for monitored communications containing a higher correlation, a higher frequency of similar phrases used in the separate communications, and the use of a suspicious or illegal keyword. The score is lower for communications containing a lower correlation, a lower frequency of similar phrases used, and the use of benign phrases. In another embodiment, the separate time communication scoring module 420 accesses the key word database 288 and the score may additionally or alternatively depend on the frequency of key words detected in the monitored communication. The score is higher for monitored communications containing a higher frequency of key words.
The score comparison module 430 receives the communication scores from the real time communication scoring module 410 and the separate communication scoring module 420, according to an embodiment of the invention. The score comparison module 430 may have a memory that contains a threshold score. The threshold score is predetermined and can be adjusted by an administrator. The score comparison module 430 compares the received communication scores with the threshold score. If the communication score is higher than the threshold score, then the communication is sent to the alerting module 270 along with a notification signal for the supervising personnel at the controlled environment. If the communication is a real time communication, then the communication can be disconnected if the score is higher than the threshold score. If the communication is a separate time communication, the communication can be withheld until reviewed by the supervising personnel and future communication can be restricted if the score is higher than the threshold score.
At the outset, a communication is detected (502). The detected communication is stored in a communication storage 220 (504) for later analysis. The communication is stored in the appropriate file format in which the communication has been detected and arranged in a queue. The system makes a determination of whether the communication is in an audio format (506). If the communication is stored as in audio format (506—Y), transcriber 230 receives and transcribes the audio file into a text file (508). The resulting text file contains the transcript of the detected communication. If the communication is not in an audio format (506—N), no transcription is needed.
The system subsequently determines whether the communication is in a standard language (510). This refers to whether the communication is in a common language employed by the analysis engine, e.g. North American English. If the communication is not in the standard language (510—N), then the language converter 240 receives the communication and converts the communication into a standard language (512). The conversion into a standard language facilitates a more efficient and universal method of monitoring the communications to detect rule violation. If the communication is in a standard language (510—Y), language conversion does not occur.
Once the communication is determined to be in the standard language, the system searches the communication for keywords that are typically used by controlled environments to monitor inmate communications (514). The system continues to search for keywords in the communication if it does not find a match (516—N). If the system finds a keyword match in the communication (516—Y), then the system monitors the communication for an extended period of time (518). The scoring module 330 receives the monitored communication and assigns a score (520) to the communication. This step is described in detail in
The monitored communication is received by the scoring module 330 (602) in order to be analyzed and compared with relevant past communications. Next, the scoring module 330 determines whether the monitored communication is a real-time communication (604), such as a voice or video call.
If the monitored communication is determined to be a real-time communication (604—Y), the real time communication scoring module 410 compares similar phrases and keywords within the monitored communication and assigns a score (606). The focus of the real time communication scoring module 410 is to determine the similarities of words being spoken between the participants in a real time communication in relation to a past communication. The real time communication scoring module 410 compares the monitored communication with relevant past communications stored in the transcript database 284 in order to determine the similarities of words between the relevant past communications and the ongoing real time communication. The real time communication scoring module 410 calculates a score for the monitored communication by calculating a correlation of between the contents of the monitored communication and relevant past communications. The score for the monitored communication can vary depending on the number of times a similar phrase is used and the significance of the phrase.
If the monitored communication is not a real-time communication (604—N), the separate time communication scoring module (420) compares similar phrases and keyword between the monitored communication and past communications stored in the database 280 (608). The separate time communication scoring module 420 identifies the same or similar textual content between the separate communications and calculates a score for the monitored communication. The separate time communication scoring module 420 calculates a correlation between the contents of the relevant past communications with the current monitored communication. The score for the monitored communication can vary depending on the number of times a similar phrase is used and the significance of the phrase
Once the communication has been scored, the assigned score is compared to a predetermined threshold score (610/552). Referring back to
On the other hand, if the assigned score is higher than the threshold (522—Y), then the system takes any number of remedial measures (526), such as alerting a supervisor that a rule violation has occurred in the communication, terminating the communication (in the case of a real-time communication), withholding the communication for closure inspection (in the case of a non-real-time communication), among others. Following the remedial measures (526), the method ends (528).
It will be apparent to persons skilled in the relevant art(s) that various elements and features of the present disclosure, as described herein, can be implemented in hardware using analog and/or digital circuits, in software, through the execution of computer instructions by one or more general purpose or special-purpose processors, or as a combination of hardware and software.
The following description of a general purpose computer system is provided for the sake of completeness. Embodiments of the present disclosure can be implemented in hardware, or as a combination of software and hardware. Consequently, embodiments of the disclosure may be implemented in the environment of a computer system or other processing system. For example, the method of flowcharts 500 and 600 can be implemented in the environment of one or more computer systems or other processing systems. An example of such a computer system 700 is shown in
Computer system 700 includes one or more processors, such as processor 704. Processor 704 can be a special purpose or a general purpose digital signal processor. Processor 704 is connected to a communication infrastructure 702 (for example, a bus or network). Various software implementations are described in terms of this exemplary computer system. After reading this description, it will become apparent to a person skilled in the relevant art(s) how to implement the disclosure using other computer systems and/or computer architectures.
Computer system 700 also includes a main memory 706, preferably random access memory (RAM), and may also include a secondary memory 708. Secondary memory 708 may include, for example, a hard disk drive 710 and/or a removable storage drive 712, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, or the like. Removable storage drive 712 reads from and/or writes to a removable storage unit 716 in a well-known manner. Removable storage unit 716 represents a floppy disk, magnetic tape, optical disk, or the like, which is read by and written to by removable storage drive 712. As will be appreciated by persons skilled in the relevant art(s), removable storage unit 716 includes a computer usable storage medium having stored therein computer software and/or data.
In alternative implementations, secondary memory 708 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 700. Such means may include, for example, a removable storage unit 718 and an interface 714. Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, a thumb drive and USB port, and other removable storage units 718 and interfaces 714 which allow software and data to be transferred from removable storage unit 718 to computer system 700.
Computer system 700 may also include a communications interface 720. Communications interface 720 allows software and data to be transferred between computer system 700 and external devices. Examples of communications interface 720 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc. Software and data transferred via communications interface 720 are in the form of signals which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interface 720. These signals are provided to communications interface 720 via a communications path 722. Communications path 722 carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels.
As used herein, the terms “computer program medium” and “computer readable medium” are used to generally refer to tangible storage media such as removable storage units 716 and 718 or a hard disk installed in hard disk drive 710. These computer program products are means for providing software to computer system 700.
Computer programs (also called computer control logic) are stored in main memory 706 and/or secondary memory 708. Computer programs may also be received via communications interface 720. Such computer programs, when executed, enable the computer system 700 to implement the present disclosure as discussed herein. In particular, the computer programs, when executed, enable processor 704 to implement the processes of the present disclosure, such as any of the methods described herein. Accordingly, such computer programs represent controllers of the computer system 700. Where the disclosure is implemented using software, the software may be stored in a computer program product and loaded into computer system 700 using removable storage drive 712, interface 714, or communications interface 720.
In another embodiment, features of the disclosure are implemented primarily in hardware using, for example, hardware components such as application-specific integrated circuits (ASICs) and gate arrays. Implementation of a hardware state machine so as to perform the functions described herein will also be apparent to persons skilled in the relevant art(s).
The disclosure has been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries may be defined so long as the specified functions and relationships thereof are appropriately performed.
It will be apparent to those skilled in the relevant art(s) that various changes in form and detail can be made therein without departing from the spirit and scope of the disclosure.
This application is a continuation of U.S. patent application Ser. No. 15/071,082, filed on Mar. 15, 2016, which is incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 15071082 | Mar 2016 | US |
Child | 16799418 | US |