[go: up one dir, main page]

HK1171838B - Templates for displaying data - Google Patents

Templates for displaying data Download PDF

Info

Publication number
HK1171838B
HK1171838B HK12112657.5A HK12112657A HK1171838B HK 1171838 B HK1171838 B HK 1171838B HK 12112657 A HK12112657 A HK 12112657A HK 1171838 B HK1171838 B HK 1171838B
Authority
HK
Hong Kong
Prior art keywords
template
content
resource
content resource
module
Prior art date
Application number
HK12112657.5A
Other languages
Chinese (zh)
Other versions
HK1171838A1 (en
Inventor
J.T.坎贝尔
C.K.史密斯
G.安德森
A.克里希纳穆尔蒂
李博鑫
D.多恩
V.波兹南斯基
Z.陈
A.L.杰克逊
江苹
C.小里夫斯二世
B.W.蒂姆
A.J.维奥利诺
K.于杰蒂尔克
Original Assignee
微软技术许可有限责任公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/173,313 external-priority patent/US10210260B2/en
Application filed by 微软技术许可有限责任公司 filed Critical 微软技术许可有限责任公司
Publication of HK1171838A1 publication Critical patent/HK1171838A1/en
Publication of HK1171838B publication Critical patent/HK1171838B/en

Links

Description

Template for displaying data
Cross Reference to Related Applications
This application claims priority to U.S. provisional patent application No. 61/405,067, filed on 20/10/2010, the entire contents of which are incorporated herein by reference, and which is related to U.S. patent application entitled "resulttypesformitionabadatadatadisplay (type of result for conditional data display)", no "xx/xxx, xxx", attorney docket no "14917.1812 USU 1/331879.01", filed on 30/6/2011, and U.S. patent application entitled "CustomizationofDisplayTemplates (customization of display templates)", no "xx/xxx, xxx", attorney docket no "14917.1871 USU 1/333071.01", filed on 30/6/2011.
Technical Field
The present application relates to templates, and more particularly, to templates for displaying data.
Background
As computer networks and computers have increased in speed and complexity, web designers have been able to create increasingly complex web sites. Such complex websites can provide greater benefit to the user and can be more visually appealing. However, complex web sites are more difficult and expensive to design.
Moreover, such complex web sites can be difficult and expensive to change after they are designed. For example, a website may utilize data from a given database. In this example, portions of the website may need to be redesigned if the schema of the database is changed to include other characteristics. In another example, a designer may want to change the appearance of features that appear within multiple web pages of a web site. In this example, the designer may need to change the individual code segments associated with each web page.
Disclosure of Invention
The client device presents resources within the website to the user. For example, a client device can present a web page to a user. To render the resource, the client device renders one or more presentation strings. The client device generates a presentation string by identifying a template module corresponding to an object within the data set downloaded by the client device. The client device then performs the template execution operation on the object. The template module corresponding to the object specifies a template execution operation. Because the template module is separate from the data set, the template module can be modified individually without changing other aspects of the website.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Drawings
FIG. 1 is a block diagram illustrating an example system.
FIG. 2 is a block diagram illustrating example details of a server system.
FIG. 3 is a block diagram illustrating example details of a client device.
FIG. 4 illustrates a flowchart of example operations of a client application and a flowchart of operations performed when executing a content generation script.
FIG. 5 illustrates a flowchart of example template execution operations and a flowchart of example operations to generate a presentation string of subcontext objects.
FIG. 6 is a screen illustration of an example search results interface.
FIG. 7 is a block diagram illustrating an alternative example system.
FIG. 8 is a block diagram illustrating example components of an alternative embodiment of a server system.
FIG. 9 is a block diagram illustrating an example unfilled template.
FIG. 10 is a flowchart illustrating example operations of a server system.
FIG. 11 is a flow diagram illustrating an example transformation operation for generating a template module from a generic presentation string.
FIG. 12 is a flow diagram illustrating example operations of an editor application.
FIG. 13 is a screen illustration of a display of a browser window including an example search interface presented by a client device.
FIG. 14 is a block diagram illustrating example components of another alternative embodiment of a server system.
FIG. 15 illustrates example content of a content index and example content of a management database.
FIG. 16 illustrates an example range hierarchy.
FIG. 17 is a flowchart illustrating example operations for configuring a result type.
FIG. 18 is a screen illustration of a browser window including an example type configuration interface.
FIG. 19 is a flowchart illustrating example operations for searching resources within a target web site.
FIG. 20 is a block diagram illustrating example components of a computing device.
Detailed Description
The following detailed description and the appended drawings illustrate example embodiments. The reader will understand that other embodiments exist and are within the scope of the appended claims. In the accompanying drawings, stacked blocks represent one or more similar, but not necessarily identical, items. Moreover, the ellipses between items represent one or more similar, but not necessarily identical, items. Items having the same figure number but different alphabetic suffixes (e.g., "a" through "N") are not intended to indicate that a particular number of items are present.
Fig. 1 is a block diagram illustrating an example system 100. As shown in the example of fig. 1, system 100 includes a server system 102, a client device 104, and a network 106. In other embodiments, system 100 may include more or fewer components. For example, some embodiments of system 100 include client devices other than client device 104.
Server system 102 and client device 104 each include one or more computing devices. A computing device is a physical device for processing information. In various embodiments, the server system 102 and the client devices 104 comprise various types of computing devices. For example, the server system 102 and/or the client devices 104 can include one or more personal computers, stand-alone server devices, laptop computers, blade server devices, smart phones, tablet computers, network-enabled television or television set-top boxes, game consoles, telephones, in-vehicle computers, appliances, intermediate network devices, and/or other types of computing devices.
The network 106 facilitates communication between the client device 104 and the server system 102. In the example of fig. 1, the network 106 is represented as a cloud. However, the network 106 may include a variety of numbers of computing devices and links between computing devices. In various embodiments, the network 106 may be structured in various ways. For example, the network 106 may be the internet, an intranet, a local area network, a metropolitan area network, a wide area network, or another type of network. In some instances, some links within the network 106 are wireless while other links within the network 106 are wired.
The user 108 uses the client device 104. The user 108 may be various types of people. For example, the user 108 may be an employee of a company or a partner of the company. In another example, user 108 may be a member of the general public.
The client device 104 provides a client application 110. In various embodiments, the client application 110 includes various types of applications. For example, the client application 110 may be a web browser application, such as INTERNET from MICROSOFT CORPORATIONFrom Mozilla, IncOr from Google IncIn another example, the client application 110 may be a production application, such as a word processor application, a spreadsheet application, a slide presentation application, and the like.
Server system 102 hosts at least one web site 112. In other words, the server system 102 provides functionality that enables clients to access resources in the website 112. The website 112 includes a plurality of resources that are accessible over a network, such as the network 106. For example, the website 112 may include web pages, word processor documents, PDF documents, spreadsheet documents, presentation documents, data sources, and other types of resources.
In various embodiments, web site 112 may be various types of web sites. For example, the website 112 may be a company's public internet website. In another example, website 112 may be a company's private intranet website. In yet another example, the website 112 may be a private collaborative website accessible by employees of multiple companies.
Client application 110 sends a resource request to server system 102. The resource request includes a request to access a resource in the website 112. In response to the resource request, the server system 102 sends resource data to the client device 104. The client application 110 processes the resource data to present the resource to the user 108.
As described in detail elsewhere in this document, when the client application 110 sends a request for certain resources in the website 112, the client application 110 receives the data set and a set of template modules. The data set includes a set of objects. Each object belongs to a content resource-object type. For example, a data set may include objects belonging to a "phone number" content resource object type and objects belonging to a "street address" content resource object type. Multiple elements in a data set may have the same element type.
The template modules correspond to different content resource object types. For example, a data set may include content resource objects that belong to a "phone number" content resource object type and content resource objects that belong to a "street address" content resource object type. In this example, the set of template modules includes a template module corresponding to a "phone number" content resource object type and a template module corresponding to a "street address" content resource object type.
The template module specifies a transformation operation. The templates of the template module perform transformation operations, referred to herein as template execution operations, that transform the transformation script, which may be a collection of template modules, into a presentation string given an object belonging to a content resource object type corresponding to the template module. A presentation string is a string of characters that the client application 110 can render to create one or more on-screen features.
In various embodiments, the presentation string can be in accordance with various presentation languages. For example, in some embodiments, the presentation string is in accordance with HyperText markup language (HTML). In other examples, the presentation string is in a non-standardized language.
The client application 110 performs the template execution operation specified by the corresponding template module on the content resource object in the dataset. For example, a data set may include objects that belong to a "phone number" content resource object type. In this example, a given template module corresponds to a "phone number" content resource object type. In this example, the client application 110 generates a presentation string for the object by performing the template execution operation specified by the given template module. In this manner, the client application 110 generates a presentation string required to render the resource.
FIG. 2 is a block diagram illustrating example components of server system 102. As shown in the example of fig. 2, server system 102 includes a data storage system 200. Data storage system 200 includes one or more computer storage media. The term "computer storage medium" encompasses an apparatus or article of manufacture that stores computer-readable data or instructions. In certain embodiments, the computer storage media in data storage system 200 are geographically dispersed. In other embodiments, the computer storage media in data storage system 200 are located in a single device or data center.
The data storage system 200 stores data for subsequent retrieval. The data storage system 200 stores content resources 202, metadata 204, schemas 208, and template modules 206A-206N (collectively, "template modules 206"). The content resources 202 may include some or all of the resources of the website 112. For example, content resources 202 may include web documents, word processor documents, PDF documents, digital photographs, videos, spreadsheet documents, and so forth.
The metadata 204 includes data about the content asset 202. For example, the content resource 202 may comprise a word processor document. In this example, the metadata 204 may include data indicating an author, a creation time, a modification time, a title, and a summary of the word processor document.
Each template module 206 includes a set of software instructions that specify operations to be performed by the template. The template execution operation takes objects in the dataset and generates a corresponding presentation string. In various embodiments, the software instructions can be in accordance with various programming languages. For example, the software instructions in one or more of the template modules 206 can be in accordance with the JavaScript programming language. In other words, one or more template modules 206 can specify template execution operations as a JavaScript instruction set. In another example, the software instructions in the template module 206 can be in accordance with the Perl programming language.
Some embodiments store the template module 206 in a template module file. In some such embodiments, the template module file has a file name extension corresponding to the programming language used in the template module 206. For example, if one of the template modules 206 includes software instructions in the JavaScript programming language, the template module file that includes the template module may have a filename extension ". js".
The schema 208 specifies the types of content resources that are allowable in the data set sent from the server system 102 to the client device 104. In various embodiments, schema 208 specifies that various content asset types may be allowed in a data set. For example, schema 208 may specify that a data set must include a set of content resource objects that belong to a certain content resource type. In this example, schema 208 may specify that the set of content resource objects includes one or more objects that belong to a "people" content resource type. In this example, schema 208 may further specify that content resource objects belonging to a "people" content resource type include a "name" content resource object or data element that is a string content resource object type or data element type, a "phone number" content resource object or data element that belongs to a "phone number" content resource object type or data element type, and a "street address" content resource object or data element that belongs to a "location address" content resource object type or data element type. The term "content resource object" will be used herein to describe a data element (e.g., name, phone number, street address, etc.) in a data set that specifies a content resource type (e.g., "people" content resource type). The term "content resource object type" will be used herein to describe the type of content resource object (e.g., string, phone number, location address, etc.).
In addition, schema 208 maps content resource object types to template module 206. Continuing with the example of the previous paragraph, schema 208 can map the top level set in the dataset to template module 206A, the "people" content resource type to template module 206B, the "location address" content resource object type to template module 206N, and so on.
In various embodiments, schema 208 is formatted in various ways. For example, in some embodiments, the data set sent by the server system 102 is formatted as XML. In this example, schema 208 can be formatted in a Document Type Definition (DTD) language, an XML schema language, a RELAXNG language, or another schema language for XML. In other embodiments, the dataset is not formatted as XML and other schema definition languages are used to format the schema 208.
In addition to data storage system 200, server system 102 provides a web server 210. Certain embodiments of server system 102 provide web server 210 by executing instructions stored on one or more computer storage media. The web server 210 is configured to provide resources hosted by the server system 102 to the client application 110 in response to resource requests. For example, the web server 210 may provide the content resources 202, the data sets, the template module 206, the schema 208, and other resources in response to resource requests.
Fig. 3 is a block diagram illustrating example details of the client device 104. As shown in the example of fig. 3, the client device 104 includes a cache 300 and a client application 110.
When client application 110 receives content resource 202, template module 206, or schema 208, client application 110 stores copies of content resource 202, template module 206, and schema 208 in cache 300. Various embodiments implement cache 300 in various ways. For example, some embodiments implement cache 300 as a folder or directory in a file system. Other example embodiments implement cache 300 as a relational database.
FIG. 4 shows a flowchart of example operations 400 of the client application 100 and a flowchart of operations 450 performed when executing the content generation script. Various embodiments of the client application 110 may perform the operations 400 in response to various events. For example, when user 108 enters a URL in an address bar of client application 110, client application 110 may perform operation 400. In another example, the client application 100 may perform the operation 400 when the user 108 selects a link of another web page.
After operation 400 begins, the client application 110 sends a resource request to the web server 210 (402). The resource request requests a user interface such as a web page in the website 112. In various embodiments, the resource request complies with various protocols. For example, in some embodiments, the resource request conforms to the hypertext transfer protocol (HTTP). In other example embodiments, the resource request complies with another protocol, such as SOAP.
In response to the resource request, the client application 110 receives base resource data from the web server 210 (404). The underlying resource data includes a content generation script. When the client application 110 executes the content generation script, the content generation script inserts the content into the user interface.
In various embodiments, the underlying resource data includes various data in addition to the content generation script. For example, the underlying resource data may include HTML data, other scripts, and the like.
After the client application 110 receives the underlying resource data, the client application 110 executes the content creation script in the underlying resource data (406). Execution of the content generation script causes the client application 110 to generate a presentation string. After the client application 110 generates the presentation string, the client application 110 renders the presentation string (408). Presenting the presentation string includes presenting the presentation string within the presentation string. When the client application 110 presents the presentation string, the client application presents the on-screen feature set to the user 108.
In some embodiments, execution of the content generation script causes the client application 110 to perform operation 450. After operation 450 begins, the client application 110 sends a data set request (452). The data set request includes a request for a data set. In response, the web server 210 generates a data set and sends the data set to the client application 110. Subsequently, the client application 110 receives the data set (454). In other words, the client application 110 downloads the data set.
In various embodiments, the web server 210 generates the data set in various ways. For example, the web server 210 may generate the data set using the content resources 202 and/or the metadata 204. In this example, the content resource 202 may comprise an entry in an employee directory of the company. In this example, the resource request may include a search query for an employee with the last name "Jones". In this example, web server 210 obtains a search result list. The search results are a plurality of content resources 202 that satisfy the search query. In this example, web server 210 generates a data set that includes data about the search results. For example, in this example, web server 210 may generate the following data sets:
as mentioned above, the data set includes one or more collections of content asset types that contain content asset objects. In some examples, other sets of content resource types are nested in content resource objects of the content resource types of the top-level dataset. In other words, the content resource objects in the collection of the top-level dataset can include children of simple or complex content resource object types. In the example dataset shown above, the "Search _ Results" object is a data set in the top level dataset. Two "Person" content resource types are included in the "Search _ Results" set. The "Name" content resource object and the "Email _ addr" content resource object are content resource objects of the "Person" content resource type.
In other embodiments, the client application 110 does not generate a data set request. In such embodiments, the underlying resource data may comprise a data set.
Further, the client application 110 generates a schema request (456). The schema request includes a request for a schema 208. In other embodiments, the client application 110 does not generate a schema request. In such embodiments, the underlying resource data includes a schema 208.
When the client application 110 generates a schema request, the client device 4104 determines whether the cache 300 includes a copy of the schema 208. If the cache 300 does not include a copy of the schema 208, the client device 104 forwards the schema request to the web server 210. In response to the schema request, the web server 210 returns the schema 208 to the client device 104. In other words, client device 104 downloads schema 208. The client device 104 then provides the schema 208 to the client application 110. On the other hand, if the cache 300 stores a copy of the schema 208, the client device 104 provides the copy of the schema 208 to the client application 110. In either case, the client application 110 receives the schema 208 (458).
After the client application 110 receives the data set and schema 208, the client application 110 uses the schema 208 to identify a template module for the content resource object corresponding to the type and the rating and data set for the content resource type (460). As mentioned above, schema 208 maps resources, ratings, and content resource object types to template module 206. The client application 110 identifies the template module for the ratings and content resource objects corresponding to the genre and the content resource type by: since schema 208 maps a given template module to a content resource type or level or a content resource object type, it is determined that the given template module corresponds to performing an operation on the current template of the data set. For ease of explanation, this document may refer to a current content resource object or data element at a current level as a current context object and a template module corresponding to the current context object as a template module for that object.
Upon identifying the template module for the current context object, the client application 110 generates a template request (462). The template request includes a request for a template module for the current context object. When the client application 110 generates a template request, the client device 104 determines whether the cache 300 stores a template module for the current context object. If the cache 300 stores the template module for the current context object, the client device 104 does not forward the template request to the web server 210. Of course, in response to the template request, the client device 104 provides the cached copy of the template module for the current context object to the client application 110. Otherwise, if the cache 300 does not store the template module for the current context object, the client device 104 sends a template request to the web server 210. Subsequently, the client device 104 receives the template module for the current context object from the web server 210. In other words, the client device 104 downloads the template module for the current context object. In either case, the client application 110 receives the template module for the current context object in response to the template request (464).
After the client application 110 receives the template module for the current context object, the client application 110 generates a presentation string for the current context object (466). The client application 110 generates a presentation string for the current context object by performing an operation on the current context object that is a template of the template module of the current context object. As mentioned above, the presentation string may include HTML data. In some instances, the presentation string may also include one or more scripts.
The client application 110 may perform operation 400. The schema 208 can change between the client application 110 performing the operations 400. For example, an administrator can change the schema 208 to change the types of content resource objects allowable in the data set generated by the server system 102. Thus, in this example, when the client application 110 performs operation 400 again, the client application 110 may download a data set that includes one or more objects that belong to a content resource object type that was not previously allowed. Since template module 206 is separate from the schema, the developer need only update the template module corresponding to the changed object type and need not update other template modules 206.
In another example, an administrator can change the schema 208 to change the mapping between object types and template modules. Thus, in this example, when the client application 110 performs operation 400 again, the client application 110 may download a second data set that includes content resource objects or data elements belonging to the given type. However, when the client application 110 has previously performed a template execution operation of a given template module on an object of a given type at a given level, the client application 110 now generates a presentation string of the object of the given type by performing a template execution operation of a different template module on the object of the given content resource object class item. Client application 110 may then render these presentation strings. In some instances, in response to such a change to schema 208, a programmer may not need to rewrite any code of template module 206.
FIG. 5 illustrates a flowchart of example template execution operations 500 and a flowchart of example operations 550 to generate a presentation string of child objects. For ease of explanation, this document explains template performing operations 500 and 550 with reference to template module 206A. In some embodiments, the template execution operations of each template module 206 are similar to the template execution operations 500.
The template execution operation 500 is initiated when a template execution operation of the client application 110 or another template module invokes the template execution operation 500 of the template module 206A. For example, if template module 206A corresponds to a root level rendering of the relevant type of content asset in the dataset, client application 110 invokes template execution operation 500. However, if template module 206A corresponds to some other level or object type in the data set, the template execution operation of another template module invokes template execution operation 500.
When the template execution operation 500 is invoked, the template module 206A receives a current context object in the data set (502). In various embodiments, template module 206A receives the current context object in various ways. For example, some embodiments of the template performing operation 500 receive a current context object as a parameter.
Upon receiving the current context object, template module 206A generates a presentation string for the current context object (504). In instances where the current object has one or more children, the presentation string of the current object may include a presentation string of children.
When template module 206A generates a presentation string for the current context object, template module 206A may include one or more predetermined strings into the presentation string for the current context object. For example, template module 206A may include a string containing a series of tags into the presentation string of the current context object. The series of tags may define a layout or format.
Further, as part of generating the presentation string for the current context object, template module 206A may perform operation 550 one or more times to generate the presentation string for the child object. After operation 550 begins, template module 206A uses schema 208 to identify the template module for the given child object corresponding to the current context object (552). For example, template module 206A may determine that the template module corresponds to a given object based on schema 208 mapping the content resource object type of the given sub-object to the template module. For ease of explanation, this document may refer to the template module corresponding to a given sub-object as the template module of the given sub-object.
Upon identifying the template module for the given child object, template module 206A requests the template module for the given child object (554). If the cache 300 stores the template module for the given sub-object, the template module 206A retrieves the template module for the given sub-object from the cache 300 without sending a request to the web server 210 for the template module for the given sub-object. On the other hand, if the cache 300 does not store the template module for the given sub-object, the template execution operation 500 sends a request to the web server 210 for the template module for the given sub-object. In either case, the client application 110 then receives the template module for the given child object (556). In other words, the client application 110 downloads the template module for a given child object.
Upon receiving the template module for a given child object, template module 206A generates a presentation string for the given child object (558). The template module 206A generates a presentation string for a given sub-object by invoking execution of an operation on a template of a template module for the given sub-object of the given sub-object.
For example, the following string can represent the current context object:
Person{
Name::StevenJones;
Email_addr::sjonescontoso.com
}
in this example, the current context object is of the "person" content resource type, the first sub-object is of the "Name" content resource object type, and the second sub-object is of the "Email _ addr" content resource object type. In this example, the template module 206A generates a presentation string for the first child object by performing a template execution operation of the template module corresponding to the "Name" content resource object type. For example, template module 206A can generate the following presentation string for the first child object:
Name:<b>STEVENJONES</b>
in this example, template module 206A generates a presentation string for the second child object by performing a template execution operation of the template module corresponding to the "Email _ addr" content resource type. For example, template module 206A can generate the following presentation string for the second child object:
<i>Emailaddress:</i><ahref=”mailto:sjonescontoso.com”>sjonescontoso.com</a>
continuing with the example from the above paragraph, template module 206A can generate the following presentation strings for the current context object:
the reader will note that the presentation string of the current context object includes the presentation strings of the child objects as shown above. In some embodiments, template module 206A may modify the presentation string of one or more child objects.
After generating the presentation string for the current context object, template module 206A returns the presentation string for the current context object to the operation that invoked template execution operation 500 (506). For example, if the client application 110 invokes the template execution operation 500, the template module 206A returns the presentation string for the current context object to the client application 110. If the template execution operation 500 is invoked by a template execution operation of another template module, the template execution operation 500 returns the presentation string of the current context object to the template execution operation of the other template module.
FIG. 6 is a screen illustration of an example search results interface 600. When the user 108 enters the search string into the user interface presented by the client application 110, the client application 110 can present a search results interface 600 to the user 108. In the example of fig. 6, search results interface 600 includes a search string field 602, a populated template 604, and a populated template 606. The populated template 604 is a set of on-screen features that describe the resources that satisfy the search string. The populated template 606 is another set of on-screen features that describe another resource that satisfies the search string. The populated template 604 includes fields 608A through 608C (collectively, "fields 608"). The populated template 606 includes fields 610A through 610E (collectively, "fields 610").
In the example of FIG. 6, the client application 100 can receive the following data sets after sending the search string to the server system 102:
the reader will understand that this data set is for explanatory purposes only. In other embodiments, the data set has other formats and content.
After client application 100 receives the data set, client application 110 generates a presentation string that represents search results interface 600. The client application 110 generates a presentation string representing the Search Results interface 600 by performing a template execution operation of a template module corresponding to the "Search _ Results" content resource type.
To generate a presentation string representing Search results interface 600, client application 110 generates a presentation string representing Search string field 602 by performing a template execution operation of a template module corresponding to the "Search _ string" content resource type. Further, the client application 110 generates a presentation string representing the populated template 604 by performing a template execution operation of a template module corresponding to the "Word _ processor _ search _ result" content resource type. In this manner, the populated template 604 is based on a template module corresponding to a "Word _ processor _ search _ result" content resource type. As part of generating the presentation string representing the populated template 604, the client application 110 generates the presentation string representing field 608 by performing template execution operations of template modules corresponding to the "type _ image", "title", and "snippet" content resource types.
The client application 110 generates a Presentation string representing the populated template 606 by performing a template execution operation of the template module corresponding to the "Presentation _ search _ result" content resource type. In this way, the populated template 606 is based on a template module corresponding to the "Presentation _ search _ result" content resource type. As part of generating a presentation string representing populated template 606, client application 110 generates a presentation string representing field 610 by performing template execution operations of template modules corresponding to "type _ image", "title", "summary", "created", "modified", "author", and "author _ img" content resource types.
Fig. 7 is a block diagram illustrating an alternative example system 700. As shown in the example of fig. 7, the system 700 includes the server system 102, the client device 104, the network 106, and the user 108. As in system 100, server system 102 hosts a website 112 and client device 104 provides a client application 110. However, the system 700 also includes a management device 702 and an administrator 704. In other embodiments, system 700 may include more or fewer components. For example, some embodiments of system 700 include client devices other than client device 104.
The management device 702 includes one or more computing devices. In various embodiments, the management device 702 may include various types of computing devices. For example, the management device 702 can include one or more personal computers, stand-alone server devices, laptop computers, blade server devices, smart phones, tablet computers, network-enabled television or television set-top boxes, game consoles, telephones, in-vehicle computers, appliances, intermediate network devices, and/or other types of computing devices. The management device 702 can communicate with the server system 102 using the network 106 or another network.
The administrator 704 uses the management device 702. Administrator 704 is a person responsible for performing administrative tasks with respect to web site 112. For example, administrator 704 can be responsible for creating, configuring, and deleting resources in web site 112. Administrators 704 may be various types of people. For example, administrator 704 may be an employee or contractor of a company associated with web site 112 or an employee of another company.
In addition to the administrative tasks performed by administrator 704 for web site 112, administrator 704 manages template module 206 for web site 112. For example, administrator 704 can develop or modify template module 206 of website 112. As described in detail elsewhere in this document, administrator 704 can edit template module 206 by modifying the generic presentation string of template module 206.
The generic presentation string for a given template module is renderable to present the presentation string for the unfilled template. In various embodiments, the presentation string is in accordance with various presentation languages. For example, the generic presentation string can be in accordance with HTML.
The unfilled template includes one or more slots. The empty slots indicate locations where data based on content resource objects within the data set can be filled. By performing template execution operations of a given template module on content resource objects belonging to a given content resource type, the generated presentation string may be rendered by client application 110 to render a populated version of the given template. The populated template is an on-screen feature that is displayed to the user 108. In the populated template, empty spaces in the unfilled template are replaced based on data of objects belonging to the given content resource object type. In other words, the empty spaces in the unfilled template are replaced with object-based data. The populated template is based on a template module, wherein the populated template presentation is a presentation string generated by a template execution operation of the template module.
Further, in certain embodiments, the management device 702 provides an editor application 706. Editor application 706 enables a user to edit the generic presentation string of template module 206 by editing the generic on-screen features of template module 206. Because the editor application 706 enables a user to edit common on-screen features rather than the underlying presentation string or template module 206, the editor application 706 may be characterized as a what-you-see-what-you-get (WYSIWYG) editor application. Example WYSIWYG editor application includes VISUAL from MICROSOFT CORPORATIONFrom Microsoft corporationFrom Adobe systemsAnd so on. As described elsewhere in this document, administrator 704 can use editor application 706 to edit template module 206.
Fig. 8 is a block diagram illustrating example components of an alternative embodiment of the server system 102. As shown in the example of fig. 8, server system 102 includes a data storage system 200. As in the example of FIG. 2, the data storage system 200 stores content resources 202, metadata 204, schemas 208, and template modules 206.
Further, the data storage system 200 stores common template files 800A to 800N (collectively, "common template file 800"). Each generic template file 800 corresponds to a different template module 206. Each universal template file 800 stores a universal presentation string for a corresponding template module. For example, generic template file 800A can store a generic presentation string for template module 206A, and generic template file 800N can store a generic presentation string for template module 206N.
In some embodiments, the universal template file 800 has a file name extension corresponding to the format of the universal presentation string in the file. For example, if the universal presentation string in the universal template file 800 is formatted as HTML data, the universal template file 800 can have a file name extension ". HTML" or ". htm".
As shown in the example of fig. 8, server system 102 provides a web server 210. In addition, the server system 120 provides a conversion system 802. The server system 102 can provide the transformation system 802 by reading computer-executable instructions from one or more computer-readable media and executing the computer-executable instructions. As described in detail elsewhere in this document, transformation system 802 uses the universal presentation string in universal template file 800 to generate template module 206.
FIG. 9 is a block diagram illustrating an example unfilled template 900. For ease of explanation, this document describes FIG. 9 with reference to a generic template file 800A and a template module 206A. The reader will understand that the description of fig. 9 can be applied to other generic template files 800 and template modules 206.
The editor application 706 can generate the unfilled template 900 by rendering the generic presentation string in the generic template file 800A. In the example of FIG. 9, the unfilled template 900 includes voids 902A-902C (collectively, "voids 902"). In a populated template corresponding to the unfilled template 900, the empty space 902 is replaced with data based on objects within the data set. The generic presentation string defines the size and location of the empty spaces 902 in the unfilled template 900.
When the editor application 706 displays the unfilled template 900, the administrator 704 can use the surrounding static text presentation string content to define the location and size of the empty space 902 within the unfilled template 900. In addition, administrator 704 can add fields to or remove fields from unfilled template 900, or add other static text presentation string content or template module execution logic.
Each slot 902 is associated with a different object of a given type and level. For example, content resource objects belonging to a given type can include content resource objects such as "title", "type _ image", "snippet", and "URL", each of which has a particular content resource object type. In this example, administrator 704 can interact with editor application 706 to associate slot 902A with a "type _ image" content resource object, slot 902B with a "title" content resource object, and slot 902C with a "snippet" content resource object.
After the administrator 704 associates the slot 902 with the child object type, the administrator 704 can configure the slot 902. For example, the administrator 704 can configure the slot 902C such that the text in the slot 902C has a particular style, such as italics. In another example, a given content resource object type can include sub-objects that belong to a "URL" content resource object type. In this example, the administrator 704 can configure the slot 902A using one or more graphical user interfaces such that the text in the slot 902A is a hyperlink to a URL specified by a child object belonging to the "URL" content resource object type.
In addition, administrator 704 can add fixed text 904 or other static features to unfilled template 900. In the example of FIG. 9, the administrator 704 has added the fixed text "Presentiondocument" to the unfilled template 900. Thus, when the client application 110 renders a populated template based on the template module 206A, the text "presentation document" appears as an on-screen object within the populated template.
When administrator 704 edits unfilled template 900, editor application 706 updates the generic presentation string of a given template module to reflect the changes to unfilled template 900. For example, the generic presentation string may include < div > tags for each slot 902. In this example, the id attribute of the < div > tag indicates the child object type associated with the slot 902. In this example, when the administrator 704 changes the child object type associated with the slot 902, the editor application 706 changes the value of the id attribute of the < div > tag to reflect the new child object type.
Fig. 10 is a flow diagram illustrating example operations 1000 of the server system 102. The example of fig. 10 is explained with reference to template module 206A and generic template file 800A. The reader will appreciate that the server system 102 can perform similar operations with respect to other template modules 206 and other generic template files 800.
After operation 1000 begins, server system 102 stores template module 206A and generic template file 800A in data storage system 200 (1002). In various embodiments, server system 102 performs various actions to store template module 206A and generic template file 800A in data storage system 200. For example, some embodiments of the server system 102 receive the template module 206A and not the generic template file 800A. In this example, the server system 102 can generate a generic template file 800A from the template module 206A and store both the template module 206A and the generic template file 800A to the data storage system 200. In another example, some embodiments of the server system 102 receive the generic template file 800A without receiving the template module 206A. In this example, transformation system 802 can generate template module 206A from generic template file 800A and store both template module 206A and generic template file 800A to data storage system 200.
Next, the web server 210 receives a generic template request from the editor application 706 (1004). The universal template request includes a request to retrieve the universal template file 800A. In response to the universal template request, the web server 210 sends the universal template file 800A to the editor application 706 (1006). After the editor application 706 receives the universal template file 800A, the editor application 706 can update the universal presentation string in the universal template file 800A, thereby creating an updated version of the universal template file 800A.
The updated version of the universal presentation string may differ from the previous version of the presentation string in a variety of ways. For example, an updated version of the generic presentation string may be rendered to render an updated version of the unfilled template. In this example, the slots of the updated version of the unfilled template may be different from the slots of the previous version of the unfilled template. In another example, the updated version of the unfilled template may include text or images that are different from the previous version of the unfilled template.
Subsequently, web server 210 receives a save request from the editor application (1008). Upon receiving the save request, the web server 210 uses the data in the save request to store an updated version of the universal template file 800A in the data storage system 200 (1010). In various embodiments, the save request includes various data. For example, in some embodiments, the save request includes a copy of the updated version of generic template file 800A. In this example, the web server 210 copies the updated version of the generic template file 800A to the data storage system 200. In another example, the save request includes data indicating a distinction between an original version of the universal template file 800A and an updated version of the universal template file 800A. In this example, the web server 210 uses the difference to recreate an updated version of the generic template file 800A. In this example, the web server 210 then stores the updated version of the reconstructed generic template file 800A to the data storage system 200.
Upon receiving the save request, conversion system 802 generates an updated version of template module 206A using the edited version of generic template file 800A (1012). In some instances, web server 210 replaces the previous version of template module 206A in data storage system 200 with the updated version of template module 206A.
Various embodiments of the conversion system 802 generate an updated version of the template module 206A in various ways. As described in detail below, FIG. 11 illustrates one example manner in which the transformation system 802 can generate an updated version of the template module 206A. The reader will appreciate that the conversion system 802 can perform other operations to generate an updated version of the template module 206A.
At some point after the conversion system 802 generates the updated version of the template module 206A, the web server 210 receives a template request from the client application 110 (1014). The template request includes a request for template module 206A. In response to receiving the template request, the web server 210 sends an updated version of the template module 206A to the client application (1016). The client application 110 can then use the updated version of the template module 206A to generate a renderable presentation string to render the populated template. The empty spaces in the unfilled template are replaced by data in the filled template.
In an alternative embodiment, the editor application 706 converts the updated version of the generic template file 800A into a template module. In this example, the save request can include a template module.
FIG. 11 is a flow diagram illustrating example transformation operations 1100 for generating a template module from a generic presentation string. Upon initiation of operation 1100, the conversion system 802 parses the generic presentation string to find different kinds of logical regions. In one embodiment, these regions are separated by strings of tokens that are recognized by the translation system 802. Different kinds of logical regions that can be identified include, but are not limited to, conditional logic, loop logic, variable declarations, data binding expressions, presentation expressions, other metadata or information about the template module logic, and textual presentation content (1102).
In this example, the logical regions are of multiple types. For example, regions associated with variable declarations, conditional logic selections, or data structure loops can be considered one type, regions associated with data binding or data presentation expressions can be considered another type, and textual content regions can be considered yet another type. Each region type is associated with a different output operation. The output operation generates an output string based on the content of the region.
After the conversion system 802 generates the logical regions, the conversion system 802 invokes the transform and output operations for each region (1104).
The logical area content string can be a static string or a script string. The static string does not include instructions that are evaluated during execution of the template module 206A. For example, "< table >" can be a static string. The script string is evaluated during the execution operation of the template module 206A.
After transforming the logical regions, conversion system 802 generates an output string (1106). Conversion system 802 writes 1108 the logical region output string to template module 206A. When the template execution operation of template module 206A is invoked, template module 206A generates presentation strings by evaluating script strings within the logic regions associated with variable declarations, condition selections, and loops to control the template execution logic, and executes the regions associated with data binding and rendering to retrieve data elements from the content resource and combine them with the static textual content string regions. Template module 206A then combines the resulting strings into a populated template presentation string. For example, the following may be part of the data binding and presentation expression region:
‘<H2>Title:’+$urlHtmlEncode(ctx.CurrentItem[“Title”])+‘</H2>’
in this example, template module 206A may evaluate the data binding and presentation expressions and find the "Title" content resource object of the current context object and generate a presentation string by combining its value with the text presentation content string. The client application 110 can render the string to include the text "Title: the H2 element of SalesFigures2009 (heading: sales figure 2009) "is displayed as the header content identified as level 2.
Fig. 12 is a flow diagram illustrating example operations 1150 of the editor application 706. The example of fig. 12 is explained with reference to template module 206A and generic template file 800A. The reader will appreciate that the server system 102 can perform similar operations with respect to other template modules 206 and other generic template files 800.
After operation 1150 begins, the editor application 706 launches (1152). In various embodiments, the editor application 706 is launched in response to various events. For example, in some embodiments, the editor application 706 is launched in response to input from the administrator 708.
After the editor application 706 launches, the editor application 706 sends a generic template request to the web server 210 (1154). The presentation data request includes a request for a generic template file 800A. After sending the universal template request to the web server 210, the editor application 706 receives 1156 the universal template file 800A from the server system 102.
In various embodiments, the generic template request conforms to various communication protocols. For example, in some embodiments, the generic template request complies with the WebDAV protocol. In another example, the generic template request conforms to a file transfer protocol, an HTTP protocol, or another communication protocol.
Upon receiving the universal template file 800A, the editor application 706 renders the universal presentation string in the universal template file 800A to render the unfilled template (1158). During the time that the editor application 706 displays the unfilled template, the editor application 706 receives input from the administrator 704 to edit the unfilled template (1160). For example, the editor application 706 can receive input to add, remove, reposition, or resize voids within an unfilled template. In another example, the editor application 706 can receive input to add static text, images, forms, or formats to the unfilled template.
Subsequently, editor application 706 receives save input from administrator 704 (1162). In response to receiving the save input, the editor application 706 sends (1164) a save request to the web server 210. As described above, one or more systems within server system 102 will process the data within the save request to store the updated version of generic template file 800A in data storage system 200.
Fig. 13 is a screen illustration of a browser window 1200 that displays an example search interface 1202 presented by the client device 104. The user 108 searches for resources in the website 112 using one or more search interfaces, such as search interface 1202. The search interface enables the user 108 to enter a search string and submit a search request. The search request includes a request for a list of resources within the website 112 that satisfy the search string. Upon receiving and accepting the search request, the server system 102 provides the data set to the client device 104. The data set includes data regarding resources of a search string that satisfy the search request.
As shown in the example of fig. 13, search interface 1202 includes a text box 1204 into which user 108 can enter a search string. Search interface 1202 also includes a submit button 1206. The user 108 can select the submit button 1206 to provide the search request to the server system 102. The search request specifies a search string that is entered into text box 1204. As shown in the example of fig. 13, the search interface 1202 can also include other features 1208, such as titles, text, images, and so forth. Further, as shown in the example of fig. 13, presentation of the search features of search interface 1202 (i.e., text box 1204 and submit button 1206) may not be the primary purpose of search interface 1202. Alternatively, the search request may be preconfigured and stored in the system, rather than being submitted directly by the user 108.
FIG. 14 is a block diagram illustrating example components of an alternative embodiment of the server system 102. As shown in the example of fig. 14, server system 102 includes a data storage system 200 and a web server 210. Although not shown in the example of fig. 14 for clarity, the data storage system 200 can store content resources 202, metadata 204, template modules 206, schemas 208, generic template files 800, and other data. Further, the server system 102 may provide a conversion system 802.
In addition to the data storage system 200 and the web server 210, the server system 102 provides a search system 1300. The web server 210 and the search system 1300 may be provided by the same or different computing devices within the server system 102. The server system 102 may provide the search system 1300 by executing instructions stored on one or more computer storage media.
The search system 1300 accesses a data storage system 1302. Data storage system 1302 includes one or more computer storage media. In certain embodiments, the computer storage media in data storage system 1302 is geographically distributed. In other embodiments, the computer storage media in data storage system 1302 is located in a single device or data center. Further, in certain embodiments, data storage system 1302 is part of data storage system 200, or vice versa.
The data storage system 1302 stores a content index 1304, an administrative database 1306, and a content type cache 1308. The content index 1304 includes a data structure for storing a set of entries. Each entry in the content index 1304 stores characteristics of a different content asset in the content asset 202. The management database 1306 includes a data structure that stores information about the outcome type.
FIG. 15 illustrates example content of the content index 1304 and example content of the management database 1306. As shown in the example of FIG. 15, content index 1304 includes a table having rows 1400A-C (collectively, "rows 400") and columns 1402A-G (collectively, "columns 1402"). Rows 1400 and columns 1402 define a cell array. The cells in each row 1400 correspond to different entries in the content index 1304. Line 1400 includes an entry for content asset 202. For example, row 1400A corresponds to a particular resource and row 1400B corresponds to another resource. It will be appreciated that the content index 1304 can include more or less than three entries. The ellipses in the example of FIG. 15 indicate that the content index 1304 can include other rows. Alternatively, the content index may store the data and resources in a format that does not correspond to a table, and will return a collection of content resources 202 by accessing the data store to return content resource objects.
Each column 1402 corresponds to a different characteristic. In the example of FIG. 15, columns 1402A-G correspond to an "identifier" property, a "name" property, a "storage location" property, a "creation date" property, a "modification date" property, a "snippet" property, and an "author" property, respectively. Other embodiments of content index 1304 include more or fewer columns, or different characteristics.
As shown in the example of FIG. 15, the management database 1306 includes a table having rows 1404A-C (collectively, "rows 1404") and columns 1406A-G (collectively, "columns 1406"). Rows 1404 and columns 1406 define a cell array. The cells in each row 1404 correspond to a different result type. For example, row 1404A corresponds to a result type and row 1404B corresponds to a different result type. Each column 1406 corresponds to a different data element characteristic of the result type. In the example of FIG. 15, columns 1406A-F correspond to an "identifier" property, a "name" property, a "description" property, a "rules" property, a "template module" property, a "priority" property, and an "applicable properties" property, respectively. The value of the "rules" property in column 1406D specifies rules that define which resources belong to the result type. The value of the "template module" property in column 1406E identifies one of template modules 206 corresponding to the result type. Other embodiments of the management database 1306 include more or fewer columns, or different characteristics.
Reference is now continued again to the example in fig. 14. In addition to the data storage system 1302, the search system 1300 provides a type management module 1310 and a search module 1312. The search system 1300 can provide the type management module 1310 and the search module 1312 by reading computer-executable instructions from one or more computer-readable media and executing the computer-executable instructions. In response to administrative input from administrator 704, type management module 1310 creates, edits, and deletes at least some result type entries in administrative database 1306. For example, in response to receiving administrative input from administrator 704, type management module 1310 changes the rules for the result type or changes which template modules 206 correspond to the result type. By enabling type management module 1310 to create, edit, or delete result type entries in management database 1306, administrator 704 can configure the search results interface in website 112 to display information about different types of search results in different ways.
The search module 1312 receives a search request from the user 108. The user 108 can submit a search request using a search interface, such as search interface 1202. Upon receiving a search request from the client device 104 for a resource in the website 112 that satisfies the search string, the search module 1312 accesses an entry in the management database 1306 to retrieve the rule characteristics for the result type. Some embodiments use a result type cache 1308 to speed up the retrieval of characteristics of result types from the management database 1306. Upon receiving the rules for the result type, the search module 1312 uses the content index 1304 to identify ones of the content resources 202 in the website 112 that satisfy the conditions specified by the search string. The search module 1312 retrieves, for each result type, the characteristics of the identified resources that need to be used for the rules that evaluate the result type.
The search module 1312 evaluates the rules for the result type against the retrieved characteristics of the identified resources to determine the result type for the identified resources. The search module 1312 may use various algorithms to evaluate the rules. For example, the search module 1312 may be implemented as a forward-link rules engine.
Upon determining that the given resource belongs to the given result type, the search module 1312 generates a content resource object that belongs to a type corresponding to the template module for the given result type. The content resource object for a given resource includes each applicable data element characteristic for the given resource. The applicable characteristics of a given resource are characteristics of the identified resource that are applicable to the result type of the identified resource. For example, if the "applicable properties" property 1406G of the result type for the identified resource specifies the "segments" property 1402F, then the data element for the identified resource includes the "segments" property for the identified resource.
After generating the data elements for each identified resource, the search module 1312 transmits the data set to the client device 104. The data set includes rows of the identified resources and their data elements. In some embodiments, the received data may include schema and template modules within the same sub-package as the data set, and in other embodiments, the schema and template modules may be cached in the client application or retrieved in separate steps. When the client device 104 receives the data set, the client application 110 processes the data set in the manner described above.
FIG. 16 illustrates an example range hierarchy 1500. In certain embodiments, server system 102 hosts a plurality of different websites. Server system 102 may host these web sites on behalf of a single organization. Alternatively, a service provider entity may operate server system 102 and server system 102 can host these websites on behalf of multiple tenants. A tenant includes an organization, such as a company, or an individual that has agreed with a service provider entity of server system 102 to have the provider host a website for the tenant. From a tenant's perspective, server system 102 hosts only that tenant's web site and not the other tenants ' web sites. In some instances, server system 102 can host multiple websites for one of multiple tenants. In such instances, the tenant can group two or more of its websites into a site group. The tenant can authorize administrator 704 to perform administrative tasks on one or more of the tenant's web sites, such as web site 112.
As shown in the example of fig. 16, tenant 1502 has two site groupings 1504A and 1504B (collectively, "site groupings 1504"). Site grouping 1504A includes websites 1506A and 1506B. Site grouping 1504B includes websites 1506C, 1506D, and 1506E. This document can collectively refer to websites 1506A, 1506B, 1506C, 1506D, and 1506E as "websites 1506". Website 112 may be one of websites 1506.
Server system 102 may provide multiple administrator interfaces. Each administrator interface has a different scope. For example, a first administrator interface may have a tenant scope, a second administrator interface may have a site group scope, a third administrator interface may have a website scope, and so on. In the example of fig. 16, server system 102 can provide an administrator interface for tenant 1502, an administrator interface for site grouping 1504A, an administrator interface for site grouping 1504B, and separate administrator interfaces for individual websites 1506. An administrator interface for tenant 1502 enables administrator 704 to configure settings that are generally applicable to tenant 1502. The administrator interface for site groupings 1504 enables an administrator 704 to independently configure the site groupings 1504. An administrator interface to the website 1506 enables the administrator 704 to configure the website 1506 independently.
The administrator interface includes a type configuration interface. Each type configuration interface is a user interface, such as a GUI, that includes features that enable administrator 704 to configure (e.g., create or modify) the result types that may be applied within the scope of the type configuration interface. The scope of the type configuration interface is the same as the scope of the administrator interface that includes the type configuration interface. For example, the administrator 704 may use a type configuration interface within the administrator interface for the website 1506A to configure the result types that may be applied to the website 1506A. When the administrator 704 configures the interface with a type within the administrator interface for one of the site groupings 1504, a given result type is applicable to each of the websites of the site grouping. For example, administrator 704 can use a type configuration interface within the administrator interface for site grouping 1504B to configure the result types that are applicable to the websites within site grouping 1504B, but not to the websites within site grouping 1504A.
FIG. 17 is a flowchart illustrating example operations 1600 for configuring a result type. In operation 1600, the type management module 1310 receives a template configuration input from the administrator device 702 (1602). The template configuration input specifies information about a new or existing template module. Type management module 1310 updates template module 206 in response to the template configuration input (1604). For example, type management module 1310 may store a new template module in data storage system 200 or modify one of the existing template modules 206 in data storage system 200.
In various embodiments, type management module 1310 receives template configuration input in various ways. For example, in some embodiments, the type management module 1310 receives template configuration input from a separate application (such as a web design suite) or an integrated development environment. In other embodiments, the type management module 1310 provides data representing the template configuration interface to the administrator device 702. For example, type management module 1310 may provide HTML data, CSS data, script data, or other types of data that can be rendered or interpreted by administrator device 702 to present a template configuration interface to administrator 704. The template configuration interface includes features that enable administrator 704 to create new template modules or edit one of the existing template modules 206.
Further, in operation 1600, the type management module 1310 provides the administrator interface data to the administrator device 702 (1606). The administrator interface data represents a type configuration interface within the administrator interface. For example, the administrator interface data can represent a type configuration interface within an administrator interface for tenant 1502, an administrator interface for site grouping 1504, or an administrator interface for website 1506.
The type configuration interface is a user interface that enables administrator 704 to configure a given result type. In various embodiments, the type configuration interface includes various types of user interfaces. For example, the type configuration interface can include a GUI that includes features, such as data entry features, that enable the administrator 704 to configure (e.g., create or modify) a given result type. In another example, the type configuration interface can be a command line interface, such as a powershell interface.
In various embodiments, the administrator interface data may include various types of data. For example, the administrator interface data may include hypertext markup language (HTML) data, cascading forms (CSS) data, script data, and other types of data. In this example, a web browser application or another application operating on the administrator device 702 presents or processes the administrator interface data to present the type configuration interface.
FIG. 18 is a screen illustration of a browser window 1700 that includes an example type configuration interface 1702. The type management module 1310 may provide administrator interface data representing the type configuration interface 1702 to the administrator device 702. A browser application running on the administrator device 702 presents the administrator interface data to display the type configuration interface 1702. This document describes features of an example type configuration interface 1702 in connection with steps in operation 1600.
Reference is now continued again to the example in fig. 17. After providing the administrator interface data to the administrator device 702, the type management module 1310 receives name inputs, description inputs, and priority inputs from the administrator 704 (1608). The name input specifies the display name of a given result type. For example, the name input can specify a "technical description type" or a "slide show (Slideshow) type" as the display name for a given result type. The description input specifies a textual description of a given result type. For example, the description input can specify that "the type of technical specification is used in a search results page to display information about a technical specification document". The priority input specifies the priority of a given result type. For example, administrator 704 can assign a priority of "10" to a given result type and a priority of "4" to another result type. The search module 1312 can use the priority of the result types to select a result type for a resource from a plurality of result types that are applicable to the resource.
In various embodiments, the type management module 1310 receives name input, description input, and priority input in various ways. For example, the type configuration interface 1702 of FIG. 18 includes a display name feature 1704, a description feature 1705, and a priority feature 1710. The administrator 704 can enter a display name for a given result type in the display name feature 1704. Administrator 704 can enter a description of a given result type in description feature 1705. The administrator 704 can use the priority feature 1710 to select a priority level. In addition, type configuration interface 1702 includes a save control 1706. When the administrator 704 selects save control 1706, the administrator device 702 provides the data entered in the controls of the type configuration interface 1702 to the type management module 1310. In this manner, type management module 1310 receives a name input specifying a display name entered by administrator 704 in display name feature 1704, a description input specifying a description entered by administrator 704 in description feature 1705, and a priority input specifying a priority level selected by administrator 704 in priority feature 1710. In some instances, the present document refers to data entered in the data entry control as input corresponding to the data entry control.
Reference is again continued to the example in fig. 17. In addition, type management module 1310 receives rule input from administrator 704 (1610). The rule input specifies a rule that includes one or more conditions that the resource must satisfy to be considered as belonging to a given resource type. In various embodiments, the type management module 1310 receives rule input in various ways.
For example, type configuration interface 1702 of FIG. 18 includes rule feature 1708. The administrator 704 can enter rules for a given result type in the rules feature 1708. For example, administrator 704 can make a given result type applicable to a resource having a given filename extension by entering the given filename extension in rules feature 1708. In this example, administrator 704 can enter the file name extensions ". docx" and ". doc" in rules feature 1708 to make the resource with the file name extension ". docx" or ". doc" belong to a given result type.
In another example, administrator 704 can enter one or more URL patterns in rules feature 1708. For example, administrator 704 can enter URL pattern "/docs/spec _" in rules feature 1708. In this example, a resource with a URL that starts with the substring "/docs/spec _" can belong to a given resource type. When an entity uses a particular directory or file naming conversion to distinguish between different types of resources, it can be useful to use the URL pattern as a condition in the rules for the result type. For example, an entity can use a file naming transformation that requires all technical specification documents to start with the string "spec" and all inventive records to start with the string "invent". In this example, administrator 704 can use the file naming transform to associate technical specification documents and invention records with different result types. This is one way that resources with the same file format can belong to different result types. For example, both the first resource and the second resource can be word processor documents, slide presentation documents, web pages, PDF documents, spreadsheet documents, images, audio files, video files, or other types of documents having the same file format but belonging to different result types.
In other examples, administrator 704 can specify rules with conditions based on other types of conditions and combinations of conditions. For example, administrator 704 may specify rules with conditions based on creation time, edit time, title, or other characteristics of content resource 202.
When the administrator 704 selects the save control 1706, the administrator device 702 provides the information entered into the rule features 1708 to the type management module 1310. In this manner, type management module 1310 receives rule input specifying a rule entered by administrator 704 in rule features 1708.
Reference is now continued again to fig. 17. In addition, type management module 1310 receives a template selection input from administrator 704 (1612). The template selection input associates a given result type with one or more template modules 206 stored in the data storage system 200. In some instances, the template selection input can indicate the template module created or edited by the administrator 704 at step 1602.
In various embodiments, type management module 1310 receives template selection input in various ways. For example, type configuration interface 1702 of FIG. 18 includes a template selection control 1712. The administrator 704 can enter the URL or other identifier of the template module in the template selection control 1712. In the example of fig. 18, the template selection control 1712 is a text box. However, in other embodiments, the template selection control 1712 is a drop-down box. In such embodiments, the template selection control 1712 displays a list of names for the template module 206. The administrator 704 can then select a template module from the list of names of template modules 206 in the template selection control 1712. When the administrator 704 selects the save control 1706, the administrator device 702 provides a template selection input to the type management module 1310. The template selection input indicates the template module selected by the administrator 704 at the template selection control 1712.
Reference is now continued again to the example in fig. 17. Type management module 1310 receives a property selection input from administrator 704 (1614). The property selection input indicates the applicable properties for a given result type.
In various embodiments, type management module 1310 receives the property selection input in various ways. For example, the type configuration interface of FIG. 18 includes an available properties field 1714 and an applicable properties field 1716. The available characteristics field 1714 includes a list of characteristics for the resource. The applicable properties field 1716 includes a list of applicable properties for a given result type. The administrator 704 can enter one of the properties listed in the available properties field 1714 into an applicable property for a given result type by moving the property from the available properties field 1714 to the applicable properties field 1716.
When the administrator 704 selects the save control 1706, the administrator device 702 provides the list of properties in the applicable properties field 1716 to the type management module 1310. In this manner, the type management module 1310 receives a property selection input specifying applicable properties for a given result type.
Subsequently, the type management module 1310 stores a new or updated entry for the given result type in the management database 1306 (1616). The entries for a given result type include a set of properties. The characteristics include a name characteristic specifying a name of the type indicated by the name input, a description characteristic specifying the description specified by the description input, a priority characteristic specifying a priority level specified by the priority input, a rule characteristic specifying a rule indicated by the rule input, a template characteristic specifying a template module indicated by the template selection input, and an applicable characteristics characteristic specifying a characteristic indicated by the characteristic selection input.
It should be appreciated that server system 102 can perform some or all of operation 1600 multiple times. As a result, server system 102 can provide administrator interface data to administrator device 702 multiple times and receive name inputs, rule inputs, priority selection inputs, template configuration inputs, and template selection inputs for multiple different result types multiple times. Thus, by performing at least some portions of operation 1600 multiple times, administrator 704 can provide administrative input associating a first template module with a first result type and administrative input associating a second template module with a second result type. Similarly, by performing at least some portions of operation 1600 multiple times, administrator 704 can provide administrative input to associate a given name, rule, template module, or priority with a first outcome type and then later provide additional administrative input to associate a different name, rule, template module, or priority with the first outcome type.
FIG. 19 is a flowchart illustrating example operations 1800 for searching for resources within a target web site. In operation 1800, the search module 1312 receives a search request from the user 108 (1802). The search request requests a list of resources within the target web site that satisfy the search string specified by the search request. For ease of explanation, this document assumes that the target web site is web site 112. In some embodiments, the search module 1312 receives the search request when the user 108 selects the submit button 1206 within the search interface 1202 (FIG. 12).
A search string within a search request specifies one or more conditions. For example, the search request can include the following search string: "Contoso". In this example, the resource associated with the word "Contoso" satisfies the search string. In another example, the search request can include the following search string: "Contoso and created 1/7/2009". In this example, the resource associated with the word "Contoso" and created 7 months and 1 day before 2009 satisfied the conditions of the search string. In various embodiments, the search module 1312 can accept search strings in accordance with various query formats. For example, certain embodiments of the search module 1312 can accept search strings that adhere to the high level query syntax (AQS).
Upon receiving the search request, the search module 1312 retrieves the result type from the administrator database 1306 (1804). The search module 1312 identifies search results for the search request (1806). The search results for the search request are the resources of the website 112 that satisfy the conditions specified by the search string within the search request. For example, the search module 1312 can determine that a first resource of the website 112 and a second resource of the website 112 satisfy a condition specified by the search string. In this example, the first resource and the second resource are search results for the search request.
As discussed above, the server system 102 can host multiple websites. These websites may be associated with one or more tenants. In many instances, the search module 1312 does not identify or provide information regarding resources that satisfy the search string of the search request but that are not within the target website (e.g., website 112) of the search request. If the search module 1312 were to provide search results from a website other than the target website, the user may become confused, private information may be revealed, or other negative results may occur.
Various embodiments of the search module 1312 identify search results for the search request in various ways. For example, the search module 1312 can perform a linear scan of the content index 1314 to identify search results. In another example, the search module 1312 can use another index to identify search results.
After the search module 1312 identifies search results for the search request, the search module 1312 identifies a result type for each search result (1808). To identify the search type for the search results, the search module 1312 evaluates the rules for the search type. The result type entry in administrator database 1306 includes characteristics that specify rules for the result type. If the search result satisfies the rule for a result type, the search result belongs to the result type. To determine whether the search results satisfy the rules for the result type, the search module 1312 may need to retrieve one or more characteristics of the search results from the content index 1304.
In some instances, the search results can belong to multiple result types. In other words, the search results can satisfy the conditions of the rules for multiple result types. For example, when a search result has a filename extension ". pptx", the search result can belong to a first result type. Further, in this example, when the search result has a URL that includes the string "spec," the search result can be of the second result type. In this example, a particular search result can have a filename extension ". pptx" and also have a URL that includes the string "spec".
Since the search results can belong to multiple result types, the search module 1312 performs the required conflict resolution operations to select one result type for the search results from among multiple applicable result types (1810). In various embodiments, the search module 1312 can perform various conflict resolution operations to select a particular one of the result types for the search results. For example, the search module 1312 can perform conflict resolution operations involving a hierarchically structured set of websites. As depicted, server system 102 can host multiple websites 1506 for tenant 1502. In this example, tenant 1502 has grouped websites 1506 into site groupings 1504. Further, in this example, the result type associated with the lower element in the scope hierarchy 1500 is prioritized in conflict resolution operations over the relatively higher element in the scope hierarchy 1500. For example, administrator 704 can specify that the scope of the first result type is website 1506A and can specify that the scope of the second result type is site grouping 1504A. In this example, if the search result belongs to both the first and second result types, the conflict resolution operation searches the first result type of the result rather than the second result type because the first result type is associated with lower elements in the scope hierarchy 1500. In another example conflict resolution operation, administrator 704 may assign numerical priorities to result types. For example, administrator 704 can assign a priority of "10" to a first result type and a priority of "4" to a second result type. In this example, the search results can satisfy the rules of the first result type and the second result type. However, the conflict resolution operation assigns the first result type to the search results instead of the second result type because the first result type has a higher priority number than the second result type. In another example conflict resolution operation, the search module 1312 selects a result type that is created earlier or listed earlier in the content index 1304.
After identifying the result type, the search module 1312 retrieves the applicable properties of the search results from the content index 1304 (1812). An applicable characteristic of a search result is a characteristic of an applicable characteristic of a search result that is designated as a result type of the search result. For example, the result type of the search results can specify a "URL" property and a "snippet" property as applicable properties. In this example, the search module 1312 retrieves the value of the "URL" property and the value of the "snippet" property from the entries of the search results of the content index 1304.
After the search module 1312 retrieves the applicable properties of the search results, the search module 1312 generates a data set and sends the data set to the client device 104 (1814). The data set includes result data for at least some of the identified search results. The result data of the search results includes applicable characteristics of the search results.
After the search module 1312 provides the data set to the client device 104, the web server 210 receives a request from the client device 104 for a template module 206 corresponding to the type of content resource object in the data set (1816). In response to the request, the web server 210 retrieves the template module from the data storage system 200 and sends the template module to the client device 104 (1818). After the client device 104 receives the template module, the client application 110 executes the content creation script. Execution of the content generation script causes execution of a template execution operation of a template module on a content resource object in the dataset, thereby generating a presentation string for a different one of the identified resources. The client application 110 presents the presentation string of search results to present the set of on-screen features describing the identified resource.
In some embodiments, the search module 1312 concurrently provides the data set to the client device 104 as part of a larger data set that identifies the search results web page. In other embodiments, the search module 1312 transmits the data set to the client device 104 separately from the web page that includes the search result list. In some such embodiments, the search module 1312 can provide the data set to the client device 104 using AJAX techniques.
It will be understood that the server system 102 can perform the operation 1800 multiple times. Thus, server system 102 can receive multiple search requests for multiple web pages and can provide different data sets as results for different search strings, changes to the type of results, changes to the template module, and various other factors.
Reference is now made again to the example in fig. 6. As discussed above, the client application 110 can display the search results interface 600 after the client application 110 sends a search request to the server system 102 and the client application 110 receives data representing the search results interface 600 from the server system 102.
Search results interface 600 includes a populated template 604 and a populated template 606. Populated template 604 corresponds to a first search result and populated template 606 corresponds to a second search result. In some instances, the user 108 can present the populated template by scrolling through the search results interface 600 to view more search results. Further, in some instances, the search results are paged across multiple web pages. In such instances, the user 108 can present more populated template modules by clicking on a link (not shown) to the next web page or performing another action to present populated template modules to view more search results.
As shown in the example of fig. 6, search results interface 600 presents different information for different types of search results. Presenting different information for different types of search results is advantageous for several reasons. For example, providing snippets from a slide presentation document may not be useful because the slide presentation document may not include text representing the contents of the slide presentation document. Conversely, word processor documents are more likely to include text representing the content of the word processor document. In this example, it may be more useful for the user to see a snippet of the word processor document than to see a snippet from a slide presentation document. Thus, the ability of administrator 704 to configure server system 102 to present different information for different types of search results within a website enables a user to obtain useful information in a search results interface. Further, because administrator 704 can configure and create result types and can define which resources belong to particular result types, administrator 704 may be able to configure server system 102 to present information about search results in a manner that is unique to the administrator's organization.
Further, using a user interface such as a GUI to configure server system 102 may enable a less experienced administrator to quickly and easily configure server system 102 to present different information for different types of search results. For example, the administrator 704 need not understand or know how to edit XSLT code, JavaScript, HTML, CSS, C + +, Perl, or other formal machine-interpretable code to configure the server system 102 to provide different information for different types of search results. Rather, the above description explains how administrator 704 can configure server system 102 using data entry controls in a GUI. Example data entry controls include text boxes, drop-down boxes, check boxes, text field elements, radio buttons, text fields, push buttons, other features in HTML, and other user interface features that enable data entry.
Fig. 20 is a block diagram illustrating an example computing device 1900. In certain embodiments, server system 102, client device 104, and administrator device 704 are implemented as one or more computing devices like computing device 1900. It should be appreciated that in other embodiments, the server system 102, the client device 104, and the administrator device 702 are implemented using computing devices having hardware components other than those shown in the example of FIG. 20.
The term computer readable media as used herein may include both computer storage media and communication media. As used in this document, a computer storage medium is an apparatus or article of manufacture that stores data and/or computer-executable instructions. The computer storage medium does not include a transient signal. Computer storage media may include volatile and nonvolatile, removable and non-removable devices or articles of manufacture implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. By way of example, and not limitation, computer storage media may include Dynamic Random Access Memory (DRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDRSDRAM), reduced latency DRAM, DDR2SDRAM, DDR3SDRAM, solid state memory, Read Only Memory (ROM), electrically erasable programmable ROM, optical disks (e.g., CD-ROM, DVD, etc.), magnetic disks (e.g., hard disks, floppy disks, etc.), magnetic tape, and other types of devices and/or articles of manufacture that store data. Communication media may be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term "modulated data signal" may describe a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, Radio Frequency (RF), infrared and other wireless media.
In the example of fig. 20, the computing device 1900 includes a memory 1902, a processing system 1904, a second storage device 1906, a network interface card 1908, a video interface 1910, a display unit 1912, an external component interface 1914, and communication media 1916. Memory 1902 includes one or more computer storage media capable of storing data 1918 and/or computer-executable instructions 1920.
The second storage 1906 includes one or more computer storage media. The second storage device 1906 stores data 1922 and computer-executable instructions 1924 that are not directly accessible by the processing system 1904. In other words, the processing system 1904 performs I/O operations to retrieve data and/or software instructions from the second storage device 1906.
The processing system 1904 includes one or more processing units. A processing unit is a physical device or article of manufacture that includes one or more integrated circuits that read data from, and selectively execute instructions from, computer-readable media such as the memory 1902 and the secondary storage device 1906. In various embodiments, the processing system 1904 is implemented in various ways. For example, processing system 1904 may be implemented as one or more processing cores. In another example, the processing system 1904 can include one or more separate microprocessors. In yet another example embodiment, the processing system 1904 can include an Application Specific Integrated Circuit (ASIC) that provides the specialized functionality. In yet another example, the processing unit 1904 may provide dedicated functionality through the use of an ASIC and through the execution of computer-executable instructions.
Network interface card 1908 is a device or article of manufacture that enables computing device 1900 to send and receive data to and from a communication network. In different embodiments, the network interface card 1908 is implemented in different ways. For example, the network interface card 1908 may be implemented as an ethernet interface, a token ring interface, a fiber optic network interface, a wireless network interface (e.g., WiFi, WiMax, etc.), or another type of network interface.
Video interface 1910 enables computing device 1900 to output video information to a display unit 1912. The display unit 1912 may be various types of devices for displaying video information, such as a cathode ray tube display, an LCD display panel, a plasma screen display panel, a touch sensitive display panel, an LED screen, or a projector. The video interface 1910 may communicate with the display unit 1912 in various ways, such as through a Universal Serial Bus (USB) connector, a VGA connector, a Digital Visual Interface (DVI) connector, an S-video connector, a high-definition multimedia interface (HTMI) interface, or a display port connector.
External component interface 1914 enables computing device 1900 to communicate with external devices. For example, the external component interface 1914 can be a USB interface, a firewire interface, a serial port interface, a parallel port interface, a PS/2 interface, and/or another type of interface that enables the computing device 1900 to communicate with external devices. In various embodiments, external component interface 1914 enables computing device 1900 to communicate with various external components, such as external storage devices, input devices, speakers, modems, media player docks, other computing devices, scanners, digital cameras, and fingerprint readers.
Communications media 1916 facilitates communication between hardware components of computing device 1900. In the example of fig. 20, communication media 1916 facilitates communication between the memory 1902, the processing system 1904, the secondary storage device 1906, the network interface card 1908, the video interface 1910, and the external component interface 1914. The communication medium 1916 may be implemented in various ways. For example, communication medium 1916 can include a PCI bus, a PCI express bus, an Accelerated Graphics Port (AGP) bus, a Serial Advanced Technology Attachment (ATA) interconnect, a parallel ATA interconnect, an optical channel interconnect, a USB bus, a Small Computing System Interface (SCSI) interface, or another type of communication medium.
Memory 1902 stores various types of data and/or software instructions. For example, in the example of fig. 12, computer-executable instructions 1920 in memory 1902 can include basic input/output system (BIOS) instructions 1926 and operating system instructions 1928. Execution of the BIOS instructions 1926 by the processing system 1904 causes the computing device 1900 to boot. Execution of operating system instructions 1928 results in computing device 1900 providing an operating system that coordinates the activities of computing device 1900 and the sharing of resources. In addition, the memory 1902 stores application software 1930. Execution of the application software 1930 by the processing system 1904 causes the computing device 1900 to provide one or more applications. The memory 1902 also stores data 1918. Data 1918 is data used by programs executing on computing device 1900.
The various embodiments described above are provided by way of illustration only and should not be construed in a limiting sense. Those skilled in the art will readily recognize various modifications and changes that may be made without following the example embodiments and applications illustrated and described herein. For example, the operations shown in the figures are examples only. In various embodiments, similar operations can include more or fewer steps than shown in the figures. Moreover, in other embodiments, similar operations can include steps in a different order than the operations shown in the figures. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims (12)

1. A client device implemented method comprising:
presenting, by a client device, a first resource (450) to a user, wherein presenting the first resource comprises:
executing a content generation script, wherein executing the content generation script causes the client device to send a request for a first set of data;
receiving the first data set (454) comprising at least one given content resource object, wherein the given content resource object belongs to a given content resource object type;
identifying a first template module (460) corresponding to the first data set;
downloading the first template module (464); and
a first presentation string (466) of a given content resource object is generated by performing a template execution operation on the given content resource object, the template execution operation being specified by the first template module.
2. The method of claim 1, wherein the first template module includes computer-executable instructions that, when executed by the client device, cause the client device to perform the template-performing operation specified by the first template module.
3. The method of claim 1, wherein presenting the first resource further comprises:
downloading a first schema to the client device (458), the first schema specifying content allowed by the first data set, the first schema mapping the given content resource object type to the first template module; and
mapping the given content resource object type to the first template module based on the first scheme, determining (460) that the first template module corresponds to the given content resource object.
4. The method of claim 3, further comprising:
presenting a second resource (450), wherein presenting the second resource comprises:
downloading a second data set (454) comprising at least one second content resource object, the second content resource object belonging to the given content resource object type;
downloading a second schema (458) specifying content allowed by the second data set, the second schema mapping the given content resource object type to a second template module;
mapping the given content resource object type to the second template module based on the second scheme, determining (460) that the second template module corresponds to the second content resource object;
downloading (464) the second template module to the client device, the second template module specifying a second template to perform an operation; and
generating (466) a second presentation string by performing the second template execution operation on the second content resource object.
5. The method of claim 3, further comprising:
presenting a second resource (450), wherein presenting the second resource comprises:
downloading a second data set (454) comprising a second content resource object, the second content resource object belonging to the given content resource object type;
downloading a second schema (458) specifying allowed content resource object types for the second data set that are different from the allowed content resource object types for the first data set, the second schema mapping the given content resource object type to the first template module;
mapping the given content resource object type to the first template module based on the second scheme, determining (460) that a second template module corresponds to the second content resource object; and
a second presentation string (466) is generated by performing the template execution operation on the second content resource object.
6. The method of claim 1,
wherein the given content resource object comprises a child content resource object; and
wherein the method further comprises:
determining (552) that a second template module corresponds to the child content resource object; and
downloading the second template module to the client device (556); and
wherein generating the first presentation string (504) of the given content asset object comprises:
generating a presentation string (558) of the child content asset object by performing a second template execution operation on the child content asset object, the second template execution operation being specified by the second template module; and
a presentation string of the child content resource object is included in the first presentation string (506).
7. The method of claim 1, further comprising:
storing the first template module within a cache at the client device; and
presenting a second resource, wherein presenting the second resource comprises:
downloading a second data set (454) comprising at least one second content resource object;
determining that the first template module corresponds to the second content resource object (460);
retrieving the first template module (464) from the cache; and
generating a presentation string (466) of the second content resource object by performing a template execution operation of the first template module on the given content resource object.
8. A computing device implemented method comprising:
executing a content generation script, wherein executing the content generation script causes the computing device to send a request for a data set;
downloading the data set to a computing device, the data set including a plurality of content resource objects;
downloading template modules (206) corresponding to the plurality of content resource objects;
generating a presentation string of the plurality of content resource objects by performing an execution operation (500) on the plurality of content resource objects, the template execution operation being specified by a template module corresponding to the plurality of content resource objects; and
an interface (600) is presented to a user of the computing device by presenting the presentation string.
9. The method of claim 8, further comprising:
sending a resource request to a server system (102), the resource request requesting the interface.
10. A computing device implemented method, the method comprising:
sending a resource request (402) to a server system, the resource request requesting a copy of a web page;
receiving base resource data (404) from the server system in response to the resource request, the base resource data including a content generation script;
executing the content generation script (406), the content generation script causing the computing device to:
downloading a data set (454) comprising a plurality of content asset objects belonging to a plurality of content asset object types;
a download schema (458) that specifies content resource objects allowed by the data set, the schema further mapping content resource object types to template modules;
mapping the content resource object types to template modules based on the schema, identifying (460) template modules corresponding to the plurality of content resource objects;
for each of the plurality of content resource objects, generating a presentation string (466) of the content resource object by performing a template execution operation of a template module corresponding to the content resource object; and
the presentation string (408) is presented to present the web page.
11. A computing device implemented system, comprising:
means for executing a content generation script, wherein executing the content generation script causes the computing device to send a request for a data set;
means for downloading the data set to a computing device, the data set comprising a plurality of content resource objects;
means for downloading template modules (206) corresponding to the plurality of content resource objects;
means for generating a presentation string of the plurality of content resource objects by performing an execution operation (500) on the plurality of content resource objects, the template execution operation being specified by a template module corresponding to the plurality of content resource objects; and
means for presenting an interface (600) to a user of the computing device by presenting the presentation string.
12. The system of claim 11, further comprising:
means for sending a resource request to a server system (102), the resource request requesting the interface; and
means for executing, in response to the resource request, a content generation script (450) included in underlying resource data received by the computing device, the content generation script causing the computing device to: downloading the data set and generating the presentation string.
HK12112657.5A 2010-10-20 2012-12-07 Templates for displaying data HK1171838B (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US40506710P 2010-10-20 2010-10-20
US61/405,067 2010-10-20
US13/173,313 US10210260B2 (en) 2010-10-20 2011-06-30 Templates for displaying data
US13/173,313 2011-06-30

Publications (2)

Publication Number Publication Date
HK1171838A1 HK1171838A1 (en) 2013-04-05
HK1171838B true HK1171838B (en) 2016-09-15

Family

ID=

Similar Documents

Publication Publication Date Title
US10817516B2 (en) Result types for conditional data display
CA2602852C (en) Method and apparatus for customizing the display of multidimensional data
US11030259B2 (en) Document searching visualized within a document
US8584009B2 (en) Automatically propagating changes in document access rights for subordinate document components to superordinate document components
US9235636B2 (en) Presenting data in response to an incomplete query
US10275538B2 (en) Name hierarchies for mapping public names to resources
US20080201645A1 (en) Method and Apparatus for Deploying Portlets in Portal Pages Based on Social Networking
US12339813B2 (en) Embedded folder views
US20230325353A1 (en) Systems and methods for folder-based content management / data storage system
US20170097946A1 (en) Method and apparatus for saving search query as metadata with an image
US8458180B2 (en) Information exploration
AU2022228142A1 (en) Intelligent change summarization for designers
US20240104141A1 (en) Document searching systems and methods
WO2025006253A1 (en) Universal search indexer for enterprise websites and cloud accessible websites
US8578268B2 (en) Rendering electronic documents having linked textboxes
US11836212B2 (en) Systems and methods for rendering interactive web pages
HK1171838B (en) Templates for displaying data
US20240419748A1 (en) Adaptable embedded search engine functionality
CN107491451A (en) A kind of web site collection method, system and browser