CUSTOMIZATION OF OUTPUT CONTENT BASED ON DEVICE TYPE

Abstract: A facility provides the mechanism for customizing output of content based on the device type of the destination device. As a result, different destination devices may receive output content in distinct formats when requesting the same content. The facility may be implemented in software and run on a server, such as a web application server. The facility includes a mechanism for identifying the device type of a device that is requesting content. In addition, the facility includes an ability to apply a stylesheet or other mechanism for customizing format based on device type.

Description: CUSTOMIZATION OF OUTPUT CONTENT BASED ON DEVICE TYPE Technical Field The present invention relates generally to data processing systems and more particularly to the customization of output content based on device type. Background of the Invention Traditionally, a user gains access to content on the Internet by logging into a personal computer system. The personal computer system includes a web browser that provides a user interface to the user. The user may specify a uniform resource locator (URL) for a web site or may conduct a search and then click on a hyperlink returned in the search results to gain access to a web site that contains content. Content has typically been returned to the personal computer as hypertext markup language (HTML) files. The web browser contains an interpreter for interpreting the HTML files and displaying the contents of the HTML files in a web browser window. The number of devices that are capable of enabling a user to access web sites on the Internet is increasing dramatically. No longer is a user limited solely to the use of a personal computer system with a web browser. Personal digital assistants (PDA), such as the Palm 7 PDA from 3Com Corporation, allow a user to gain access to web sites from a PDA. Similarly, cellular phones have been recently introduced that allow a user to gain access to web sites. Intelligent pagers and Electronic books have been introduced for gaining access to web sites on the Internet. Unfortunately, the traditional approach of simply forwarding an HTML file to the devices requesting content from a web site does not work well for many of a device, such as pagers, cell phones, PDAs and the like. Many of these devices have very small displays that can not display an entire web page. As a result, it is often awkward from a user to gain access to web sites with such devices. Summary of the Invention The present invention addresses the above-described limitations of conventional systems by enabling content, such as from a web site, to be custom formatted based upon the device type of the device to which the content is to be output. Thus, for example, if a web page is to be output to a cellular phone, the web page may be formatted to include significantly less content than if the web page is to be output to a personal computer system. Content may also be formatted differently to account for the different characteristics of the destination device to which the content is to be output. In one embodiment of the present invention, stylesheets encoded in the extensible stylesheet language (XSL) are used to transform extensible markup language (XML) content into a customized format suitable for the destination device. Intelligence is provided for determining the device type of the destination device based on a request for content that is received. In accordance with one aspect of the present invention, a method of customizing output of content based on a device type of destination device is performed in an electronic device. In accordance with this method, the device type of the destination device is identified. The format of the content is customized based on the identified device type of the destination device. The content is then output to the destination device in the format as customized. A stylesheet may be used to perform the customization. The destination device may be a number of different type of devices, including a phone, a PDA, a personal computer, a pager, an electronic book or other type of information appliance. In accordance with another aspect of the present invention, multiple stylesheets are provided wherein each stylesheet is associated with a different device type. A request for content is received from a selected device of a selected device type. A given one of the stylesheets that is associated with the selected device type and the given content is applied to the content to properly format the content. The content as formatted by the given one of the stylesheets is forwarded to the selected device. The method may also include the additional step of examining information contained in the request for content to determine that the selected device is of the selected device type. Brief Description of the Drawings An illustrative embodiment of the present invention will be described below relative to the following drawings. FIGURE 1 is a block diagram illustrating an environment that is suitable from practicing the illustrative embodiment of the present invention. FIGURE 2 is a flow chart providing an overview of the steps that are performed to customize the format of output content in the illustrative embodiment. FIGURE 3 is a block diagram illustrating how stylesheets are applied to XML content to produce the customized output. FIGURE 4 is a flow chart illustrating the steps that are performed to determine the device type of a destination device by accessing information in an HTTP header. FIGURE 5 is a flow chart illustrating the steps that are performed to determine device type based upon a received URL. FIGURE 6 illustrates an example of output produced on a personal computer system after a stylesheet is applied to customize the format. FIGURE 7 depicts the output at a cellular phone after a stylesheet has been applied to customize the format of the output. Detailed Description of the Invention. The illustrative embodiment of the present invention provides a mechanism for customizing the format of content based upon device type of a destination device. Destination devices of different types may request the same content but receive differently formatted output content. For example, a personal computer system may received differently formatted content than a cellular phone or a personal digital assistant (PDA). The illustrative embodiment performs such custom formatting without the need for input from the requesting party at the destination device and with minimal overhead. As a result, the output received at the destination device is of better quality and better suited for the device type of the destination device. The illustrative embodiment may be implemented on a server computer system, such as a web application server. When a request for content is received at the server, the illustrative embodiment identifies the device type of the destination device that is requesting the content. This may be determined by examining information in the request, or applying other heuristics. Once the device type of the destination device is known, the illustrative embodiment may retrieve the content and apply an XSL stylesheet to the content to transform the content into the customized format. For purposes of the discussion below, it is presumed that the content is encoded in XML, although those skilled in the art will appreciate that the content may also be encoded in different formats in practicing the present invention. After the content is transformed into the customized format, the content is returned to the destination device that requested the content. For purposes of the discussion below, it is presumed that XSL refers to the extensible stylesheet language specification established by the World Wide Web Consortium on April 21 , 1998. As a matter of background is should be noted that XSL is a language for expressing stylesheets. XSL contains a language for transforming XML document and an XML vocabulary for specifying formatting semantics. An XSL stylesheet specifies the presentation of a class of XML documents by describing how an instance of the class is transformed into an XML document that uses the formatting vocabulary. For purposes of the discussion below, it is presumed that XML refers to extensible markup language version 1.0 as established by the World Wide Web Consortium. For purposes of clarity in the discussion below, it is helpful to define a few terms. A "stylesheet" refers to an XSL stylesheet or other suitable mechanism for transforming content into a specified style. "Content" refers to subject matter that may be forwarded from a source to a remote destination. Content may include audio content, graphical content, textual content and/or video content. "Device type" refers to a category of device that has an associated stylesheet, such as personal computer, pager, phone, electronic book, or PDA. Figure 1 depicts an environment 10 that is suitable for practicing the illustrative embodiment of the present invention. Those skilled in the art will appreciate the configurations shown in Figure are intended to be merely illustrative and not limiting of the present invention. The present invention may also be practiced in other environments that have different configurations. The environment 10 depicted in Figure 1 includes a number of content sources, including word processing documents 14, such as documents encoded in the Microsoft Word processing application. The content sources also include XML produced by an XML editor 16 and hypertext markup language (HTML) documents produced by an HTML editor 18. The HTML documents may be specified in HTML version 4.0 as defined by the World Wide Web Consortium on April 24, 1998 or in earlier version of HTML. The content sources may also include a database 20 for providing content. The content sources 14, 16, 18 and 20 may be managed by a server 22 that includes a content management database service 24 and a publishing engine 26. The content management database 24 and the publishing engine 26 may work in conjunction to translate the content into a standardized format, such as XML. The resulting XML may be stored on XML aware database 28. The publishing engine 26 is then able to publish the XML content for access by remote users. The content management database 24 and the publishing engine 26 may be implemented by the Interleaf BladeRunner package sold by Interleaf, Inc. of Waltham, Massachusetts. Those skilled in the art will appreciate that the multiple content sources 14, 16, 18 and 20, the content management database 24 and the publishing engine 26 are not necessary for practicing the present invention but rather may be replaced by other components that provide XML content or content in a suitable intermediate format. Requests for content are received at a server 30 that has an interface with the server 22. A server 30 includes a processor 32, such as a conventional microprocessor and a storage 34. The storage 34 may include both primary storage and secondary storage. The storage 34 may include removable media, such as optical disks or magnetic disks. The storage 34 holds the web application server 36. The web application server allows application programs to interface with the server 30 to gain access to content that perform other tasks. The storage 34 also includes a format customization facility 38 that is responsible for customizing the formatted content that is requested by destination devices. A format customization facility is a software facility uses stylesheets 40 that are encoded in XSL in the illustrative embodiment. The storage 34 also holds a copy of a device type identification facility 42 (implemented in software) that identifies the device types of the destination devices. The web application server 36, the format customization facility 38 and the device type identification facility 42 are all executed by the processor 32. The server 30 has access to a database 44 that may hold content, such as XML documents. The server 30 may also have access to raw content 46 that is not stored in a database. The raw content 46 may be files from a file system or other non-database content. A number of different types of destination device may request content from the server 30. For example, as shown in Figure 1, the destination device may be an Internet appliance 49 that facilitates Internet access, a set top box 51 (such as used in WebTV), a PDA 52, a cellular phone 54, a pager 56, a computer system (such as a personal computer) 58, an electronic book 60, or another type of information appliance 62. Those skilled in the art will appreciate that the depiction of the destination device types in Figure 1 is not intended to be exhaustive but rather is intended to be merely illustrative. The destination devices 52, 54, 56, 58, 60 and 62 may access the server 30 over a network 50, such as a computer network or other telecommunications network. The network 50 may be the Internet, an intranet, an extranet, a computer network that supports the TCP/IP protocol suite, or other type of computer network. Figure 2 provides a flow chart that depicts an overview of the steps that are performed to generate customized format output content in the illustrative embodiment. Initially, the server 30 receives a hypertext transfer protocol (HTTP) request from one of the destination device 52, 54, 56, 58, 60, or 62 over the network 50 (step 70 in Figure 2). The device type identification facility 42 examines the request and determines the device type of the destination device (step 72 in Figure 2). Figure 4 shows an example wherein the device type is determined by the device type identification facility by examining information contained within the header of the HTTP packet that is received in the request. Initially, the HTTP request is received (step 86 in Figure 4). The header in the HTTP request is the examined (step 88 in Figure 4). In particular, the HTTP header contains a User- Agent field that contains information about the User-Agent originating the request. The information contained in this field is then extracted by the device type identification facility 42 (step 90 in Figure 4). The extracted information is used as an index to a lookup table to determine the device type (step 92 in Figure 4). For example, if the information extracted from the header indicates that the User- Agent is for a PDA, this information may be used to identify the device type as a PDA. There may be instances in which an HTTP request message that is received as the server 30 does not contain information in the User-Agent field. For example, with a PDA, an application may be developed on the PDA for a user to request a stock quotation. The application packages up the stock symbol and a request that is directed to a URL for a quotation service provider. This URL identifies the type of device is a PDA because only the PDAs exhibit this unique behavior. Thus, shown in Figure 5, sometimes the URL contained within a request may be used to determine the device type. In such a case, the request is received from an application (step 94 in Figure 5) and the URL within the request is examined (step 96 in Figure 5). The URL is then used to determine the device type (step 98 in Figure 5). After the device type of the destination device is determined in step 72 of Figure 2, the requested content may be retrieved (step 74 in Figure 2). This content may be retrieved by submitting a request to the server 22, by accessing the database 44 or even by accessing the raw content 46. From the illustrative embodiment, it is presumed that the content is encoded in XML. The device type is then used to apply a stylesheet based upon the stylesheet that is adopted for the data type definition of the retrieved content. The stylesheet is then applied to the content (step 76 in Figure 2). The stylesheet customizes the content as output to that it may be sent onto the destination device. The customized content is then forwarded to the destination device (step 78 in Figure 2). Figure 3 depicts an example illustrating how the electronic content 79 encoded XML is transformed by respective stylesheets 80, 81, 82 and 83 for delivery to respective destination devices 84, 85, 86 and 87. The stylesheet 80 is customized for a personal computer 84. The stylesheet 81 is customized for a pager 85. The stylesheet 82 is customized for a cellular phone 86 and the stylesheet 83 is customized for a PDA In order the better understand operation of the illustrative embodiment it is useful to consider a more detailed example. Suppose that content is to be sent to different destination devices and suppose that the content is a weather report. The weather report has a data type definition that is defined as follows: <! ELEMENT Weather (Locale, Current-Conditions , Forecast * ) > <!ELEMENT Locale (City, State? , Country) > < ! ELEMENT Current-Conditions (Sky, Precip-type, Temp, Pressure, ong-desc, Small-graphic, Map) > <! ELEMENT Forecast ( Date, Sky, Precip-type, Temp, Pressure, Long- desc, Small-graphic, Map) > <! ELEMENT City (#PCDATA) > <! ELEMENT State (#PCDATA) > <! ELEMENT Country (#PCDATA) > <! ELEMENT Sky (#PCDATA) > <! ELEMENT Precip-type (#PCDATA) > <! ELEMENT Temp (#PCDATA) > <!ATTLIST Temp Scale (Fahrenheit I Celsius) #IMPLIED > <! ELEMENT Pressure (#PCDATA) > <!ATTLIST Pressure Trend (Rising | Falling) #IMPLIED > <! ELEMENT Long-desc (#PCDATA) > < ' ELEMENT Small-graphic EMPTY > <'ATTLIST Small-graphic Source CDATA #IMPLIED > <' ELEMENT Map EMPTY > <'ATTLIST Map Source CDATA #IMPLIED > <'ELEMENT Date (Year, Month, Day, Time, Timezone) <' ELEMENT Year (#PCDATA) > <ι ELEMENT Month (#PCDATA) <' ELEMENT Day (#PCDATA) <' ELEMENT T me (# PCDATA) > < 'ELEMENT Timezone (#PCDATA) Further suppose that a given weather report of this data type is encoded in XML as follows: <?xml versιon="l.0" encodιng="ISO-8859-l'" ? > <'DOCTYPE Weather SYSTEM "Weather . dtd"> <Weather> <Locale> <Cιty>Boston</Cιty> <State>MA</State> <Country>USA</Country> </Locale> <Current-Conditions> <Sky>Overcast</Sky> <Precιp-type>Ram</Precιp-type> <Temp Scale=" Fahrenheit ">75</Temp> <Pressure Trend="Fallmg">29.00</Pressure> <Long-desc>A cold front has stalled over the eastern seaboard causing ram over most of New England. This front is expected to generate substantial amounts of precipitation over portions of Vermont, Maine and New Hampshire, while Marlborough will continue its mysterious streak of unbroken balmy perfection. </Long-desc> <Small-graphιc Source="clouds . gif"/> <Map Source="Eastern-US.gιf"/> </Current-Conditιons> <Forecast> <Date> <Year>1999</Year> <Month>September</Month> <Day>23</Day> <Tιme>2300</Tιme> <Tιmezone>EDT</Timezone> </Date> <Sky>Partly Cloudy</Sky> <Precιp-type>None</Precιp-type> <Temp Scale=" Fahrenheit ">58</Temp> <Pressure Trend="Rιsmg">29.95</Pressure> <Long-desc>The cold front currently over the east coast is expected to move off by this evening. This is expected to have little or no impact on the continued beautiful weather over Marlborough, Waltham and other communities in eastern Massachusetts . </Long-desc> <Small-graphιc Source="pcloudy . gif"/> <Map Source="Eastern-US-Evenmg. gif"/> </Forecast> <Forecast> <Date> <Year>1999</Year> <Month>September</Month> <Day>24</Day> <Tιme>1100</Tιme> <Tιmezone>EDT</Tιmezone> </Date> <Sky>Clear</Sky> <Precιp-type>None</Precιp-type> <Temp Scale="Fahrenheιt">74</Temp> <Pressure Trend="Rιsmg">30.05</Pressure> <Long-desc>A pleasant, sunny day will prevail over New England as the cold front moves over the ocean. This will come as no change whatsoever to those who have been enjoying the remarkable weather in eastern Massachusetts. Of course, Yankee Stadium will also benefit from this great weather as the Yanks go for their 25th world championship. </Long-desc> <Small-graphιc Source="sunny . gif"/> <Map Source="Eastern_US_Tomorrow. gif"/> </Forecast> </Weather> A stylesheet is defined for this weather report DTD for a personal computer. The XSL stylesheet is defined as follows: <?xml versιon="l .0"?> <xsl : stylesheet xmlns : xsl="http: //www. w3.org/XSL/Transform/1.0"> <xsl : output xml-declaratιon="no"/> <xsl: output doctype-publιc="-//W3C//DTD HTML 4.0 Transιtιonal//EN" /> <xsl: output method="htιnl"/> <xsl : template match="/"> <HTML><HEADXTITLE>Today's Weather for Boston, MA</TITLE> -12- <META content = "text/html; charset=wmdows-1252" http- equιv="Content-Type"/> </HEAD> <BODY bgColor="#ffffff" lmk="#004371 " vLιn ="#004371"><A href = "http : //www. xmle content . com/" name="IMAGEl"XIMG alt="clιck on banner to go to the e-Content Company" border="0" heιght="75" src="goodweather4u. npg" wιdth="600"/xBR/x/A> <TABLE border="0" cellPaddmg="0" cellSpacmg="0 " wιdth="582"> <TBODY> <TR> <TD heιght="2" border="0" heιght="2" src="blank.gιf" wιdth="600"/x/TDX/TR> <TR> <TD alιgn="mιddle" bgColor="#666666" vAlιgn="center"><BR/> <FONT face="Geneva, Anal, Sans Serif" sιze="- l"/> <FONT color="#ffffff" sιze="l">Change Forecast </FONT> I <F0NT color="#ffffff" sιze="l "Mmprove Forecast </FONT> I <F0NT color="#ffffff" sιze="l"> Buy Clouds</FONT> <F0NT color="#ffffff" sιze="l"> Stop the Ram</FONT> | <FONT color="#ffffff" sιze="l"> Rain on Your Boss</F0NT> | <FONT color="#ffffff" sιze="l ">Emaιl Snow </FONTXBR/x/TDX/TR> <TR> <TD alιgn="mιddle" bgColor="#f f ael8 " vAlιgn="center"><IMG border="0" heιght="2" src="blank.gιf" wιdth="600"/x/TDx/TR> </TBODY> </TABLE> <xsl : apply-templates/> </BODY> </HTML> </xsl : template> <xsl : template match="Locale"> <TABLE WIDTH="600"XTRXTD> <bxfont sιze="7"xιxcenter> <xsl : apply-templates select="Cιty"/>, <xsl : apply-templates select="State"/> </center></iX/fontx/b> </TD></TRX/TABLE> </xsl : template> <xsl : template mat ch= "Current <br/xfont sιze="5" f ace="Verdana" color="teal"xb><ι>Current Condιtιons</ι></bx/fontXbr/> <TABLE border="0" cellPaddmg="0 " cellSpacing="0" wιdth="600"> <TBODY> <TR> <TD wιαth="25%"xFONT face="Aπal, Helvetica, Chicago, Sans Serif" sιze-"3"XB> <CENTER> Temperature </CENTER> </B></F0NTX/TD> <TD wιdth="25%"XFONT face="Arιal, Helvetica, Chicago, Sans Serif" sιze="3"XB> <CENTER> Sky -16- </CENTER> </BX/FONTX/TD> <TD wιdth="25%"XFONT face="Aπal, Helvetica, Chicago, Sans Serif" sιze="3"XB> <CENTER> Precipitation </CENTER> </B></FONTX/TD> <TD wιdth="25%"XFONT face="Aπal, Helvetica, Chicago, Sans Serif" sιze="3"XB> <CENTER> Pressure </CENTER> </BX/FONTX/TD> </TR> <TR> <TDXFONT face="Arιal, Helvetica, Chicago, Sans Serif" sιze="2"XB> <CENTER> <xsl : apply-templates select="Temp"/xbr/> </CENTER> </BX/FONT></TD> <TDXFONT face="Arιal, Helvetica, Chicago, Sans Serif" sιze="2"><B> <CENTER> <xsl : apply-templates seiect = "Sky"/xbr/> </CENTER> </BX/FONTX/TD> <TDXFONT face="Aπal, Helvetica, Chicago, Sans Serif" sιze="2"XB> <CENTER> <xsl : apply-templates select = "Precιp-type"/xbr/> </CENTER> </BX/FONTX/TD> <TDXFONT face="Aπal, Helvetica, Chicago, Sans Serif" sιze="2"XB> <CENTER> <xsl : apply-templates select="Pressure"/xbr/> </CENTER> </BX/FONTX/TD> </TR> </TBODY> </TABLE> <BXF0NT SIZE="4">Overvιew</FONTx/I <BR/> <TABLE WIDTH="600"> <TRXTD> <FONT SIZE="3"> <xsl : apply-templates s elect= "Long-desc "/xbr/> </FONT> </TDX/TR> </TABLE> <IMG alt="ad" src="ad. gif "/> </xsl : template> <xsl : template match="Forecast"> <br/><FONT face="Verdana" color="teal"sιze="5"xbxi> Forecast for <xsl : apply-templates select="Date/Month"/> <xsl:text> </xsl:text> <xsl : apply-templates select="Date/Day"/> </ιx/bx/FONT> <TABLE border="0" cellPaddmg="0" cellSpacmg="0" width="600"> <TBODY> <TR> <TD width="25%"XFONT face="Arial, Helvetica, Chicago, Sans Serif" size="3"XB> <CENTER> Temperature </CENTER> </BX/FONTX/TD> <TD wιdth="25%"XFONT face="Arιal, Helvetica, Chicago, Sans Serif" sιze="3"XB> <CENTER> Sky </CENTER> </B></FONTX/TD> <TD wιdth="25%"><FONT face="Aπal, Helvetica, Chicago, Sans Serif" sιze="3"XB> <CENTER^- Precipitation </CENTER> </B></FONTX/TD> <TD wιdth="25%"XFONT face="Arιal, Helvetica, Chicago, Sans Serif" sιze="3"XB> <CENTER> Pressure </CENTER> </BX/FONTX/TD> </TR> <TR> <TDXFONT face="Arιal, Helvetica, Chicago, Sans Serif" sιze="2"XB> <CENTER> <xsl : apply-templates select = "Temp"/xbr/> </CENTER> </BX/FONTX/TD> <TDXF0NT face="Anal, Helvetica, Chicago, Sans Serif" sιze="2"><B> <CENTER> <xsl : apply-templates select="Sky"/xbr/> </CENTER> </BX/FONTX/TD> <TDXFONT face="Aπal, Helvetica, Chicago, Sans Serif" sιze="2"><B> <CENTER> <xsl : apply-templates select="Precιp-type"/xbr/> </CENTER> </BX/FONTX/TD> <TDXFONT face="Aπal, Helvetica, Chicago, Sans Serif" sιze="2"xB> <CENTER> <xsl : apply-templates select="Pressure"/xbr/> </CENTER </B></FONTx/TD> </TR> </TBODY> </TABLE> <BXFONT SIZE="4">Overvιew</FONTX/B> <BR/> <TABLE WIDTH="600"> <TRXTD> <FONT SIZE="3"> <xsl : apply-templates select="Long-desc"/xbr/> </FONT> </TDx/TR> </TABLE> </xsl : tempiate> </xsl : stylesheet> When the above-identified stylesheet is applied to the weather report, the resulting output appears as the web page 100 depicted in Figure 6. A different stylesheet is defined for a cellular phone. The stylesheet for the cellular phone is defined as follows: <?xml versιon=" l . 0 " ?> <xsl : stylesheet xmlns : xsl="http : //www. w3 . or g /XSL /Trans form/ 1 . 0 "> <xsl : output xml-declaratιon="yes " /> <xsl: output doctype-publιc="-//WAPFORUM//DTD WML 1.1//EN" doctype- system="http: //www. wapforum. org/DTD/wml l .1.xml"/> <xsl : template match="/"> <wml> <card ιd="cardl" tιtle="Forecast"> <p> <xsl : apply-templates/> </p> </card> </wml> </xsl : template> <xsl : template match="Cιty" pπorιty=" 0 . 0 "> <bιg><ι> <xsl : apply-templates/> </ι></bιg> </xsl : template> <xsl : template match="Current-Condιtιons"> Currently <table columns="3" alιgn="CCC"> <tr> <xsl : apply-templates/> </tr> </table> </xsl : template> <xsl : template match="Forecast"> Forecast <table columns="3" alιgn="CCC"> <tr> <xsl : apply-templates/> </tr> </table> </xsl : template> <xsl : template match="Sky"> <td> <xsl : apply-templates/> </td> </xsl : template> <xsl : template match="Precιp-type"> <td> <xsl : apply-templates/> </td> </xsl : template> <xsl : template match="Temp"> <td> <xsl : apply-templates/> </td> </xsl : template> <xsl : template match="Long-desc"/> <xsl : template match="Small-graphic"/> <xsl:template match="State"/> <xsl : template match="Country"/> <xsl : template match="Map"/> <xsl : template match="Pressure"/> <xsl : template match="Date"/; </xsl : stylesheet> This stylesheet for a cellular phone converts the XML content into web site meta language (WML) format for output on a cellular phone. The resulting display can be seen in Figure 7 where a cellular phone 102 includes a display 104. The display 104 contains weather information and identifies the city (i.e. "Boston) and that the weather is overcast with an expectation of rain and a high temperature of 74 degrees. It should be appreciated that the content need not be limited strictly to textual or graphical content but also may include audio content. The stylesheets may customize the audio content. For example, listed below is a stylesheet for converting audio content for the weather report. The output format produced by applying the stylesheet is VoxML (a dialect of XML). <?xml version="l .0"?> <xsl : stylesheet xmlns :xsl="http: //www. 3. org/XSL/Transform/1.0"> <xsl : output xml-declaratιon="yes"/> <xsl : template match="/"> <DIALOG> <STEP NAME="mιt"> <PROMPT>Today' s Weather</PROMPT> <INPUT TYPE="NONE" NEXT="#locatιon" /> </STEP> <xsl : apply-templates/> <STEP NAME="bye"> <PROMPT> Thanks for listening. Goodbye. </PROMPT> <INPUT TYPE="NONE" NEXT="#end"/^ </STEP> </DIALOG> </xsl : template> <xsl : template match="Cιty"> <STEP NAME="locatιon"> <PROMPT>The forecast for <xsl : value-of select="."/> <xsl:text> is </xsl:text> </PROMPT> <INPUT TYPE="NONE" NEXT="#current "/> </STEP> </xsl : template> < ' -- exclude state and country --> <xsl: template match="State"/> <xsl : template match="Country"/> < ' -- pull each of the displayed elements and format them --> <xsl : template match="Current-Condιtιons"> < ' -- s holds the value of the element Sky --> <xsl: variable name="s" select="Sky" /> <xsl : variable name="t" select="Temp"/> <STEP NAME="current"> <PROMPT><xsl : text>Current Conditions : Presently </xsl : textxxsl : value-of select="$t"/xxsl : text> degrees under </xsl:text> <xsl : value-of select="$s"/xxsl : text> skies. Would you like more detail?</xsl:textX/PROMPT> <INPUT TYPE="YORN" NAME-" cur yorn" NEXT="#long"/> </STEP> <STEP NAME="long"> <PROMPTXxsl: value-of select="Long-desc"/x/PROMPT> <INPUT TYPE="NONE" NEXT="#forecast 1 "/> </STEP> </xsl : template> <xsl : template match="Forecast"> <!-- s holds the value of the element Sky --> <xsl : variable name-"s" select="Sky" /> <xsl : variable name="t" select="Temp"/> <xsl : variable name="u"xxsl : number/x/xsl : variable> <STEP NAME="forecast{$u}"> <PROMPT>Forecast for <xsl : alue-of select="Date/Month"/xxsl : text> </xsl : textxxsl : value-of select="Date/Day" /></PR0MPT> <INPUT TYPE="N0NE" NEXT="#f2 { $u} "/> </STEP> <STEP NAME="f2{$u}"> <PROMPT><xsl: value-of select="$t"/xxsl : text> degrees under </xsl : textxxsl : value-of select="$s"/> skies. Would you like more detail?</PROMPT> <INPUT TYPE="YORN" NAME="fyn" NEXT="#long { $u} "/> </STEP> <STEP NAME="long { $u } "> <PROMPTXxsl : value-of select = "Long-desc " /x/PROMPT> <INPUT TYPE="NONE" NEXT="#bye"/> </STEP> </xsl : template> </xsl:stylesheet> While the present invention has been described with reference to an illustrative embodiment thereof, those skilled in the art will appreciate that various changes in form and detail may be made without departing from the intended scope of the present invention as defined in the appended claims.

Claims: Claims 1. In an electronic device, a method of customizing output of content based on a device type of a destination device to which the content is to be output, comprising the steps of: identifying the device type of the destination device; customizing a format of the content based on the identified device type of the destination device; and outputting the content to the destination device in the format as customized. 2. The method of claim 1 , wherein the step of customizing the format of the content comprises applying a stylesheet to the content. 3. The method of claim 2, wherein the stylesheet is specified in extensible stylesheet language (XSL). 4. The method of claim 1, wherein the destination device is identified as a phone. 5. The method of claim 1, wherein the destination device is identified as a personal digital assistant (PDA). 6. The method of claim 1 , wherein the destination device is identified as a personal computer. 7. The method of claim 1, wherein the destination device is identified as a pager. 8. The method of claim 1, wherein destination device is an electronic book. 9. The method of claim 1 , wherein the destination device is a set top box. 10. The method of claim 1, wherein the destination device is an Internet appliance. 11. The method of claim 1 , wherein the method further comprises the step of: receiving a request from the destination device for the content, wherein the request is specified in accordance with the hypertext transfer protocol (HTTP). 12. The method of claim 1, wherein the step of customizing the format of the content comprises determining how much of the content to output based on a size of a display at the destination device. 13. The method of claim 1, wherein the content includes video data. 14. The method of claim 1, wherein content includes audio data. 15. The method of claim 1 , wherein the step of outputting comprises outputting the content to the destination device in the format as customized over the Internet. 16. The method of claim 1, wherein the method further comprises the step of receiving a request for the content from the destination device, wherein said request includes a header and wherein the step of identifying the device type of the destination device comprises examining information in the header to identify the type of device of the destination device. 17. The method of claim 1, wherein the method further comprises the step of receiving a request for the content, wherein said request includes a uniform resource locator (URL), and wherein the step of identifying the device type of the destination device comprises examining the URL. 18. The method of claim 1 , wherein the electronic device is a web application server. 19. In a device, a method, comprising the steps of: providing multiple stylesheets, wherein each stylesheet is associated with a different device type; receiving a request for content from a selected device of a selected device type; applying a given one of the stylesheets that is associated with the selected device type to the content to properly format the content; and forwarding the content as formatted by the given one of the stylesheets to the selected device. 20. The method of claim 19, wherein the method further comprises the steps of: receiving a second request for the content, wherein said second request is received from a second device of a second device type that differs from the selected device type; applying a chosen one of the stylesheets that is associated with the second device type to the contents to properly format the content; and forwarding the content as formatted by the chosen one of the stylesheets to the second device. 21. The method of claim 19, wherein the method further comprises the step of examining information contained in the request to determine that the selected device is of the selected device type. 22. The method of claim 19, wherein the selected device is a cellular phone. 23. The method of claim 19, wherein the selected device is a personal digital assistant. 24. The method of claim 19, wherein the selected device is a pager. 25. The method of claim 19, wherein the selected device is an electronic book. 26. The method of claim 19, wherein the selected device is a set top box. 27. The method of claim 19, wherein the selected device is an Internet appliance. 28. The method of claim 19, wherein the step of forwarding the content comprises forwarding the content over a network that supports the Internet Protocol (IP). 29. The method of claim 28, wherein the network is the Internet. 30. The method of claim 28, wherein the network is an intranet. 31. The method of claim 28, wherein the network is an extranet. 32. The method of claim 19, wherein the content is encoded in the extensible markup language (XML) prior to applying the given one of the stylesheets.

Inventors: BRIGGS BARRY, BRIGGS, BARRY
Applicants: INTERLEAF INC, INTERLEAF, INC.
Application year: 2000
Main classification: G06F17
IPC codes: G06F17