The present invention generally relates to computer systems for the incorporation of static objects into electronic collaboration, information storing, editing and management systems to create dynamic intelligent objects. And, more specifically, the present invention is directed to systems and methods for using static object content as a baseline to create dynamically attributed and behaviorally driven intelligent objects which can be saved as templates. The templates can then be manipulated and reused in single user and multi-user environments where the users may be collocated in the same room and/or also distributed throughout any number of remote locations.
It is well known in the art to provide executable programs in computer systems to allow a user to take an electronic form or document that has been created for single use, and through a software application convert the document it to a template document object to be reused at a later date.
The typical application program creates a single purpose document utilizing a graphical, and/or scripting language to facilitate the process of creating the static structured content to be used in a template document object. This tends to be a prescribed process that directs the user to create and format the template document object from scratch within the limited options of format and style.
Such template document object creation processes are typically executed in an offline mode by a single user, and are not executed in real-time in concurrent multi-user collaboration, or shared information system environments.
Such template document creation systems typically build specific template objects of certain types. For example, a word processor will build word processing document templates objects, and a spreadsheet application will build specific spreadsheet document templates objects. To create a different type of template the user would need to utilize a different executable program.
For example, a word processor will typically create form-style templates objects where the user creates static text and inserts objects, and where another user of the template would be allowed to enter data into the form. Once the template has been created, it is saved for future use. If further changes need to be applied to the template object, the template object will need to be loaded into the template editor of the word processor application and modified offline of the editing and contribution process. This is problematic and is not adaptable to dynamic real-time collaboration environments.
Collaboration systems have been known in the current art for some time. The intent is to bring multiple users together to perform workflows such as, but not limited to, brainstorming, process improvement, and other information management sessions. There has been significant effort to transition these sessions from an analog format, such as sticky notes or white boarding, into a digital workspace with all the improvements that digital environments offer, such as persistent storage and remote user participation. Collaboration systems are also being used to share common data and support structured business processes throughout organizations on a global scale. An example of a business process would be a Lean Process workflow (e.g., Lean Manufacturing and/or Lean Production, etc.). As organizations move to further integrate collaboration systems into all aspects of their business processes there is a need to allow the organization to have a system that can adapt to their specific forms and process workflows quickly without the need to create new forms and/or process templates to work in the new software application environment.
Realtime collaboration systems in the current art may utilize an import feature with the intent of taking another application's documents and converting the documents to the new system applications pre-canned format and presentation. The import process tends to be driven by very specific rules which may not be appropriate and increase complexity and decrease user adoption and usability of the new system.
Templates objects commonly used in word processing, spreadsheet, and graphical presentation applications, while useful to facilitate the completion of forms, documents and presentations, creates a prescribed rigid format with limited usage in a free-flowing collaboration environment.
Further to standard template objects, static image files, such as JPEG, BMP, Tiff, etc., are incorporated as supporting content within a document template object, but not used as the basis of a template object, with the appropriate attributes and behaviors associated with a dynamic template object. As such, static images are typically used as an example of structure to then allow a user to create a specific purpose build template object in a dedication application in the current art.
If the image is less structured, such as photos of arbitrary objects or structures, they become even less appropriate for what is thought of template objects in the current art. In a collaborative environment, images objects can be very useful to structure and facilitate user input while allowing for a wide degree of data display formats and potentially dynamic hieratical data structures.
The current art is not able to properly adapt and dynamically utilize static objects and transition the content to a dynamic intelligent template object format.
As data objects and process management becomes more complex, the inefficiencies in the current art become even more pronounced. As collaboration and information management systems become larger and more complex, limitations in the current art become problematic in how intelligent objects and process flows are created and managed, especially under concurrent and remote user situations.
The present invention is intended to overcome one or more of the problems discussed above.
The present invention allows users to incorporate new or pre-existing static content into electronic collaboration, information storing, editing, and managing computer systems for the purpose of creating dynamic intelligent objects. And, more specifically, it is an object of the invention to utilize static object content, that would not normally have dynamic object attributes and/or behaviors, as a baseline to create dynamically attributed and behaviorally driven intelligent content objects which can then be saved as templates that can then be manipulated and reused in single-user and multi-user environments. This ability to create dynamic template objects from static object types overcomes the limitations of the prior art which is limited to creating new forms via limited fixed-format importing capabilities.
According to one aspect of the present invention, the static object is converted into an object with the properties of a group. The system is able to accept any object type and turn it into a dynamic object with attributes and behaviors of one or more group(s). Groups can contain such objects as, but not limited to, sub-groups, notes, text boxes, images, sketches, embedded links, and inking objects. A property of the group is the ability to have groups within groups which forms a nested hierarchal behavior. Objects contained in the group may inherit specific behaviors and attributes such as, but not limited to, colour, naming convention, and positional attributes. There may be multiple sub-groups at the same layer and other groups with in groups to form deeper nested layers. The ability to have flat and nested groups allows the system to handle a variety of static object types and create complex dynamic data objects with the ability to save the data objects as templates. Furthermore, the complex dynamic data objects are able to be exported to third party programs using known-in-the-art standard protocols such as, but not limited to, for example, delimited text and xml schemas, which will allow for accurate representation of the data layers and object relationships in the third-party program. [Wonderful Summary paragraph.]
According to a further aspect of the present invention, the static object is preferably an image object that is transformed into a dynamic image object through a single action by the user. A static image object is transformed into a dynamic object when the attributes and behaviors of a group are added to the static image-object, or when another underlying behavior is made available through interaction with the image object. The static image-object may contain areas that are used to demarcate one section of the image from another. The content of the image object can be used as reference to determine appropriate grouping boundaries. Other related objects such as text, notes, images etc. can be dragged onto (or placed on) the dynamic image object. The added objects that overlay the dynamic image object can be removed or repositioned by any of a multiplicity of users at any time.
Users can start with static images and, as the process develops, static image objects can be converted to dynamic, intelligent image-object thus supporting a dynamic creative process as a part of individual or team activities where a template was not the initial purpose of the work effort.
Dynamic intelligent objects have applied attributes and behaviors, such as but not limited to color, transparency, positional information, object contents and object order hierarchy which includes multiple nested objects, and are able to determine the attributes and behaviors inherent to objects that are placed on, or overlaid onto the dynamic intelligent object. An intelligent, dynamic image-object remains in a dynamic, intelligent state at all times, allowing for users to update and edit the image-object even within the course of normal data entry. The intelligent dynamics of an image-object are related to the ability of the object to automatically manage attributes, positioning and layering information within the object without the user needing to configure or predefine structure or content limitations.
According to another aspect of the present invention the dynamic template objects can be saved to a template library to be used and edited by other users.
According to yet another aspect of the present invention, static objects contained on the digital collaboration workspace can be accessed concurrently by multiple users in real-time and in remote locations to build, use, and save dynamic template objects.
According to yet further aspect of the present invention, static objects contained on the digital collaboration workspace can be accessed concurrently by multiple users in real-time and in remote locations to build, use, and save dynamic template objects that can be used to create exportable dynamic template objects, which can be static and/or dynamic in content and behavior. For example, a static version of the export would be a PDF file that may be read only, or a PDF file that may allow for data entry in specific fields. The export capability would also support standard office programs such as MS Excel and MS Word which would allow for raw data access and support of the full hieratical and data structure format of the original dynamic template object.
The present invention provides customizable, intelligent templates in Span′ software Span™ software is a cloud-based large format horizontally scrollable up to 200 feet of digital visual collaboration work space that can be accessed simultaneously on large multiuser interactive displays, personal computers and personal devices. The dynamic functionality makes it easy for the growing user base to leverage their existing lean, agile, design, and business processes within the Span′ software. For example, paper-based templates or physical project boards commonly used in sprint planning, Kanban and pull planning can be easily transformed into customizable digital templates within a Span′ canvas. Images, such as an overhead view of a property development site, can be transformed into an intelligent template that is divided into color coded zones for visual review or managing project progress. Users can create intelligent templates from documents produced in applications like Microsoft® PowerPoint® and Excel®, and automatically assign color to notes that are placed within groups and subgroups. This provides users with rich project information at a glance. Users will also be able to customize stock templates currently available in Span™ software, such as SWOT (Strength, Weaknesses, Opportunities, Threats) analysis and fishbone diagrams. These intelligent templates in Span™ software appeal to the growing number of process-driven teams that regularly meet in physical and virtual spaces to prioritize, plan, track, and visualize contributions from team members. The preferred embodiments comprise both algorithms and hardware accelerators to implement the structures and functions described herein.
According to another aspect of the present invention, a method for creating dynamic, intelligent templates for displaying objects on at least one computer-controlled display includes a first user displaying a static object on the at least one computer-controlled display. Preferably, the first user preferably converts the static object into a dynamic template object having attributes of a group, the group including at least two of (i) notes, (ii) text boxes, (iii) images, (iv) sketches, (v) embedded links, (vi) inking objects, and (vii) sub-groups. Preferably, the objects of the group inherit specific behaviors and attributes of the group including at least two of (i) color, (ii) naming convention, and (iii) positional attributes. Preferably, the conversion occurs when at least one of: (i) the attributes and behaviors of the group are added to the static object, and (ii) when another underlying behavior is made available through interaction with the object. Preferably, the dynamic template object is stored in a template library. Preferably, a second user performs at least one of: (i) accessing the dynamic template object stored in the template library, (ii) making further change to the attributes or the contents of the accessed dynamic template object, (iii) saving a further changed dynamic template object in the template library, and (iv) displaying the accessed dynamic template object on the at least one computer-controlled display.
According to another aspect of the present invention, apparatus for creating dynamic, intelligent templates for displaying objects on at least one computer-controlled display, includes at least one processor configured for a first user to display a static object on the at least one computer-controlled display. The at least one processor being further configured for the first user to convert the static object into a dynamic template object having attributes of a group, the group including at least two of (i) notes, (ii) text boxes, (iii) images, (iv) sketches, (v) embedded links, (vi) inking objects, and (vii) sub-groups. The at least one processor being further configured such that objects of the group inherit specific behaviors and attributes of the group including at least two of (i) color, (ii) naming convention, and (iii) positional attributes. The at least one processor being further configured such that the conversion occurs when at least one of: (i) the attributes and behaviors of the group are added to the static object, and (ii) when another underlying behavior is made available through interaction with the object. The at least one processor being further configured such that the dynamic template object is stored in a template library. The at least one processor being further configured such that a second user is enabled to perform at least one of: (i) accessing the dynamic template object stored in the template library, (ii) making further change to the attributes or the contents of the accessed dynamic template object, (iii) saving a further changed dynamic template object in the template library, and (iv) displaying the accessed dynamic template object on the at least one computer-controlled display.
According to another aspect of the present invention, program code embodied in a non-transitory computer readable medium for creating dynamic, intelligent templates for displaying objects on at least one computer-controlled display, wherein the program comprises instructions causing at least one processor to (a) enable a first user to display a static object on the at least one computer-controlled display; (b) enable the first user to convert the static object into a dynamic template object having attributes of a group, the group including at least two of (i) notes, (ii) text boxes, (iii) images, (iv) sketches, (v) embedded links, (vi) inking objects, and (vii) sub-groups; (c) wherein objects of the group inherit specific behaviors and attributes of the group including at least two of (i) color, (ii) naming convention, and (iii) positional attributes; (d) wherein the conversion occurs when at least one of: (i) the attributes and behaviors of the group are added to the static object, and (ii) when another underlying behavior is made available through interaction with the object; (e) cause the dynamic template object to be stored in a template library; and (f) enable a second user at least one of: (i) accessing the dynamic template object stored in the template library, (ii) making further change to the attributes or the contents of the accessed dynamic template object, (iii) saving a further changed dynamic template object in the template library, and (iv) displaying the accessed dynamic template object on the at least one computer-controlled display.
With reference to the drawings, non-limiting illustrative embodiments will now be described.
The present invention is directed to apparatus and methods that enable individual users and/or groups of people, and or off-line users known as “participants”, to join together over a network, such as the Internet or similar electronic channel(s), in a remotely-distributed, real-time fashion employing personal computers, network workstations, large-screen displays, and/or other similarly connected appliances, to maximize the inclusion of static digital work space objects for the creation of dynamic intelligent workspace objects and templates.
Advantageously, embodiments of the present invention pertain to utilizing dynamic intelligent objects to provide systems and methods to give users a method to utilize static objects types to create, modify, delete, and manipulate all properties of dynamic intelligent objects to facilitate free-form reusable dynamic image-groups that can be created from static objects in a single or multiuser digital workspace environment.
While the description below is given with respect to a real-time multiuser collaborative environment where there may be a plurality of users located in the room and at remote locations, other more straightforward uses may also apply without departing from the spirit or scope or the attached claims. For example, the application program may be run on a single computational device (one or more processors) in standalone mode. The cloud/server allows for a plurality of remote locations and devices to share the same digital workspace and objects for a contiguous and consistent experience and presentation with the ability to sync content from a stand-alone user instance at a later time.
A notable challenge to creating dynamic template objects is the ability of the system to adapt to a multitude of file formats, data structures, and pre-existing custom data objects, resulting in complex implementations while maintaining sufficient capabilities and ease-of-use for the end user.
The words computational device, computer and device are used interchangeably and can be construed to mean the same thing.
The computational devices may include one or more processors, a CPU, RAM, storage, video output, audio sound capability and the ability to connect with external peripherals, such as a display, touch system and microphone. Preferably, the computer processor(s) are configured to read program code from one or more computer readable media (such as memory ICs, CDs, DVDs, tape, etc.). The functions described herein may be embodied in software, hardware, firmware, or any combination thereof.
A “device” in this specification may include, but is not limited to, one or more of, or any combination of processing device(s) such as, a cell phone, a Personal Digital Assistant, a smart watch or other body-borne device (e.g., glasses, pendants, rings, etc.), a personal computer, a laptop, a pad, a cloud-access device, a white board, and/or any device capable of sending/receiving messages to/from a local area network or a wide area network (e.g., the Internet), such as devices embedded in cars, trucks, aircraft, household appliances (refrigerators, stoves, thermostats, lights, electrical control circuits, the Internet of Things, etc.).
An “engine” is preferably a program that performs a core function for other programs. An engine can be a central or focal program in an operating system, subsystem, or application program that coordinates the overall operation of other programs. It is also used to describe a special-purpose program containing an algorithm that can sometimes be changed. The best-known usage is the term search engine which uses an algorithm to search an index of topics given a search argument. An engine is preferably designed so that its approach to searching an index, for example, can be changed to reflect new rules for finding and prioritizing matches in the index. In artificial intelligence, for another example, the program that uses rules of logic to derive output from a knowledge base is called an inference engine.
As used herein, a “server” may comprise one or more processors, one or more Random Access Memories (RAM), one or more Read Only Memories (ROM), one or more user interfaces, such as display(s), keyboard(s), mouse/mice, etc. A server is preferably apparatus that provides functionality for other computer programs or devices, called “clients.” This architecture is called the client-server model, and a single overall computation is typically distributed across multiple processes or devices. Servers can provide various functionalities, often called “services”, such as sharing data or resources among multiple clients, or performing computation for a client. A single server can serve multiple clients, and a single client can use multiple servers. A client process may run on the same device or may connect over a network to a server on a different device. Typical servers are database servers, file servers, mail servers, print servers, web servers, game servers, application servers, and chat servers. The servers discussed in this specification may include one or more of the above, sharing functionality as appropriate. Client-server systems are most frequently implemented by (and often identified with) the request-response model: a client sends a request to the server, which performs some action and sends a response back to the client, typically with a result or acknowledgement. Designating a computer as “server-class hardware” implies that it is specialized for running servers on it. This often implies that it is more powerful and reliable than standard personal computers, but alternatively, large computing clusters may be composed of many relatively simple, replaceable server components.
The servers and devices in this specification typically use the one or more processors to run one or more stored “computer programs” and/or non-transitory “computer-readable media” to cause the device and/or server(s) to perform the functions recited herein. The media may include Compact Discs, DVDs, ROM, RAM, solid-state memory, or any other storage device capable of storing the one or more computer programs.
The computational devices 103,120,128 are shown connected to an interactive projector 101 and the associated touch detection system 110, and microphone system 102 though a cloud/server 104. The system would not be limited to projection systems and could be any interactive display or standard computer system display and input device. An “interactive display” in this specification may include, but is not limited to, one or more of, or any combination of interactive display devices(s) used to receive an interactive event on an interactive display such as, resistive, surface acoustic wave, capacitive, surface capacitance, projected capacitance, mutual capacitance, self-capacitance, use of styli on capacitive screens, infrared grid, optical imaging, dispersive signal technology, acoustic pulse recognition, gesture based controllers, depth aware cameras, wired gloves, stereo cameras, and/or any interactive display device capable of sending/receiving interactive events and messages to/from a local area network or a wide area network (e.g., the Internet), such as devices embedded in cars, trucks, aircraft, household appliances (refrigerators, stoves, thermostats, lights, electrical control circuits, the Internet of Things, etc.).
The user 109 preferably interacts with the graphical user interface 111 with digital workspace 105 objects—such as, but not limited to, notes 106, sketches 107, dynamic objects 108, groups 113, images 114, and ink objects 125. Although those specific objects are shown, all standard operating system objects such as desktops, files, hyperlinks, windows, icons, applications, programs, and equivalent objects are within the scope of this invention. The user 109 is shown to be interacting with the display 111 which is displaying the digital workspace application 105. The objects are preferably contained in an active digital workspace 105 that is hosted via the cloud/server 104.
Contained within the room 129 are a plurality of other users on computational devices 103,120,128. The users of these devices are collocated in the room and are able to see, edit, manage, create, and delete any and all objects displayed on the display 111 concurrently in real-time using the active digital workspace 105, for example, described in U.S. patent application Ser. No. 15/735,551, filed Dec. 11, 2017 for SYSTEM, APPARATUS, AND METHOD FOR FACILITATING AND PERPETUATING A COLLABORATIVE IDEATION SESSION, the entire contents of which are incorporated herein by reference. In this specification digital workspace and program application are construed to mean the same thing and are used interchangeably throughout the specification.
Remote users 115 on a plurality of remote computational devices 116,117,118,119 can be connected to the cloud/server 104 to concurrently interact with the active digital workspace content 105.
The application program preferably supports an off-line mode 127 which allows users to interact with the application program 105 to utilize the application program objects 107,108, 114,126,113,108,125 in a single user environment which is not real-time, and may be later connected through the cloud/server 104 to sync the application data.
According to the present embodiment, the program application user preferably has three methods of selecting an object for use as a dynamic intelligent object through the dynamic object manager 801 interface 802. The user can select a static object, step 301 from the digital work space 111, or the user can select from a template library 808, step 302 of saved dynamic template objects via the dynamic object interface 802, or the user can import a template, step 317. A static object can comprise images, documents, files, notes, sketches, text boxes, and any other objects contained in a digital workspace, as defined in
The user now preferably has the option 306 to save the dynamic object to a template file and store 307 in the template library 808, or the user can continue to use the dynamic intelligent template object and the digital work space 105.
For the purpose of an exemplary description of this embodiment of the invention, the dynamic object type selected was “image-group 604”. An image-group 604 is described as an object type with size, position, colour, background image, label name, and other object properties and attributes. An image-group object behaves as a container for other objects, enabling a hierarchical layout of objects in the digital work space. Assigning dynamic object attributes to the image-group enables additional dynamic functionality on this object
The users can now assign specific attributes 312 to an image-group 604. The users can assign the for example, the color and the label name of the image-group 604. The users can also set the properties 807, for example, the size and position on the digital workspace 111. The users can modify the attributes 803 and properties 807 at any time. Once the user sets the image-group 604 up, the users can now put content into the image-group 604. This is preferably done by dragging and dropping step 303 digital workspace objects within the image-group 604 boundaries. The objects, where appropriate, will inherit the group properties and attributes. For example, assigning a colour to an image-group will cause that colour to automatically apply to all content objects placed within the objects boundaries.
The users will continue to interact with the image-group 604 by inserting, deleting, and arranging the digital work space object content, step 313. If no groups are added, step 315, and the users are continuing, step 316, to interact with the image-group object 604, the dynamic object manager 801 will manage all aspects of the image-group 604, step 318 in real-time keeping all aspects of the image-object current, which returns back to step 312.
The users can also, through the interactive process, decide at step 315 to add group objects 113 to within the image-group 604. The user can add groups objects 113 at the same layer, or as nested group objects step 314, within a group that has been previous inserted. This creates a hierarchical layering within the image-group 604 that can be used to organize and assign group properties specific to a particular area on the image-group 604. The hierarchical properties can be exported 810 to common data export formats for later use and analysis. As the user inserts groups objects 113 and digital workspace objects, the dynamic object manager 801 preferably processes the image-group 604 managing the attributes 803, rules 806, properties 807, and behaviors 805, step 318.
Once the users are done step 316, interacting with the image-group, the users have the option to return to the application program interface 105 or save the image-group 604 as a new dynamic intelligent template object, step 307. Once the image-group has been saved as an intelligent dynamic template object, the users can continue to use the program application 105 to interact with the digital workspace content.
If the user selects at the start, through the dynamic object interface 802, to fetch at step 302 a dynamic intelligent object template from the template library 809, the system will fetch the selected template 809 and then enter the logic flow at step 306, at which point the process continues as per previously described.
If the user selects at the start through the dynamic object interface 802 to import, step 317, an object template into the dynamic object manager 801 the system will import the object template, step 809 and exit to step 804 at which point the template is converted to the user selected template type and the process continues as per previously described.
The image-group name 603 is also used by the export manager 810 to label the object in the data export. The attributes can be adjusted at any time by any users with appropriate permissions in the digital workspace.
Both
The interface manager 802 is preferably used by the user to accesses the dynamic intelligent object managers of the dynamic object manager 801. The digital workspace manager 105 preferably displays the interface 802 through user actions, as directed through the digital workspace 105. The interface 802 preferably accesses the appropriate dynamic object manager 801 manager 803,804,805,806,807,808,808,810,811.
The attribute manager 803 is preferably used to manage the attributes associated with the various object types. An image-group and group have the following attributes but not limited to for example, color, label name, show/hide label and show/hide pins.
The type manager 804 is preferably used to create and convert objects to the specific object types selected by the user.
The behavior manager 805 preferably assigns and manages the behavior of the intelligent dynamic object. Examples of behaviors are to change the color, appearance, size or position of nested elements.
The rule manager 806 is preferably used to manage the macro rules that have been assigned to the intelligent template object.
The property manager 807 is preferably used to manage the specific properties assigned to the intelligent dynamic object. Examples of properties are location, size, z-order, author, layer assignment, objects contained within the hierarchy.
The template library manager 808 preferably manages the intelligent dynamic object template library. Typical library actions are load, view, save and import share.
The import manager 809 is preferably used to import template files and data that have been created previously by alternate applications. The import manager will preferably map and manage the data into the newly selected intelligent dynamic object type.
The export manager 810 preferably manages the export functions. The export manager is able to take the intelligent dynamic objects template data selected by the user and export the data to command data structures utilized by third party programs. Examples of data structure and xml supported schema, delimited text file spreadsheet, print documents and image formats (CSV, SVG, DOCX, XLS, PDF, PNG, JPEG).
The API manager 810 preferably manages the Application Programming Interface functions. The Application Programming Interface is used to access the functions, data, properties, attributes and rules programmatically of the data object manager 801.
The individual components shown in outline or designated by blocks in the attached Drawings are all well-known in the electronic processing arts, and their specific construction and operation are not critical to the operation or best mode for carrying out the invention.
While the present invention has been described with respect to what is presently considered to be the preferred embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. To the contrary, the invention is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
This application claims priority to U.S. Provisional Patent Application No. 62/624,197, filed Jan. 31, 2018, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
62624197 | Jan 2018 | US |