The present invention describes a method and system for dynamic list prioritization. The message priority is used to rank various messages, and the message with the highest priority is listed at the top of the page, followed by other messages in descending order, based on priority.
The client system is any text-message-capable digital mobile phone that is subscribed to the SMS service with a service provider. The server system comprises of a gateway with a GSM modem and a SIM card, content processing engine, database, and a server engine that can render the contents stored in formats such as HTML, WML, XHTML, XHTML MP, XML, and CHTML.
A client system posts a message via SMS to a 10 digit number, or to a Common Short Code (CSC), which is typically an easy to remember 4 or 5-digit number. This message is received by the gateway in the server system. The message is validated by the Content Processing Engine (CPE). The CPE assigns a message priority to this message (based on the metrics, such as keywords, age of the content, location, number of characters contained in the content), and post it on the web in the formats such as WML/XHTML/HTML/XHTML MP.
This method and system enables the client system (users to use the service with only an SMS-capable mobile phone) to post messages, and receive responses to the posted messages, through the server system, using the text message service, without revealing the device ID of the client system, until a point when one of the client systems determines enough trust is established through exchanges of these private messages that they can include the device ID in a message, which is forwarded to the receiver, so they can communicate directly, bypassing the server system.
This invention enables the client systems to communicate with each other without any registration or sign-on process. No computer is necessary, as a part of the client system, to engage in private communications.
This method also enables a client system, such as a text-capable mobile phone, capable to communicate with the users on the Internet without having access to a computer, by following few simple steps, to enable communication and conduct commerce, by only using their mobile phones.
The client system 100 posts a message using SMS to a 10-digit number, or to a Common Short Code (CSC), which is received by the gateway 106. The gateway 106 has a SIM card in a GSM modem. The message is then processed by the content processing engine 107, and stored in a content database 104, with the device ID/user ID mapped to a table 106, along with another mapping table for the user ID/message ID 108. The content is then rendered in various formats 109, such as XML, HTML, WML, XHTML, XHTML MP, or CHTML, which can be viewed by the client system 110 using WAP or HTTP protocol.
The identity of the user refers to caller-ID, e-mail address, street address, name, any future location-base services, social security number, or similar indices, numbers, and specific characteristics.
A single client system 200 can post many messages, and each of those messages are assigned a unique message ID, and is stored in the user ID/message ID table 201. This posted message is converted into various formats, by the server system 203, that is accessible by other client system 204 through WML, HTML, XHTML MP, and CHTML (depending on the client system's 204 capability, this message can be read using WAP or HTTP).
When the client system 204 replies to a message posted by client system 200, the server system 203 assigns a unique user ID to the device ID of the client system, looks at the message ID to perform a table lookup of the device ID, and the message is sent to the client system 200 with a reply ID 202. The client system 204 can reply to many messages posted by other client systems, and each of those replies are assigned a unique reply ID, and is stored in the table 202.
If the received message does not pass the content verification check, the received content is dropped from further processing 303. If the message passes the content validation check, further processing is performed. If the incoming message device ID is new, a unique new user ID is assigned to this device ID. If this device ID has already posted a message, step 305 is skipped and a new message ID is assigned 306. The user ID is mapped to the device ID 307, and the message is posted into the database 308, which is then converted into various formats, such as XML, WML, HTML, XHTML, CHTML, etc.
A client system 400 composes and posts a message to the server system 411. The server system 411, after performing the content validation checks, through the content processing engine, posts the content into a database, which is rendered in various formats, such as HTML, XHTML, WML, XML, CHTML, etc. This example shows 10 messages per page, and there can be many pages based on the number of messages posted. The variations of the presentation of messages in different formats and styles are intended to be protected under current invention. The posted content does show only the message and the message ID.
Client system 402 views the messages by going through the URL of the website using HTML, WML, WML, CHTML, etc., and replies to the message ID 1 through the server system 411. The server system 411 receives the reply message 404 from the client system 403, along with the message ID 1, and assigns a unique reply ID, which is then delivered 405 to client system 406, which posted the original message.
Client system 407 replies back 408 to the message received from client system 403 through the server system 411. The server system 411 looks at the reply ID, and sends the message 409 to the client system 410. During this communication between the client systems, through the server system 411, the communication remains private, and when one of the parties decides a trust is established through their private messages, one of them can send the direct phone number or email, to be contacted directly, bypassing the server system 411 for further direct communication.
A content validation check is performed by the content processing engine 502 and, if the content validity check fails, the request is dropped 503. Further processing is done, if the content validity check is passed. In step 504, the server system checks to see if the incoming message is from a new device ID 504, by checking the database. If it is a new device, the client systems request is dropped, as a message could not have been posted without the server system logging in the device ID.
If it is not a new device, it is highly likely that the message could have been posted by this client system, and further check is done to process the request. In step 505, the server system checks the device ID and message ID table, and if there is a match, the request for edit is processed 506 by overwriting the old message in the content database.
The same process is followed for deleting a message: The incoming text message is checked for “del msgID” by the server system 604. There maybe instances that when a client system might have posted multiple messages and could have forgotten all the message IDs: In this case, the command used will be “get” and the system replies back, via text message, with all the message ID's corresponding to the client systems device ID.
In a peer-to-peer communication between two mobile systems, there may be instances when one client system would not want to receive any messages from a certain client system. In this scenario, the client system can send a message to the server system with “ban userID”, or send a “pause x userID”, where x is the hold-down timer, in minutes, when during that time frame, any messages sent will be dropped.
The server system assigns a unique userID for all new client systems. The client system has options to add a unique alias that can be easily remembered by others, by sending the following text message to the server system “alias fancyname”, and if that specific alias is available, it will be assigned. Otherwise, the server system will send out a text message requesting the user to make another choice.
A client system 800 posts a text message 801 to the server system 802. The server system 802 posts the message into the content base after validity checks, and it is rendered in various formats such as XML, WML, XHTML, XHTML MP, HTML, CHTML, etc.
Another client system 803 accesses the message via HTTP through the website, and clicks on the message ID corresponding to the message from the web page. The client system 803 is presented with a form which has two fields: a field to enter a mobile number, and the second field for message. After the client system fills out this form and clicks the send button, the server system sends a text message back to the client system's 803 mobile phone to reply back to the Server System 802 with an ACK (Acknowledgement). This helps the server system 802 to verify the mobile number entered by the client system 803 is correct. Once the ACK is received by the server system 802, the message is then sent to the client system 800.
Client system 900 sends a text message to client system 908 through the server system 901 using the client system 908 phone ID or its user ID. The server engine maps the device ID of the client systems 900 with a unique user ID, and sends the message to client system 908. Client system 908 replies back to the message, with optional privacy flag enabled or disabled, through the server system. The server system looks at the user ID/device ID table, and sends the message to client system 900. If the privacy option is enabled the reply will have the user ID of the client system 908. Otherwise, the device ID of the client system 908 will be shown to client system 900.
In 1, the server system 1002 receives the message along with the device ID, message, time message received, flag options for privacy on or off, and the user ID (or device ID) of client system 1003. After passing the validity check through the content processing engine, in the server system, the message is sent to (2) the client system B 1003. If privacy flag is enabled as requested by client system A 1001, client system B 1003 will receive the message with Client system A's 1001 user ID, or alias, if it had been setup.
Client system B 1003 replies (3) to A with a message with privacy on, through the server system 1002. The server system 1002 delivers the reply message back (4) to Client system A 1001, with the user ID, or an alias, if it had been setup.
Client system A 1001 replies back to the reply (5) with privacy off, through the server system 1002, to Client System B 1003. The server system 1002 delivers the message (6) this time to client system B 1003, with client system A's 1001 message and the phone ID, as the message was sent with privacy off.
Now that the Client system B 1003 knows the Client system A's phone number, communication can be done directly, bypassing the server system.
Client system A 1101 posts a message to the server system 1002, by using a 10-digit phone number, or a Common Short Code (CSC).
In 1, the server system 1102 receives the message, along with the device ID, message, time, flag options for privacy on or off, from Client System A 1101. After passing the validity check, through the content processing engine in the server system 1102, the message is posted to the content database, which is then rendered into pages in different formats, such as XML, WML, HTML, XHTML, MP, CHTML, etc. Client system B 1103 responds to the message (2) with privacy on option (usually default), back to the server system, via a text message. The server system checks the content validity, performs a message ID look up, to get the device ID, and sends this reply (3) to Client system A 1101, with Client system B's 1103 user ID, or alias, if it had been setup. An example of the content validity is checking for the bad words in the text, which will result in either deletion of the message, or a very low priority score, so that the message priority is very low, and either the message does not show up, or gets deleted fast.
One can choose in the privacy option to send user ID, alias, or device ID.
Client System A 1101 replies back to Client System B 1103 through the server system 1102 with privacy off, with a message that includes A's phone number (4), which the server system delivers to B 1103 (5). B calls A through the phone number, without going through the server system.
Client System 2 posts a message MSG21206, and gets a reply from client system 61217, which is delivered back to Client system 2 via 1218. Client system 3 posts a message MSG31209, and gets a reply from Client system 4, which the server system sends back to client system 3 via 1216. This relation shows in a one-to-many configuration, where the client posts a message to the server system to be accessed by other client systems: one client can post multiple messages, and on the reply side, one client system can respond to many messages, and the server system identifies the reply through message ID and reply ID, to send the message back.
The messages can be broken into 10 messages/page, with page one having the highest priority messages, followed by other messages in other pages. Each message is identified by its own messageID/UID with the date stamp. Other variations of these message arrangements/priority/listing are also obvious variations of our current teaching.
When the Server System assigns a New User ID for a message, users can request their own Alias.
The same method can be used for Voice/Video and picture Messages, instead of text messages.
This concept of private SMS can be enabled for web-based transactions for users to communicate securely and privately.
Initial messages can be sent to make the Caller ID visible by using the tag Privacy off, in the body of the message.
Messages could be automatically deleted after x days.
Mobile user can communicate with other mobile users privately/securely.
1) One-to-many (mobile-to-mobile): a mobile user posts a content (voice/video/text) on to the website through SMS to the server system, which can be responded to by users through a client system (mobile phone), by accessing the posted content through WAP, WML, or XHTML. This solution enables users with just a mobile phone to engage in bi-directional communications with other client systems on their mobile or a computer. This bridges the digital divide—all the user needs is a mobile phone to communicate (conduct commerce) globally.
2) One-to-many (mobile-to-computer): a mobile user posts a content (voice/video/text) on to the website through SMS to a server system, which can be responded to by a clients system (computer) in the Internet by clicking on the MSG ID, which will open up a form. The user fills out the form which has two fields: one for their message and the other for their mobile number. Since this solution does not require any user registration, we need to verify the user's mobile number, so when others reply to this message, we know that we are sending the message to a valid device ID. When the user after filling in the phone number and message fields clicks on SEND to send the message from the web-based form, the gateway receives the message and sends a text message back to the users mobile posting the message, and waits for an Acknowledgement through a text reply back. If the message is received, the CPE processes the content, and goes through the Validation process (CPE), and the message is delivered or posted on the web. Otherwise, the message is dropped after predefined time interval.
3) One-to-One communication through Proxy (mobile-to-mobile): This is a direct peer-to-peer communication between mobile users using the server system to communicate privately, without disclosing their device ID. Traditional text (SMS) messages will reveal the users mobile ID. No registration/password login, or computer is necessary to use this system. All the end-user needs is a mobile phone, and they communicate using the Server System to other mobile systems.
Note that 4 different situations are covered here, all of which enable text/sms/mms communication between users, either local or across countries bi-directionally, using a private alias-based system, using their mobile systems:
Let's review
Client system 900 sends a text message to client system 908 through the server system 901 using the client system 908 phone ID or its user ID. The server engine maps the device ID of the client systems 900 with a unique user ID, and sends the message to client system 908. Client system 908 replies back to the message, with optional privacy flag enabled or disabled, through the server system. The server system looks at the user ID/device ID table, and sends the message to client system 900. If the privacy option is enabled, the reply will have the user ID of the client system 908. Otherwise, the device ID of the client system 908 will be shown to client system 900.
In 1, the server system 1002 receives the message along with the device ID, message, time message received, flag options for privacy (on or off), and the user ID (or device ID) of client system 1003. After passing the validity check through the content processing engine, in the server system, the message is sent to (2) the client system B 1003. If privacy flag is enabled as requested by client system A 1001, client system B 1003 will receive the message with Client system A's 1001 user ID, or alias, if it had been set up.
Client system B 1003 replies (3) to A with a message with privacy on, through the server system 1002. The server system 1002 delivers the reply message back (4) to Client system A 1001, with the user ID, or an alias, if it had been set up.
Client system A 1001 replies back to the reply (5) with privacy off, through the server system 1002, to Client System B 1003. The server system 1002 delivers the message (6) this time to client system B 1003, with client system A's 1001 message and the phone ID, as the message was sent with privacy off.
Now that the Client system B 1003 knows the Client system A's phone number, communication can be done directly, bypassing the server system.
Client system 301 and 302 is local to Server system 304 (e.g. US). Client system 308/309 is local to Server system 306 (e.g. UK), and Client system 312/313 is local to Server system 310 (e.g. India). Text messages sent between Client system 301 and 302 works similar to what is described in
Client system 308, while replying back anonymously to 301, will just reply back to the alias of 301, and send it to the appropriate Server systems 306 gateway number or Common Short Code. The Server system 306 receives the message, does an alias lookup to determine the Server system it needs to send this reply to, processes it by validating against the content processing engine, and if the validation is successful, the message is then forwarded to Server system 304 via the IP network 305. The Server system 304 does a lookup on the alias and sends the message to Client system 301.
At any given moment, all the alias device mapping information across all the distributed Server systems are synchronized, so that every Server system knows the home location Server associated to a specific alias. This synchronization is done either through a triggered update or a timed interval update. The IP network 305 can be a private/public network. These distributed Server systems enable private text/sms communication between client systems bypassing expensive international SMS charges.
In 1, the Server system 402 receives the message along with the device ID, message, time message received, flag options for privacy (on or off), and the user ID (or device ID) of client system 405. After passing the validity checks through the content processing engine, in the server system, a lookup is done on the Client system B's 405 User id/Alias, if the device ID is not included in the Send To of the message by the Server system 402. Once after the lookup is done, the Server system 402 determines the home location for the Client system 405 with Server system 404, and forwards the message 2 through an IP network. The Server system 404 does a lookup on the UserID or Alias to get the device id for Client system B 405, and forwards the message 3. If privacy flag is enabled by client system A 401, client system B 405 will receive the message with Client system A's 401 user ID, or alias, if it had been set up.
Client system B 405 replies (4) to A with a message, with privacy on, through the server system 404's CSC or the number for the GSM interface. The server system 404 does a lookup on the alias/userid, and determines the home location for the alias and sends the reply back 5 to Server system 402 through an IP network 403. The Server system 402 does a lookup for the alias or userid, and sends the message 6 to Client system A 401, with the user ID, or an alias (if it had been set up) of Client system B 405. The UserID and the alias are unique across all the Server systems and are mapped to a device id.
Client system A 401 replies back 7 to the reply 6, with privacy off flag, through the server system 402, to Client System B 405. The server system 402 does an alias/userid lookup and delivers the message (8) to Server system B 404 through the IP network 403, which then sends the message to client system B 405, with client system A's 401 message and the phone ID, as the message was sent with privacy off.
Now that the Client system B 405 knows the Client system A's 401 phone number, communication can be done directly, bypassing the server system.
This distributed architecture can also be extended to the one-to-many implementation, where a Client system posts a message to a Server system, the Server system after successful content validation, stores the message in a content database along with the date, time, device ID, alias, send to alias, etc. In this implementation, one of the Server system acts as a master aggregator, where all the contents from other Server systems are constantly updated and synchronized. The user ID aliases and the device ID's are synchronized across all the Server systems, both the master and backup. The content in the master Server system is then rendered into various formats, such as xml, wml, xhtml, etc. (for web browsers and PDAs to access).
Note that one server acts as an aggregator or master, and the rest act as slave.
The content can be accessed by users using html, wml, xml, xhtml mp, etc., from anywhere, and can respond to a specific message by using the alias/message ID contained in each of the messages through the local Server system that the Client system belongs to. The local Server system does an alias to device id lookup to determine the home location of the alias of the Client system, and forwards the message to the appropriate Server system through an IP network. The Server system then forwards the message to the Client system, using SMS.
In the distributed architecture (for peer-to-peer), the message is forwarded to the Server system that is closest to the home location of the Client system. The user id, alias, and device id are constantly synchronized across the different Server systems. At any given time, the Server systems know where a specific user alias is located and served by which Server system, based on their device ID. For example, +1, +44, and +91 indicate that the Server systems for each of the those device id beginning with those numbers are based in US, UK and IN, respectively. (The details are given in
In both one-to-one through proxy or one-to-many implementations, the userid, device id, and alias mapping table are replicated across the Server systems. The messages are stored in the originating Server systems (one-to-one), and then forwarded to the Client systems. In one-to-many implementation, the messages received by each of the Server system are aggregated at a central database along with associations to the message owners device id, alias, etc.
Note: To combine two systems, one can combine two databases, and cross-license between the owners of two databases.
4) Content Processing Engine is the brain behind the server system, and it does the following:
Checks for format validation of the content (otherwise, discards it).
Checks content for spam against known spammers, content from the Server System DB.
Checks content for spam against known spammers, through device ID from the Server System DB.
Checks for transaction rate limiting, e.g. “x” number of messages in “n” minutes.
Checks for incoming messages and process requests (edit, delete, get, pause), based on Keywords during one-to-many communications (e.g. Msg posted on the web).
Checks for incoming messages and process requests (ban, alias, profile, get), based on Keywords during one-to-one (peer-to-peer) communications through proxy.
Checks for shortcuts in the incoming messages and process requests (e.g. b for ban, e for edit, d for delete, p for pause, a for alias, and etc.).
Checks for incoming messages and can ban user administratively.
Checks for incoming messages and can transaction rate limit, through a hold down timer for x hours: during this x hours all messages from the user will be ignored.
Maintains transaction logs, purges, or sets “x” message before hold down, to restrict communication between two client systems, in peer-to-peer using mobile proxy.
Administrator can clear the hold down ban, adjust metrics in transaction rate limiting, transaction logs, and etc.
Limit trial users for x messages/day, paid users e.g. 200 messages/month, and etc.
Contents are assigned a Dynamic list priority (a number) based on different metrics (as described earlier). Best relevant content gets more visibility and appears on the top of the website.
The client system sends the message via SMS and is received by the server system. The server system assigns a unique identifier to this message, and associates the UID to the 10-digit phone number of the client system. A priority number is associated to this message ID, based on various metrics, such as the keywords in the item title and item description, location of the listing, category of the listing, external web links associated to the message, age of the message, pictures associated with the message, if it's a paid message, user rating, number of characters in a message, and the number of responses received for this message. Each of these messages has user ratings, that others rate based on responsiveness of the listing agent, which will be included in calculating the priority number.
The priority number determines the ranking of various message ID's. A higher message priority number signifies a message that is well-written and complete, as opposed to one with a lower priority number. The priority number changes constantly based on dynamic variables, such as age of the message, user rating, and response received for the message. The dynamic algorithm with variable parameters is necessary to avoid hackers abuse the rating system.
The abbreviations are recognized by the (smart) system here. For example, “house 4 sale” will be expanded as “house for sale” (to sell a house).
Lower points or weights are given for older messages. Repeat messages in a short period of time is either eliminated or given a low point or score.
. . .
In general, we assign different weights (Wn) to all parameters, to find the ranking:
The dynamic weights, Dn, will replace Wn in the formula above, to make it harder for hackers to detect the pattern of weight assignment, to make it harder to abuse the message ranking system.
Note that in the formula above, we can normalize the numbers, by dividing the values by n. Or alternatively, we can compare it to (divide it by) a base value, normalized as 100 percent (or 1).
Examples for subject are: sale of car, sale of house, using inappropriate or unacceptable language in the text, emergency help request, and sale of car in Chicago. If we are searching for cars in Chicago, the message with the majority of the keywords described above gets higher score than the ones with the content with the least number of matrix as defined above. The priority score for inappropriate or unacceptable language is very low, and the priority message score is very high for emergency SOS/help request. The scores and weights are adjusted periodically to reflect different situations and change of settings.
One can use different weighting formulas, such as non-linear weights or coefficients. In general, the larger the number of parameters, the harder for the hackers to guess the formula, and thus, the longer period of time required for change of coefficients. Therefore, one can say the following:
Assuming:
N=number of parameters
T=minimum period of time, needed to change the coefficients
(K=a proportionality factor)
Then:
T=K*N
(i.e T is proportional to N)
The listings can be re-arranged per day, per hour, per week, etc. The search can be done based on keywords, such as selling cars in Baltimore on Jun. 15, 2006. If the price is listed, the weight factor goes up. If it is more recent, the weight factor goes up (top of the list, with the highest priority). The user can search for a price range. The user can link the searches and categories. In one embodiment, the top 10 listings of cars, real estate, etc. are shown. Other factors for weight assignment are user rating and responsiveness, and premium users (paid listings). The combination of mobile postings and computer postings are considered.
List priority is a part of the content processing engine, and it is a key component for ranking a search result.
The content of the original message or any subsequent message between any parties can be one or more of, or combination of, text, voice, music, sound, multimedia, video, images, tables, forms, and databases. The subject of the messages can be any of these (as examples): general messages, advertisement, sales, auction, or emergency SOS/help request.
The disclosure above is intended as an example and embodiment. Thus, any variations of the current teaching are also intended to be included for our patent protection.
The present invention relates to the following co-pending applications, with the same assignee and inventors: “A method and system for one-to-one communication through proxy”, filed on the same day as current application, docket number OHHO-00002. CIP of application Ser. No. 11/478,635, filed Jul. 3, 2006, “Method and system for communicating to networks using mobile phones”.
Number | Date | Country | |
---|---|---|---|
Parent | 11478635 | Jul 2006 | US |
Child | 11461414 | US |