Generating rich digital documents from limited instructional data
11151219 · 2021-10-19
Assignee
Inventors
Cpc classification
G06F16/9566
PHYSICS
G06F16/972
PHYSICS
International classification
G06F16/958
PHYSICS
G06F16/955
PHYSICS
Abstract
A method and system for generating a digital document on a receiving mobile device from limited data that is transmitted to the device is disclosed. A shortened form of Uniform Resource Locator (URL) is sent and expanded to a longer URL that contains presentation data. The presentation data may include further nested shortened URLs to retrieve digital document components. Condensing techniques for transferring both presentation and location data further reduce transmission size. The combined retrieved data defines the content and presentation of a generated digital document.
Claims
1. A method for generating a digital document on a receiving device (120) comprising: receiving an initial short code (110) from a server (100); forwarding the initial short code (110) to a short code expansion server (170) to obtain expanded data (180); forwarding any short codes that may be embedded in the expanded data to the short code expansion server (170) to obtain additional data; processing the expanded data and any resulting additional data to obtain presentation data, and to obtain locator data that may be embedded therein; wherein the presentation data embedded in the expanded data and any resulting additional data includes presentation attributes that specify one or more of layout, style, or additional content of the digital document; from the presentation data, determining a document template (220) for the digital document; when a component of the document template is a web element (250) of a web source (240), retrieving (260) the web element (250) using the locator data; generating the digital document (270) by combining (a) the presentation data that was obtained from the expanded data and any resulting additional data, and (b) the document template (230), and (c) any result of retrieving the web element using the locator data; and presenting the digital document (270) on a display.
2. The method of claim 1 wherein retrieving (260) the element (250) further comprises: granting or denying access (820) to the web element (250).
3. The method of claim 1 wherein presenting the digital document (270) further comprises: presenting the digital document (270) via a browser run-time (155) running on a device that received the initial short code (110).
4. The method of claim 1 wherein no short codes are embedded in the expanded data.
5. The method of claim 1 wherein the step of generating the digital document further controls whether data presented or components thereof are concealed or disclosed, and the step of presenting the digital document is further determined by actions taken by the user, by access controls that block delivery or provide substitute data, or by events external to the message, such as alarms, calendar notifications, or changes of remote events.
6. The method of claim 1 wherein the step of generating the digital document further applies values of presentation attributes to the document template that are determined by actions taken by the user, by access controls on the data, or by external events, such as alarms, calendar notifications, or changes of remote events.
7. The method of claim 1 wherein one of the expanded data or additional data includes query data, and the method additionally comprises: initiating a search or a database query using the query data and the component locator data to obtain additional data; and wherein the step of generating the digital document also applies the additional data thereby obtained to the document template.
8. An apparatus for generating a digital document comprising: one or more communication interfaces; a display; and a processor, for executing program code, the program code for: receiving initial instructional data that contains at least an initial short code from one of the communication interfaces; forwarding the initial short code to a short code expansion server over one of the communication interfaces and in response thereto, receiving expanded data; forwarding any short codes that may be embedded in the expanded data to the short code expansion server to obtain additional data; processing the expanded data and any resulting additional data to obtain presentation data, and to obtain locator data that may be embedded therein; wherein the presentation data embedded in the expanded data and any resulting additional data includes presentation attributes that specify one or more of layout, style, or additional content of the digital document; from the presentation data, determining a document template that provides structure for the digital document; when a component of the document template is a web element of a web source, further processing the expanded data and resulting additional data to obtain URL data, and then retrieving the web element using the locator data; generating the digital document by combining fa) the presentation data that was obtained from the expanded data and any resulting additional data, (b) the document template, and any results of retrieving the web element using the locator data; and presenting the digital document on the display.
9. The apparatus of claim 8 wherein the program code for retrieving the web element further comprises: granting or denying access to the web element.
10. The apparatus of claim 8 wherein the program code for presenting the digital document further comprises: presenting the digital document via a browser run-time running on a device that received the initial short code.
11. The apparatus of claim 8 wherein ne-short codes are embedded in the expanded data.
12. The apparatus of claim 8 wherein the program code for generating the digital document further comprises: controlling whether data presented or components thereof are concealed or disclosed, and presenting the digital document is further determined by actions taken by the user, by access controls that block delivery or provide substitute data, or by events external to the message, such as alarms, calendar notifications, or changes of remote events.
13. The apparatus of claim 8 wherein the program code for generating the digital document further comprises: applying values of presentation attributes to the document template that are determined by actions taken by the user, by access controls on the data, or by external events, such as alarms, calendar notifications, or changes of remote events.
14. The apparatus of claim 8 wherein one of the expanded data or additional data includes query data, and the program code is additionally for: initiating a search or a database query using the query data and the component locator data to obtain additional data; and generating the digital document by also applying the additional data thereby obtained to the document template.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The description below refers to the accompanying drawings, of which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9) The foregoing will be apparent from the following more particular description of example embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being place on illustrating embodiments of the present invention.
DETAILED DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT
(10) A description of example embodiments of the invention follows.
(11) A method and system for generating a digital document on a receiving mobile device from a minimum of received instructional data is disclosed. Rich digital documents cannot be “pushed” to a recipient device using prior techniques. Text messaging can “push” a message, but that is typically limited in size. Many mobile messaging services have a limit of 160 or fewer characters of text; in the case of Twitter, messages are limited to 140 characters.
(12) Senders of many types of text messages would benefit from being able to send a text message that consists of a rich digital document. Recipients would benefit from text messages that contain more information, are more attractively presented, and enable more interaction opportunities.
(13) Methods and systems to transmit sufficient data to generate a desired rich digital document using as little instructional data as can fit in the message payload capacity of a text message contain several aspects:
(14) 1. Foregoing transmission of the voluminous, complete specification of a desired digital document, only instructional data about how to locate the data needed to assemble and present the document is transmitted.
(15) 2. An assembly application running on the recipient device performs document assembly and applying presentation attributes.
(16) 3. Web elements are downloaded from remote web sources and assembled on the receiving device.
(17) 4. A specific document template format provides a display layout that is less flexible than coding an HTML page but which reduces the number of attributes that must be specified.
(18) 5. Short URLs are used, not merely as web URL pointers, but to transport strings of instructional data used for presentation attribute specification and to locate the web elements and other resources to be displayed.
(19) 6. Successive expansion of shortened URLs enables a presentation data string to be assembled on the transmit side and deconstructed on the receive side.
(20) 7. Additional interaction features are enabled in the generated document than are possible with the limitations of a text message.
(21) 8. Document componentization enables access control or substitution independent of the initial message specification.
(22) It should be noted that any messaging service in addition to SMS that can interoperate with the embodiment can deliver the instructional data to generate such rich digital documents. The present embodiment does not require, but only enables, a messaging service payload so limited.
(23) One overall method of generating a rich document consists of receiving a message that contains limited instructional data for presenting a desired rich digital document, expanding a short URL that it includes, extracting from the expanded URL both the presentation data and the short URLs of location data for any component elements, expanding the location short URLs that may be so contained, further extracting the short URL of the source document, retrieving such component elements using the remaining locator data, assembling a desired rich digital document of such data, and displaying the so generated document using a browser run-time capability included in the mobile device operating system.
(24) Instructional Data Transmission
(25) The WorldWideWeb consortium standards enable display of digital documents of considerable display flexibility using browser software. They suffer some loss of reproduction fidelity, particularly of layout appearance on mobile screens, and they demand highly detailed programming syntax. Still the total size of the files that describe a single web page are far too large to transmit in a text message.
(26) A sender can send a URL in a message which results in display of the linked web page in a device's browser program, without sending the underlying HTML and other files. Yet sending even a small message containing HTML code will exceed SMS capacity.
(27) As a result, the disclosed invention abandons the common approach of sending a completed pre-formed document. Instead, it sends only metadata containing instructions (referred to herein as “instructional data”) for how to assemble the document from components obtained separately by the recipient device and to present the so assembled document.
(28) Assembly Application
(29) An assembly application consists of program code running on the receiving device. Either automatically or by user-initiated action, it receives a message from a messaging service running on the receiving device, detects the message has content for it to process, and extracts an initiating shortened URL code. It proceeds to expand the shortened URL, which is typically further nested in sequential shortened URLs, extract the presentation data, and retrieve the document components. It assembles the components and applies the presentation data to the document template to complete generation of the desired rich digital document and displays it using a browser run-time capability included in the mobile device operating system.
(30) Web Elements Downloaded Text messages are by nature condensed and specific. Displaying only a web page element with specific information matches the character of a short textual message and the expectations of recipients. The prior art of attaching a full page with often irrelevant, distracting, and/or inappropriate content may require additional effort to navigate. The recipient may not even view the page because the link to it must be consciously activated. The transport load of web elements instead of the entire web page typically may be a much lighter load, consume less of the recipient's data plan allotment, and require less time.
(31) A further benefit of only downloading a specified web element as a component of the desired digital document is that it reduces and simplifies content management. Instead of requiring updates to a second source of information, re-using elements from a web page enable that web page as an authoritative source.
(32) Template
(33) The embodiments described herein are not a page description language, such as HTML or like PDF. Instead, they use a template of pre-defined digital document objects that can adjust display attributes according to values supplied in a standardized string, called the “presentation data string”.
(34) The template pre-defines a document structure that trades the display flexibility of PDF or HTML for a less flexible layout but with a highly concise description of display attributes. Various templates with different document structures may be utilized.
(35) The template document objects may be standard Document Object Model objects. They are arranged for display to enable flexible layout. One embodiment for Android devices, for example, may contain one or more of ImageView, WebView, and TextView elements arranged in TableLayout, RelativeLayout, or LinearLayout structures in an eXtensible Markup Language (XML) display definition of a template.
(36) Those template document objects may adapt their size and location identically to the way they adapt on a so-called “dynamic web page”. The technique of structuring dynamic web pages may make web content present more acceptably on devices with different size screens.
(37) Each object of the template may have numerous attributes that can be specified. These can vary the size, background color, text, textual style and color, or alignment of the display of the object. For document components displayed in such objects, a shortened URL of the locator data for retrieving such component is specified.
(38) Each of these attributes is specified at a precise sequential location in the presentation data string. Such location is specifically determined to provide a tradeoff between display flexibility and a more economical attribute description. In one example, the desired rich document will display a title and a textual footer, with the title object background color specified at the beginning of the presentation data string and the style of the footer text specified at the end. Alternatively, JSON strings may be utilized but that requires the presentation data string to include key names. This unnecessarily inflates the string length if the positions of attributes in the string is known and maintained.
(39) The presentation data string, in one embodiment, consists of values separated by a “separator character”, each value corresponding to the desired value for the attribute at each specific location.
(40) An example form of a template and presentation data string, using the “|” character as a separator of attributes with predetermined functions, could be:
AA∥svndi57∥6urgjug|FFFFFF . . .
(41) This presentation data assigns “AA” as an ID, recognizing the next sequential “|” character as the termination of the attribute value. The ID field can be used for whatever the sender of the document wants. In one example, the ID field can be specific to a particular message and/or document. In another example, the ID field may be used to distinguish templates used for different notifications; the ID field can also be an identifier for a service's client. It is meant to be flexibly applied and is not determinative about the particular document contents or display.
(42) The lack of a value for the second attribute (as indicated by the immediately following sequential “|”) may assign a default value to the Title object as a background color.
(43) The third attribute, the short URL “svndi57”, is to be expanded to locator data. In one example, the locator data may expand to a longer URL for a document element, such as an image, that can be retrieved independently from retrieving an entire source page. For example, the locator data may retrieve the image via an IMG element's SRC attribute. However, the locator data may be used in other ways. As a second example, the locator data, after expansion, may specify a longer character string that includes a URL for a source web page; the same or yet other locator data may be further expanded to obtain information for how to extract the element from the source web page. In this example, the further information might specify one or more HMTL tags in the source page, such a table (<table>) tag, paragraph (<p>) tag, unordered list <ul> or some other tag to identify the element. The second example may use the techniques described in U.S. Pat. No. 8,793,571 referenced above to locate such an element.
(44) The fourth attribute is another short URL for locator data for the topmost web element; none is specified since the value is blank. The fifth attribute is yet another short URL for still other locator data, that being for the lowermost web element and is specified as “6urbjug”. This shortened URL will be expanded in the element location step. The sixth attribute is used as the color for the screen background; “FFFFFF” signifies it should be white.
(45) Numerous techniques may be used to specify, with a minimal number of characters preferred, various attributes of the template document objects. So, for example, the default, if no value is specified, may indicate the most likely value that would be desired.
(46) Another technique may assign a single letter in the presentation data string to represent a longer attribute, such as a seven-character hexadecimal color; so “F” would signify “#FFFFFF” or “white”. Similarly, “S” may signify that the attribute color is the same as another related element. A single character can also be a code for the name of a resource image file.
(47) An object of the template can be a web element that is retrieved at the time of document assembly. As a result, the information it displays should be the most current available from that source.
(48) The template can be modified, saved and re-used for additional messages.
(49) Unique Short URL Use
(50) These embodiments extend the original purpose of shortened URLs from linking to a web page to a unique new use for passing presentation and element locator data in the expanded URL. Shortened URLs are used in two different unique ways: 1) as a link to a web element that is a component or child element of the entire parent web page and 2) as a more efficient string compression mechanism for transmitting individual web element and presentation data for constructing and styling a document on the receiving device. The locator data for an individual web element typically exceeds SMS message capacity. So the instructional data that includes component locator data plus presentation data for a document far exceeds SMS message capacity. Applying various text compression techniques to the instructional data still exceeds SMS capacity. Therefore, the required data compression is achieved by applying a shortened URL for each component's locator data and another for the digital document presentation data.
(51) Such shortened URLs may be re-used by a sender for many such messages. In order to incorporate personalized data, such as the recipient's name, or information specific to an individual message, such as a flight number, product SKU or an appointment time, a string of characters is appended to the Element locator data, either as another short URL or in plain text depending on the length. The assembly program attaches these characters to the Element source page URL, when it is expanded, to form a database query that will retrieve the specific data for incorporation in the desired digital document. As an example, a database query may be desired for flight #2605. The message sent to the receiving device which is expanded by the method disclosed would reveal Element locator data: |cqin19r|American Airlines|1|2|||299|344|3||||||||||flight:2605|. The text “flight:2605” is query data for a database search. The assembly program would combine the Element source page URL and the query data contained in the Element locator data and submit a database query with a form like
(52) http://www.aa.com/?flight=2605
(53) to obtain additional data which is inserted in the digital document.
(54) Note that successful forwarding of a message is more reliable if it is sent in a common format, for example, SMS. Therefore, an additional benefit using shortened URLs, with or without database queries, is to encourage and enable forwarding of messages, which is particularly beneficial for messages, for example, of a promotional nature.
(55) Interaction
(56) SMS messages limit interaction between sender and recipient to reply or linking to a web page. It is possible to signal the assembly application to provide additional means of interaction. The content and presentation of the generated document may be changed as a result of hiding or displaying different document components and retrieving and presenting different web elements. Additional recipient actions may be presented, such as refreshing data presented in the document, transferring communications to different means of interaction, such as a voice call or chat capability, or further transmitting the initial instructional data. The assembly application may also communicate further with the document component server(s) or other server(s).
(57) Document Componentization and Security
(58) The present disclosure teaches the assembly of a rich digital document on a device from a received message that includes necessary instructional data. The assembly is independent of the messaging service that delivers the instructional data. Components to be assembled are retrieved from one or more remote web sources as specified by the locator data extracted from the expanded instructional data. Further communication between such sources and the assembly application may retrieve additional or changed components.
(59) This componentization of the document enables control of the components independently. Whether they are concealed or displayed and the style of their presentation can result from recipient actions, access controls, and events external to the document.
(60) Recipient actions can cause a component to be hidden or displayed according to the context of the recipient, the device, or the content simply by changing a visibility attribute in the displayed document. Exercise of a call-to-action by the recipient can similarly cause hiding or display of various components or retrieval of additional components of the document. For example, pressing a Chat button, which may be included in the displayed document by the specification of the corresponding file name in the specified location in the presentation data string, can execute chat client software or connect to an app that uses a remote Artificial Intelligence (AI) program to provide an automated, interactive conversation. Pressing a Help button, in another scenario, can replace some components of the document with others.
(61) Access controls at the web source server can be applied to document components as they are used at present for web pages. One common control may be to restrict access to a web page by requiring password submission. Another control directs a web browser requesting a web page at a URL, for example, to either the full-screen version or the mobile version of the page depending on the device the browser is running on. Also, once downloaded to the web browser, many web pages display different content depending on cookies found on the display device, and often make further changes based on the viewer's subsequent actions with the page.
(62) Because each component is individually retrieved, access controls on the delivery and presentation of each can be exercised individually at its source. This embodiment, optionally, can utilize a filtering server, web server security, or other means that control access to the expansion of the shortened URL or substitutes a different web element.
(63) An additional access control may optionally require authentication of the recipient before a component is downloaded to the assembly application. Authentication of the sender may also protect the recipient from clicking a link in a malevolent message with a spoofed sender. Said authentication could be provided by commonly available enterprise directories or popular user authentication sign-in capabilities. Thus, this embodiment extends server-level controls for some such customization, personalization or security functions to the components of the page just like web pages are controlled.
(64) A few cases where control of a specified component may be desirable include: 1) the message recipient may be associated with different group attributes, e.g., subscribers of a service or not, 2) the retrieval may be re-directed to a different element due to unavailability or other conditions, 3) an individual should receive some information different from a group, e.g., her connecting flight information, 4) access controls may block delivery of a component of a document according to different levels of security based on device attributes, recipient responses to challenges, location of the device, etc.
(65) Finally, events external to the document displayed can control or change component display. The assembly program can react to events on the receiving device such as notifications from alarms or calendar events. By monitoring the results of a remote data source, the assembly program can respond to a change in a remote variable, such as a change in score, status or condition, and change the displayed document.
An Example Embodiment
(66) Referring now to
(67) The assembly application 150 may be delivered to the receiving device 120 in any number of ways, for example, via a prior download from an application program source such as Google™ Play or Apple™ iTunes, via another distribution server, or via on demand delivery such as Google Android Instant Apps.
(68)
(69) In some implementations, the random short code 300 can be replaced by a particular “tag”, such as “American Airlines flight 2605”, that may be more understandable to a viewer. That will allow an SMS with a message like:
(70) “Special update for you. Click to view:
(71) http://example.aa.com/American Airlines flight 2605”
(72) to cause the same “American Airlines flight 2605” message to all passengers on that flight. Each time the message is sent (each day, each update before takeoff, each flight segment, etc.) that message then picks up whatever the latest data is from the flight status database.
(73) It is also possible to change the document component that tag causes to be displayed. For example, if the flight is near landing when the message is viewed, the short URL embedded in the presentation data can cause the flight status table of information to change to the baggage location information, and an image can change from a plane to a carousel.
(74)
(75) Optionally, a message displayed by the disclosure may include a button bar 440 that may be displayed in various ways, placements and forms. The button bar 440 provides one or more “call to action” buttons that simplify follow-on actions, requests for information, or support needs. A “click-to-call” button 450 may prepare the embedded phone application with a telephone number to call for further information, help or transactions. An “OK” button 460 can dismiss and delete the message or provide a context menu of additional options. Many other types of buttons may be inserted that initiate or conclude transactions or connect to additional information sources from web landing pages to chatbots that can answer questions in a conversational style. Furthermore, a call-to-action may be expressed as some other form than a button, such as a link, a clickable image, etc. as found on standard web pages.
(76)
(77)
(78)
(79)
(80) In prior art, the shortened URL has been utilized to transmit data for various particular purposes. The embodiments described herein, in contrast, utilize the shortened URL two different unique ways: 1) as a shorter pointer to the data needed to locate an element of a web page, not to the entire web page, and 2) as a more efficient compression mechanism to transmit instructional data, including both said locator data for an individual web element and presentation data for constructing and styling a document on to the receiving device.
(81) While the above has particularly shown and described example embodiments of the invention, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention as encompassed only by the appended claims.