The application claims the priority from Israel Patent Application No. 158282, “Configuration Setting”, the disclosure of which is incorporated herein by reference.
FIELD OF THE INVENTION
The present invention relates to configuration settings, for example for transformation of HTML documents.
BACKGROUND OF THE INVENTION
HTTP content, such as, HTML or XML pages (web pages) are presented to users by a client side web browser, such as Microsoft Internet Explorer and Mozilla. HTTP content includes elements, such as, text and pictures. Some browsers may regard HTTP content (such as HTML pages or XML pages) as a tree of elements.
Performing transformations on HTTP content results in modified HTTP content (modified web pages). The modified content may include changes only to the appearance of the HTTP content. Methods and software, to perform the transformations, have been reported in the art.
Various software tools such as Microsoft Front page may be used to modify a web page before it is placed in a web site for download.
An HTTP intermediary, such as an HTTP-proxy or a transformation proxy, can perform web page transformations. An HTTP-proxy is often used for interfacing web sites with a client web browser. An example of an HTTP-proxy is described in http://www.ietf.org/rfc/rfc2616.txt
Several web browsers, for instance, Microsoft Internet Explorer, support creation of web pages. Attributes which may be set include modifying colors, fonts, hyper-links, and pictures. There are advantages to allow a user to create web pages using the same browser used to present the web pages, rather than using special tools.
The MSHTML-Editing-Component of Microsoft Internet Explorer described in http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/editing/mshtmleditor.asp can be used to define an element or a plurality of elements as editable.
SUMMARY OF THE INVENTION
An aspect of some embodiments of the invention relates to defining changes to be applied to electronic content, in which the content is modified using a WYSIWYG editor and then the modifications are applied to a subsequent requester of the content.
In an exemplary embodiment of the invention, the method of defining changes does not require installation of special software at a user computer. Optionally, client-side code, such as Java script, Flash or Java may be used. Optionally, however, the code is selected so that a user with standard security settings is not required to approve of the execution of the software. In an exemplary embodiment of the invention, neither a client nor a server needs to make changes.
Optionally, ActiveX is used even though user authorization is required. In an exemplary embodiment of the invention, only client side code which does not have a danger of damaging the user computer is used. For example, code that executes in a sandbox is used, which machine code possibly even if protected, is not allowed.
In an exemplary embodiment of the invention, the user computer uses a standard browser for defining changes.
In an exemplary embodiment of the invention, changes are stored at an intermediary. Optionally, such an intermediary serves for authorization and/or other functions. In an exemplary embodiment of the invention, special editing software executes on the intermediary and its display is piped to the user computer.
In an exemplary embodiment of the invention, a user modifies electronic content to suit his desires and code, for example downloaded code or code at the intermediary, analyses the changes, for example by comparing them to an un-edited version, to determine customization definitions. Optionally, a user can override these automatically derived definitions.
In an exemplary embodiment of the invention, customization definitions include spatial or logical areas of the content to which rules will be applied.
In an exemplary embodiment of the invention, different types of translation are applied to different parts of the document.
In an exemplary embodiment of the invention, a hierarchical object defining language, such as XPath is used to define what elements of a hierarchical electronic content is to be modified. Optionally, An XPath expression is defined automatically based on a selection by a user or based on the object that the user modified.
An aspect of some embodiments of the invention relates to supporting a non-web graphical application for editing at a client computer which the application executes at a remote location. In an exemplary embodiment of the invention, a viewer is provided at the client computer and the display of the application is forwarded to the client computer. Optionally, the viewer does not require installation and/or user acquiescence, if standard security settings are used. Optionally, the usage of the application is transparent to the user, except for the actual editing.
In an exemplary embodiment of the invention, the application is executed automatically when a user edits a document which is not originating at the remote location. Optionally, when a user edits a page obtained from a server, the application is executed to act on a copy of the page.
There is thus provided in accordance with an exemplary embodiment of the invention a method of defining customization for electronic content retrieved over an electronic connection, comprising:
(a) retrieving electronic content from a remote server to a local client;
(b) editing the content at the local client by a user using a WYSIWYG editor, wherein said editor is a standard software used for displaying of content and wherein said editing does not require installation of software requiring user authorization; and
(c) automatically generating at least one customization definition based on said editing, said customization definition suitable for automatic applying to said content.
Optionally, said retrieving uses an intermediary apparatus.
In an exemplary embodiment of the invention, said intermediary is an HTTP intermediary and wherein said content is a tagged data file. Optionally, said tagged data file is in a self-describing language.
In an exemplary embodiment of the invention, said language is a hyper-text mark-up language.
In an exemplary embodiment of the invention, said editor comprises an internet browser.
In an exemplary embodiment of the invention, automatically generating comprises detecting changes in said content caused by said editing, after said editing is preformed. Optionally, detecting changes comprises detecting changes using a hierarchical comparison of the electronic content before and after the editing.
In an exemplary embodiment of the invention, said intermediary comprises a proxy.
In an exemplary embodiment of the invention, the method comprises allowing of said editing by said intermediary. Optionally, said allowing comprises marking at least some of said content as editable. Alternatively or additionally, said allowing comprises adding at least one control to said content to facilitate at least one of editing and customization definition. Alternatively or additionally, said allowing comprises adding at least one client side code module to said content to facilitate at least one of editing and customization definition.
In an exemplary embodiment of the invention, said customization definitions define a spatial area to be customized.
In an exemplary embodiment of the invention, the method comprises overriding at least one automatically generated customization definition by said user.
In an exemplary embodiment of the invention, said editing comprises editing without typing human understandable words.
In an exemplary embodiment of the invention, said editing comprises editing by selection among choices.
In an exemplary embodiment of the invention, the method comprises manually defining at least one parameter of a customization definition. Optionally, said defining comprises defining different types of translation for different parts of said content.
In an exemplary embodiment of the invention, said overriding comprises requiring an exact match of an element of said content to a definition, for a customization to be applied.
In an exemplary embodiment of the invention, said overriding comprises allowing a match other than a one-to-one match to a definition, for a customization to be applied.
In an exemplary embodiment of the invention, a customization definition is defined by a context in said content. Optionally, said context is an expression defining elements in said content to be part of the context. Optionally, said expression is an hierarchical expression. Optionally, said expression is an XPath or XPath-like type expression. Optionally, said expression is generated automatically. Optionally, said expression is generated in response to an editing activity.
In an exemplary embodiment of the invention, said expression is generated in response a marking by a user.
Optionally, a context is defined based on a spatial location, during a display of the content, of a label associated with an element to be customized. Optionally, an association of a label and an element is identified using a browser-internal script which finds spatial positions of the labels and spatial positions of nearby elements.
In an exemplary embodiment of the invention, said intermediary authorizes said user to perform said editing.
In an exemplary embodiment of the invention, said intermediary executes an editing program for editing an element of said content, a display of said program being provided to said client an input from said client passed to said program. Optionally, said intermediary limits access of said user to said intermediary via said editing program.
In an exemplary embodiment of the invention, the method comprises saving at least one customization definition for later use. Optionally, the method comprises applying said at least one definition to content requested by a second user. Optionally, the method comprises deciding at least one property of said applying based on information associated with a request by said second user. Optionally, said deciding comprises deciding if to apply a customization definition.
In an exemplary embodiment of the invention, said deciding comprises examining a cookie at said second user. Optionally, said content to which said at least one customization definition is applied is dynamic content including at least one element whose content changes over time.
In an exemplary embodiment of the invention, said applying comprises determining a context. Optionally, determining a context comprises evaluating an XPath or XPath-like expression.
In an exemplary embodiment of the invention, determining a context comprises determining spatial positions of labels associated with an element to be modified based on the customization definitions.
There is also provided in accordance with an exemplary embodiment of the invention, a method of editing content, comprising:
(a) requesting content from a first location;
(b) executing an editing application at a second location; and
(c) carrying out the editing at a third location, using a viewer for viewing said editing application, without installing software at the third location other than said viewer. Optionally, said second location comprises an HTTP-intermediary. Optionally, said viewer comprises a browser.
In an exemplary embodiment of the invention, said editing application is automatically executed when a user at said third location attempts to edit an element suitable for editing by said application.
In an exemplary embodiment of the invention, said application is executed in a manner which at least partially protects said HTTP-intermediary from access by said user.
There is also provided in accordance with an exemplary embodiment of the invention, an HTTP intermediary, comprising:
(a) an HTTP connection to a server;
(b) an HTTP connection to a user;
(c) a page modifying module operative to add at least one of code and controls to a page requested by said user from said server, said code or control adapted to facilitate at least one of editing and customization definition. Optionally, the intermediate comprises a page transformer adapted to modify retrieved pages on the fly based on saved customization definitions.
There is also provide din accordance with an exemplary embodiment of the invention, a browser having downloaded thereto at least one client side code, said client side code adapted to at least one of allow editing of content and determine changes due to editing of content.
BRIEF DESCRIPTION OF THE FIGURES
Non-limiting embodiments of the invention will be described with reference to the following description of exemplary embodiments, in conjunction with the figures. The figures are generally not shown to scale and any sizes are only meant to be exemplary and not necessarily limiting. In the figures, identical structures, elements or parts that appear in more than one figure are preferably labeled with a same or similar number in all the figures in which they appear, in which:
FIG. 1 shows a configuration in which some embodiments of the invention may be carried out, in accordance with an exemplary embodiment of the invention;
FIG. 2 is a flow chart of an embodiment of the present invention;
FIGS. 3A and 3B are showing of a display used for configuration settings, in accordance with an exemplary embodiment of the invention; and
FIGS. 4A-4C show (4A) an original page displayed by a normal user, (4B) during editing by an authorized user, and (4C) after applying the defined transformations to the page when accessed by the normal user above, according to an exemplary embodiment of the invention.
DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
The invention, in some embodiments thereof, generally relates to automatically transforming an electronically accessed document, for instance HTML pages, before the documents are presented to a user by a client browser. Optionally, an HTTP intermediary, such as, a transformation proxy performs the transformations. Optionally, the transformations are performed according to customization definitions. The term proxy is sometimes used instead of the term “intermediary”.
The term document refers to any document that can be presented by a web browser (or other display software, as described below), and may include, for example, web pages, HTML pages, and XML pages. In some cases the term “web page” is used interchangeably with the term “document”.
FIG. 1 shows a configuration 100 for carrying out some embodiments of the invention. An end user 102 using a web browser 103 requests a web page (e.g., using a URL) from a web server (110). Optionally, this request is handled by an HTTP intermediary (106), which can be for example a proxy server. As well known in the art, there can be various additional intermediate devices, which are not shown, for example, routers, cache and firewalls. The web server with the desired web page sends the page back to the HTTP intermediary (106). At HTTP intermediary 106 the page can be automatically modified according to stored customization definitions (107). Optionally, HTTP intermediary 106 serves only as a transformation proxy. Alternatively, it may have additional functions (such as caching, compression and encryption). Optionally, the methods described herein is used to define parameters for such additional functions, for example setting an allowed compression quality degradation or using a dialog box for entering encryption parameters.
The following description focuses on preparing a plurality of customization definitions by an authorized user. Various exemplary authorization methods are described below. In some embodiments, no authorization process is provided and any user may be considered authorized. When an authorized user connects to HTTP intermediary 106, the authorized user receives modified web pages in which elements were optionally made automatically editable by the HTTP intermediary and also new elements, such as buttons, are added. This will allow the authorized user, but not a non-authorized user, to create customization definitions, as will be described below. Various examples of customization definitions will be described below.
Optionally, the edit button is used to selectively allow editing. Optionally, several edit buttons are provided. The authorized user may select the “edit” button, and this will enable elements to become editable. After the user finishes editing the page he may save the edited page to the intermediary or locally by selecting a suitable button. Editing elements is done in a “what you see is what you get” (WYSIWYG) manner. The result of the editing done by the authorized user may include customization definitions that may be saved at the HTTP intermediary. In some embodiments, what is saved is the modified page.
FIG. 2 is a flow chart 200 of an exemplary embodiment of the present invention. Acts 202-212 relate to customization definition and acts 214-220 relate to modification of a page during delivery.
At 202, an authorized user requests a page.
At 204, intermediary 106 retrieves the page. Optionally the received page or elements of it are saved at the computer the editing software runs. In an exemplary embodiment of the invention, intermediary 106 forwards the request to server 110, optionally as is and optionally modified, receives the page from server 110, optionally applies existing customizations and adds an editing GUI as described herein. Optionally, the page is retrieved from a local cache.
At 206, intermediary 106 modifies the retrieved page, for example by adding buttons, scripts and/or making elements editable.
At 208, the authorized user modifies the page and optionally views the results in a WYSIWYG manner. In an exemplary embodiment of the invention, the modification is by simple editing of the page in which the authorized user can make one or more changes in the page until the page is “correct”.
At 210, the authorized user saves the page.
At 211, intermediary 106 optionally generalizes the modifications made by the authorized user into customization definitions which are optionally used for other pages.
At 212, intermediary 106 saves the modified page and/or the definitions. Optionally, the definitions are associated with certain users, for example, certain IP addresses, geographical locations or user profiles.
Later, at 214, a regular user requests the page.
At 216, the requested page is retrieved.
At 218, intermediary 106 optionally modifies the page according to the customization definitions.
At 220, the modified page is sent to the user.
Each of the acts in FIG. 2 is optional. In some embodiment of the present invention certain acts will be carried out, and in other embodiment of the present invention other acts from acts 202-220 will be carried out.
Exemplary Usage of Customization
In an exemplary embodiment of the invention, configuration 100 is used when there exist a web site with web content provided in one language and it is desired that a group of users not fluent in that language be able to access the content. The use of intermediary 106 allows this to be accomplished even without any changes at the web server 110. Optionally, the generator of the original content indicates which pages or parts of pages should be modified and/or are allowed to be modified. During translation, it may be necessary to make other changes in a page, for example, to match a cultural logic of a projected user or to accommodate different word sizes.
In an exemplary embodiment of the invention, intermediary 106 analyses retrieved web pages to determine which elements are amenable for customization, for example text element. Alternatively, substantially any element may be allowed for customization. Alternatively or additionally, parts to be customized may be pre-indicated.