1. Technical Field
The present invention relates to rule-based media content processing across different contexts, and in particular to providing media objects with methods and rules for interaction with target contexts.
2. Description of the Related Art
Media content has become more pervasively employed in information technology. Media content includes (but is not limited to) pictures, audio, video and associated metadata. The importance of media is directly related on how usable the content in the target environment is, that is, content should be easily searchable to locate the desired fragment, and content should be in the proper format for the target environment.
Methods for formatting and processing media content are known in the art. Existing solutions address mainly the processing of static media content in a context, and address very limited automatic transformations based on limited information on the media such as mime type or file extension. Some solutions address the specific problem of automatically adapting the format of a document to a specific viewer; other solutions address the automatic transcoding of content in a content distribution network. However, the available art does not address the general problem of making the content aware of different contexts. In known solutions, the rules to deal with different media are all hardwired into the applications, and not present in the content itself.
U.S. Pat. No. 6,023,714 entitled “Method and system for dynamically adapting the layout of a document to an output device,” addresses the specific problem of automatically adapting the format of a document to a specific viewer. U.S. Pat. App. No. 2003/0225723 A1 entitled “Content transcoding in a content distribution network,” addresses the automatic transcoding of content in a content distribution network, based on conditions for selecting particular associated transformations to be applied to a master content.
U.S. Pat. App. No. 2002/0052849 A1 entitled “System and methods for the production, distribution and flexible usage of electronic content in heterogeneous distributed environments,” describes a system to support creation, distribution and flexible usage of electronic content, where a content creator can create and associate a sphere of fair use and content modulation rules definitions with content.
What is needed is a system and method for the automatic processing of content which permits the context to be reactive to the media, so that content is readily available for use in the target context and no time-consuming manual processes need to be involved.
The present invention provides systems and methods to make media content sensitive to the context. Embodiments of the present invention employ advances in object oriented technologies and programming patterns, by extending the notion of media content from static data to a media object including data, rules and methods. Standard object oriented technology includes an object as data and methods, and an object can be manipulated by the run time environment invoking its methods. Even if the definition of object is quite abstract, an implementation of an object can work in a specific programming environment; for example a Java™ object can be used in a Java™ programming environment, and so on.
The present invention extends the notion of object oriented to the media content, but is independent from a specific programming environment. In addition, the present invention may add rules to the media object which interact with other rules in the context, so that the processing of the media is the result of a negotiation between context and object rules.
A system and method for making media content sensitive to a context, such that the media content carries information needed to automatically process the media content in a target environment includes a context processing engine. The engine processes a first set of rules and methods for media content objects and compares the first set to a second set of rules and methods for media context to decide which methods are to be applied on the media object to process the media content in a target environment.
These and other objects, features and advantages will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.
The disclosure will provide details in the following description of preferred embodiments with reference to the following figures wherein:
Embodiments of the present invention include systems and methods for making media content sensitive to context, so that when media content crosses boundaries between different contexts, the content carries information needed to automatically be processed by a target environment. Media content objects and the target environment are provided with a set of rules and methods, and patterns of interactions are provided for binding media objects and context rules. The interaction between media and context triggers specific actions such as automatic indexing of media for search, media transformations or augmentation of context (adding more metadata or media derived from current media). Other actions are also contemplated.
The interaction may also define media access control and tracking and may trigger notifications when specific processes are applied to the media content. Rules and methods may be logically embedded in the media itself, so that rules are propagated when the media object crosses different environments. In addition, rules and methods can be added or altered in each context crossed by the object, so that the appropriate interaction can take place in the next crossed context. The system/method permits the context to be reactive to the media, so that content may be readily available for use in the target context and no time-consuming manual processes need to be involved. For example, a video content imported into a new context would trigger the creation of auxiliary media such as key frames, metadata, voice transcripts, which can then be used to search and access any portion of the video or audio itself.
It should be understood that the elements shown in the FIGS. may be implemented in various forms of hardware, software or combinations thereof. Preferably, these elements may be implemented in software on one or more appropriately programmed general-purpose digital computers having a processor and memory and input/output interfaces.
Embodiments of the present invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment including both hardware and software elements. In a preferred embodiment, the present invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that may include, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code to reduce the number of times code is retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) may be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
The present invention includes systems where media content is created, managed and distributed. Traditionally, media content was static and behaved the same way in every context. During its lifecycle, media content needed to be transformed and enriched with auxiliary information, and this process required manual intervention and specialized tools.
In accordance with the present invention, making media content context sensitive permits media to react to the context, and automates the processing needed to properly use the media in each context.
Referring now to the drawings in which like numerals represent the same or similar elements and initially to
A context 14 is also provided with context specific rules and methods 15, and interaction patterns 16 which describe priorities and orders of execution between media object rules/methods and context rules/methods. When a context sensitive media object is imported into a context, the processing of the media object is automatically triggered.
For example, a video content object imported in a context would trigger the creation of auxiliary media such as key frames, metadata, voice transcripts, which can then be used to search and access any portion of the video or audio. In one implementation, the media object 11 can be imported in more than one context, and can be processed in one context to create new context sensitive media objects which can then be imported in other contexts. Context may refer to a programming environment, a type of device, a type of format, a hardware configuration or any other target environment where an object can be processed.
Referring to
Interaction patterns 24 are provided to the engine 22 at initialization time and are used to assign priorities and workflow on object and context rules. For example, an object rule may specify that an image object of type .GIF needs to be converted to a type .JPG as soon as imported in a context. In the same example, a context will have a rule which specifies that each imported object is to be converted to a .TIFF format; the interaction pattern 24 may then specify that the context rule on format takes priority over the object rule, and the object will not be transcoded to .JPG. Also, in the same example a workflow statement can instead be used in the interaction pattern 24 to specify that the processing needed by the object rules 23 can happen in a different temporal sequence. For example, the conversion needed by the object rule from .GIF to .JPG will take place and then the conversion needed by the engine to .TIFF will be performed.
Another example of interation patterns defining priorities would be in the case of an image object with a background color rule being overrided by a background color rule of the context. In a context associated with an impairment condition (e.g. visual or hearing) an interaction pattern could define the most appropriate way to process an object. For the visual impaired audio would have priority and for the hearing impaired video/text would have priority.
After importing the context sensitive media object 20, the processing engine 22 starts parsing the object rules, then uses its internal rules 23 and interaction patterns 24 to make decisions on the needed processing. The processing may include the use of methods embedded within the object 20 (e.g., object methods, as specified in object rules) or of methods available to the engine 22 through plug-in processors 25. The result of the processing is a new context sensitive media object 26, and additional artifacts (if specified by the rules), which are in turn new media context sensitive objects. An example is a video file with generated key frames images.
Referring to
Rules may be parsed and evaluated sequentially. Each rule is then matched to existing context rules in block 33. In one implementation, context rules and interaction patterns are loaded at run time in the context engine (22). A pattern-based execution decision is then performed in block 34. This task evaluates the object rule, the matching context rule(s) and interaction pattern to decide which specific methods should be invoked for the context sensitive object.
As described above, the interaction pattern assigns priorities to object and context rules, and defines in which order processing on the media object should occur. Once decided which rules should be executed and in what order, execution decisions are added to a workflow list in block 35. If there are still object rules to be evaluated in block 36, control is assigned to block 32, where the next object rule is extracted and tasks 32 to 36 are executed again.
If all rules have been processed in block 36, control is passed to execute the workflow in block 37. The workflow engine receives the workflow list, which specifies what rules should be executed and in what order.
In one implementation, the workflow engine has the responsibility of evaluating at run time which methods are available for the execution of the rules. Methods are available at the context level by registering plug-in processors with the context engine, and some methods may be available at the media object level. An example of a media object level method is a fragment of code which can extract information embedded in the media itself.
The workflow engine executes the complete workflow 37 for the media object. The result is a new media object with context information or the original media object and a set of artifacts (see 26 in
A particularly useful implementation for the representation of media object and context rules is based on the XML markup language. In one example implementation the rules are written as a set of stanzas using the XML <rule> tag. Each rule then specifies an operation to be executed on the media object.
In the same example implementation, object methods can be also written in a set of XML stanzas using the XML <method> tag. The actual code will then be included in a child CDATA tag. The programming language for the objects methods should be based on high-level, platform independent language. In one example, the programming language could be based on Java™. In another implementation, the programming language can be based on a high level scripting language such as ECMA script. One purpose of object methods is to provide methods with knowledge on how to handle the specific media object being processed, and on how to perform specific high-level tasks which are context-specific.
Referring to
In another example implementation, the media object and the context sensitive information will be packaged together in a compressed archive. Many implementations of compressed archives are available, examples include: ZIP™, RAR™, JAR™, TAR™, etc.
In another example implementation the context information will be distributed through a separate logical path from the media object, but the information will have a unique reference to the media object itself, preferably in the form of a URN (Universal Resource Name) or the like. In this way, the object and its context related information may be sent down separate paths or at different times down the same path and recombined or associated at a later time.
Having described preferred embodiments of a system and method for context sensitive media and information (which are intended to be illustrative and not limiting), it is noted that modifications and variations can be made by persons skilled in the art in light of the above teachings. It is therefore to be understood that changes may be made in the particular embodiments disclosed which are within the scope and spirit of the invention as outlined by the appended claims. Having thus described aspects of the invention, with the details and particularity required by the patent laws, what is claimed and desired protected by Letters Patent is set forth in the appended claims.
This application is a Continuation application of co-pending U.S. patent application Ser. No. 11/199,653 filed on Aug. 9, 2005, incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 11199653 | Aug 2005 | US |
Child | 14012417 | US |