US20060156220A1 - System and method for managing dynamic content assembly - Google Patents
System and method for managing dynamic content assembly Download PDFInfo
- Publication number
- US20060156220A1 US20060156220A1 US10/839,109 US83910904A US2006156220A1 US 20060156220 A1 US20060156220 A1 US 20060156220A1 US 83910904 A US83910904 A US 83910904A US 2006156220 A1 US2006156220 A1 US 2006156220A1
- Authority
- US
- United States
- Prior art keywords
- link
- content
- document
- links
- dcam
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/134—Hyperlinking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
Definitions
- This invention relates generally to a system for creating, linking, and assembling electronic content. More specifically, it relates to a system and method for dynamically assembling content from different sources.
- content may be generated and edited using a variety of editors, such as Microsoft Word, Web editors (e.g., Arbortext's Contributor), and Extensible Markup Language (XML) editors (e.g., Arbortext's Epic Editor).
- editor such as Microsoft Word, Web editors (e.g., Arbortext's Contributor), and Extensible Markup Language (XML) editors (e.g., Arbortext's Epic Editor).
- PDF Portable Document Format
- HTML Hypertext Markup Language
- WML Wireless Markup Language
- PostScript PostScript
- Content may also be published to compiled formats such as HTML-Help, MS Reader, formats for personal digital assistants (PDAs), and formats for mobile phones.
- the present invention is designed to support the defining, creating, modifying, storing, reusing, validating, resolving, and exchanging multiple link types.
- Each link or link collection may have multiple audiences defined.
- Each link or link collection may have multiple media-appropriate, output-resolution filters.
- Each link or link collection may be validated for the given contexts of media format, audience, compound document usage, and document or sub-document component version.
- FIG. 1 illustrates an overview of the DCAM steps of the Arbortext DCAM system in accordance with one embodiment of the present invention.
- FIG. 2 illustrates a first embodiment of the architecture of a DCAM system.
- FIG. 3 illustrates a second embodiment of the architecture of a DCAM system.
- FIG. 4 illustrates a diagram of a server diagram in accordance with one embodiment of the present invention.
- FIG. 5 illustrates schema implemented by a database in accordance with one embodiment of the present invention.
- FIG. 6 illustrates a diagram of the client extensions in accordance with one embodiment of the present invention.
- FIG. 7 illustrates a screen shot of the Link to Current Document version of an Insert Link dialog in accordance with one embodiment of the present invention.
- FIG. 8 illustrates a screen shot of the Link to Repository version of an Insert Link dialog in accordance with one embodiment of the present invention.
- FIG. 9 illustrates a screen shot of the Link to Web Object version of an Insert Link dialog in accordance with one embodiment of the present invention.
- FIG. 10 illustrates a screen shot of an Modify Link Properties dialog in accordance with one embodiment of the present invention.
- FIG. 11 illustrates a screen shot of a Link Explorer dialog in accordance with one embodiment of, the present invention.
- FIG. 12 illustrates a screen shot of an Apply Profiles dialog in accordance with one embodiment of the present invention.
- FIG. 13 illustrates a screen shot of an Apply Profile Group dialog in accordance with one embodiment of the present invention.
- FIG. 14 illustrates a screen shot of a Search dialog in accordance with one embodiment of the present invention.
- FIG. 15 illustrates a screen shot of an Export Linkbase dialog in accordance with one embodiment of the present invention.
- FIG. 16 illustrates a screen shot of a Profile Filter dialog in accordance with one embodiment of the present invention.
- FIG. 17 illustrates a screen shot of a Profile Filter Group dialog in accordance with one embodiment of the present invention.
- FIG. 18 illustrates a diagram of creating a link definition in accordance with one embodiment of the present invention.
- FIG. 19 illustrates a diagram of creating a link definition in accordance with one embodiment of the present invention.
- FIG. 20 illustrates a diagram of creating a link definition in accordance with one embodiment of the present invention.
- FIG. 21 illustrates a diagram of creating an ID/IDREF link in accordance with one embodiment of the present invention.
- FIG. 22 illustrates a diagram of linking internally in accordance with one embodiment of the present invention.
- FIG. 23 illustrates a diagram of IDing an element in accordance with one embodiment of the present invention.
- FIG. 24 illustrates a diagram of inserting a link reference in accordance with one embodiment of the present invention.
- FIG. 25 illustrates a diagram of creating an outbound link in accordance with one embodiment of the present invention.
- FIG. 26 illustrates a diagram of browsing/selecting a starting resource in accordance with one embodiment of the present invention.
- FIG. 27 illustrates a diagram of browsing/selecting an ending resource in accordance with one embodiment of the present invention.
- FIG. 28 illustrates a diagram of inserting a link repository reference in accordance with one embodiment of the present invention.
- FIG. 29 illustrates a diagram of inserting a link repository reference in accordance with one embodiment of the present invention.
- FIG. 30 illustrates a diagram of composing with a DCAM system in accordance with one embodiment of the present invention.
- FIG. 31 illustrates the functioning of a link resolution filter in accordance with one embodiment of the present invention.
- FIG. 32 illustrates the configuration components for linking, data merging, and profiling in accordance with one embodiment of the present invention.
- FIG. 33 illustrates a diagram of the configuration components in accordance with one embodiment of the present invention.
- FIG. 34 illustrates the overall flow of inserting data in a document using data merge in accordance with one embodiment of the present invention.
- the present invention is capable of dynamically managing content linking and assembly.
- Dynamic Content Assembly Management or “DCAM,” is generally the process of supporting and enabling the creation, transformation and management of relationship information between content resources and dynamic assembly of content based on these relationships.
- DCAM Dynamic Content Assembly Management
- a DCAM system provides a means for defining, creating, modifying, linking, reusing, validating, resolving, and assembling dynamic content using an efficient and automated process.
- Dynamic Content Assembly can be divided into many functional areas such as: embedding traversal points such as hyperlinks; embedding content from one resource into another resource; transforming content to a representation in the desired data format; filtering content based on meta-information such as the target audience for a specific portion of the content; and transforming the content to a representation with the desired style.
- the DCAM System (or Link Management System) of the present invention is an application and underlying database, which supports the creation, transformation and management of relationship information between resources. Links can serve multiple purposes such as:
- link as used herein, is meant generally and includes not only hyperlinks but also “include”, “fileref”; or any other means for embedding text or content within a document.
- link management in the DCAM system supports all types of dynamic content assembly management.
- Extensible Markup Language provides a useful, human and machine readable, standardized syntax for representing content, metadata, links, queries, transforms, and configuration information, which permits simplified processing of dynamic content.
- Document content prose
- W3C Standards such as XML Linking Language (Xlink), XML Path Language (XPath), and Extensible Stylesheet Language (XSL) can be leveraged to enable application programmers and users with a standard, application interchangeable syntax.
- PDF Portable Document Format
- HTML-Help and MS Reader formats for palm devices, formats for cell phones, and/or exchanged with partners and customers in a source format such as XML.
- Each media type has its own functional capabilities for representing dynamic content. For example a print document represents a navigation link such as ‘See also “The Definitive Guide,” chapter 13, paragraph 12’ while an HTML file might have a hyperlink embedded in the phrase “Get More Information” to a specific paragraph in another HTML file.
- a link For each media format the “link” needs to be represented natively for that format.
- more complex links may require dynamic HTML using a scripting language such as JavaScript.
- the same cross reference may appear as “Contact Arbortext, Inc.” or alternatively “See Arbortext, Incorporated's web site at www.arbortext.com”
- a DCAM system enables resolving links appropriately for each media format.
- links may be managed using the DCAM system of the present invention: simple links (also called outbound or navigation links), inbound links, graphic links, extended links, taxonomy links, object to object links, links for use with other applications, links wherein the application decides the traversal means, third party links, related information links, and media object links.
- simple links also called outbound or navigation links
- inbound links graphic links
- extended links extended links
- taxonomy links object to object links
- object to object links links for use with other applications
- links wherein the application decides the traversal means third party links, related information links, and media object links.
- a simple link associates exactly two resources, one local and one remote, with an arc going from the former to the latter.
- a simple link is always an outbound link (going away from the linking element).
- An outbound link is used when an explicit location within an object references outside the object. With this type of link, the profiling of the link determines the resolution. Conversely, if the arc of the link were to start at a remote resource and end at a local resource, the link is inbound. An inbound link relationship is maintained entirely within link manager.
- a graphic link is used when an explicit location within an object references to different graphics based on profiling. With this type of link, the profiling of the link determines the resolution.
- An extended link associates an arbitrary number of resources. The participating resources may be any combination of remote and local.
- a taxonomy link associates information with a subject taxonomy.
- Taxonomy links are used to associate topics with subjects and categories of subjects. This allows improved searching for appropriate topics both for specific subjects such as cardiac infarction and general subjects such as heart disease.
- a third party link is a link wherein neither the starting resource nor the ending resource is local.
- Related information links are used when an object does not explicitly reference another object but a relationship exists. This type of link is a third party arc entirely maintained in the link repository.
- the links provided are in relation to a given resource.
- Media object links are frequently context sensitive links. Resolution may be document dependent, output dependent or language dependent.
- XML further simplifies managing a document as a hierarchical collection of sub-document level components. These collections are often referred to as “compound documents.” For example, a cookbook is made of 20 recipe chapters, but each recipe chapter is stored individually. A given recipe chapter may be reused in numerous books. Creating and managing a link in a sub-document component which may be reused in multiple contexts is difficult. If these documents and components are managed in a content management system, they may also be versioned.
- the present invention provides a DCAM system that may be used to enable the managing and resolving of links for different document contexts and different document versions.
- the DCAM system of the present invention may be used to publish alternate views of a document targeting different audiences.
- a catalog may contain different prices for customers, partners, and employees.
- the catalog may be different for North America, Europe, and Asia., and may also differ when in print versus web format. Making links work in all of these contexts is often handled by manual processes and redundant copies of the document content.
- the present invention enables the assembly of content dynamically to suit the needs of a given audience.
- Documents may be a combination of textual content created by authors and database content derived from queries performed against a database application.
- the invention in providing a DCAM system, provides mechanisms for managing the database derived content the same way that the textual content is managed. This allows the database derived content to be profiled for different audiences and to be published appropriately for different output media formats
- the present invention supports reuse, repurposing and dynamic assembly.
- This includes multichannel publishing such as output sensitive linking, information reuse such as context sensitive linking, dynamic content such as inclusion and data merge, and content supply chain such as web services.
- Performing link management using the present invention has several benefits.
- a single link may be managed with different output resolutions—thus providing simplified support for multichannel publishing. Further, a single link may be managed with different resolutions based on different contexts. This enables template-based authoring and reusing rather than duplicating business data with context sensitive links.
- Linked content may be dynamically included based on context and can include or reference the content.
- a web services interface supports information exchange across the enterprise and a Simple Object Access Protocol (SOAP) Application Program Interface (API) (discussed more fully below) is provided for manipulating a link repository.
- SOAP Simple Object Access Protocol
- API Application Program Interface
- the link manager manages component or linking relationships internal to an object, across objects, across versions, across publishing cycles, and across supply chains.
- FIG. 1 illustrates an overview of the DCA steps of one embodiment of a DCAM (or link management) system.
- the DCAM system In order to run a dynamic content process, the DCAM system must manage and interpret configuration information for each process.
- the dynamic content process is initiated at block 10 with a request to parse a document.
- the request may be initiated by determining an access point, such as an end point of a relationship arc (described above).
- the end point of the relationship arc may be either the start or the end of the relationship arc.
- links are found at block 12 .
- Additional data regarding the link is fetched at block 14 during link resolution. For example, link profiling (explained more fully below) may be performed.
- the link type is checked at block 16 .
- the link is a navigation link
- updated markup is inserted at block 18 based on the additional data. If the link is not a navigation link, determination is made, at block 20 , of whether the link is a simple embedding of content or a graphic. If the link is a simple embedding of content or a graphic, the actual embed operation happens at block 22 . If the link is not a simple embedding of content or a graphic, the link type is an assembly operation at block 24 and the actual complex assembly operation happens at block 26 . Thus, the contents of the link is assembled dynamically based upon rules. Once the assembly operation is performed, the content of the link is available from the access point.
- the DCAM system of the present invention also permits incorporating references to external data sources using data merge (described more fully below) wherein the references are then periodically resolved.
- managing the dynamic assembly of content involves determining an access point or end point of a relationship arc or link.
- the arc leads from the access point to contents for dynamic assembly.
- contents for dynamic assembly For example, a hyperlink leads to a url.
- the content to which the arc leads may be verified based upon rules. Once the appropriate relationship is verified, the content is made available from the access point.
- FIG. 2 illustrates the architecture between an example DCAM client application and a DCAM server application.
- the example DCAM client application shown is Epic Editor 40 .
- a set of DCAM Client Extensions 30 provide additional user interfaces and programming logic to the client application.
- a DCAM Repository 48 is shown including an Epic E-Content Engine 64 , a Relational Database 65 , DCAM Server Extensions 63 , and a SOAP Transport Layer 34 . Operations requiring interactions with the DCAM Repository 48 first call into the client SOAP Transport Layer 32 . This communicates with the corresponding SOAP Transport Layer 34 inside the DCAM Repository 48 . The interactions are then processed by the DCAM Server Extensions 63 which extend the Epic E-content Engine 64 . These same extensions 63 use a Relational Database 65 for long-term storage and retrieval of information.
- a link management application generally performs certain functions. These functions typically require the application to include means to create, modify, remove, store, configure the behavior of, validate, resolve and exchange link information with other applications.
- the architecture of a DCAM System in accordance with a first embodiment of the invention is shown in FIG. 2 .
- a diagram of an alternate architecture of a DCAM System of the present invention is shown in FIG. 3 .
- the DCAM System includes: an Epic Editor Authoring User Interface 40 , a DCA Repository Authoring User Interface 42 , a DCA Configuration 44 , a Configuration Interface 46 , a DCA Repository 48 , a DCA Repository Administrator Interface 50 , a DCA Repository SDK 52 , a Linkbase 54 , a DCA Resolver 56 , a DCA Resolver SDK 58 , and a DCA Validator 60 .
- an Epic Editor Authoring User Interface 40 a DCA Repository Authoring User Interface 42
- a DCA Configuration 44 a Configuration Interface 46
- a DCA Repository 48 e.g., a DCA Repository Administrator Interface 50
- DCA Repository SDK 52 e.g., a DCA Repository SDK 52
- Linkbase 54 e.g., a DCA Resolver 56 , a DCA Resolver SDK 58 , and a DCA Validator 60 .
- the Epic Editor Authoring User Interface 40 is a user interface used within the Epic Editor environment. It is an interface for creating, modifying, removing and managing linking information. Generally, operations performed by an author within the editing environment are exposed through this interface.
- the DCA Repository Authoring User Interface 42 is a user interface for creating, modifying, removing and managing linking information directly in the link repository. Generally, operations performed by an author within this environment are exposed through this interface.
- the DCA Configuration 44 is the configuration information for the DCA system based on a specific data model.
- the focus of this application is configuration rather than customization. To this end, anything which can be abstracted to this configuration generally should be.
- the Configuration Interface 46 is a simple user interface for inputting and modifying configuration information for the DCA system based on a data model.
- the DCA Repository 48 is a database application for storage, search and retrieval of the link information.
- the DCA Repository Administrator User Interface 50 is the user interface for performing IT administration functions on the DCA Repository 48 .
- the DCA Repository SDK 52 is documented Application Program Interface (API) for programmatically communicating with the DCA Repository 48 .
- API Application Program Interface
- the Linkbase 54 is an Xlink compliant linkbase XML document. These documents may be used to export portions of the DCA Repository 48 or to import modifications into the DCA Repository 48 .
- the DCA Resolver 56 is a filter in the content pipeline for resolving linking information.
- the DCA Resolver SDK 58 is documented API of the Java methods (or other) used in the DCA Resolver 56 .
- the DCA Validator 60 is a validation program to verify the validity of link information.
- the DCA server is a system designed to manage linking information externally from documents, while still maintaining actual links as if they solely exist within documents.
- the DCA server provides late-binding linking, in a variety of formats. Using this, a link may be formatted into a variety of link syntaxes at publish time.
- the DCA system comprises three major components: a server tier, a transporttransport tier, and a client tier.
- the design of the DCA system is flexible, enabling bindings to be made to any database.
- the overall language used in the design of the DCA system is Java.
- the system may be built for an Oracle Platform. Alternately, any other relational database platform may be used.
- the DCAM System includes a Server Tier, a Transport Tier, and a Client Tier.
- the server tier of the DCAM System comprises a database bound to a server application.
- the server application contains logic necessary to interact with the database, and exposes a full API. All database access is performed through the server API.
- the server component is central to the DCA System.
- the server component is responsible for storing and managing all linking information within the system.
- the server component comprises a database binding, classes representing database objects, and an API that connects the components, in addition to providing a simple way to interface with the server.
- a server diagram is provided at FIG. 4 .
- XML text 61 is input into a Composition Pipeline 62 .
- the server component may be customized by writing custom applications that use the Server Extensions 63 to add functionality.
- the Server Extensions 63 provides multiple classes that are programmatic representations of database objects and their corresponding collection classes.
- the Server Extensions 63 may be tied to the Epic E-content Engine 64 and Relational Database 65 . Information can then be output as print output 66 , web output 67 , or other outputs 69 .
- the Server component is built on top of a SQL compliant database.
- FIG. 5 illustrates schema implemented by the database to properly store the linking information.
- the database schema contains the tables and relationships necessary to store and manage links, resources, resource pairs, folders, and their associated properties and metadata.
- the links table 70 contains all links in the system. Each link includes one or more titles (as it has multilingual support) and may have metadata properties associated with it.
- the link_metadata table 72 contains a list of metadata properties related to the links.
- the link_title table 74 contains one or more names for each link. Again, links may have multiple titles defined, each in a different language.
- the link_folders table 76 contains a hierarchical listing of folders used to categorize and classify links.
- the link_folder_metadata table 78 contains metadata properties that are related to link folders.
- the link_folder_title table 80 contains titles that are directly related to each link folder. Multiple titles may be specified, each in a different language.
- the resources table 82 contains a listing of resources within a repository. Each addressable object (documents, element, etc.) has a resource definition specified in this table. Resources may be addressed by URI and when URIs are stored, they are broken down into their component atoms. All resources that are considered top-level documents have an is Document flag set.
- the resource_metadata table 84 contains metadata properties that are related to the resources.
- the resource_title table 86 contains titles that are directly related to each resource. Multiple titles may be specified, each in a different language.
- the resource_folders table 88 contains metadata properties that are related to resource folders.
- the resource_folder_title table 90 contains titles that are directly related to each resource folder. Multiple titles may be specified, each in a different language.
- the resource_pairs table 92 contains a listing of all resource pairs in the system.
- Resource pairs are components of a link that comprise a starting and ending resource (both of which are relationships to the resource table), as well as information about the role and traversal constraints. Resource pairs may be related to profiles to scope their usage. Resource pairs are bound to links, and upon deletion of a link, that deletion will be cascaded to it's resource pairs.
- the properties table 94 maintains a listing of XML attributes pertinent to each resource pair (such as graphic size, etc.) that are placed in markup at resolution time.
- the profiles table 96 contains profiles defined within the system. Profiles are defined on a per doctype basis and may span multiple doctypes. Profiles are applicability attribute values that, when references, set the usage and scope of a resource pair.
- the resource_pair_profile_xref table 98 contains relationships of resource pairs to profiles. A resource pair may be related with as many profiles as desired.
- the named_profiles table 100 contains a mapping of names to profiles. This may be used to create a grouping or categorization of profiles. Further shown are a link_folder_metadata table 106 , a link_folders table 108 , a link_title table 110 , and a link_folder_title table 112 .
- a configuration table 104 may be provided containing system configuration information relevant to the DCAM server.
- the transport tier of the DCAM System provides the communication link between the client tier and the server tier.
- the transport tier facilitates client/server communications.
- the format for transport requests is SOAP (Simple Object Access Protocol).
- the transport layer may be referred to as a SOAP transport layer.
- Each SOAP request is considered a transaction boundary.
- transport-oriented languages such as EJB, RMI, and CORBA
- FIG. 6 expands upon FIG. 2 and illustrates the relationship between the transport layer 34 and DCAM Client Extensions 30 .
- the transport tier 34 is a SOAP aware implementation, used to enable client/server communications. Due to the simple nature of SOAP, all transactions occur through HTTP (hypertext transfer protocol).
- User Interface Code 115 goes through Scripting API 116 and/or Application API 117 .
- DCAM Client Extensions 30 are applied before the code 115 is input to the Scripting API 116 and Application API 117 .
- the Scripting API 116 and Application API 117 then output the Code 115 through the Service Interface 118 and finally to the transport layer 34 .
- the transport tier manages user sessions and transactions, by interpreting requests, executing transactions atomically, and returning those results. Each operation is performed by creating one or more data transfer objects along with a command, sending the objects and command wrapped in a SOAP request, processing the command which returns as results zero or more data transfer objects, and returning the results of the operation wrapped in a SOAP response.
- the client tier contains everything needed by users to create, delete and manage links.
- One embodiment of the client side implementation includes Epic customizations (menu items, hooks, etc.), user interfaces, and a client API that provides direct access to the server. The client API facilitates communications to the transport tier. Calls to the server are done within a transaction.
- the client component includes all classes necessary to create/submit a transaction and receive those results in the form of classes that represent server side objects.
- the client API comprises two APIs, the scripting API 116 suitable for use from scripting languages that are not object aware and the application API 117 suitable for use from languages that are object aware.
- FIGS. 7-16 illustrate specific embodiments of user interface details. These figures are intended as illustrative only and are not intended to limit the present invention.
- FIG. 7 illustrates a screen shot of an Insert Link dialog 120 for inserting a link from the current document in accordance with one embodiment of the present invention.
- the Select Target(s) From box 122 enables the user to select targets from the DCAM Repository, the Current Document, or the Web.
- the Current Document Selection is displayed in FIG. 7 .
- the Current Document Targets table 126 displays available targets in the current document. The user may select any of the targets.
- the Selected Targets table 128 lists the targets selected.
- the Display Button 130 allows the user to select the fields to display in the Selected Targets table 128 .
- the Insert button 134 allows the user to insert a link reference in the current document at the cursor location.
- the Modify button 136 launches a Modify Link Properties dialog (see FIG. 10 ) allowing the user to update the attributes of a link.
- FIG. 8 illustrates a screen shot of an Insert Link dialog 120 for inserting a link from the DCAM Repository in accordance with one embodiment of the present invention.
- the Link Name field 124 allows the user to assign a human readable name to the link.
- the Select Target(s) From box 122 enables the user to select targets from the DCAM Repository, the Current Document, or the Web.
- the DCAM Repository selection is displayed in FIG. 8 .
- the DCAM Targets table 144 is a tree control of the available targets in the DCAM Repository and allows the user to select an existing link from the Repository.
- the Selected Targets Table 128 lists the targets selected.
- the Display Button 130 allows the user to select the fields to display in the Selected Targets table 128 .
- the Modify button 136 launches a Modify Link Properties dialog (see FIG. 10 ) allowing the user to update the attributes of a link.
- FIG. 9 illustrates a screen shot of an Insert Link dialog 151 for inserting a link from the Web in accordance with one embodiment of the present invention.
- the Link Name field 124 allows the user to assign a human readable name to the link.
- the Select Target(s) From box 122 enables the user to select targets from the DCAM Repository, the Current Document, or the Web.
- the Web selection is illustrates in FIG. 9 .
- the Web Target Name field 154 allows the user to assign a human readable name to the target.
- the Web Target URL field 155 allows the user to assign a URL to locate the target resource. If the Browse button 156 is used, the URL field 155 will be populated with the location selected.
- the Browse button 156 launches a Web browser and records the URL of the currently selected page in the browser in the URL field 155 .
- the Selected Targets table 128 lists the targets selected.
- the Display button 130 allows the user to select the fields to display in the Selected Targets table 128 .
- the Modify button 19 launches a Modify Link Properties dialog (see FIG. 10 ) allowing the user to update the attributes of a link.
- FIG. 10 illustrates a screen shot of a Modify Link Properties dialog 210 .
- This dialog allows the user to modify any of the properties associated with the link.
- the Source Label field 212 allows the user to assign a label to the source resource.
- the Target Name field 214 displays the name of the target resource.
- the Target Locator field 216 displays the locator of the target resource.
- the Target XML ID field 218 displays the XML Id of the target resource.
- the Target Label field 220 allows the user to set the label of the target resource.
- the Markup Combo Box 226 allows the user to select the type of link markup represented by the link.
- the list may be prepopulated with link tags specified in the document types DCF file.
- the Profiles button 228 launches the Apply Profiles dialog (see FIG. 12 ), allowing the user to apply profiles to the link.
- FIG. 11 illustrates a screen shot of a DCAM Explorer dialog 240 .
- the DCAM Explorer permits automatic target registration and user defined folder creation. The user may choose links, resources, and data merge components. Thus, the dialog allows the user to manage links in the same manner they would manage files on a file system.
- the user may be provided with the ability to profile groups.
- the user may save and name a choice of profiles, which may later be applied to an object by selecting the named profile group, rather than requiring each choice to be selected each time.
- the user may also save and name a choice of profiles, which may later be used to designate the profiles to use for resolution purposes (such as at block 14 of FIG. 1 ) by selecting the named profile filter, rather than requiring each choice to be selected each time.
- Profile values may be added dynamically during the editing process.
- the user may define particular elements to restrict individual profiles to or from.
- the user may define element markup for profiling rather than simply attribute markup. Further, the user may define the specific order in which profile values appear.
- Hierarchical profiles may be provided to allow the user to apply a group of profiles simultaneously to an object based on selecting a containment node. Typically, the profiles are applied at the leaf level. Radio profiles may be provided. Radio profiles are mutually excusive profiles where only one choice is allowed. Profiling may be done via containment. Containment is the concept where a single profile value represents the inclusion of other lower level profiles (for example, “top secret” including “secret, classified, and unclassified”). Further, named profiles may be used (profile groups and profile filters), profiles may be restricted to or from particular elements, and logical expressions (AND, OR, NOT, EQUAL, XOR) may be included in profile filters.
- a screen shot of an Apply Profiles dialog 250 is illustrated in FIG. 12 .
- the dialog 250 permits adding new profile values, naming and saving profile selections, and supporting hierarchical and radio choice profiles.
- the Apply Profile tree control 252 shows the profile values represented as a tree control.
- the checkboxes or radio buttons allow the user to choose the profiles to apply.
- the Apply Individual Profiles radio control 254 is selected, individual profiles are displayed.
- the Apply Profile Group radio control 256 is selected, profile groups are displayed.
- the OK button 258 applies the profile values selected in the tree control to the applicable markup.
- FIG. 13 illustrates a screen shot of an Update Element Profile dialog 272 .
- the dialog allows a user to individually select profiles or to select a named profile group for updating the element profile.
- the tree control 274 shows the profile values represented by the profile groups. The user may choose the profile group to simultaneously apply all the listed values.
- the Apply Individual Profiles and Apply Profile Group radio buttons, 275 and 276 respectively, allow the user to choose the profiles to update. When the Apply Individual Profiles radio button 275 is selected, individual profiles are displayed, When the Apply Profile Group radio button 276 is selected, profile groups are displayed.
- the OK button 276 applies the profile values represented by the profile group to the applicable markup.
- a screen shot of a Search DCAM Links dialog 280 is illustrated at FIG. 14 .
- This dialog 280 allows the user to search for links based on the properties of the link itself, its resource pairs, and the starting and ending resources of those resource pairs.
- the link and resource pair properties are listed on the Link Properties tab 282 .
- the source resource properties are listed on the Source Properties tab 284 .
- the target resource properties are listed on the Target Properties tab 286 .
- the Advanced Parameters tab 288 allows users to specify additional search criteria, which can either be user defined attributed on the resource pairs or less visible properties of links, resource pairs and resources (such as DCAM key).
- Most parameters, except the Referenced/Included field 290 allow the user to specify an operator that discusses the way to test the entered values with those in the database.
- These operators include: like (the value in the object contains the given value), greater than (the value in the object is greater than the given value), less than (the value in the object is less than the given value) and equals (the value in the object is equal to the given value).
- search results are returned, they are displayed in the Search Results folder in the DCAM Explorer dialog (See FIG. 11 ).
- a screen shot of an Export Linkbase dialog 300 is illustrated at FIG. 15 .
- This dialog allows the user to export the data for all of the DCAM links in the current document, including resource pairs, source, and target resources.
- the XML file containing the link data may be referred to as a linkbase.
- a linkbase typically contains lay names, custom metadata, XML IDs, and URLs. It may be sent to a downstream process or organization so that the link information may be used outside of DCAM. Downstream applications may require link data in specific formats, and multiple linkbase templates may be installed for different formats.
- the Save As control 301 and associated Browse button 302 specify the output linkbase filename.
- the Stylesheet drop down list 303 and associated Browse button 304 select which XSL stylesheet is used to create the linkbase.
- the stylesheet determines the format of the linkbase.
- the stylesheet drop down list 303 is populated with a list of XSL for the document type that can be used for linkbase export. All .xsl files in the doctype directory are examined and the ones that include “linkbase” in their “CompositionType” list are displayed. “CompositionType” is generally specified in a PI near the beginning of the XSL file.
- the Browse button 304 allows the user to select any XSL stylesheet, regardless of whether “linkbase” is in its “CompositionType” list.
- Epic sets up a composition pipeline that includes a link filter (filters out non-DCAM markup), a link resolution filter (retrieves link data from database), and a filter for the selected stylesheet.
- a linkbase export stylesheet may be used to transform canonical DCAM link markup into desired linkbase markup.
- a screen shot of a Profile Filter dialog 308 is shown at FIG. 16 .
- the dialog 308 is used to set the profiles during resolution. The default assumption is all values are logically ANDed together.
- the user selects the Filter Group button 310 .
- the Filter Group button 310 launches the Profile Filter Group dialog (see FIG. 29 ).
- the Profile Filter Group dialog 312 is shown at FIG. 17 .
- This dialog 312 allows the user to choose a predefined named profile filter group for setting the profiles.
- These profile filter groups support complex, logical expressions such as logical conjunction, logical disjunction, logical inequivalence, logical equivalence, and logical negation.
- a link definition may either be created manually or automatically.
- any elements within the object which are IDed can automatically create a special type of link definition, called a Target, in the user interface.
- the DCF can define what elements to automatically ID and what attribute or element content to use as the name of the link target.
- the attribute to use as the ID is registered with the DCF file. If configured in this way, the application automatically registers the link target with the repository for use later by other authors.
- FIG. 18 provides a basic diagram of creating a link definition.
- FIG. 19 expands on the creation of a link. As shown, this may be done by using “autoregister.” If the document registered flat is not set, the resources in the document must be set at the user interface level. At that point, or if the document registered flag is set, it is determined whether the Autoregister flag equals true. If no, final state is reached. If yes, the next step at the user interface level is to walk the document. Next, link definitions are created in the repository for ever link type element. Within the client code, this involves committing all links and resource pairs to the repository. Within the transport layer, batch create links is performed. Within the server code, all links and resource pairs are created in the database and IDs are returned for created links. At the user interface level, the next step is to encapsulate the link markup with a tag such as “ ⁇ atidcamm:link>. Link names are then determined through the DCF configuration file and final state is reached.
- autoregister If the document registered flat is not set, the resources
- FIG. 20 illustrates a diagram of creating a link definition. This can involve simply naming the link and recording the link in the repository. Alternately, creating a link definition for a resource pair involves setting the reference starting resource, setting the reference ending resource, setting profiles, and setting any other attribute values. The link can then be recorded in the repository.
- FIG. 21 illustrates a diagram of creating an ID/IDREF link.
- the first step is to link internally. Next, resource information is captured. The link definition is then created and a link reference is inserted.
- FIG. 22 diagrams linking internally. If the element is already IDed, the ID Label is selected from the list. If the element is not IDed, the user IDs the element.
- FIG. 23 diagrams IDing an element. The first step is opening the object. Next, the user browses/selects the element. An ID is autogenerated. The user then sets the element's ID Attribute to the Generated ID. The ID is then labeled.
- FIG. 24 diagrams inserting a link reference. The first step is to register a starting resource with the link. The next step is to insert the link reference in the object.
- FIG. 25 is a diagram illustrating creating an outbound link. The first step is to browse/select an ending resource. The next step is to create a link definition. Finally, the link reference is inserted.
- FIG. 26 diagrams browsing/selecting a starting resource.
- the first step is to browse/select an object. If the link is internal to the object, the next step is to link internally. After linking internally, or if the link is external to the object, the next step is to capture resource information.
- FIG. 27 diagrams browsing/selecting an ending resource. The first step is to browse/select an object. If the link is internal to the object, the next step is to link internally. After linking internally, or if the link is external to the object, the next step is to capture resource information.
- FIG. 28 is a diagram illustrating inserting a link repository reference.
- a file link reference is inserted to the link repository.
- a CMS link reference is inserted into the link repository.
- a web link reference is inserted into the link repository.
- a link repository reference is inserted into the link repository.
- Diagramatically, the link repository reference is between the Link Author and the Object Author.
- FIG. 29 further diagrams inserting a link repository reference. The first step is to browse the link repository. Next, a link is selected. Finally, a link reference is inserted.
- FIG. 30 is an alternative to FIG. 1 illustrating composing with the DCAM system in more detail.
- Composition starts with XML Documents 400 which are sent to an E3 Server 402 at block 410 .
- the E3 Server 402 parses the documents (block 10 of FIG. 1 ) and sends them to the Content Pipeline 404 at block 412 .
- links are found in the content (block 12 of FIG. 1 )
- the links are sent to the DCAM Resolver 406 at block 414 .
- the links are resolved against the DCAM Repository (block 14 of FIG. 1 ) and the resolved links are sent back to the Content Pipeline 404 at block 416 .
- Data merge queries are also processed against the Data Merge Data Store 408 .
- the Content Pipeline continues resulting in composed documents such as HTML in the embodiment shown.
- the functioning of the link resolution filter 340 is illustrated in FIG. 31 .
- SAX events from object processing are input into the Link Resolver Filter 340 .
- the reference link is converted to markup the SAX events.
- the SAX events are then output from link processing.
- an application calls the establishClientSession( ) method in the Application API. This call initiates a connection to the transport tier, which passes on the create session request to the server. If the user authenticates, a session is created. Once a Client Session object is created, user actions may generate calls to the Service interface. That interface generates a SOAP request and sends it to the transport tier which processes the transaction through the server. Upon completion, the server returns a SOAP document containing all of the results.
- FIG. 32 depicts the configuration components for linking, data merging, and profiling. Because customers have many different needs around linking and data merge, these functions are highly configurable.
- FIG. 33 shows the general nature of the configuration components. The markup resolution is configured using XSL stylesheets, XML files are used to configure how targets are automatically identified (Resource Definition), both the database queries and the parameter handling for datamerge, and the configuration of profiling.
- Data merge permits including content from a separate data store.
- Data merge is the incorporation of references to external data sources in a document, and the periodic resolution of those references.
- a reference to some external data is called a query.
- Three authoring stages may be identified: query declaration; reference to a query declaration; and update of one or more query results.
- Named declarations are reusable, that is, they may be reference many times. They are given a name when created and their location defines their scope. The name must be unique for the scope.
- Query declarations with no name are not reusable. The point of declaration is the only reference.
- Query results appear at the location of a query reference. Results are inserted at the time a reference is inserted or whenever a reference to a query is updated.
- a query declaration must refer to an external data source, called the query definition.
- a query definition comprises of a UI component and a formal definition.
- the UI component includes: the name of the query definition, the parameters that must be passed to the query, whether the query returns document content of name/value pairs, and if the document content is returned, a representative top level tag for quick context verification.
- the name of the query definition links a document's query declaration to a query definition.
- the formal definition includes: a source stage, one or more transformation stages, a description of the order in which the stages are to be applied, and a mapping of UI parameters to actual parameters for each stage.
- the source stage may be any program that generates a Document Object Module (DOM) node.
- DOM Document Object Module
- the actual source may be a database, a file, a URL, or some external process.
- the program is responsible for presenting the result as a node, perhaps using some simple markup to represent value pairs.
- the transformation stages take a DOM node as input and generate a new DOM node as output.
- the data merge framework is designed for flexibility and extensibility. It adapts the Model-View-Controller (MVC) design paradigm and uses a pipeline structure for handling data acquisition and processing.
- MVC Model-View-Controller
- the MVC paradigm separates the business logic from the user interface, allowing both sides to be modified independently.
- a pipeline allows easy reuse of components.
- FIG. 34 illustrates the overall flow of inserting data into a document. Three major components are shown in the diagram. DOM Server 350 , Data Merge Controller 352 and Query 354 .
- DOM Server 350 takes input from a user and displays the result.
- Data Merge Controller 352 interprets user inputs and passes the information to and from a Query 354 .
- Query 354 processes the information provided by the Controller 352 .
- the Data Merge Controller 352 constructs a set of parameters based on the user inputs and current document instance and then selects a Query 354 for execution. Upon returning of the query, the node is inserted by the Data Merge Controller 352 into the DOM Server 350 .
- DOM Server 350 refers to the program which is capable of manipulating a Dom instance and displaying a DOM instance when in the interactive mode.
- Data Merge Controller 352 is a program that consists of helper functions that are assembled from DOM API. It receives requests from the user, distributes the requests to queries and then inserts the result into a document. It is also responsible for updating changes and retrieving data fields.
- a Query 354 comprises one Source and zero or more Transformers.
- a source is a component that can generate a DOM node.
- a Transformer takes an existing node as input and returns a modified node as the output.
- a Query process generates a DOM node (which may be an element, document fragment, or document) and returns it to the Data Merge Controller.
- a Query generally comprises three components: SQL Query, Transformation and XPath.
- the Query process retrieves data from a database and transforms the result using some XLT Transformation. Before returning the result, an XPath filter is applied to retrieve only interested components.
- the query process involves a sequence of transformations.
Abstract
A dynamic content assembly system, including an application and underlying database, with methods to support the creation, transformation and management of relationship information between resources and to enable dynamic assembly of content based on these relationships.
Description
- This invention relates generally to a system for creating, linking, and assembling electronic content. More specifically, it relates to a system and method for dynamically assembling content from different sources.
- In today's content publishing environment, content may be generated and edited using a variety of editors, such as Microsoft Word, Web editors (e.g., Arbortext's Contributor), and Extensible Markup Language (XML) editors (e.g., Arbortext's Epic Editor). Similarly this content may be published to a variety of output media formats, including print, Portable Document Format (PDF), various forms of Hypertext Markup Language (HTML), Wireless Markup Language (WML), and PostScript. Content may also be published to compiled formats such as HTML-Help, MS Reader, formats for personal digital assistants (PDAs), and formats for mobile phones.
- Assembling documents from various formats can be challenging. The documents must be assembled from many different pieces with many different cross-document links. While the task of storing documents and their components in a repository is currently being handled by multiple vendors, there is a need to automate the dynamic assembly of document components and their related links to other document components. This assembly is currently being done in a laborious way requiring extensive special case programming.
- The complexity of dynamic content assembly across multiple media formats, audiences, compound documents, and versions can be costly when done via manual processes such as creating multiple documents, cutting and pasting content, or completely recreating information with additional review required for all newly created information.
- Accordingly, there is a need in the art for a system or method to manage the dynamic creation, linking, and assembly of content.
- The present invention is designed to support the defining, creating, modifying, storing, reusing, validating, resolving, and exchanging multiple link types. Each link or link collection may have multiple audiences defined. Each link or link collection may have multiple media-appropriate, output-resolution filters. Each link or link collection may be validated for the given contexts of media format, audience, compound document usage, and document or sub-document component version.
- While multiple embodiments are disclosed, still other embodiments of the present invention will become apparent to those skilled in the art from the following detailed description. As will be apparent, the invention is capable of modifications in various obvious aspects, all without departing from the spirit and scope of the present invention. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not restrictive.
-
FIG. 1 illustrates an overview of the DCAM steps of the Arbortext DCAM system in accordance with one embodiment of the present invention. -
FIG. 2 illustrates a first embodiment of the architecture of a DCAM system. -
FIG. 3 illustrates a second embodiment of the architecture of a DCAM system. -
FIG. 4 illustrates a diagram of a server diagram in accordance with one embodiment of the present invention. -
FIG. 5 illustrates schema implemented by a database in accordance with one embodiment of the present invention. -
FIG. 6 illustrates a diagram of the client extensions in accordance with one embodiment of the present invention. -
FIG. 7 illustrates a screen shot of the Link to Current Document version of an Insert Link dialog in accordance with one embodiment of the present invention. -
FIG. 8 illustrates a screen shot of the Link to Repository version of an Insert Link dialog in accordance with one embodiment of the present invention. -
FIG. 9 illustrates a screen shot of the Link to Web Object version of an Insert Link dialog in accordance with one embodiment of the present invention. -
FIG. 10 illustrates a screen shot of an Modify Link Properties dialog in accordance with one embodiment of the present invention. -
FIG. 11 illustrates a screen shot of a Link Explorer dialog in accordance with one embodiment of, the present invention. -
FIG. 12 illustrates a screen shot of an Apply Profiles dialog in accordance with one embodiment of the present invention. -
FIG. 13 illustrates a screen shot of an Apply Profile Group dialog in accordance with one embodiment of the present invention. -
FIG. 14 illustrates a screen shot of a Search dialog in accordance with one embodiment of the present invention. -
FIG. 15 illustrates a screen shot of an Export Linkbase dialog in accordance with one embodiment of the present invention. -
FIG. 16 illustrates a screen shot of a Profile Filter dialog in accordance with one embodiment of the present invention. -
FIG. 17 illustrates a screen shot of a Profile Filter Group dialog in accordance with one embodiment of the present invention. -
FIG. 18 illustrates a diagram of creating a link definition in accordance with one embodiment of the present invention. -
FIG. 19 illustrates a diagram of creating a link definition in accordance with one embodiment of the present invention. -
FIG. 20 illustrates a diagram of creating a link definition in accordance with one embodiment of the present invention. -
FIG. 21 illustrates a diagram of creating an ID/IDREF link in accordance with one embodiment of the present invention. -
FIG. 22 illustrates a diagram of linking internally in accordance with one embodiment of the present invention. -
FIG. 23 illustrates a diagram of IDing an element in accordance with one embodiment of the present invention. -
FIG. 24 illustrates a diagram of inserting a link reference in accordance with one embodiment of the present invention. -
FIG. 25 illustrates a diagram of creating an outbound link in accordance with one embodiment of the present invention. -
FIG. 26 illustrates a diagram of browsing/selecting a starting resource in accordance with one embodiment of the present invention. -
FIG. 27 illustrates a diagram of browsing/selecting an ending resource in accordance with one embodiment of the present invention. -
FIG. 28 illustrates a diagram of inserting a link repository reference in accordance with one embodiment of the present invention. -
FIG. 29 illustrates a diagram of inserting a link repository reference in accordance with one embodiment of the present invention. -
FIG. 30 illustrates a diagram of composing with a DCAM system in accordance with one embodiment of the present invention. -
FIG. 31 illustrates the functioning of a link resolution filter in accordance with one embodiment of the present invention. -
FIG. 32 illustrates the configuration components for linking, data merging, and profiling in accordance with one embodiment of the present invention. -
FIG. 33 illustrates a diagram of the configuration components in accordance with one embodiment of the present invention. -
FIG. 34 illustrates the overall flow of inserting data in a document using data merge in accordance with one embodiment of the present invention. - The present invention is capable of dynamically managing content linking and assembly. Dynamic Content Assembly Management, or “DCAM,” is generally the process of supporting and enabling the creation, transformation and management of relationship information between content resources and dynamic assembly of content based on these relationships. Thus, generally, a DCAM system provides a means for defining, creating, modifying, linking, reusing, validating, resolving, and assembling dynamic content using an efficient and automated process.
- Dynamic Content Assembly (DCA) can be divided into many functional areas such as: embedding traversal points such as hyperlinks; embedding content from one resource into another resource; transforming content to a representation in the desired data format; filtering content based on meta-information such as the target audience for a specific portion of the content; and transforming the content to a representation with the desired style.
- The DCAM System (or Link Management System) of the present invention is an application and underlying database, which supports the creation, transformation and management of relationship information between resources. Links can serve multiple purposes such as:
-
- indicating a point of traversal to a related piece of content, for example, Hyperlink in a web document.
- embedding textual content of one resource at a particular location in another resource, for example, a company biography paragraph may be stored separately and used by reference in multiple pages.
- embedding graphical content of one resource at a particular location in another resource, for example, a logo or graphic in a Hypertext Markup Language (HTML) page which is stored separately from the HTML page and could be used by reference in multiple pages.
- embedding content from an external application, for example, including product specifications from a product data management system in a marketing data sheet about that product.
- indicating a related collection of information by associating multiple pieces of related content, for example, a Retailer providing a related collection to a purchaser of a certain product.
- indicating the audience for the content, which allows creation of a single source of content that supports multiple views, for example, the views could be driven by the person reading the document deciding between the expert view and the beginner's view, by the parent document needing the repair description rather than the build description, or by the publishing process needing the Spanish version rather than the English version.
The present invention enables dynamic assembly of content based on these relationships or links.
- The term link, as used herein, is meant generally and includes not only hyperlinks but also “include”, “fileref”; or any other means for embedding text or content within a document. Thus, the concept of link management in the DCAM system supports all types of dynamic content assembly management.
- Generally, Extensible Markup Language (XML) provides a useful, human and machine readable, standardized syntax for representing content, metadata, links, queries, transforms, and configuration information, which permits simplified processing of dynamic content. Document content (prose) can be created as XML natively, or transformed from proprietary applications to XML. Data from a variety of software applications including directly from many databases is accessible as XML. W3C Standards such as XML Linking Language (Xlink), XML Path Language (XPath), and Extensible Stylesheet Language (XSL) can be leveraged to enable application programmers and users with a standard, application interchangeable syntax.
- In today's content publishing environment, content may need to be published to print, Portable Document Format (PDF), multiple forms of HTML including different web sites, locations, and languages, compiled formats such as HTML-Help and MS Reader, formats for palm devices, formats for cell phones, and/or exchanged with partners and customers in a source format such as XML. Each media type has its own functional capabilities for representing dynamic content. For example a print document represents a navigation link such as ‘See also “The Definitive Guide,” chapter 13, paragraph 12’ while an HTML file might have a hyperlink embedded in the phrase “Get More Information” to a specific paragraph in another HTML file.
- For each media format the “link” needs to be represented natively for that format. For example, in HTML a link could be defined by a simple anchor tag such as: <a href=“http:www.arbortext.com”>. However, more complex links may require dynamic HTML using a scripting language such as JavaScript. For printed documents, the same cross reference may appear as “Contact Arbortext, Inc.” or alternatively “See Arbortext, Incorporated's web site at www.arbortext.com”
- As links become more complex—one to many, many to many, rings, etc.—the ability to create, verify, and resolve links for multiple publish media becomes exceedingly difficult to do manually. A DCAM system enables resolving links appropriately for each media format.
- Several types of links may be managed using the DCAM system of the present invention: simple links (also called outbound or navigation links), inbound links, graphic links, extended links, taxonomy links, object to object links, links for use with other applications, links wherein the application decides the traversal means, third party links, related information links, and media object links.
- A simple link associates exactly two resources, one local and one remote, with an arc going from the former to the latter. Thus, a simple link is always an outbound link (going away from the linking element). An outbound link is used when an explicit location within an object references outside the object. With this type of link, the profiling of the link determines the resolution. Conversely, if the arc of the link were to start at a remote resource and end at a local resource, the link is inbound. An inbound link relationship is maintained entirely within link manager. A graphic link is used when an explicit location within an object references to different graphics based on profiling. With this type of link, the profiling of the link determines the resolution. An extended link associates an arbitrary number of resources. The participating resources may be any combination of remote and local. A taxonomy link associates information with a subject taxonomy. Taxonomy links are used to associate topics with subjects and categories of subjects. This allows improved searching for appropriate topics both for specific subjects such as cardiac infarction and general subjects such as heart disease. A third party link is a link wherein neither the starting resource nor the ending resource is local. Related information links are used when an object does not explicitly reference another object but a relationship exists. This type of link is a third party arc entirely maintained in the link repository. The links provided are in relation to a given resource. Media object links are frequently context sensitive links. Resolution may be document dependent, output dependent or language dependent.
- XML further simplifies managing a document as a hierarchical collection of sub-document level components. These collections are often referred to as “compound documents.” For example, a cookbook is made of 20 recipe chapters, but each recipe chapter is stored individually. A given recipe chapter may be reused in numerous books. Creating and managing a link in a sub-document component which may be reused in multiple contexts is difficult. If these documents and components are managed in a content management system, they may also be versioned. The present invention provides a DCAM system that may be used to enable the managing and resolving of links for different document contexts and different document versions.
- Additionally, the DCAM system of the present invention may be used to publish alternate views of a document targeting different audiences. For example, a catalog may contain different prices for customers, partners, and employees. The catalog may be different for North America, Europe, and Asia., and may also differ when in print versus web format. Making links work in all of these contexts is often handled by manual processes and redundant copies of the document content. The present invention enables the assembly of content dynamically to suit the needs of a given audience.
- Documents may be a combination of textual content created by authors and database content derived from queries performed against a database application. The invention, in providing a DCAM system, provides mechanisms for managing the database derived content the same way that the textual content is managed. This allows the database derived content to be profiled for different audiences and to be published appropriately for different output media formats
- The present invention supports reuse, repurposing and dynamic assembly. This includes multichannel publishing such as output sensitive linking, information reuse such as context sensitive linking, dynamic content such as inclusion and data merge, and content supply chain such as web services. Performing link management using the present invention has several benefits. A single link may be managed with different output resolutions—thus providing simplified support for multichannel publishing. Further, a single link may be managed with different resolutions based on different contexts. This enables template-based authoring and reusing rather than duplicating business data with context sensitive links. Linked content may be dynamically included based on context and can include or reference the content. A web services interface supports information exchange across the enterprise and a Simple Object Access Protocol (SOAP) Application Program Interface (API) (discussed more fully below) is provided for manipulating a link repository.
- The link manager manages component or linking relationships internal to an object, across objects, across versions, across publishing cycles, and across supply chains.
-
FIG. 1 illustrates an overview of the DCA steps of one embodiment of a DCAM (or link management) system. In order to run a dynamic content process, the DCAM system must manage and interpret configuration information for each process. As seen inFIG. 1 , the dynamic content process is initiated atblock 10 with a request to parse a document. The request may be initiated by determining an access point, such as an end point of a relationship arc (described above). The end point of the relationship arc may be either the start or the end of the relationship arc. As the document is parsed, links are found atblock 12. Additional data regarding the link is fetched atblock 14 during link resolution. For example, link profiling (explained more fully below) may be performed. The link type is checked atblock 16. If the link is a navigation link, updated markup is inserted atblock 18 based on the additional data. If the link is not a navigation link, determination is made, atblock 20, of whether the link is a simple embedding of content or a graphic. If the link is a simple embedding of content or a graphic, the actual embed operation happens atblock 22. If the link is not a simple embedding of content or a graphic, the link type is an assembly operation atblock 24 and the actual complex assembly operation happens atblock 26. Thus, the contents of the link is assembled dynamically based upon rules. Once the assembly operation is performed, the content of the link is available from the access point. The DCAM system of the present invention also permits incorporating references to external data sources using data merge (described more fully below) wherein the references are then periodically resolved. - As explained above, managing the dynamic assembly of content involves determining an access point or end point of a relationship arc or link. The arc leads from the access point to contents for dynamic assembly. Thus, for example, a hyperlink leads to a url. The content to which the arc leads may be verified based upon rules. Once the appropriate relationship is verified, the content is made available from the access point.
-
FIG. 2 illustrates the architecture between an example DCAM client application and a DCAM server application. Using the architecture shown, communication is enabled between the DCAM client application and the DCAM server application. The example DCAM client application shown isEpic Editor 40. Of course, alternate DCAM client applications may be used. A set ofDCAM Client Extensions 30 provide additional user interfaces and programming logic to the client application. ADCAM Repository 48 is shown including anEpic E-Content Engine 64, aRelational Database 65,DCAM Server Extensions 63, and aSOAP Transport Layer 34. Operations requiring interactions with theDCAM Repository 48 first call into the clientSOAP Transport Layer 32. This communicates with the correspondingSOAP Transport Layer 34 inside theDCAM Repository 48. The interactions are then processed by theDCAM Server Extensions 63 which extend theEpic E-content Engine 64. Thesesame extensions 63 use aRelational Database 65 for long-term storage and retrieval of information. - A link management application generally performs certain functions. These functions typically require the application to include means to create, modify, remove, store, configure the behavior of, validate, resolve and exchange link information with other applications. The architecture of a DCAM System in accordance with a first embodiment of the invention is shown in
FIG. 2 . A diagram of an alternate architecture of a DCAM System of the present invention is shown inFIG. 3 . As shown, to effectively perform the functions of a link management application, the DCAM System includes: an Epic EditorAuthoring User Interface 40, a DCA RepositoryAuthoring User Interface 42, aDCA Configuration 44, aConfiguration Interface 46, aDCA Repository 48, a DCARepository Administrator Interface 50, aDCA Repository SDK 52, aLinkbase 54, aDCA Resolver 56, aDCA Resolver SDK 58, and aDCA Validator 60. Following is a description of each of these components in the embodiment shown. These descriptions are intended to be illustrative only, not limiting. - The Epic Editor
Authoring User Interface 40 is a user interface used within the Epic Editor environment. It is an interface for creating, modifying, removing and managing linking information. Generally, operations performed by an author within the editing environment are exposed through this interface. - The DCA Repository
Authoring User Interface 42 is a user interface for creating, modifying, removing and managing linking information directly in the link repository. Generally, operations performed by an author within this environment are exposed through this interface. - The
DCA Configuration 44 is the configuration information for the DCA system based on a specific data model. The focus of this application is configuration rather than customization. To this end, anything which can be abstracted to this configuration generally should be. - The
Configuration Interface 46 is a simple user interface for inputting and modifying configuration information for the DCA system based on a data model. - The
DCA Repository 48 is a database application for storage, search and retrieval of the link information. The DCA RepositoryAdministrator User Interface 50 is the user interface for performing IT administration functions on theDCA Repository 48. TheDCA Repository SDK 52 is documented Application Program Interface (API) for programmatically communicating with theDCA Repository 48. - The
Linkbase 54 is an Xlink compliant linkbase XML document. These documents may be used to export portions of theDCA Repository 48 or to import modifications into theDCA Repository 48. - The
DCA Resolver 56 is a filter in the content pipeline for resolving linking information. TheDCA Resolver SDK 58 is documented API of the Java methods (or other) used in theDCA Resolver 56. - The
DCA Validator 60 is a validation program to verify the validity of link information. - The DCA server is a system designed to manage linking information externally from documents, while still maintaining actual links as if they solely exist within documents. The DCA server provides late-binding linking, in a variety of formats. Using this, a link may be formatted into a variety of link syntaxes at publish time. The DCA system comprises three major components: a server tier, a transporttransport tier, and a client tier.
- The design of the DCA system is flexible, enabling bindings to be made to any database. In a particular embodiment the overall language used in the design of the DCA system is Java. The system may be built for an Oracle Platform. Alternately, any other relational database platform may be used.
- Explained differently, the DCAM System includes a Server Tier, a Transport Tier, and a Client Tier.
- The server tier of the DCAM System comprises a database bound to a server application. The server application contains logic necessary to interact with the database, and exposes a full API. All database access is performed through the server API. The server component is central to the DCA System. The server component is responsible for storing and managing all linking information within the system. The server component comprises a database binding, classes representing database objects, and an API that connects the components, in addition to providing a simple way to interface with the server.
- A server diagram is provided at
FIG. 4 . As shown,XML text 61 is input into aComposition Pipeline 62. The server component may be customized by writing custom applications that use theServer Extensions 63 to add functionality. Additionally, theServer Extensions 63 provides multiple classes that are programmatic representations of database objects and their corresponding collection classes. TheServer Extensions 63 may be tied to theEpic E-content Engine 64 andRelational Database 65. Information can then be output asprint output 66,web output 67, orother outputs 69. - In one embodiment, the Server component is built on top of a SQL compliant database.
FIG. 5 illustrates schema implemented by the database to properly store the linking information. The database schema contains the tables and relationships necessary to store and manage links, resources, resource pairs, folders, and their associated properties and metadata. - The links table 70, contains all links in the system. Each link includes one or more titles (as it has multilingual support) and may have metadata properties associated with it. The link_metadata table 72 contains a list of metadata properties related to the links. The link_title table 74 contains one or more names for each link. Again, links may have multiple titles defined, each in a different language. The link_folders table 76 contains a hierarchical listing of folders used to categorize and classify links. The link_folder_metadata table 78 contains metadata properties that are related to link folders. The link_folder_title table 80 contains titles that are directly related to each link folder. Multiple titles may be specified, each in a different language.
- The resources table 82 contains a listing of resources within a repository. Each addressable object (documents, element, etc.) has a resource definition specified in this table. Resources may be addressed by URI and when URIs are stored, they are broken down into their component atoms. All resources that are considered top-level documents have an is Document flag set. The resource_metadata table 84 contains metadata properties that are related to the resources. The resource_title table 86 contains titles that are directly related to each resource. Multiple titles may be specified, each in a different language. The resource_folders table 88 contains metadata properties that are related to resource folders. The resource_folder_title table 90 contains titles that are directly related to each resource folder. Multiple titles may be specified, each in a different language. The resource_pairs table 92 contains a listing of all resource pairs in the system. Resource pairs are components of a link that comprise a starting and ending resource (both of which are relationships to the resource table), as well as information about the role and traversal constraints. Resource pairs may be related to profiles to scope their usage. Resource pairs are bound to links, and upon deletion of a link, that deletion will be cascaded to it's resource pairs. The properties table 94 maintains a listing of XML attributes pertinent to each resource pair (such as graphic size, etc.) that are placed in markup at resolution time.
- The profiles table 96 contains profiles defined within the system. Profiles are defined on a per doctype basis and may span multiple doctypes. Profiles are applicability attribute values that, when references, set the usage and scope of a resource pair. The resource_pair_profile_xref table 98 contains relationships of resource pairs to profiles. A resource pair may be related with as many profiles as desired. The named_profiles table 100 contains a mapping of names to profiles. This may be used to create a grouping or categorization of profiles. Further shown are a link_folder_metadata table 106, a link_folders table 108, a link_title table 110, and a link_folder_title table 112.
- A configuration table 104 may be provided containing system configuration information relevant to the DCAM server.
- The transport tier of the DCAM System provides the communication link between the client tier and the server tier. The transport tier facilitates client/server communications.
- The format for transport requests is SOAP (Simple Object Access Protocol). Thus, in one embodiment, the transport layer may be referred to as a SOAP transport layer. Each SOAP request is considered a transaction boundary. Alternately, transport-oriented languages (such as EJB, RMI, and CORBA) may be used to perform object marshaling.
FIG. 6 expands uponFIG. 2 and illustrates the relationship between thetransport layer 34 andDCAM Client Extensions 30. In the embodiment shown, thetransport tier 34 is a SOAP aware implementation, used to enable client/server communications. Due to the simple nature of SOAP, all transactions occur through HTTP (hypertext transfer protocol).User Interface Code 115 goes throughScripting API 116 and/orApplication API 117.DCAM Client Extensions 30 are applied before thecode 115 is input to theScripting API 116 andApplication API 117. TheScripting API 116 andApplication API 117 then output theCode 115 through theService Interface 118 and finally to thetransport layer 34. - The transport tier manages user sessions and transactions, by interpreting requests, executing transactions atomically, and returning those results. Each operation is performed by creating one or more data transfer objects along with a command, sending the objects and command wrapped in a SOAP request, processing the command which returns as results zero or more data transfer objects, and returning the results of the operation wrapped in a SOAP response. The client tier contains everything needed by users to create, delete and manage links. One embodiment of the client side implementation includes Epic customizations (menu items, hooks, etc.), user interfaces, and a client API that provides direct access to the server. The client API facilitates communications to the transport tier. Calls to the server are done within a transaction. The client component includes all classes necessary to create/submit a transaction and receive those results in the form of classes that represent server side objects. As shown in
FIG. 6 , the client API comprises two APIs, thescripting API 116 suitable for use from scripting languages that are not object aware and theapplication API 117 suitable for use from languages that are object aware. -
FIGS. 7-16 illustrate specific embodiments of user interface details. These figures are intended as illustrative only and are not intended to limit the present invention. -
FIG. 7 illustrates a screen shot of anInsert Link dialog 120 for inserting a link from the current document in accordance with one embodiment of the present invention. The Select Target(s) Frombox 122 enables the user to select targets from the DCAM Repository, the Current Document, or the Web. The Current Document Selection is displayed inFIG. 7 . The Current Document Targets table 126 displays available targets in the current document. The user may select any of the targets. The Selected Targets table 128 lists the targets selected. TheDisplay Button 130 allows the user to select the fields to display in the Selected Targets table 128. TheInsert button 134 allows the user to insert a link reference in the current document at the cursor location. The Modifybutton 136 launches a Modify Link Properties dialog (seeFIG. 10 ) allowing the user to update the attributes of a link. -
FIG. 8 illustrates a screen shot of anInsert Link dialog 120 for inserting a link from the DCAM Repository in accordance with one embodiment of the present invention. TheLink Name field 124 allows the user to assign a human readable name to the link. The Select Target(s) Frombox 122 enables the user to select targets from the DCAM Repository, the Current Document, or the Web. The DCAM Repository selection is displayed inFIG. 8 . The DCAM Targets table 144 is a tree control of the available targets in the DCAM Repository and allows the user to select an existing link from the Repository. The Selected Targets Table 128 lists the targets selected. TheDisplay Button 130 allows the user to select the fields to display in the Selected Targets table 128. The Modifybutton 136 launches a Modify Link Properties dialog (seeFIG. 10 ) allowing the user to update the attributes of a link. -
FIG. 9 illustrates a screen shot of an Insert Link dialog 151 for inserting a link from the Web in accordance with one embodiment of the present invention. TheLink Name field 124 allows the user to assign a human readable name to the link. The Select Target(s) Frombox 122 enables the user to select targets from the DCAM Repository, the Current Document, or the Web. The Web selection is illustrates inFIG. 9 . The WebTarget Name field 154 allows the user to assign a human readable name to the target. The WebTarget URL field 155 allows the user to assign a URL to locate the target resource. If theBrowse button 156 is used, theURL field 155 will be populated with the location selected. TheBrowse button 156 launches a Web browser and records the URL of the currently selected page in the browser in theURL field 155. The Selected Targets table 128 lists the targets selected. TheDisplay button 130 allows the user to select the fields to display in the Selected Targets table 128. The Modify button 19 launches a Modify Link Properties dialog (seeFIG. 10 ) allowing the user to update the attributes of a link. -
FIG. 10 illustrates a screen shot of a Modify Link Properties dialog 210. This dialog allows the user to modify any of the properties associated with the link. TheSource Label field 212 allows the user to assign a label to the source resource. TheTarget Name field 214 displays the name of the target resource. TheTarget Locator field 216 displays the locator of the target resource. The TargetXML ID field 218 displays the XML Id of the target resource. TheTarget Label field 220 allows the user to set the label of the target resource. The Refer to Target or Include Content radio buttons, 222 and 224 respectively, specify how the link should be handled when resolved. If Refer toTarget 222 is selected, the target's markup template is used to create a link to the content when the link is resolved. If IncludeContent 224 is selected, the target resource is included at the location of the link when the link is resolved. TheMarkup Combo Box 226 allows the user to select the type of link markup represented by the link. The list may be prepopulated with link tags specified in the document types DCF file. TheProfiles button 228 launches the Apply Profiles dialog (seeFIG. 12 ), allowing the user to apply profiles to the link. -
FIG. 11 illustrates a screen shot of aDCAM Explorer dialog 240. The DCAM Explorer permits automatic target registration and user defined folder creation. The user may choose links, resources, and data merge components. Thus, the dialog allows the user to manage links in the same manner they would manage files on a file system. - The user may be provided with the ability to profile groups. Thus, the user may save and name a choice of profiles, which may later be applied to an object by selecting the named profile group, rather than requiring each choice to be selected each time. The user may also save and name a choice of profiles, which may later be used to designate the profiles to use for resolution purposes (such as at
block 14 ofFIG. 1 ) by selecting the named profile filter, rather than requiring each choice to be selected each time. Profile values may be added dynamically during the editing process. The user may define particular elements to restrict individual profiles to or from. The user may define element markup for profiling rather than simply attribute markup. Further, the user may define the specific order in which profile values appear. - Hierarchical profiles may be provided to allow the user to apply a group of profiles simultaneously to an object based on selecting a containment node. Typically, the profiles are applied at the leaf level. Radio profiles may be provided. Radio profiles are mutually excusive profiles where only one choice is allowed. Profiling may be done via containment. Containment is the concept where a single profile value represents the inclusion of other lower level profiles (for example, “top secret” including “secret, classified, and unclassified”). Further, named profiles may be used (profile groups and profile filters), profiles may be restricted to or from particular elements, and logical expressions (AND, OR, NOT, EQUAL, XOR) may be included in profile filters.
- A screen shot of an
Apply Profiles dialog 250 is illustrated inFIG. 12 . Thedialog 250 permits adding new profile values, naming and saving profile selections, and supporting hierarchical and radio choice profiles. The ApplyProfile tree control 252 shows the profile values represented as a tree control. The checkboxes or radio buttons allow the user to choose the profiles to apply. When the Apply IndividualProfiles radio control 254 is selected, individual profiles are displayed. When the Apply ProfileGroup radio control 256 is selected, profile groups are displayed. The OK button 258 applies the profile values selected in the tree control to the applicable markup. -
FIG. 13 illustrates a screen shot of an Update Element Profile dialog 272. The dialog allows a user to individually select profiles or to select a named profile group for updating the element profile. Thetree control 274 shows the profile values represented by the profile groups. The user may choose the profile group to simultaneously apply all the listed values. The Apply Individual Profiles and Apply Profile Group radio buttons, 275 and 276 respectively, allow the user to choose the profiles to update. When the Apply IndividualProfiles radio button 275 is selected, individual profiles are displayed, When the Apply ProfileGroup radio button 276 is selected, profile groups are displayed. TheOK button 276 applies the profile values represented by the profile group to the applicable markup. - A screen shot of a Search
DCAM Links dialog 280 is illustrated atFIG. 14 . Thisdialog 280 allows the user to search for links based on the properties of the link itself, its resource pairs, and the starting and ending resources of those resource pairs. The link and resource pair properties are listed on theLink Properties tab 282. The source resource properties are listed on theSource Properties tab 284. The target resource properties are listed on theTarget Properties tab 286. TheAdvanced Parameters tab 288 allows users to specify additional search criteria, which can either be user defined attributed on the resource pairs or less visible properties of links, resource pairs and resources (such as DCAM key). Most parameters, except the Referenced/Included field 290, allow the user to specify an operator that discusses the way to test the entered values with those in the database. These operators include: like (the value in the object contains the given value), greater than (the value in the object is greater than the given value), less than (the value in the object is less than the given value) and equals (the value in the object is equal to the given value). When search results are returned, they are displayed in the Search Results folder in the DCAM Explorer dialog (SeeFIG. 11 ). - A screen shot of an
Export Linkbase dialog 300 is illustrated atFIG. 15 . This dialog allows the user to export the data for all of the DCAM links in the current document, including resource pairs, source, and target resources. The XML file containing the link data may be referred to as a linkbase. A linkbase typically contains lay names, custom metadata, XML IDs, and URLs. It may be sent to a downstream process or organization so that the link information may be used outside of DCAM. Downstream applications may require link data in specific formats, and multiple linkbase templates may be installed for different formats. The Save Ascontrol 301 and associatedBrowse button 302 specify the output linkbase filename. The Stylesheet drop downlist 303 and associatedBrowse button 304 select which XSL stylesheet is used to create the linkbase. The stylesheet determines the format of the linkbase. In a specific embodiment, the stylesheet drop downlist 303 is populated with a list of XSL for the document type that can be used for linkbase export. All .xsl files in the doctype directory are examined and the ones that include “linkbase” in their “CompositionType” list are displayed. “CompositionType” is generally specified in a PI near the beginning of the XSL file. TheBrowse button 304 allows the user to select any XSL stylesheet, regardless of whether “linkbase” is in its “CompositionType” list. Further, again in a specific embodiment, Epic sets up a composition pipeline that includes a link filter (filters out non-DCAM markup), a link resolution filter (retrieves link data from database), and a filter for the selected stylesheet. A linkbase export stylesheet may be used to transform canonical DCAM link markup into desired linkbase markup. - A screen shot of a
Profile Filter dialog 308 is shown atFIG. 16 . Thedialog 308 is used to set the profiles during resolution. The default assumption is all values are logically ANDed together. To use more complex logical expressions, the user selects theFilter Group button 310. TheFilter Group button 310 launches the Profile Filter Group dialog (seeFIG. 29 ). - The Profile
Filter Group dialog 312 is shown atFIG. 17 . Thisdialog 312 allows the user to choose a predefined named profile filter group for setting the profiles. These profile filter groups support complex, logical expressions such as logical conjunction, logical disjunction, logical inequivalence, logical equivalence, and logical negation. - As shown in
FIGS. 18-29 , a link definition may either be created manually or automatically. When an object is registered with the link repository, any elements within the object which are IDed can automatically create a special type of link definition, called a Target, in the user interface. The DCF can define what elements to automatically ID and what attribute or element content to use as the name of the link target. The attribute to use as the ID is registered with the DCF file. If configured in this way, the application automatically registers the link target with the repository for use later by other authors. -
FIG. 18 provides a basic diagram of creating a link definition.FIG. 19 expands on the creation of a link. As shown, this may be done by using “autoregister.” If the document registered flat is not set, the resources in the document must be set at the user interface level. At that point, or if the document registered flag is set, it is determined whether the Autoregister flag equals true. If no, final state is reached. If yes, the next step at the user interface level is to walk the document. Next, link definitions are created in the repository for ever link type element. Within the client code, this involves committing all links and resource pairs to the repository. Within the transport layer, batch create links is performed. Within the server code, all links and resource pairs are created in the database and IDs are returned for created links. At the user interface level, the next step is to encapsulate the link markup with a tag such as “<atidcamm:link>. Link names are then determined through the DCF configuration file and final state is reached. -
FIG. 20 illustrates a diagram of creating a link definition. This can involve simply naming the link and recording the link in the repository. Alternately, creating a link definition for a resource pair involves setting the reference starting resource, setting the reference ending resource, setting profiles, and setting any other attribute values. The link can then be recorded in the repository. -
FIG. 21 illustrates a diagram of creating an ID/IDREF link. The first step is to link internally. Next, resource information is captured. The link definition is then created and a link reference is inserted.FIG. 22 diagrams linking internally. If the element is already IDed, the ID Label is selected from the list. If the element is not IDed, the user IDs the element.FIG. 23 diagrams IDing an element. The first step is opening the object. Next, the user browses/selects the element. An ID is autogenerated. The user then sets the element's ID Attribute to the Generated ID. The ID is then labeled.FIG. 24 diagrams inserting a link reference. The first step is to register a starting resource with the link. The next step is to insert the link reference in the object. -
FIG. 25 is a diagram illustrating creating an outbound link. The first step is to browse/select an ending resource. The next step is to create a link definition. Finally, the link reference is inserted. -
FIG. 26 diagrams browsing/selecting a starting resource. The first step is to browse/select an object. If the link is internal to the object, the next step is to link internally. After linking internally, or if the link is external to the object, the next step is to capture resource information.FIG. 27 diagrams browsing/selecting an ending resource. The first step is to browse/select an object. If the link is internal to the object, the next step is to link internally. After linking internally, or if the link is external to the object, the next step is to capture resource information. -
FIG. 28 is a diagram illustrating inserting a link repository reference. A file link reference is inserted to the link repository. A CMS link reference is inserted into the link repository. A web link reference is inserted into the link repository. A link repository reference is inserted into the link repository. Diagramatically, the link repository reference is between the Link Author and the Object Author.FIG. 29 further diagrams inserting a link repository reference. The first step is to browse the link repository. Next, a link is selected. Finally, a link reference is inserted. -
FIG. 30 is an alternative toFIG. 1 illustrating composing with the DCAM system in more detail. Composition starts withXML Documents 400 which are sent to anE3 Server 402 atblock 410. TheE3 Server 402 parses the documents (block 10 ofFIG. 1 ) and sends them to theContent Pipeline 404 atblock 412. As links are found in the content (block 12 ofFIG. 1 ), the links are sent to theDCAM Resolver 406 atblock 414. The links are resolved against the DCAM Repository (block 14 ofFIG. 1 ) and the resolved links are sent back to theContent Pipeline 404 atblock 416. Data merge queries are also processed against the DataMerge Data Store 408. The Content Pipeline continues resulting in composed documents such as HTML in the embodiment shown. - The functioning of the
link resolution filter 340 is illustrated inFIG. 31 . SAX events from object processing are input into theLink Resolver Filter 340. The reference link is converted to markup the SAX events. The SAX events are then output from link processing. - To use the client component, an application calls the establishClientSession( ) method in the Application API. This call initiates a connection to the transport tier, which passes on the create session request to the server. If the user authenticates, a session is created. Once a Client Session object is created, user actions may generate calls to the Service interface. That interface generates a SOAP request and sends it to the transport tier which processes the transaction through the server. Upon completion, the server returns a SOAP document containing all of the results.
-
FIG. 32 depicts the configuration components for linking, data merging, and profiling. Because customers have many different needs around linking and data merge, these functions are highly configurable.FIG. 33 shows the general nature of the configuration components. The markup resolution is configured using XSL stylesheets, XML files are used to configure how targets are automatically identified (Resource Definition), both the database queries and the parameter handling for datamerge, and the configuration of profiling. - Data merge, in accordance with the present invention, permits including content from a separate data store. Data merge is the incorporation of references to external data sources in a document, and the periodic resolution of those references. A reference to some external data is called a query. Three authoring stages may be identified: query declaration; reference to a query declaration; and update of one or more query results. Named declarations are reusable, that is, they may be reference many times. They are given a name when created and their location defines their scope. The name must be unique for the scope. Query declarations with no name are not reusable. The point of declaration is the only reference. Query results appear at the location of a query reference. Results are inserted at the time a reference is inserted or whenever a reference to a query is updated.
- A query declaration must refer to an external data source, called the query definition. A query definition comprises of a UI component and a formal definition. The UI component includes: the name of the query definition, the parameters that must be passed to the query, whether the query returns document content of name/value pairs, and if the document content is returned, a representative top level tag for quick context verification. The name of the query definition links a document's query declaration to a query definition. The formal definition includes: a source stage, one or more transformation stages, a description of the order in which the stages are to be applied, and a mapping of UI parameters to actual parameters for each stage. The source stage may be any program that generates a Document Object Module (DOM) node. The actual source may be a database, a file, a URL, or some external process. The program is responsible for presenting the result as a node, perhaps using some simple markup to represent value pairs. The transformation stages take a DOM node as input and generate a new DOM node as output.
- The data merge framework is designed for flexibility and extensibility. It adapts the Model-View-Controller (MVC) design paradigm and uses a pipeline structure for handling data acquisition and processing. The MVC paradigm separates the business logic from the user interface, allowing both sides to be modified independently. A pipeline allows easy reuse of components.
FIG. 34 illustrates the overall flow of inserting data into a document. Three major components are shown in the diagram.DOM Server 350,Data Merge Controller 352 andQuery 354.DOM Server 350 takes input from a user and displays the result.Data Merge Controller 352 interprets user inputs and passes the information to and from aQuery 354. Query 354 processes the information provided by theController 352. When a user issues the insert_query or update_query command, theData Merge Controller 352 constructs a set of parameters based on the user inputs and current document instance and then selects aQuery 354 for execution. Upon returning of the query, the node is inserted by theData Merge Controller 352 into theDOM Server 350. -
DOM Server 350 refers to the program which is capable of manipulating a Dom instance and displaying a DOM instance when in the interactive mode.Data Merge Controller 352 is a program that consists of helper functions that are assembled from DOM API. It receives requests from the user, distributes the requests to queries and then inserts the result into a document. It is also responsible for updating changes and retrieving data fields. AQuery 354 comprises one Source and zero or more Transformers. A source is a component that can generate a DOM node. A Transformer takes an existing node as input and returns a modified node as the output. A Query process generates a DOM node (which may be an element, document fragment, or document) and returns it to the Data Merge Controller. The components in a Query communicate with each other via a DOM node. A Query generally comprises three components: SQL Query, Transformation and XPath. The Query process retrieves data from a database and transforms the result using some XLT Transformation. Before returning the result, an XPath filter is applied to retrieve only interested components. The query process involves a sequence of transformations. - Although the present invention has been described with reference to preferred embodiments, persons skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.
Claims (15)
1. A method for managing dynamic assembly of content in a document, comprising:
parsing a document to find at least one link;
resolving the at least one link against a DCAM Repository resulting in a resolved link to content;
assembling the resolved link to content into the document.
2. The method of claim 1 , further including profiling the link when the link is resolved.
3. The method of claim 1 , further including processing data merge queries.
4. The method of claim 1 , further including determining link type of the at least one link.
5. The method of claim 4 , wherein if the link is a navigation link, updated markup is inserted into the document.
6. The method of claim 4 , wherein if the link is an embedding of content, the method further includes embedding the content into the document.
7. A method for managing dynamic assembly of content, comprising:
determining an access point, the access point invoking a dynamic content assembly request;
selecting one of a plurality of contents for assembly from the access point; and
assembling said contents dynamically based on rules; and
making said dynamically assembled content available from said access point.
8. The method of claim 7 , wherein the access point is the start point of a relationship arc.
9. A method for managing creation of links between and within content modules, comprising:
determining first and second end points, the first end point being a start of a relationship arc and the second end point being an end of a relationship arc;
creating a relationship arc;
indicating an appropriate audience for the relationship arc; and
dynamically resolving the relationship arc based on the audience.
10. The method of claim 9 , wherein determining end points and creating a relationship arc further comprise:
determining possible end points based on rules;
capturing metadata about each possible end point based on rules; and
validating the end points used within a document or system.
11. The method of claim 10 , wherein possible end points are found using a navigation mechanism for finding end points.
12. A method for dynamically assembling documents, comprising:
entering a target with assembly rules;
entering a link that points to the target; and
resolving the link into content.
13. A system for managing dynamic content assembly, comprising:
a server tier comprising a database bound to a server application, the database including linking information;
a client tier enabling a user to create, delete and manage links; and
a transport tier for communicating between the server tier and the client tier.
14. The system of claim 13 , wherein the server application includes logic for interacting with the database.
15. The system of claim 13 , wherein the transport tier is a SOAP transport layer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/839,109 US20060156220A1 (en) | 2003-05-05 | 2004-05-05 | System and method for managing dynamic content assembly |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US46812603P | 2003-05-05 | 2003-05-05 | |
US10/839,109 US20060156220A1 (en) | 2003-05-05 | 2004-05-05 | System and method for managing dynamic content assembly |
Publications (1)
Publication Number | Publication Date |
---|---|
US20060156220A1 true US20060156220A1 (en) | 2006-07-13 |
Family
ID=33435163
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/839,109 Abandoned US20060156220A1 (en) | 2003-05-05 | 2004-05-05 | System and method for managing dynamic content assembly |
US10/839,320 Expired - Fee Related US8484553B2 (en) | 2003-05-05 | 2004-05-05 | System and method for defining specifications for outputting content in multiple formats |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/839,320 Expired - Fee Related US8484553B2 (en) | 2003-05-05 | 2004-05-05 | System and method for defining specifications for outputting content in multiple formats |
Country Status (5)
Country | Link |
---|---|
US (2) | US20060156220A1 (en) |
EP (2) | EP1627329A1 (en) |
JP (3) | JP2006525609A (en) |
GB (2) | GB2416238A (en) |
WO (2) | WO2004100015A2 (en) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050021502A1 (en) * | 2003-05-23 | 2005-01-27 | Benjamin Chen | Data federation methods and system |
US20070174270A1 (en) * | 2006-01-26 | 2007-07-26 | Goodwin Richard T | Knowledge management system, program product and method |
US20080040658A1 (en) * | 2006-07-07 | 2008-02-14 | Honeywell International Inc. | Linking of Content Portions Developed Independently |
US20080147672A1 (en) * | 2006-12-19 | 2008-06-19 | Pena Ronny A | System and method for providing platform-independent content services for users for content from content applications leveraging atom, xlink, xml query content management systems |
US20080222506A1 (en) * | 2007-03-09 | 2008-09-11 | John Edward Petri | Minimizing Accesses to a Repository During Document Reconstitution in a Content Management System |
US20090083247A1 (en) * | 2007-09-21 | 2009-03-26 | Brian John Cragun | Automatically making changes in a document in a content management system based on a change by a user to other content in the document |
US20090276699A1 (en) * | 2008-05-02 | 2009-11-05 | Canon Kabushiki Kaisha | Document processing apparatus and control method thereof |
US7693840B1 (en) * | 2004-07-30 | 2010-04-06 | Sprint Communications Company L.P. | Method and system for distribution of common elements |
US20100275117A1 (en) * | 2009-04-23 | 2010-10-28 | Xerox Corporation | Method and system for handling references in markup language documents |
CN102521232A (en) * | 2011-11-09 | 2012-06-27 | Ut斯达康通讯有限公司 | Distributed acquisition and processing system and method of internet metadata |
US20120290926A1 (en) * | 2011-05-12 | 2012-11-15 | Infinote Corporation | Efficient document management and search |
US20130339886A1 (en) * | 2012-06-18 | 2013-12-19 | Computer Pundits, Inc. | Tools for dynamic database driven catalog building |
US8645816B1 (en) * | 2006-08-08 | 2014-02-04 | Emc Corporation | Customizing user documentation |
US8726147B1 (en) * | 2010-03-12 | 2014-05-13 | Symantec Corporation | Systems and methods for restoring web parts in content management systems |
US20140215304A1 (en) * | 2012-12-10 | 2014-07-31 | International Business Machines Corporation | Utilizing classification and text analytics for annotating documents to allow quick scanning |
US20160371249A1 (en) * | 2015-06-22 | 2016-12-22 | Microsoft Technology Licensing, Llc | Deconstructing documents into component blocks for reuse in productivity applications |
US10095781B2 (en) | 2014-10-01 | 2018-10-09 | Red Hat, Inc. | Reuse of documentation components when migrating into a content management system |
US10311366B2 (en) * | 2015-07-29 | 2019-06-04 | Adobe Inc. | Procedurally generating sets of probabilistically distributed styling attributes for a digital design |
US10339183B2 (en) | 2015-06-22 | 2019-07-02 | Microsoft Technology Licensing, Llc | Document storage for reuse of content within documents |
US10664536B2 (en) * | 2015-12-18 | 2020-05-26 | Microsoft Technology Licensing, Llc | Consumption of user-filtered data on a client device |
US10740349B2 (en) | 2015-06-22 | 2020-08-11 | Microsoft Technology Licensing, Llc | Document storage for reuse of content within documents |
US20220150592A1 (en) * | 2020-11-11 | 2022-05-12 | Rovi Guides, Inc. | Systems and methods for providing media recommendations |
US11849177B2 (en) | 2020-11-11 | 2023-12-19 | Rovi Guides, Inc. | Systems and methods for providing media recommendations |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050210263A1 (en) * | 2001-04-25 | 2005-09-22 | Levas Robert G | Electronic form routing and data capture system and method |
US6803925B2 (en) * | 2001-09-06 | 2004-10-12 | Microsoft Corporation | Assembling verbal narration for digital display images |
US20050154982A1 (en) * | 2004-01-13 | 2005-07-14 | International Business Machines Corporation | Apparatus, system and method of importing cascading style sheets to macromedia flash |
US7200816B2 (en) * | 2004-01-21 | 2007-04-03 | Altova, Gmbh | Method and system for automating creation of multiple stylesheet formats using an integrated visual design environment |
US7584422B2 (en) * | 2004-07-12 | 2009-09-01 | Informatica Corporation | System and method for data format transformation |
US20060041632A1 (en) * | 2004-08-23 | 2006-02-23 | Microsoft Corporation | System and method to associate content types in a portable communication device |
US9298675B2 (en) * | 2004-09-30 | 2016-03-29 | Adobe Systems Incorporated | Smart document import |
US7400351B2 (en) * | 2004-10-06 | 2008-07-15 | Microsoft Corporation | Creation of image based video using step-images |
DE102004059045B4 (en) * | 2004-12-07 | 2008-01-24 | Hiflex Software Gmbh | Method for communication between a management information system and an executing system and communication module |
US7987187B2 (en) * | 2004-12-27 | 2011-07-26 | Sap Aktiengesellschaft | Quantity offsetting service |
US7343364B2 (en) * | 2005-02-04 | 2008-03-11 | Efunds Corporation | Rules-based system architecture and systems using the same |
US7372536B2 (en) * | 2005-03-08 | 2008-05-13 | Microsoft Corporation | Photostory 3—automated motion generation |
US10572856B2 (en) | 2005-03-09 | 2020-02-25 | Jda Software Group, Inc. | Custom application builder for supply chain management |
US20060204214A1 (en) * | 2005-03-14 | 2006-09-14 | Microsoft Corporation | Picture line audio augmentation |
US20060218488A1 (en) * | 2005-03-28 | 2006-09-28 | Microsoft Corporation | Plug-in architecture for post-authoring activities |
US20060224778A1 (en) * | 2005-04-04 | 2006-10-05 | Microsoft Corporation | Linked wizards |
US8185820B1 (en) * | 2005-04-06 | 2012-05-22 | Adobe Systems Incorporated | System and/or method for document generation |
US20060271850A1 (en) * | 2005-05-06 | 2006-11-30 | Didier Gombert | Method and apparatus for transforming a printer into an XML printer |
WO2007015302A1 (en) * | 2005-08-04 | 2007-02-08 | Fujitsu Limited | Web page control program, method and server |
US8635524B2 (en) * | 2005-09-13 | 2014-01-21 | Adobe Systems Incorporated | System and/or method for document conversion |
US20070162842A1 (en) * | 2006-01-09 | 2007-07-12 | Apple Computer, Inc. | Selective content imaging for web pages |
JP2007188460A (en) * | 2006-01-11 | 2007-07-26 | Mis Technology Kk | Business form preparation function using xml data and fo as input |
US9411781B2 (en) * | 2006-01-18 | 2016-08-09 | Adobe Systems Incorporated | Rule-based structural expression of text and formatting attributes in documents |
US7634717B2 (en) * | 2006-01-23 | 2009-12-15 | Microsoft Corporation | Multiple conditional formatting |
US8082496B1 (en) * | 2006-01-26 | 2011-12-20 | Adobe Systems Incorporated | Producing a set of operations from an output description |
NZ570210A (en) * | 2006-02-06 | 2010-03-26 | Informatica Corp | Creating and managing XML schema version transformations |
JP2007279795A (en) * | 2006-04-03 | 2007-10-25 | Ibm Japan Ltd | System for deciding whether or not screen to be displayed by program satisfy specification |
US8407585B2 (en) * | 2006-04-19 | 2013-03-26 | Apple Inc. | Context-aware content conversion and interpretation-specific views |
US7890533B2 (en) * | 2006-05-17 | 2011-02-15 | Noblis, Inc. | Method and system for information extraction and modeling |
US20070282885A1 (en) * | 2006-05-31 | 2007-12-06 | Baude Brent J | Method and System For Application Interaction |
US20080065671A1 (en) * | 2006-09-07 | 2008-03-13 | Xerox Corporation | Methods and apparatuses for detecting and labeling organizational tables in a document |
WO2008055034A2 (en) | 2006-10-30 | 2008-05-08 | Noblis, Inc. | Method and system for personal information extraction and modeling with fully generalized extraction contexts |
US7903115B2 (en) | 2007-01-07 | 2011-03-08 | Apple Inc. | Animations |
US7872652B2 (en) | 2007-01-07 | 2011-01-18 | Apple Inc. | Application programming interfaces for synchronization |
US8813100B1 (en) * | 2007-01-07 | 2014-08-19 | Apple Inc. | Memory management |
US8464211B2 (en) * | 2007-03-01 | 2013-06-11 | Formotus, Inc. | Forms conversion and deployment system for mobile devices |
US8205151B2 (en) * | 2007-05-31 | 2012-06-19 | Red Hat, Inc. | Syndication of documents in increments |
US9361294B2 (en) * | 2007-05-31 | 2016-06-07 | Red Hat, Inc. | Publishing tool for translating documents |
US10296588B2 (en) * | 2007-05-31 | 2019-05-21 | Red Hat, Inc. | Build of material production system |
US7912825B2 (en) | 2007-06-21 | 2011-03-22 | Microsoft Corporation | Configurable plug-in architecture for manipulating XML-formatted information |
WO2009038788A1 (en) | 2007-09-21 | 2009-03-26 | Noblis, Inc. | Method and system for active learning screening process with dynamic information modeling |
US20090125905A1 (en) * | 2007-11-09 | 2009-05-14 | International Business Machines Corporation | Method, apparatus and computer program for modifying a message |
US20100005112A1 (en) * | 2008-07-01 | 2010-01-07 | Sap Ag | Html file conversion |
US8683325B1 (en) * | 2008-11-13 | 2014-03-25 | Emc Corporation | Indexed approach for delivering multiple views of an XML document from a single XSLT file |
US8060490B2 (en) * | 2008-11-25 | 2011-11-15 | Microsoft Corporation | Analyzer engine |
US8819541B2 (en) | 2009-02-13 | 2014-08-26 | Language Technologies, Inc. | System and method for converting the digital typesetting documents used in publishing to a device-specfic format for electronic publishing |
US8347208B2 (en) * | 2009-03-04 | 2013-01-01 | Microsoft Corporation | Content rendering on a computer |
US9268761B2 (en) * | 2009-06-05 | 2016-02-23 | Microsoft Technology Licensing, Llc | In-line dynamic text with variable formatting |
TW201115362A (en) | 2009-10-29 | 2011-05-01 | Ibm | System, method, and program for editing electronic document |
US20110271248A1 (en) * | 2010-04-29 | 2011-11-03 | Microsoft Corporation | Converting controls into source code |
US11410129B2 (en) | 2010-05-01 | 2022-08-09 | Monday.com Ltd. | Digital processing systems and methods for two-way syncing with third party applications in collaborative work systems |
WO2021161104A1 (en) | 2020-02-12 | 2021-08-19 | Monday.Com | Enhanced display features in collaborative network systems, methods, and devices |
WO2021024040A1 (en) * | 2019-08-08 | 2021-02-11 | Mann, Roy | Digital processing systems and methods for automatic relationship recognition in tables of collaborative work systems |
WO2021099839A1 (en) | 2019-11-18 | 2021-05-27 | Roy Mann | Collaborative networking systems, methods, and devices |
US9356991B2 (en) * | 2010-05-10 | 2016-05-31 | Litera Technology Llc | Systems and methods for a bidirectional multi-function communication module |
CA2718360A1 (en) * | 2010-10-25 | 2011-01-05 | Ibm Canada Limited - Ibm Canada Limitee | Communicating secondary selection feedback |
CA2772963C (en) * | 2011-03-31 | 2016-02-16 | Accenture Global Services Limited | Multilayer style sheet approach and system |
WO2013032621A1 (en) * | 2011-08-26 | 2013-03-07 | Franco Aaron Gerard | Data infrastructure for providing interconnectivity between platforms, devices, and operating systems |
US9104527B2 (en) * | 2011-09-08 | 2015-08-11 | Microsoft Technology Licensing, Llc | Automatically generated style rules for page design |
US20130145256A1 (en) * | 2011-12-02 | 2013-06-06 | Verizon Patent And Licensing Inc. | Context-dependent syling for documents |
US20140331124A1 (en) * | 2013-05-02 | 2014-11-06 | Locu, Inc. | Method for maintaining common data across multiple platforms |
IN2013MU02887A (en) * | 2013-09-05 | 2015-07-03 | Tata Consultancy Services Ltd | |
US9158438B2 (en) * | 2013-09-16 | 2015-10-13 | Sap Se | Multi-level user interface theming engine |
US9996230B2 (en) * | 2014-11-13 | 2018-06-12 | Microsoft Technology Licensing, Llc | Using sections for customization of applications across platforms |
US20160378735A1 (en) * | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Metamorphic documents |
US10977428B2 (en) | 2015-06-29 | 2021-04-13 | Microsoft Technology Licensing, Llc | Content transformations |
US10496241B2 (en) | 2015-08-21 | 2019-12-03 | Adobe Inc. | Cloud-based inter-application interchange of style information |
US10455056B2 (en) * | 2015-08-21 | 2019-10-22 | Abobe Inc. | Cloud-based storage and interchange mechanism for design elements |
US11698890B2 (en) | 2018-07-04 | 2023-07-11 | Monday.com Ltd. | System and method for generating a column-oriented data structure repository for columns of single data types |
US11436359B2 (en) | 2018-07-04 | 2022-09-06 | Monday.com Ltd. | System and method for managing permissions of users for a single data type column-oriented data structure |
US11663482B2 (en) * | 2018-07-06 | 2023-05-30 | Google Llc | User-specific text record-based format prediction |
CN109471613A (en) * | 2018-09-25 | 2019-03-15 | 北京广利核系统工程有限公司 | The graphic file generation method and system of nuclear safe level application |
US11030556B1 (en) | 2019-11-18 | 2021-06-08 | Monday.Com | Digital processing systems and methods for dynamic object display of tabular information in collaborative work systems |
IL297858A (en) | 2020-05-01 | 2023-01-01 | Monday Com Ltd | Digital processing systems and methods for enhanced collaborative workflow and networking systems, methods, and devices |
US11829953B1 (en) | 2020-05-01 | 2023-11-28 | Monday.com Ltd. | Digital processing systems and methods for managing sprints using linked electronic boards |
US11277361B2 (en) | 2020-05-03 | 2022-03-15 | Monday.com Ltd. | Digital processing systems and methods for variable hang-time for social layer messages in collaborative work systems |
US11023659B1 (en) | 2020-07-09 | 2021-06-01 | Jamison HILL | Systems and methods for generating a style configuration file with and without parameters |
US20220221966A1 (en) | 2021-01-14 | 2022-07-14 | Monday.com Ltd. | Digital processing systems and methods for dual mode editing in collaborative documents enabling private changes in collaborative work systems |
US11741071B1 (en) | 2022-12-28 | 2023-08-29 | Monday.com Ltd. | Digital processing systems and methods for navigating and viewing displayed content |
US11886683B1 (en) | 2022-12-30 | 2024-01-30 | Monday.com Ltd | Digital processing systems and methods for presenting board graphics |
US11893381B1 (en) | 2023-02-21 | 2024-02-06 | Monday.com Ltd | Digital processing systems and methods for reducing file bundle sizes |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5826025A (en) * | 1995-09-08 | 1998-10-20 | Sun Microsystems, Inc. | System for annotation overlay proxy configured to retrieve associated overlays associated with a document request from annotation directory created from list of overlay groups |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5860073A (en) * | 1995-07-17 | 1999-01-12 | Microsoft Corporation | Style sheets for publishing system |
US6023714A (en) * | 1997-04-24 | 2000-02-08 | Microsoft Corporation | Method and system for dynamically adapting the layout of a document to an output device |
JPH11143874A (en) * | 1997-11-11 | 1999-05-28 | Fujitsu Ltd | Style definition supporting device of structured document |
US6857102B1 (en) * | 1998-04-07 | 2005-02-15 | Fuji Xerox Co., Ltd. | Document re-authoring systems and methods for providing device-independent access to the world wide web |
US6925595B1 (en) * | 1998-08-05 | 2005-08-02 | Spyglass, Inc. | Method and system for content conversion of hypertext data using data mining |
US6336124B1 (en) * | 1998-10-01 | 2002-01-01 | Bcl Computers, Inc. | Conversion data representing a document to other formats for manipulation and display |
FI19992746A (en) * | 1998-12-28 | 2000-06-28 | Spyglass Inc | A method and system for converting electronic data content to wireless devices |
US6826597B1 (en) * | 1999-03-17 | 2004-11-30 | Oracle International Corporation | Providing clients with services that retrieve data from data sources that do not necessarily support the format required by the clients |
US6589291B1 (en) * | 1999-04-08 | 2003-07-08 | International Business Machines Corporation | Dynamically determining the most appropriate location for style sheet application |
EP1071024A3 (en) * | 1999-07-23 | 2002-07-17 | Phone.Com Inc. | Method and apparatus for splitting markup flows into discrete screen displays |
US7200809B1 (en) * | 1999-08-04 | 2007-04-03 | Oracle International Corporation | Multi-device support for mobile applications using XML |
US6585778B1 (en) * | 1999-08-30 | 2003-07-01 | International Business Machines Corporation | Enforcing data policy using style sheet processing |
EP1117050A1 (en) * | 2000-01-14 | 2001-07-18 | Sun Microsystems, Inc. | Individual data representation |
EP1126379A1 (en) * | 2000-02-16 | 2001-08-22 | Sun Microsystems, Inc. | Conversion of directly assigned document format attributes |
US20040172484A1 (en) * | 2000-04-04 | 2004-09-02 | Gudmundur Hafsteinsson | Device-specific communicating between a transmitting device and a receving device |
US7702995B2 (en) * | 2000-04-24 | 2010-04-20 | TVWorks, LLC. | Method and system for transforming content for execution on multiple platforms |
US7134073B1 (en) * | 2000-06-15 | 2006-11-07 | International Business Machines Corporation | Apparatus and method for enabling composite style sheet application to multi-part electronic documents |
TW512640B (en) * | 2000-08-25 | 2002-12-01 | Phone Inc W | Mobile opinion polling system and method |
US6822663B2 (en) * | 2000-09-12 | 2004-11-23 | Adaptview, Inc. | Transform rule generator for web-based markup languages |
US20020052895A1 (en) * | 2000-10-13 | 2002-05-02 | Keating Brett Matthew | Generalizer system and method |
KR100398711B1 (en) * | 2000-11-08 | 2003-09-19 | 주식회사 와이즈엔진 | Content publication system for supporting real-time integration and processing of multimedia contents including dynamic data and method thereof |
US20020111972A1 (en) * | 2000-12-15 | 2002-08-15 | Virtual Access Networks. Inc. | Virtual access |
US7152205B2 (en) * | 2000-12-18 | 2006-12-19 | Siemens Corporate Research, Inc. | System for multimedia document and file processing and format conversion |
WO2002050719A2 (en) * | 2000-12-18 | 2002-06-27 | Kargo, Inc. | A system and method for delivering content to mobile devices |
US20020152244A1 (en) * | 2000-12-22 | 2002-10-17 | International Business Machines Corporation | Method and apparatus to dynamically create a customized user interface based on a document type definition |
US7616971B2 (en) * | 2000-12-29 | 2009-11-10 | International Business Machines Corporation | System and method for providing access to forms for displaying information on a wireless access device |
US20020161802A1 (en) * | 2001-02-27 | 2002-10-31 | Gabrick Kurt A. | Web presentation management system |
GB2373085B (en) * | 2001-03-08 | 2004-10-06 | Ibm | Method, computer program and system for style sheet generation |
US20020165881A1 (en) * | 2001-03-15 | 2002-11-07 | Imation Corp. | Web page color accuracy using color-customized style sheets |
US7269788B2 (en) * | 2001-06-29 | 2007-09-11 | Versata Development Group, Inc. | Extensibility and usability of document and data representation languages |
US7733509B2 (en) * | 2001-09-26 | 2010-06-08 | Infoprint Solutions Company, Llc | Method and apparatus for printing XML directly using a formatting template |
CN100338573C (en) * | 2001-10-04 | 2007-09-19 | 皇家飞利浦电子股份有限公司 | Method of styling a user interface and device with adaptive user interface |
JP2003131930A (en) * | 2001-10-26 | 2003-05-09 | Nec Corp | Apparatus for contents conversion processing, method for automatic selection of style sheet and program thereof |
US20030106021A1 (en) * | 2001-11-30 | 2003-06-05 | Tushar Mangrola | Apparatus and method for creating PDF documents |
US20030110297A1 (en) * | 2001-12-12 | 2003-06-12 | Tabatabai Ali J. | Transforming multimedia data for delivery to multiple heterogeneous devices |
US20030120758A1 (en) * | 2001-12-21 | 2003-06-26 | Koninklijke Philips Electronics N.V. | XML conditioning for new devices attached to the network |
US20030167334A1 (en) * | 2002-03-04 | 2003-09-04 | Mark Henry Butler | Provision of content to a client device |
US7191395B2 (en) * | 2002-03-12 | 2007-03-13 | International Business Machines Corporation | Method and system for stylesheet-centric editing |
US8117533B2 (en) * | 2002-03-12 | 2012-02-14 | International Business Machines Corporation | Method and system for stylesheet rule creation, combination, and removal |
US20030217076A1 (en) * | 2002-05-15 | 2003-11-20 | Heptinstall Christian Elliot | System and method for rapid generation of one or more autonomous websites |
US7143344B2 (en) * | 2002-06-12 | 2006-11-28 | Microsoft Corporation | Transformation stylesheet editor |
CA2409079A1 (en) * | 2002-10-21 | 2004-04-21 | Ibm Canada Limited-Ibm Canada Limitee | Creating multiple and cascading business interpretations from raw application data using transformation layering |
US8635218B2 (en) * | 2003-09-02 | 2014-01-21 | International Business Machines Corporation | Generation of XSLT style sheets for different portable devices |
US7370274B1 (en) * | 2003-09-18 | 2008-05-06 | Microsoft Corporation | System and method for formatting objects on a page of an electronic document by reference |
US7328403B2 (en) * | 2003-10-22 | 2008-02-05 | Intel Corporation | Device for structured data transformation |
US7200816B2 (en) * | 2004-01-21 | 2007-04-03 | Altova, Gmbh | Method and system for automating creation of multiple stylesheet formats using an integrated visual design environment |
US7398472B2 (en) * | 2004-07-09 | 2008-07-08 | Microsoft Corporation | Defining the visual appearance of user-interface controls |
-
2004
- 2004-05-05 US US10/839,109 patent/US20060156220A1/en not_active Abandoned
- 2004-05-05 EP EP04751299A patent/EP1627329A1/en not_active Withdrawn
- 2004-05-05 GB GB0522462A patent/GB2416238A/en not_active Withdrawn
- 2004-05-05 WO PCT/US2004/013885 patent/WO2004100015A2/en active Application Filing
- 2004-05-05 WO PCT/US2004/013848 patent/WO2005029364A1/en active Search and Examination
- 2004-05-05 GB GB0522468A patent/GB2416890A/en not_active Withdrawn
- 2004-05-05 EP EP04760715A patent/EP1623338A2/en not_active Ceased
- 2004-05-05 JP JP2006514288A patent/JP2006525609A/en active Pending
- 2004-05-05 JP JP2006514277A patent/JP2006525608A/en active Pending
- 2004-05-05 US US10/839,320 patent/US8484553B2/en not_active Expired - Fee Related
-
2010
- 2010-05-25 JP JP2010119937A patent/JP2010191996A/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5826025A (en) * | 1995-09-08 | 1998-10-20 | Sun Microsystems, Inc. | System for annotation overlay proxy configured to retrieve associated overlays associated with a document request from annotation directory created from list of overlay groups |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050021502A1 (en) * | 2003-05-23 | 2005-01-27 | Benjamin Chen | Data federation methods and system |
US7693840B1 (en) * | 2004-07-30 | 2010-04-06 | Sprint Communications Company L.P. | Method and system for distribution of common elements |
US20070174270A1 (en) * | 2006-01-26 | 2007-07-26 | Goodwin Richard T | Knowledge management system, program product and method |
US7657546B2 (en) * | 2006-01-26 | 2010-02-02 | International Business Machines Corporation | Knowledge management system, program product and method |
US20080040658A1 (en) * | 2006-07-07 | 2008-02-14 | Honeywell International Inc. | Linking of Content Portions Developed Independently |
US8645816B1 (en) * | 2006-08-08 | 2014-02-04 | Emc Corporation | Customizing user documentation |
US20080147672A1 (en) * | 2006-12-19 | 2008-06-19 | Pena Ronny A | System and method for providing platform-independent content services for users for content from content applications leveraging atom, xlink, xml query content management systems |
US7552127B2 (en) * | 2006-12-19 | 2009-06-23 | International Business Machines Corporation | System and method for providing platform-independent content services for users for content from content applications leveraging Atom, XLink, XML Query content management systems |
WO2008110420A1 (en) * | 2007-03-09 | 2008-09-18 | International Business Machines Corporation | Document reconstitution in a content management system |
US20080222506A1 (en) * | 2007-03-09 | 2008-09-11 | John Edward Petri | Minimizing Accesses to a Repository During Document Reconstitution in a Content Management System |
US7734998B2 (en) * | 2007-03-09 | 2010-06-08 | International Business Machines Corporation | Minimizing accesses to a repository during document reconstitution in a content management system |
US20090083247A1 (en) * | 2007-09-21 | 2009-03-26 | Brian John Cragun | Automatically making changes in a document in a content management system based on a change by a user to other content in the document |
US8655903B2 (en) * | 2007-09-21 | 2014-02-18 | International Business Machines Corporation | Automatically making changes in a document in a content management system based on a change by a user to other content in the document |
US20130159342A1 (en) * | 2007-09-21 | 2013-06-20 | International Business Machines Corporation | Automatically making changes in a document in a content management system based on a change by a user to other content in the document |
US8566338B2 (en) * | 2007-09-21 | 2013-10-22 | International Business Machines Corporation | Automatically making changes in a document in a content management system based on a change by a user to other content in the document |
US20090276699A1 (en) * | 2008-05-02 | 2009-11-05 | Canon Kabushiki Kaisha | Document processing apparatus and control method thereof |
US8539332B2 (en) * | 2008-05-02 | 2013-09-17 | Canon Kabushiki Kaisha | Importing an external subordinate document into a master document, editing the “subordinate” portion of the master document and updating the external subordinate document by exporting the edit of the “subordinate” portion of the master document to the external subordinate document |
US8209599B2 (en) * | 2009-04-23 | 2012-06-26 | Xerox Corporation | Method and system for handling references in markup language documents |
US20100275117A1 (en) * | 2009-04-23 | 2010-10-28 | Xerox Corporation | Method and system for handling references in markup language documents |
US8726147B1 (en) * | 2010-03-12 | 2014-05-13 | Symantec Corporation | Systems and methods for restoring web parts in content management systems |
US20120290926A1 (en) * | 2011-05-12 | 2012-11-15 | Infinote Corporation | Efficient document management and search |
CN102521232A (en) * | 2011-11-09 | 2012-06-27 | Ut斯达康通讯有限公司 | Distributed acquisition and processing system and method of internet metadata |
US20130339886A1 (en) * | 2012-06-18 | 2013-12-19 | Computer Pundits, Inc. | Tools for dynamic database driven catalog building |
US10509852B2 (en) * | 2012-12-10 | 2019-12-17 | International Business Machines Corporation | Utilizing classification and text analytics for annotating documents to allow quick scanning |
US20140215304A1 (en) * | 2012-12-10 | 2014-07-31 | International Business Machines Corporation | Utilizing classification and text analytics for annotating documents to allow quick scanning |
US10095781B2 (en) | 2014-10-01 | 2018-10-09 | Red Hat, Inc. | Reuse of documentation components when migrating into a content management system |
US20160371249A1 (en) * | 2015-06-22 | 2016-12-22 | Microsoft Technology Licensing, Llc | Deconstructing documents into component blocks for reuse in productivity applications |
US10339183B2 (en) | 2015-06-22 | 2019-07-02 | Microsoft Technology Licensing, Llc | Document storage for reuse of content within documents |
US10394949B2 (en) * | 2015-06-22 | 2019-08-27 | Microsoft Technology Licensing, Llc | Deconstructing documents into component blocks for reuse in productivity applications |
US10740349B2 (en) | 2015-06-22 | 2020-08-11 | Microsoft Technology Licensing, Llc | Document storage for reuse of content within documents |
US10311366B2 (en) * | 2015-07-29 | 2019-06-04 | Adobe Inc. | Procedurally generating sets of probabilistically distributed styling attributes for a digital design |
US10664536B2 (en) * | 2015-12-18 | 2020-05-26 | Microsoft Technology Licensing, Llc | Consumption of user-filtered data on a client device |
US20220150592A1 (en) * | 2020-11-11 | 2022-05-12 | Rovi Guides, Inc. | Systems and methods for providing media recommendations |
US11641506B2 (en) * | 2020-11-11 | 2023-05-02 | Rovi Guides, Inc. | Systems and methods for providing media recommendations |
US11849177B2 (en) | 2020-11-11 | 2023-12-19 | Rovi Guides, Inc. | Systems and methods for providing media recommendations |
Also Published As
Publication number | Publication date |
---|---|
JP2006525608A (en) | 2006-11-09 |
GB2416238A8 (en) | 2006-02-15 |
US20050132284A1 (en) | 2005-06-16 |
US8484553B2 (en) | 2013-07-09 |
EP1623338A2 (en) | 2006-02-08 |
EP1627329A1 (en) | 2006-02-22 |
GB0522462D0 (en) | 2005-12-14 |
WO2005029364A8 (en) | 2005-06-02 |
GB0522468D0 (en) | 2005-12-14 |
JP2006525609A (en) | 2006-11-09 |
JP2010191996A (en) | 2010-09-02 |
GB2416238A (en) | 2006-01-18 |
WO2004100015A2 (en) | 2004-11-18 |
GB2416890A (en) | 2006-02-08 |
WO2005029364A1 (en) | 2005-03-31 |
WO2004100015A3 (en) | 2005-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060156220A1 (en) | System and method for managing dynamic content assembly | |
US10067931B2 (en) | Analysis of documents using rules | |
EP1679616B1 (en) | Data binding in a word-processing application | |
Kahan et al. | Annotea: an open RDF infrastructure for shared Web annotations | |
US7644095B2 (en) | Method and system for compound document assembly with domain-specific rules processing and generic schema mapping | |
US20040261017A1 (en) | Document generation | |
US20060101058A1 (en) | System and method for transforming legacy documents into XML documents | |
JP2008533544A (en) | Method and system for operating a source code search engine | |
US20040268230A1 (en) | Systems and methods for differential document delivery based on delta description specifications | |
Vohra | Pro XML Development with Java Technology | |
Laine et al. | XFormsDB: an extensible web application framework built upon declarative W3C standards | |
Joshi | Beginning XML with C# 7: XML Processing and Data Access for C# Developers | |
Eito-Brun | XML-based Content Management: Integration, Methodologies and Tools | |
US20100162094A1 (en) | Providing interactive forms in web application software | |
Wahlin | XML for asp. net developers | |
Luján-Mora et al. | A Web-oriented approach to manage multidimensional models through XML schemas and XSLT | |
Coles | Pro SQL Server 2008 XML | |
Watt et al. | XLink Essentials | |
Hillier | Advanced SharePoint Services Solutions | |
Banchs et al. | Reading and Writing Files | |
Huff | The Definitive Guide to Stellent Content Server Development | |
Jacobs | Foundation XML and E4X for Flash and Flex | |
Lee et al. | XML Programming Using the Microsoft XML Parser | |
Joshi | Pro. Net 2.0 XML | |
Delgado et al. | XML: More Than an E-Publishing Language. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SILICON VALLEY BANK, CALIFORNIA Free format text: SECURITY AGREEMENT;ASSIGNOR:ARBORTEXT, INC.;REEL/FRAME:016044/0465 Effective date: 20041021 |
|
AS | Assignment |
Owner name: ARBORTEXT, INC., MICHIGAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DREYSTADT, JOHN N.;ALLEN, TIMOTHY P.;KOENIG, JOHN A.;AND OTHERS;REEL/FRAME:016191/0770;SIGNING DATES FROM 20050222 TO 20050301 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |