WO2014152312A1 - Visualization interface for information object system - Google Patents

Visualization interface for information object system Download PDF

Info

Publication number
WO2014152312A1
WO2014152312A1 PCT/US2014/027197 US2014027197W WO2014152312A1 WO 2014152312 A1 WO2014152312 A1 WO 2014152312A1 US 2014027197 W US2014027197 W US 2014027197W WO 2014152312 A1 WO2014152312 A1 WO 2014152312A1
Authority
WO
WIPO (PCT)
Prior art keywords
information object
collaboration server
computing device
user interface
data
Prior art date
Application number
PCT/US2014/027197
Other languages
French (fr)
Inventor
Jae W. PAK
Original Assignee
Systemic Management Science Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Systemic Management Science Corporation filed Critical Systemic Management Science Corporation
Priority to CN201480026525.0A priority Critical patent/CN105229564B/en
Priority to EP14768858.4A priority patent/EP2972666B1/en
Publication of WO2014152312A1 publication Critical patent/WO2014152312A1/en
Priority to HK16107003.2A priority patent/HK1218981A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/904Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Definitions

  • DARPA Defense Advanced Research Projects Agency
  • Information is stored on computers in files and other data formats.
  • Various applications can use the files, or other data formats, to present the information in a manner that is conducive to human understanding.
  • the applications can further show relationships between separate pieces of information in a manner that is conducive to human understanding.
  • Data is stored as a collection of information objects on a collaboration server.
  • the client application can present the information stored in the collection of information objects in any one or more of the manners disclosed herein.
  • a non-transitory computer-readable medium embodying a program comprising: code that generates a user interface on a client computing device; code that queries a collaboration server for an information object to be rendered within the user interface on behalf of a user in response to a request to render the information object; code that retrieves form data from the information object received from the collaboration server; and code that renders the information object within the user interface based at least in part on the form data of the information object.
  • the program can further comprise code that retrieves an identification of a related information object from the information object; code that queries the collaboration server for the related information object; and code that renders the related information object within the user interface.
  • the program can further comprise code that renders within the user interface an indication of a relationship between the information object and the related information object.
  • the program can further comprise code that obtains a modification of the information object; code that sends the modification to the collaboration server; code that renders a modified version of the information object within the user interface in response to receiving a first notification from the collaboration server that the modification is valid; and code that renders an error message within the user interface in response to receiving a second notification from the collaboration server that the modification is invalid.
  • the program can further comprise code that generates a new information object in response to receiving data from a data source; code creates an information object reference linking the information object to the new information object; and code that sends the information object, the new information, and the information object reference to the collaboration server.
  • the data source comprises an electronic device that generates data and transmits the data to the computing device.
  • the information object comprises a unique identifier, an attribute, an information object reference, form data, and a function.
  • a system comprising a computing device and an application executable in the computing device, the application comprising: logic that generates a user interface on a client computing device; logic that queries a collaboration server for an information object to be rendered within the user interface on behalf of a user in response to a request to render the information object; logic that retrieves form data from the information object received from the collaboration server; and logic that renders the information object within the user interface based at least in part on the form data of the information object.
  • the application can further comprise logic that retrieves an identification of a related information object from the information object; logic that queries the collaboration server for the related information object; and logic that renders the related information object within the user interface.
  • the application can further comprise logic that renders within the user interface an indication of a relationship between the information object and the related information object.
  • the application can further comprise logic that obtains a modification of the information object; logic that sends the modification to the collaboration server; logic that renders a modified version of the information object within the user interface in response to receiving a first notification from the collaboration server that the modification is valid; and logic that renders an error message within the user interface in response to receiving a second notification from the collaboration server that the modification is invalid.
  • the application can further comprise logic that generates a new information object in response to receiving data from a data source; logic creates an information object reference linking the information object to the new information object; and logic that sends the information object, the new information, and the information object reference to the collaboration server.
  • the data source comprises an electronic device that generates data and transmits the data to the computing device.
  • the information object comprises a unique identifier, an attribute, an information object reference, form data, and a function.
  • a method comprising: generating, via a computing device, a user interface on a client computing device; querying, via the computing device, a collaboration server for an information object to be rendered within the user interface on behalf of a user in response to a request to render the information object; retrieving, via the computing device, form data from the information object received from the collaboration server; and rendering, via the computing device, the information object within the user interface based at least in part on the form data of the information object.
  • the method further comprises: retrieving, via the computing device, an identification of a related information object from the information object; querying, via the computing device, the collaboration server for the related information object; and rendering, via the computing device, the related information object within the user interface. In one or more embodiments, the method further comprises: rendering, via the computing device, within the user interface an indication of a relationship between the information object and the related information object.
  • the method further comprises: obtaining, via the computing device, a modification of the information object; sending, via the computing device, the modification to the collaboration server; rendering, via the computing device, a modified version of the information object within the user interface in response to receiving a first notification from the collaboration server that the modification is valid; and rendering, via the computing device, an error message within the user interface in response to receiving a second notification from the collaboration server that the modification is invalid.
  • the method further comprises: generating, via the computing device, a new information object in response to receiving data from a data source; creating, via the computing device, an information object reference linking the information object to the new information object; and sending, via the computing device, the information object, the new information, and the information object reference to the collaboration server.
  • the information object comprises a unique identifier, an attribute, an information object reference, form data, and a function.
  • FIG. 1 is a drawing of a networked environment according to various embodiments of the present disclosure.
  • FIG. 2 is a drawing of an Information Object as depicted in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
  • FIG. 3A-G are drawings of examples of a user interface rendered by a client in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
  • FIG. 4 is a flowchart illustrating one example of functionality implemented as portions of a client application and a collaboration server executed in in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
  • FIG. 5 is a flowchart illustrating one example of functionality implemented as portions of a client application and a collaboration server executed in in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
  • FIG. 6 is a flowchart illustrating one example of functionality implemented as portions of a client application and a collaboration server executed in in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
  • FIG. 7 is a flowchart illustrating one example of functionality implemented as portions of a client application and a collaboration server executed in in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
  • FIG. 8 is a flowchart illustrating one example of functionality implemented as portions of a client application and a collaboration server executed in in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
  • FIG. 9 is a schematic block diagram that provides one example illustration of a computing environment employed in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
  • the networked environment 100 includes a computing environment 103 and a client computing device 106, which are in data communication with each other via a network 109.
  • the network 109 includes, for example, the Internet, intranets, extranets, wide area networks (WANs), local area networks (LANs), wired networks, wireless networks, or other suitable networks, etc., or any combination of two or more such networks.
  • the computing environment 103 can comprise, for example, a server computer or any other system providing computing capability.
  • the computing environment 103 can employ a plurality of computing devices that can be employed that are arranged, for example, in one or more server banks or computer banks or other arrangements. Such computing devices can be located in a single installation or can be distributed among many different geographical locations.
  • the computing environment 103 can include a plurality of computing devices that together can comprise a cloud computing resource, a grid computing resource, and/or any other distributed computing arrangement.
  • the computing environment 103 can correspond to an elastic computing resource where the allotted capacity of processing, network, storage, or other computing-related resources can vary over time.
  • Various applications and/or other functionality can be executed in the computing environment 103 according to various embodiments.
  • various data is stored in a data store 1 1 1 that is accessible to the computing environment 103.
  • the data store 1 1 1 can be representative of a plurality of data stores 1 1 1 as can be appreciated.
  • the data stored in the data store 1 1 1 is associated with the operation of the various applications and/or functional entities described below.
  • the components executed on the computing environment 103 include a collaboration server 1 13, and other applications, services, processes, systems, engines, or functionality not discussed in detail herein.
  • the collaboration server 1 13 is executed to allow one or more users to create and share one or more information objects 1 16 and potentially other data.
  • the data stored in the data store 1 1 1 includes, for example, one or more information objects 1 16, and potentially other data.
  • Information objects 1 16 are data storage objects structured to model data based on the relationships between individual pieces of information. As such, information objects 1 16 can comprise a set of associations with other information objects 1 16 to indicate data relationships. For example, a link between two information objects 1 16 can indicate a data dependency, a structural hierarchy, or other association of data modeled by two or more information objects 1 16. Information objects 1 16 can also be assembled and/or derived from other information objects to represent these relationships. As such most information objects 1 16 can be created from or represented by an assembly of other information objects 1 16.
  • some types or classes of information objects 1 16 can be reserved for particular types of data which cannot easily be represented as a combination of two or more other information objects 1 16.
  • repeating data blocks such as images, sound, video, compressed data, and encrypted data
  • Continuous stream data such as a stream of data from a sensor, can also require a unique or reserved instance of an information object 1 16 to represent the stream data because stream data has a beginning but not necessarily an end to the data.
  • the client computing device 106 is representative of a plurality of client computing devices that can be coupled to the network 109.
  • the client computing device 106 can comprise, for example, a processor-based system such as a computer system.
  • a computer system can be embodied in the form of a desktop computer, a laptop computer, personal digital assistants, cellular telephones, smartphones, set-top boxes, music players, web pads, tablet computer systems, game consoles, electronic book readers, or other devices with like capability.
  • the client computing device 106 can include a display 1 19.
  • the display 1 19 can comprise, for example, one or more devices such as liquid crystal display (LCD) displays, gas plasma-based flat panel displays, organic light emitting diode (OLED) displays, LCD projectors, or other types of display devices, etc.
  • LCD liquid crystal display
  • OLED organic light emitting diode
  • the client computing device 106 can be configured to execute various applications such as a client application 123 and/or other applications.
  • the client application 123 can be executed in a client computing device 106, for example, to access network content served up by the computing environment 103 and/or other servers, thereby rendering a user interface 300 on the display 1 19.
  • the client application 123 can comprise, for example, a browser, a dedicated application, etc.
  • the user interface 300 can comprise a network page, an application screen, etc.
  • the client computing device 106 can be configured to execute applications beyond the client application 123 such as, for example, email applications, social networking applications, word processors, spreadsheets, and/or other applications.
  • one or more sensors and other data feeds 126 can be in network communication with the collaboration server 1 13 or the client application 123. Sensors and other data feeds can comprise any electronic device capable of generating or recording data and transmitting the data to the collaboration server 1 13. Examples of sensors and other data feeds 126 include accelerometers, temperature sensors or thermostats, video or web cameras, microphones, noise sensors, pressure sensors, scales, timers, flow meters, light sensors, outputs or results of applications or programs, and other such devices or programs.
  • FIG. 1 depicts a network-centric configuration representing a client-server model, this does not preclude other configurations.
  • the client computing device 106 can be a computing device located within the computing environment 103.
  • the client application 123 can be located in the computing environment 103 along with the collaboration server 1 13, but the client application 123 can communicate or render the user interface 300 on the display 1 19 of the client computing device 106.
  • the collaboration server 1 13, the data store 1 1 1 , and the client application 123 can all be located within a single computing device, such as the client computing device 106 or a single computer within the computing environment 103.
  • the client application 123 makes a request for one or more information objects 1 16 for use in a presentation, report, or similar document.
  • the client application 123 Upon receiving the requested information objects 1 16, the client application 123 presents the requested information objects 1 16 to the user through the user interface 300. The user can interact with the information objects 1 16 as desired.
  • the user can select one or more information objects 1 16 for the basis of a presentation.
  • Each information object 1 16 can correspond to a slide image or diagram within the presentation.
  • the user can interact with an information object 1 16 to select a child information object 1 16, or otherwise "drill down" to look at the underlying data associated with the information object 1 16.
  • the user can select an information object 1 16 labeled "bacteria.”
  • bacteria Within the information object 1 16 labeled bacteria, a list of bacteria can be provided. Each listing corresponding to a child information object. Should the user select a child information object 1 16, information related to the child information object 1 16 can be surfaced to the user, where such information was not previously visible to the user.
  • the user can choose to create one or more information objects 1 16 to represent data or information that is not currently within the system.
  • a user can choose to create a new information object 1 16 associated with the "bacteria" information object 1 16 that represents a newly discovered bacterium.
  • a newly created information object 1 16 can be uploaded to the collaboration server 1 13 in order to be stored within the data store 1 1 1 for future use by the user or other users.
  • Each information object 1 16 has at least one unique identifier 203, which uniquely identifies a particular instance of an information object 1 16 within the data store 1 1 1 (FIG. 1 ).
  • Each information object 1 16 also includes content 206. Included in the content 206 of the information object 1 16 can be one or more information object references, such as information object reference 209a through information object reference 209n.
  • the content 206 of the information object 1 16 can also include attributes 213 describing the information object 1 16.
  • the information object 1 16 can include form data 216 and multiple functions 219.
  • a unique identifier 203 can be either a unique alpha-numeric number, such as the result of a cryptographic hash function, or can be a unique number generated by the collaboration server 1 13 (FIG. 1 ) when the information object 1 16 is created.
  • the collaboration server 1 13 can apply a cryptographic hash function, such as a version of the Secure Hash Algorithm, to an information object 1 16 to generate the unique identifier 203.
  • the collaboration server 1 13 can increment a counter when the information object 1 16 is created and then set the unique identifier 203 equal to the value of the counter.
  • both approaches can be combined to minimize the risk of collisions from the cryptographic hash function or duplicate counter values resulting from integer overflow errors.
  • the counter can be incremented and the value prepended or appended to the result of a cryptographic has function to create a unique identifier 203.
  • the content 206 corresponds to the data represented by an information object 1 16, which can include one or more information object references 209a... n and/or one or more attributes 213. Each information object reference 209a... n points or links to a related information object 223.
  • a related information object 223 can correspond to information that is a component of the information object 1 16 or is related to the information object 223 in some manner.
  • an information object 1 16 representing the country “Russia” can have an information object reference 209 linking the information object 1 16 to a related information 223 corresponding to the city "Moscow.”
  • the information object 1 16 representing "Russia” can also include a second information object reference 209 to a related information object 223 representing a list of countries and a third information object reference 209 to a related information object 223 representing "Communism.”
  • the attributes 213 of the information object 1 16 represent data stored within the Information Object 1 16 which can or not be directly presented to the user as main content. Attributes 213 of an information object 1 16 can include, for example, a username of a user who originally created the information object 1 16, a username of each user who has modified the information object 1 16, a timestamp recording the creation of the information object 1 16 and/or modification of the information object 1 16, a version of the interface standard supported by the information object 1 16 for use with the collaboration server 1 13 (FIG. 1 ) or the client application 123 (FIG. 1 ), language and/or cultural identification, and other such data. In some instances, the attributes 213 themselves can be represented by other information objects 1 16. For example, a username of the creator of an information object 1 16 can be represented by an information object 1 16 that represents a user account.
  • the form data 216 corresponds to the data necessary to represent or display an information object 1 16 on a display 1 19 (FIG. 1 ).
  • form data 216 can represent the size of the information object 1 16 on the display 1 19, the location of the information object 1 16 on the display 1 19, a transparency value of the information object 1 16, whether to overlay or underlay the information object on the display 1 19 with respect to individual ones of the related information objects 223, and similar data or values.
  • the form data 216 can further specify the default placement of related information objects 223 on a display 1 19 relative to the information object 1 16.
  • the functions 219 correspond to programmatic interfaces, methods, or similar mechanisms through which the client application 123 (FIG. 1 ) or the collaboration server 1 13 can interact with or otherwise manipulate the information object 1 16.
  • the functions 219 can include functions for setting an information object 1 16 visible or invisible on a display 1 19, functions for editing or otherwise modifying the information object 1 16, functions for creating new information object references 209 or otherwise linking an information object 1 16 to a related information object 223.
  • An information objection 1 16 or a related information object 223 can also have individual information object references 209 corresponding to user interface elements represented by information objects, such as a navigation information object 226, a menu area information object 229, and a client device information object 233.
  • the navigation information object 226 can describe or define the structure or relationships of the currently selected information object 1 16 in relation to other information objects 1 16.
  • the menu area information object 229 can describe or define various menu or other user interface 300 (FIG. 1 ) components which can be used to interact with the information object 1 16, such as editing, copying or deleting the information object 1 16.
  • the menu area information object 229 can also provide for functionality to create new information objects 1 16.
  • the client device information object 233 can contain user and system-wide settings, such as sound volume, display brightness, network connectivity settings, and other settings.
  • an example user interface 300 denoted herein as 300a, of the client application 123 (FIG. 1 ) executing on the client computing device 106.
  • an information object 1 16a can have other, related information objects 1 16b, 1 16c, and 1 16d overlaid on top of the information object 1 16a, permitting a user to visualize the relationships between the information objects 1 16a, 1 16b, 1 16c, and 1 16d.
  • Whichever information object 1 16 is currently selected by the user, or otherwise in focus can have a corresponding navigation information object 226, menu area information object 229, and client computing device information object 233 displayed.
  • FIG. 3B shown is an example user interface 300, denoted herein as 300b, of the client application 123 (FIG. 1 ) executing on the client computing device 106.
  • Shown to the right is a navigation information object 226 (FIG. 2), denoted herein as navigation bar 226b, comprising a number of information objects 1 16.
  • an information object 1 16 has been selected and is displayed in the middle of the screen.
  • FIG. 3C shown is an example user interface 300, denoted herein as 300c, of the client application 123 (FIG. 1 ) executing on the client computing device 106.
  • Shown to the right is a navigation information object 226 (FIG. 2), denoted herein as 226c, comprising a number of information objects 1 16.
  • a use has selected another information object 1 16 and the user interface 300c has changed accordingly.
  • FIG. 3D shown is an example user interface 300, denoted herein as 300d, of the client application 123 (FIG. 1 ) executing on the client computing device 106.
  • This particular user interface 300d shows the ability of a user of the client application 123 to associate one or more information objects 1 16 (FIG. 1 ) together.
  • FIG. 3E shown is an example user interface 300, denoted herein as 300e, of the client application 123 (FIG. 1 ) executing on the client computing device 106 (FIG. 1 ).
  • the user interface 300e displays a number of information objects 1 16, wherein each information object 1 16 includes information about one or more topics which are each embodied by a corresponding information object 1 16. Further, relationships between information objects 1 16 are depicted in order to properly convey the relationship of information.
  • FIG. 3F shown is an example user interface 300, denoted herein as 300f, of the client application 123 (FIG. 1 ) executing on the client computing device 106 (FIG. 1 ).
  • the user interface 300f depicts the presentation of a child information object 1 16.
  • a user has selected the E. Coli information object depicted in user interface 300e (FIG. 3E), which has caused the client application 123 to surface the information object 1 16 for E. Coli to the forefront of the user interface 300f.
  • Other information objects 1 16 have been moved to the background and/or blurred, had any focus removed, or otherwise deemphasized in order to avoid distracting the focus of the user from the surfaced information object 1 16.
  • FIG. 3G shown is an example user interface 300, denoted herein as 300g, of the client application 123 (FIG. 1 ) executing on the client computing device 106.
  • the user interface 300g depicts a user creating one or more information objects 1 16 (FIG. 1 ).
  • Such information objects 1 16 can be stored for future reference, or can be used for the purpose of creating a presentation, report, or similar document.
  • FIG. 4 shows a flowchart that provides one example of the operation of a portion of the client application 123 and the collaboration server 1 13 according to various embodiments. It is understood that the flowchart of FIG. 4 provides merely an example of the many different types of functional arrangements that can be employed to implement the operation of the portions of the client application 123 and the collaboration server 1 13 as described herein. As an alternative, the flowchart of FIG. 4 can be viewed as depicting an example of elements of a method implemented in the networked environment 100 (FIG. 1 ) according to one or more embodiments.
  • the client application 123 receives a selection of "Create New" or similar option through a user interface 300 (FIG. 1 ) of the client application 123 indicating that a user wishes to create a new information object 1 16 (FIG. 2).
  • the user can have made a selection to create a new information object 1 16 by interacting with a menu area information object 229 (FIG. 2).
  • the client application 123 creates a new information object 1 16 locally.
  • the new information object 1 16 can be locally cached for immediate use by the client application 123 pending an upload of the newly created information object 1 16 to the collaboration server 1 13.
  • the client application 123 can further assign a unique identifier 203 (FIG. 2) to the newly created information object 1 16 and populate the content 206 (FIG. 2) and form data 216 (FIG. 2) with default values.
  • the attributes 213 (FIG. 2) can be automatically populated with the user account information of the user who created the information object and an information object reference 209 (FIG. 2) can be automatically created to refer to related information object 223 corresponding to a parent or sibling information object 1 16.
  • the client application 123 sends the newly created information object 1 16 to the collaboration server 1 13.
  • the newly created information object 1 16 can be serialized, for example by calling a function 219 (FIG. 2) of the information object 1 16 to serialize it, and then send the serialized information object 1 16 to the collaboration server 1 13.
  • the client application 1 13 can instead send a copy of the unique identifier 203, the content 206, and the form data 216 to the collaboration server 1 13.
  • the collaboration server 1 13 determines whether or not the information corresponding to the newly created information object 1 16 is valid. For example, the collaboration server 1 13 might check for errors as part of the deserialization process. The collaboration server 1 13 can check to see if the data is formatted correctly. As another example, the collaboration server 1 13 can check to determine if the unique identifier 203 of the newly created information object 1 16 is duplicative of a unique identifier 203 of an information object 1 16 already existing in the data store 1 1 1 (FIG. 1 ), which indicates that either the newly created information object 1 16 is a duplicate or that there is a collision between the unique identifiers 203 of the two information objects 1 16 which needs to be resolved. If the information is invalid, then execution proceeds to box 446. If the information is valid, however, then execution proceeds to box 416.
  • the collaboration server 1 13 If execution skips to box 446, the collaboration server 1 13 generates an error message event and sends an error message to the client application 123.
  • the error message can include an error code identifying the type or source of the error, an error description, and a cause of the error.
  • the error message itself can be an information object 1 16 representing the error and including the applicable error information.
  • the collaboration server 1 13 can also log the error and any associated error information to the data store 1 1 1 or a log file for later analysis.
  • the collaboration server 1 13 creates an information object 1 16 in the data store 1 1 1 using the information received from the client application 123. If necessary, the collaboration server 1 13 also creates any parent or child information objects required, as well as any references or connections between the newly created information object 1 16 and other existing information objects 1 16. [0040] Referring next to box 419, the collaboration server 1 13 sends a notice to the client application 123 that the information object 1 16 has been created. The notice can be in the form of a message, event notifier, or other data format. Additionally, the collaboration server 1 13 can, in some embodiments, mark the newly created information object 1 16 as being currently modified or that modifications to the newly created information object 1 16 are in progress. This can lock the information object 1 16 or otherwise prevent the information object 1 16 from being modified by other users, applications, or processes while the information object 1 16 is being modified.
  • the client application 123 receives a notification from the collaboration server 1 13 that the information object 1 16 has been created.
  • the notification can also include an indication that the newly created information object 1 16 is marked for editing or modifications. If the newly created information object is marked for editing, the client application 123 can enable modifications to be made to the client or local copy of the information object 1 16. For example, the client application 123 can mark fields of the newly created information object 1 16 as editable, enable various menu functions for the information object 1 16, or take similar actions.
  • the client application 123 obtains one or more user modifications to the newly created information object 1 16.
  • the client application 123 can automatically save the user modifications.
  • the client application 123 can automatically send each change to the collaboration server 1 13, or the client application 123 can send changes to the collaboration server 1 13 in batches on a periodic basis, such as every few minutes, every hour, or some other period of time.
  • the client application 123 can also locally save changes or modifications to the newly created information object 1 16 on the client computing device 106 (FIG. 1 ). When the user has finished modifying the newly created information object 1 16, the final set of changes is sent to the collaboration server 1 13.
  • the changes sent can be sent in a file format that records the changes between the copy of the information object 1 16 stored in the data store 1 1 1 and the copy of the information object 1 16 stored on the client computing device 106.
  • the changes can instead be sent as copy of the information object 1 16 locally stored on the client computing device 106 to be used to replace the copy of the corresponding information object 1 16 stored in the data store 1 1 1 .
  • the copy of the information object 1 16 can be serialized and transmitted to the collaboration server 1 13.
  • the collaboration server 1 13 determines whether or not the information corresponding to the modified information object 1 16 is valid. For example, the collaboration server 1 13 might check for errors as part of the deserialization process. The collaboration server 1 13 can check to see if the data is formatted correctly. If the information is invalid, then execution proceeds to box 446, previously described. If the information is valid, however, then execution proceeds to box 433.
  • the collaboration server 1 13 stores the modifications to the information object 1 16 in the data store 1 1 1 . In some embodiments, this can be accomplished by overwriting or replacing a previous copy of information object 1 16 stored in the data store 1 1 1 . In other embodiments, the content of the information object 1 16 can be edited or updated instead of overwriting the information object 1 16 with a newer copy or version.
  • the collaboration server 1 13 sends a notice to the client application 123 that the updates to the information object 1 16 are completed. The notice can be in the form of a message, event notifier, or other data format. Additionally, the collaboration server 1 13 can mark the newly created information object 1 16 as being as editable, such that other users or processes waiting to make changes to the information object 1 16 can do so.
  • the client application 123 receives the notice that the updates or changes to the newly created information object 1 16 are complete.
  • the client application 123 can lock or otherwise prevent users from modifying the newly created information object 1 16 upon receiving the notice. Execution then proceeds to box 443, where the client application 123 renders the newly created information object 1 16.
  • FIG. 5 shows a flowchart that provides one example of the operation of a portion of the client application 123 and the collaboration server 1 13 according to various embodiments. It is understood that the flowchart of FIG. 5 provides merely an example of the many different types of functional arrangements that can be employed to implement the operation of the portions of the client application 123 and the collaboration server 1 13 as described herein. As an alternative, the flowchart of FIG. 5 can be viewed as depicting an example of elements of a method implemented in the networked environment 100 (FIG. 1 ) according to one or more embodiments.
  • the client application 123 marks an information object 1 16 as editable.
  • an information object 1 16 (FIG. 1 ) can be locked by another process or user for editing by the collaboration server 1 13. Accordingly, until the collaboration server 1 13 unlocks the information object 1 16 and communicates to the client application 123 that the information object 1 16 is free for editing, the information object 1 16 can not be editable by a user of the client application 123.
  • execution on the client application moves to box 506, where the client application 123 obtains a user selection of the information object 1 16 for editing.
  • the user can, for example use a mouse click, touch gesture, or other interaction to indicate to the client application 123 that the information object 1 16 is to be edited.
  • the client application 123 retrieves the unique identifier 203 (FIG. 2) of the information object 1 16. Upon retrieval, the client application 123 sends the unique identifier 203 to the collaboration server 1 13.
  • the collaboration server 1 13 determines whether or not the unique identifier 203 (FIG. 2) is valid. For example, the collaboration server 1 13 can determine whether an information object 1 16 in the data store 1 1 1 (FIG. 1 ) with the unique identifier 203 exists. If not, the collaboration server 1 13 can generate an error. As another example, the collaboration server 1 13 can further determine whether the information object 1 16 in the data store 1 1 1 is an editable information object 1 16. If not, the collaboration server 1 13 can generate an error. If the collaboration server 1 13 determines that the unique identifier 203 is invalid, then execution proceeds to box 543. If the information is valid, however, then execution proceeds to box 516.
  • the collaboration server 1 13 determines that the unique identifier 203 is invalid, then execution proceeds to box 543. If the information is valid, however, then execution proceeds to box 516.
  • the collaboration server 1 13 If execution skips to box 543, the collaboration server 1 13 generates an error message event and sends an error message to the client application 123.
  • the error message can include an error code identifying the type or source of the error, an error description, and a cause of the error.
  • the error message itself can be an information object 1 16 representing the error and including the applicable error information.
  • the collaboration server 1 13 can also log the error and any associated error information to the data store 1 1 1 or a log file for later analysis.
  • the collaboration server 1 13 can mark the selected information object 1 16 as being currently modified or that modifications to the selected information object 1 16 are in progress. This can lock the information object 1 16 or otherwise prevent the information object 1 16 from being modified by other users, applications, or processes while the information object 1 16 is being modified. After locking the information object 1 16, the collaboration server 1 13 then sends a message to the client application 123 that the information object 1 16 can be edited.
  • the client application 123 can enable modifications to be made to the client or local copy of the information object 1 16 in response to receiving the message from the collaboration server 1 13. For example, the client application 123 can mark fields of the selected information object 1 16 as editable, enable various menu functions for the information object 1 16, or take similar actions.
  • the client application 123 obtains one or more user modifications to the selected information object 1 16.
  • the client application 123 can automatically save the user modifications.
  • the client application 123 can automatically send each change to the collaboration server 1 13, or the client application 123 can send changes to the collaboration server 1 13 in batches on a periodic basis, such as every few minutes, every hour, or some other period of time.
  • the client application 123 can also locally save changes or modifications to the selected information object 1 16 on the client computing device 106 (FIG. 1 ). When the user has finished modifying the selected information object 1 16, the final set of changes is sent to the collaboration server 1 13.
  • the changes sent can be sent in a file format that records the changes between the copy of the information object 1 16 stored in the data store 1 1 1 and the copy of the information object 1 16 stored on the client computing device 106.
  • the changes can instead be sent as a copy of the information object 1 16 locally stored on the client computing device 106 to be used to replace the copy of the corresponding information object 1 16 stored in the data store 1 1 1 .
  • the copy of the information object 1 16 can be serialized and transmitted to the collaboration server 1 13.
  • the collaboration server 1 13 determines whether or not the information corresponding to the modified information object 1 16 is valid. For example, the collaboration server 1 13 might check for errors as part of the deserialization process. The collaboration server 1 13 can check to see if the data is formatted correctly. If the information is invalid, then execution proceeds to box 543, previously described. If the information is valid, however, then execution proceeds to box 529.
  • the collaboration server 1 13 stores the modifications to the information object 1 16 in the data store 1 1 1 . In some embodiments, this can be accomplished by overwriting or replacing a previous copy of information object 1 16 stored in the data store 1 1 1 . In other embodiments, the content of the information object 1 16 can edited or updated instead of overwriting the information object 1 16 with a newer copy or version.
  • the collaboration server 1 13 sends a notice to the client application 123 that the updates to the information object 1 16 are completed.
  • the notice can be in the form of a message, event notifier, or other data format.
  • the collaboration server 1 13 can mark the selected information object 1 16 as being as editable, such that other users or processes waiting to make changes to the information object 1 16 can do so.
  • the client application 123 receives the notice that the updates or changes to the selected information object 1 16 are complete. In some embodiments, the client application 123 can lock or otherwise prevent users from modifying the selected information object 1 16 upon receiving the notice. Execution then proceeds to box 539, where the client application 123 renders the modified information object 1 16.
  • FIG. 6 shows a flowchart that provides one example of the operation of a portion of the client application 123 and the collaboration server 1 13 according to various embodiments. It is understood that the flowchart of FIG. 6 provides merely an example of the many different types of functional arrangements that can be employed to implement the operation of the portions of the client application 123 and the collaboration server 1 13 as described herein. As an alternative, the flowchart of FIG. 6 can be viewed as depicting an example of elements of a method implemented in the networked environment 100 (FIG. 1 ) according to one or more embodiments.
  • the client application 123 receives information or data that is to be imported into the system.
  • the client application 123 can receive a video file, an image file, a portable document format (PDF) document, a text document, an audio file, or some other type of file.
  • PDF portable document format
  • the client application 123 analyzes the file and creates a new information object 1 16 locally based on the file.
  • the new information object 1 16 can be locally cached for immediate use by the client application 123 pending an upload of the newly created information object 1 16 to the collaboration server 1 13.
  • the client application 123 can further assign a unique identifier 203 (FIG. 2) to the newly created information object 1 16 and populate the content 206 (FIG. 2) and form data 216 (FIG. 2) with default values.
  • the attributes 213 (FIG. 2) can be automatically populated with the user account information of the user who created the information object and an information object reference 209 (FIG.
  • the client application 123 can set values for certain attributes 209 based on the file and can populate the content 206 and form data 216 with values based at least in part on the imported file.
  • the client application 123 sends the newly created information object 1 16 to the collaboration server 1 13.
  • the newly created information object 1 16 can be serialized, for example by calling a function 219 (FIG. 2) of the information object 1 16 to serialize it, and then send the serialized information object 1 16 to the collaboration server 1 13.
  • the client application 1 13 can instead send a copy of the unique identifier 203, the content 206, and the form data 216 to the collaboration server 1 13.
  • the collaboration server 1 13 determines whether or not the information corresponding to the newly created information object 1 16 is valid. For example, the collaboration server 1 13 might check for errors as part of the deserialization process. The collaboration server 1 13 can check to see if the data is formatted correctly. As another example, the collaboration server 1 13 can check to determine if the unique identifier 203 of the newly created information object 1 16 is duplicative of a unique identifier 203 of an information object 1 16 already existing in the data store 1 1 1 (FIG. 1 ), which indicate that either the newly created information object 1 16 is a duplicate or that there is a collision between the unique identifiers 203 of the two information objects 1 16 which needs to be resolved. If the information is invalid, then execution proceeds to box 646. If the information is valid, however, then execution proceeds to box 616.
  • the collaboration server 1 13 If execution skips to box 646, the collaboration server 1 13 generates an error message event and sends an error message to the client application 123.
  • the error message can include an error code identifying the type or source of the error, an error description, and a cause of the error.
  • the error message itself can be an information object 1 16 representing the error and including the applicable error information.
  • the collaboration server 1 13 can also log the error and any associated error information to the data store 1 1 1 or a log file for later analysis.
  • the collaboration server 1 13 creates an information object 1 16 in the data store 1 1 1 using the information received from the client application 123. If necessary, the collaboration server 1 13 also creates any parent or child information objects required, as well as any references or connections between the newly created information object 1 16 and other existing information objects 1 16.
  • the collaboration server 1 13 sends a notice to the client application 123 that the information object 1 16 has been created.
  • the notice can be in the form of a message, event notifier, or other data format.
  • the collaboration server 1 13 can, in some embodiments, mark the newly created information object 1 16 as being currently modified or that modifications to the newly created information object 1 16 are in progress. This can lock the information object 1 16 or otherwise prevent the information object 1 16 from being modified by other users, applications, or processes while the information object 1 16 is being modified.
  • the client application 123 receives a notification from the collaboration server 1 13 that the information object 1 16 has been created.
  • the notification can also include an indication that the newly created information object 1 16 is marked for editing or modifications. If the newly created information object is marked for editing, the client application 123 can enable modifications to be made to the client or local copy of the information object 1 16. For example, the client application 123 can mark fields of the newly created information object 1 16 as editable, enable various menu functions for the information object 1 16, or take similar actions.
  • the client application 123 obtains one or more user modifications to the newly created information object 1 16.
  • the client application 123 can automatically save the user modifications.
  • the client application 123 can automatically send each change to the collaboration server 1 13, or the client application 123 can send changes to the collaboration server 1 13 in batches on a periodic basis, such as every few minutes, every hour, or some other period of time.
  • the client application 123 can also locally save changes or modifications to the newly created information object 1 16 on the client computing device 106 (FIG. 1 ). When the user has finished modifying the newly created information object 1 16, the final set of changes is sent to the collaboration server 1 13.
  • the changes sent can be sent in a file format that records the changes between the copy of the information object 1 16 stored in the data store 1 1 1 and the copy of the information object 1 16 stored on the client computing device 106.
  • the changes can instead be sent as copy of the information object 1 16 locally stored on the client computing device 106 to be used to replace the copy of the corresponding information object 1 16 stored in the data store 1 1 1 .
  • the copy of the information object 1 16 can be serialized and transmitted to the collaboration server 1 13.
  • the collaboration server 1 13 determines whether or not the information corresponding to the modified information object 1 16 is valid. For example, the collaboration server 1 13 might check for errors as part of the deserialization process. The collaboration server 1 13 can check to see if the data is formatted correctly. If the information is invalid, then execution proceeds to box 646, previously described. If the information is valid, however, then execution proceeds to box 633.
  • the collaboration server 1 13 stores the modifications to the information object 1 16 in the data store 1 1 1 . In some embodiments, this can be accomplished by overwriting or replacing a previous copy of information object 1 16 stored in the data store 1 1 1 . In other embodiments, the content of the information object 1 16 can edited or updated instead of overwriting the information object 1 16 with a newer copy or version.
  • the collaboration server 1 13 sends a notice to the client application 123 that the updates to the information object 1 16 are completed.
  • the notice can be in the form of a message, event notifier, or other data format.
  • the collaboration server 1 13 can mark the newly created information object 1 16 as being as editable, such that other users or processes waiting to make changes to the information object 1 16 can do so.
  • the client application 123 receives the notice that the updates or changes to the newly created information object 1 16 are complete.
  • the client application 123 can lock or otherwise prevent users from modifying the newly created information object 1 16 upon receiving the notice. Execution then proceeds to box 643, where the client application 123 renders the newly created information object 1 16.
  • FIG. 7 shows a flowchart that provides one example of the operation of a portion of the client application 123 and the collaboration server 1 13 according to various embodiments. It is understood that the flowchart of FIG. 7 provides merely an example of the many different types of functional arrangements that can be employed to implement the operation of the portions of the client application 123 and the collaboration server 1 13 as described herein. As an alternative, the flowchart of FIG. 7 can be viewed as depicting an example of elements of a method implemented in the networked environment 100 (FIG. 1 ) according to one or more embodiments. [0075] Beginning with box 703, the client application 123 receives a trigger event. The trigger event includes any event which indicates that the information object 1 16 associated with the trigger event should be modified.
  • a trigger event can include, for example, a command received by the user interface 300 (FIG. 1 ) to automatically arrange or layout the displayed information objects 1 16 according to one or more predefined rules.
  • the user interface can then send a trigger to the corresponding information objects 1 16 to modify their form data 216 according to the one or more predefined rules.
  • the trigger event can instruct the information objects 1 16 can alter their position, size or shape values stored in the form data 216.
  • the client application 123 retrieves the unique identifier 203 (FIG. 2) of the information object 1 16 that corresponds to the trigger event. Upon retrieval, the client application 123 sends the unique identifier 203 to the collaboration server 1 13.
  • the collaboration server 1 13 determines whether or not the unique identifier 203 (FIG. 2) is valid. For example, the collaboration server 1 13 can determine whether an information object 1 16 in the data store 1 1 1 (FIG. 1 ) with the unique identifier 203 exists. If not, the collaboration server 1 13 can generate an error. As another example, the collaboration server 1 13 can further determine whether the information object 1 16 in the data store 1 1 1 is an editable information object 1 16. If not, the collaboration server 1 13 can generate an error. If the collaboration server 1 13 determines that the unique identifier 203 is invalid, then execution proceeds to box 739. If the information is valid, however, then execution proceeds to box 713.
  • the collaboration server 1 13 determines that the unique identifier 203 is invalid, then execution proceeds to box 739. If the information is valid, however, then execution proceeds to box 713.
  • the collaboration server 1 13 If execution skips to box 739, the collaboration server 1 13 generates an error message event and sends an error message to the client application 123.
  • the error message can include an error code identifying the type or source of the error, an error description, and a cause of the error.
  • the error message itself can be an information object 1 16 representing the error and including the applicable error information.
  • the collaboration server 1 13 can also log the error and any associated error information to the data store 1 1 1 or a log file for later analysis.
  • the collaboration server 1 13 can mark the information object 1 16 as being currently modified or that modifications to the information object 1 16 are in progress. This can lock the information object 1 16 or otherwise prevent the information object 1 16 from being modified by other users, applications, or processes while the information object 1 16 is being modified. After locking the information object 1 16, the collaboration server 1 13 then sends a message to the client application 123 that the information object 1 16 can be edited.
  • the client application 123 modifies the information object 1 16 in response to the trigger according to the conditions associated with the trigger.
  • the changes can be automatically saved locally on the client computing device 106 (FIG. 1 ) pending the changes being sent to the collaboration server 1 13.
  • the collaboration server 1 13 determines whether or not the information corresponding to the modified information object 1 16 is valid. For example, the collaboration server 1 13 might check for errors as part of the deserialization process. The collaboration server 1 13 can check to see if the data is formatted correctly. If the information is invalid, then execution proceeds to box 739, previously described. If the information is valid, however, then execution proceeds to box 526.
  • the collaboration server 1 13 stores the modifications to the information object 1 16 in the data store 1 1 1 . In some embodiments, this can be accomplished by overwriting or replacing a previous copy of information object 1 16 stored in the data store 1 1 1 . In other embodiments, the content of the information object 1 16 can edited or updated instead of overwriting the information object 1 16 with a newer copy or version.
  • the collaboration server 1 13 sends a notice to the client application 123 that the updates to the information object 1 16 are completed.
  • the notice can be in the form of a message, event notifier, or other data format.
  • the collaboration server 1 13 can mark the newly created information object 1 16 as being as editable, such that other users or processes waiting to make changes to the information object 1 16 can do so.
  • the client application 123 receives the notice that the updates or changes to the information object 1 16 are complete.
  • the client application 123 can lock or otherwise prevent users from modifying the information object 1 16 upon receiving the notice. Execution then proceeds to box 736, where the client application 123 renders the modified information object 1 16.
  • FIG. 8 shows a flowchart that provides one example of the operation of a portion of the client application 123 and the collaboration server 1 13 according to various embodiments. It is understood that the flowchart of FIG. 8 provides merely an example of the many different types of functional arrangements that can be employed to implement the operation of the portions of the client application 123 and the collaboration server 1 13 as described herein. As an alternative, the flowchart of FIG. 8 can be viewed as depicting an example of elements of a method implemented in the networked environment 100 (FIG. 1 ) according to one or more embodiments.
  • the client application 123 receives data from a data source to be added to an existing information object 1 16 (FIG. 1 ).
  • the data source can include one or more sensors and/or other data feeds 126 (FIG. 1 ).
  • Data can be received as an information object 1 16 or a series of information objects 1 16.
  • a temperature sensor can record a series of temperatures and supply them to the client application 123 as a series of information objects 1 16 or as a single information object 1 16 representing the stream or series of temperature readings.
  • the sensors and/or other data feeds can supply the data as a raw data that has not yet been processed into one or more information objects 1 16. It is also noted that in some embodiments, the sensors and/or other data feeds 126 can supply information directly to the collaboration server 1 13.
  • the client application 123 validates the information supplied by the one or more sensors and/or other data feeds 126. Validation can depend on the type of information supplied by the one or more sensors and/or other data feeds 126. If the data is received in the form of an information object 1 16, the client application 123 can determine whether or not the information object is validly formatted and constructed. If the data is received as raw data, the client application 123 can perform validation checks on the data received. If the data received is invalid, execution skips to box 843. If the data received is valid, then execution proceeds to box 809.
  • the client application sends an error message to the sensor and/or other data feed 126 indicating that the data or information object 1 16 received is invalided.
  • the client application 123 can also generate an error message to be rendered within the user interface 300 (FIG. 1 ) and/or write the error or error message to a log. The process then terminates.
  • the client application 123 invokes one or more functions 219 (FIG. 2) of the existing information object 1 16.
  • the client application 123 can query or send a request to the collaboration server 1 13 for a copy of the latest or most current version of the function 219 to be invoked.
  • the client application 123 can invoke an "AddNewTemperatureReading" function 219 of the existing information object 1 16 to add the data received by adding an information object reference 209 (FIG. 2) to the existing information object 1 16 that creates an association between the existing information object 1 16.
  • a generic "AddNewData" function 219 can be invoked to create an information object reference 209 between the data received and existing information object 1 16.
  • the collaboration server 1 13 determines whether the information provided is valid. For example, the collaboration server can determine whether the arguments supplied by the client application 123 with respect with the function 219 to be called are correct. To use the illustrative example of a temperature sensor, the collaboration server can determine whether the client application 123 is passing temperature readings to an "AddNewTemperatureReading" function 219 or whether the client application 123 is attempting to pass arguments that are unrelated to temperature data. As another example, the collaboration server 1 13 can determine whether the request for the most current version of the function 219 is valid. As an example, the requested function might not exist or might have been deprecated or removed from the current implementation of the system, and therefore the function can no longer be available to be called.
  • a subset of functions 219 can require elevated or special permissions to execute, and therefore the collaboration server 1 13 must determine whether the client application 213 has the appropriate permissions to execute the function 219. If the collaboration server 1 13 determines that the request is for the most recent version of the function 219 is invalid, execution skips to box 846. However, if the collaboration server 1 13 determines that the request is valid, then execution proceeds to box 816.
  • the collaboration server 1 13 generates an error message event and sends an error message to the client application 123.
  • the error message can include an error code identifying the type or source of the error, an error description, and a cause of the error.
  • the error message itself can be an information object 1 16 representing the error and including the applicable error information.
  • the collaboration server 1 13 can also log the error and any associated error information to the data store 1 1 1 (Fig. 1 ) or a log file for later analysis.
  • the collaboration server 1 13 queries the data store 1 1 1 to determine the most current version of the function 219 which the client application 123 has requested to execute.
  • the collaboration server 1 13 then sends the code or logic for the most current or recent version of the function 219 to the client application 123.
  • the function 219 can be sent as human readable source code.
  • the function 219 can be serialized and sent to the client application 123.
  • the client application 123 receives the most recent version of the function 219 from the collaboration server 1 13. If the function 219 is provided as human readable source code, the client application 123 can compile or interpret the human readable source code into a machine readable binary. If the function 219 has been sent in a serialized form, the function 219 can be deserialized by the client application 123. The client application 123 then executes the function 219.
  • results of the function 219 executed in box 819 are sent to the collaboration server 1 13.
  • the results can be sent as a newly created information object 1 16 or set of information objects 1 16.
  • the collaboration server 1 13 determines whether the results of the function invoked in box 819 are valid. For example, the collaboration server 1 13 can determine whether the resulting information objects 1 16 are formatted correctly. As another example, the collaboration server 1 13 can determine whether a collision exists between the resulting information object 1 16 or objects 1 16 and any preexisting information objects 1 16 in the data store 1 1 1 . If the results are invalid, then execution skips to box 846, as previously described. If the results are valid, then execution instead proceeds to box 829.
  • the collaboration server 1 13 marks the initial information object 1 16 as being modified. This locks or otherwise prevents the initial information object 1 16 from being modified by other client applications 123 or processes.
  • the collaboration server then saves the data or information objects 1 16 resulting from the function 219 executed in box 819 to the data store 1 1 1 and also saves any modifications necessary to link the initial information object 1 16 to the newly created information objects 1 16.
  • the collaboration server 1 13 marks the respective information objects 1 16 as having been modified, unlocking the information objects 1 16 such that other client applications 123 or other processes can read or modify them.
  • the collaboration server 1 13 then sends a message to the client application 123 indicating that all changes to the respective information objects 1 16 are complete.
  • the client application 123 receives notification from the collaboration server 1 13 that the updates to the information objects 1 16 in the data store 1 1 1 have been completed.
  • the function 219 invoked in box 809 and executed in box 819 completes, and the function 219 ends.
  • the computing environment 103 includes one or more computing devices 900.
  • Each computing device 900 includes at least one processor circuit, for example, having a processor 903 and a memory 906, both of which are coupled to a local interface 909.
  • each computing device 900 can comprise, for example, at least one server computer or like device.
  • the local interface 909 can comprise, for example, a data bus with an accompanying address/control bus or other bus structure as can be appreciated.
  • Stored in the memory 906 are both data and several components that are executable by the processor 903.
  • stored in the memory 906 and executable by the processor 903 are collaboration server 1 13, and potentially other applications.
  • Also stored in the memory 906 can be a data store 1 1 1 and other data.
  • an operating system 91 1 can be stored in the memory 906 and executable by the processor 903.
  • executable means a program file that is in a form that can ultimately be run by the processor 903.
  • executable programs can be, for example, a compiled program that can be translated into machine code in a format that can be loaded into a random access portion of the memory 906 and run by the processor 903, source code that can be expressed in proper format such as object code that is capable of being loaded into a random access portion of the memory 906 and executed by the processor 903, or source code that can be interpreted by another executable program to generate instructions in a random access portion of the memory 906 to be executed by the processor 903, etc.
  • An executable program can be stored in any portion or component of the memory 1006 including, for example, random access memory (RAM), read-only memory (ROM), hard drive, solid-state drive, USB flash drive, memory card, optical disc such as compact disc (CD) or digital versatile disc (DVD), floppy disk, magnetic tape, or other memory components.
  • RAM random access memory
  • ROM read-only memory
  • hard drive solid-state drive
  • USB flash drive USB flash drive
  • memory card such as compact disc (CD) or digital versatile disc (DVD), floppy disk, magnetic tape, or other memory components.
  • CD compact disc
  • DVD digital versatile disc
  • the memory 906 is defined herein as including both volatile and nonvolatile memory and data storage components. Volatile components are those that do not retain data values upon loss of power. Nonvolatile components are those that retain data upon a loss of power.
  • the memory 906 can comprise, for example, random access memory (RAM), read-only memory (ROM), hard disk drives, solid-state drives, USB flash drives, memory cards accessed via a memory card reader, floppy disks accessed via an associated floppy disk drive, optical discs accessed via an optical disc drive, magnetic tapes accessed via an appropriate tape drive, and/or other memory components, or a combination of any two or more of these memory components.
  • the RAM can comprise, for example, static random access memory (SRAM), dynamic random access memory (DRAM), or magnetic random access memory (MRAM) and other such devices.
  • the ROM can comprise, for example, a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other like memory device.
  • the processor 903 can represent multiple processors 903 and/or multiple processor cores and the memory 906 can represent multiple memories 906 that operate in parallel processing circuits, respectively.
  • the local interface 909 can be an appropriate network that facilitates communication between any two of the multiple processors 903, between any processor 903 and any of the memories 906, or between any two of the memories 906, etc.
  • the local interface 909 can comprise additional systems designed to coordinate this communication, including, for example, performing load balancing.
  • the processor 903 can be of electrical or of some other available construction.
  • collaboration server 1 13 and the client application 123 can be embodied in software or code executed by general purpose hardware as discussed above, as an alternative the same can also be embodied in dedicated hardware or a combination of software/general purpose hardware and dedicated hardware. If embodied in dedicated hardware, each can be implemented as a circuit or state machine that employs any one of or a combination of a number of technologies. These technologies can include, but are not limited to, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits (ASICs) having appropriate logic gates, field-programmable gate arrays (FPGAs), or other components, etc. Such technologies are generally well known by those skilled in the art and, consequently, are not described in detail herein.
  • each block can represent a circuit or a number of interconnected circuits to implement the specified logical function(s).
  • any logic or application described herein, including collaboration server 1 13 and the client application 123, that comprises software or code can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as, for example, a processor 903 in a computer system or other system.
  • the logic can comprise, for example, statements including instructions and declarations that can be fetched from the computer-readable medium and executed by the instruction execution system.
  • a "computer-readable medium" can be any medium that can contain, store, or maintain the logic or application described herein for use by or in connection with the instruction execution system.
  • the computer-readable medium can comprise any one of many physical media such as, for example, magnetic, optical, or semiconductor media. More specific examples of a suitable computer-readable medium would include, but are not limited to, magnetic tapes, magnetic floppy diskettes, magnetic hard drives, memory cards, solid-state drives, USB flash drives, or optical discs. Also, the computer-readable medium can be a random access memory (RAM) including, for example, static random access memory (SRAM) and dynamic random access memory (DRAM), or magnetic random access memory (MRAM).
  • RAM random access memory
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • MRAM magnetic random access memory
  • the computer-readable medium can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable readonly memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other type of memory device.
  • ROM read-only memory
  • PROM programmable read-only memory
  • EPROM erasable programmable readonly memory
  • EEPROM electrically erasable programmable read-only memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Disclosed are various embodiments for presenting an interface for visualizing information objects. A user interface is generated on a client computing device. Then a collaboration server can be queried for an information object to be rendered within the user interface on behalf of a user in response to a request to render the information object. Subsequently, form data can be retrieved from the information object received from the collaboration server. Then the information object can be rendered within the user interface based at least in part on the form data of the information object.

Description

VISUALIZATION INTERFACE FOR INFORMATION OBJECT SYSTEM FEDERALLY SPONSORED RESEARCH
[0001] This application stems, in part, from research conducted on behalf of the Defense Advanced Research Projects Agency ("DARPA") related to DARPA Topic #SB072-032.
CLAIM OF PRIORITY
[0002] This application claims priority to and the benefit of U.S. Provisional Application, Serial No. 61/787,688, filed on March 15, 2013, and incorporated by reference herein in its entirety.
[0003] This application also claims priority to and the benefit of U.S. Utility Application, Serial No. 14/208,346, filed on March 13, 2014, and incorporated by reference herein in its entirety.
BACKGROUND
[0004] Information is stored on computers in files and other data formats. Various applications can use the files, or other data formats, to present the information in a manner that is conducive to human understanding. The applications can further show relationships between separate pieces of information in a manner that is conducive to human understanding.
SUMMARY
[0005] Disclosed are various techniques for presenting information to a user through a user interface of a client application executing on a client computing device. Data is stored as a collection of information objects on a collaboration server. The client application can present the information stored in the collection of information objects in any one or more of the manners disclosed herein.
[0006] In an embodiment a non-transitory computer-readable medium embodying a program is provided, the program comprising: code that generates a user interface on a client computing device; code that queries a collaboration server for an information object to be rendered within the user interface on behalf of a user in response to a request to render the information object; code that retrieves form data from the information object received from the collaboration server; and code that renders the information object within the user interface based at least in part on the form data of the information object. In any one or more embodiments, the program can further comprise code that retrieves an identification of a related information object from the information object; code that queries the collaboration server for the related information object; and code that renders the related information object within the user interface. In any one or more embodiments, the program can further comprise code that renders within the user interface an indication of a relationship between the information object and the related information object. In any one or more embodiments, the program can further comprise code that obtains a modification of the information object; code that sends the modification to the collaboration server; code that renders a modified version of the information object within the user interface in response to receiving a first notification from the collaboration server that the modification is valid; and code that renders an error message within the user interface in response to receiving a second notification from the collaboration server that the modification is invalid. In any one or more embodiments, the program can further comprise code that generates a new information object in response to receiving data from a data source; code creates an information object reference linking the information object to the new information object; and code that sends the information object, the new information, and the information object reference to the collaboration server. In any one or more embodiments, the data source comprises an electronic device that generates data and transmits the data to the computing device. In any one or more embodiments, the information object comprises a unique identifier, an attribute, an information object reference, form data, and a function.
[0007] In an embodiment a system is provided comprising a computing device and an application executable in the computing device, the application comprising: logic that generates a user interface on a client computing device; logic that queries a collaboration server for an information object to be rendered within the user interface on behalf of a user in response to a request to render the information object; logic that retrieves form data from the information object received from the collaboration server; and logic that renders the information object within the user interface based at least in part on the form data of the information object. In any one or more embodiments, the application can further comprise logic that retrieves an identification of a related information object from the information object; logic that queries the collaboration server for the related information object; and logic that renders the related information object within the user interface. In any one or more embodiments, the application can further comprise logic that renders within the user interface an indication of a relationship between the information object and the related information object. In any one or more embodiments, the application can further comprise logic that obtains a modification of the information object; logic that sends the modification to the collaboration server; logic that renders a modified version of the information object within the user interface in response to receiving a first notification from the collaboration server that the modification is valid; and logic that renders an error message within the user interface in response to receiving a second notification from the collaboration server that the modification is invalid. In any one or more embodiments, the application can further comprise logic that generates a new information object in response to receiving data from a data source; logic creates an information object reference linking the information object to the new information object; and logic that sends the information object, the new information, and the information object reference to the collaboration server. In any one or more embodiments, the data source comprises an electronic device that generates data and transmits the data to the computing device. In any one or more embodiments, the information object comprises a unique identifier, an attribute, an information object reference, form data, and a function.
[0008] In an embodiment a method is provided comprising: generating, via a computing device, a user interface on a client computing device; querying, via the computing device, a collaboration server for an information object to be rendered within the user interface on behalf of a user in response to a request to render the information object; retrieving, via the computing device, form data from the information object received from the collaboration server; and rendering, via the computing device, the information object within the user interface based at least in part on the form data of the information object. In one or more embodiments, the method further comprises: retrieving, via the computing device, an identification of a related information object from the information object; querying, via the computing device, the collaboration server for the related information object; and rendering, via the computing device, the related information object within the user interface. In one or more embodiments, the method further comprises: rendering, via the computing device, within the user interface an indication of a relationship between the information object and the related information object. In one or more embodiments, the method further comprises: obtaining, via the computing device, a modification of the information object; sending, via the computing device, the modification to the collaboration server; rendering, via the computing device, a modified version of the information object within the user interface in response to receiving a first notification from the collaboration server that the modification is valid; and rendering, via the computing device, an error message within the user interface in response to receiving a second notification from the collaboration server that the modification is invalid. In one or more embodiments, the method further comprises: generating, via the computing device, a new information object in response to receiving data from a data source; creating, via the computing device, an information object reference linking the information object to the new information object; and sending, via the computing device, the information object, the new information, and the information object reference to the collaboration server. In one or more embodiments, the information object comprises a unique identifier, an attribute, an information object reference, form data, and a function. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Many aspects of the present disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, with emphasis instead being placed upon clearly illustrating the principles of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
[0010] FIG. 1 is a drawing of a networked environment according to various embodiments of the present disclosure.
[001 1] FIG. 2 is a drawing of an Information Object as depicted in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
[0012] FIG. 3A-G are drawings of examples of a user interface rendered by a client in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
[0013] FIG. 4 is a flowchart illustrating one example of functionality implemented as portions of a client application and a collaboration server executed in in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
[0014] FIG. 5 is a flowchart illustrating one example of functionality implemented as portions of a client application and a collaboration server executed in in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
[0015] FIG. 6 is a flowchart illustrating one example of functionality implemented as portions of a client application and a collaboration server executed in in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
[0016] FIG. 7 is a flowchart illustrating one example of functionality implemented as portions of a client application and a collaboration server executed in in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
[0017] FIG. 8 is a flowchart illustrating one example of functionality implemented as portions of a client application and a collaboration server executed in in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
[0018] FIG. 9 is a schematic block diagram that provides one example illustration of a computing environment employed in the networked environment of FIG. 1 according to various embodiments of the present disclosure.
DETAILED DESCRIPTION
[0001] Concept maps and mind maps often facilitate better inspection of existing knowledge structures for more rapid identification of misconceptions or relationships that require more in-depth analysis. The use of computer based concept mapping tools can enhance higher-quality analyses through the creation of structural representation of the knowledge domain of complex concepts. In this manner, with concept map and mind map briefings, both the creators and consumers of content are expected to be able to more rapidly assess whether the information and analysis at hand has analytic integrity and value and thus determine whether further refinement of the analysis is required. [0002] In the following discussion, a general description of the system and its components is provided, followed by a discussion of the operation of the same.
[0003] With reference to FIG. 1 , shown is a networked environment 100 according to various embodiments. The networked environment 100 includes a computing environment 103 and a client computing device 106, which are in data communication with each other via a network 109. The network 109 includes, for example, the Internet, intranets, extranets, wide area networks (WANs), local area networks (LANs), wired networks, wireless networks, or other suitable networks, etc., or any combination of two or more such networks.
[0004] The computing environment 103 can comprise, for example, a server computer or any other system providing computing capability. Alternatively, the computing environment 103 can employ a plurality of computing devices that can be employed that are arranged, for example, in one or more server banks or computer banks or other arrangements. Such computing devices can be located in a single installation or can be distributed among many different geographical locations. For example, the computing environment 103 can include a plurality of computing devices that together can comprise a cloud computing resource, a grid computing resource, and/or any other distributed computing arrangement. In some cases, the computing environment 103 can correspond to an elastic computing resource where the allotted capacity of processing, network, storage, or other computing-related resources can vary over time.
[0005] Various applications and/or other functionality can be executed in the computing environment 103 according to various embodiments. Also, various data is stored in a data store 1 1 1 that is accessible to the computing environment 103. The data store 1 1 1 can be representative of a plurality of data stores 1 1 1 as can be appreciated. The data stored in the data store 1 1 1 , for example, is associated with the operation of the various applications and/or functional entities described below.
[0006] The components executed on the computing environment 103, for example, include a collaboration server 1 13, and other applications, services, processes, systems, engines, or functionality not discussed in detail herein. The collaboration server 1 13 is executed to allow one or more users to create and share one or more information objects 1 16 and potentially other data.
[0007] The data stored in the data store 1 1 1 includes, for example, one or more information objects 1 16, and potentially other data.
[0008] Information objects 1 16 are data storage objects structured to model data based on the relationships between individual pieces of information. As such, information objects 1 16 can comprise a set of associations with other information objects 1 16 to indicate data relationships. For example, a link between two information objects 1 16 can indicate a data dependency, a structural hierarchy, or other association of data modeled by two or more information objects 1 16. Information objects 1 16 can also be assembled and/or derived from other information objects to represent these relationships. As such most information objects 1 16 can be created from or represented by an assembly of other information objects 1 16.
[0009] However, some types or classes of information objects 1 16 can be reserved for particular types of data which cannot easily be represented as a combination of two or more other information objects 1 16. For example, repeating data blocks, such as images, sound, video, compressed data, and encrypted data, can require a reserved or unique instance of an information object 1 16 that functions as a wrapper for the underlying data. Continuous stream data, such as a stream of data from a sensor, can also require a unique or reserved instance of an information object 1 16 to represent the stream data because stream data has a beginning but not necessarily an end to the data.
[0010] The client computing device 106 is representative of a plurality of client computing devices that can be coupled to the network 109. The client computing device 106 can comprise, for example, a processor-based system such as a computer system. Such a computer system can be embodied in the form of a desktop computer, a laptop computer, personal digital assistants, cellular telephones, smartphones, set-top boxes, music players, web pads, tablet computer systems, game consoles, electronic book readers, or other devices with like capability. The client computing device 106 can include a display 1 19. The display 1 19 can comprise, for example, one or more devices such as liquid crystal display (LCD) displays, gas plasma-based flat panel displays, organic light emitting diode (OLED) displays, LCD projectors, or other types of display devices, etc.
[001 1] The client computing device 106 can be configured to execute various applications such as a client application 123 and/or other applications. The client application 123 can be executed in a client computing device 106, for example, to access network content served up by the computing environment 103 and/or other servers, thereby rendering a user interface 300 on the display 1 19. To this end, the client application 123 can comprise, for example, a browser, a dedicated application, etc., and the user interface 300 can comprise a network page, an application screen, etc. The client computing device 106 can be configured to execute applications beyond the client application 123 such as, for example, email applications, social networking applications, word processors, spreadsheets, and/or other applications.
[0012] In addition, one or more sensors and other data feeds 126 can be in network communication with the collaboration server 1 13 or the client application 123. Sensors and other data feeds can comprise any electronic device capable of generating or recording data and transmitting the data to the collaboration server 1 13. Examples of sensors and other data feeds 126 include accelerometers, temperature sensors or thermostats, video or web cameras, microphones, noise sensors, pressure sensors, scales, timers, flow meters, light sensors, outputs or results of applications or programs, and other such devices or programs.
[0013] Although FIG. 1 depicts a network-centric configuration representing a client-server model, this does not preclude other configurations. For example, in some embodiments the client computing device 106 can be a computing device located within the computing environment 103. In various embodiments, the client application 123 can be located in the computing environment 103 along with the collaboration server 1 13, but the client application 123 can communicate or render the user interface 300 on the display 1 19 of the client computing device 106. In other embodiments, the collaboration server 1 13, the data store 1 1 1 , and the client application 123 can all be located within a single computing device, such as the client computing device 106 or a single computer within the computing environment 103.
[0014] Next, a general description of the operation of the various components of the networked environment 100 is provided. To begin, the client application 123 makes a request for one or more information objects 1 16 for use in a presentation, report, or similar document.
[0015] Upon receiving the requested information objects 1 16, the client application 123 presents the requested information objects 1 16 to the user through the user interface 300. The user can interact with the information objects 1 16 as desired.
[0016] For example, the user can select one or more information objects 1 16 for the basis of a presentation. Each information object 1 16 can correspond to a slide image or diagram within the presentation.
[0017] Alternatively, the user can interact with an information object 1 16 to select a child information object 1 16, or otherwise "drill down" to look at the underlying data associated with the information object 1 16. For example, the user can select an information object 1 16 labeled "bacteria." Within the information object 1 16 labeled bacteria, a list of bacteria can be provided. Each listing corresponding to a child information object. Should the user select a child information object 1 16, information related to the child information object 1 16 can be surfaced to the user, where such information was not previously visible to the user.
[0018] In another non-limiting example, the user can choose to create one or more information objects 1 16 to represent data or information that is not currently within the system. To continue with the bacteria example, a user can choose to create a new information object 1 16 associated with the "bacteria" information object 1 16 that represents a newly discovered bacterium. Further, in some embodiments of the present disclosure, a newly created information object 1 16 can be uploaded to the collaboration server 1 13 in order to be stored within the data store 1 1 1 for future use by the user or other users.
[0019] Referring next to FIG. 2, shown is a depiction of the data structure of an information object 1 16. Each information object 1 16 has at least one unique identifier 203, which uniquely identifies a particular instance of an information object 1 16 within the data store 1 1 1 (FIG. 1 ). Each information object 1 16 also includes content 206. Included in the content 206 of the information object 1 16 can be one or more information object references, such as information object reference 209a through information object reference 209n. The content 206 of the information object 1 16 can also include attributes 213 describing the information object 1 16. In addition, the information object 1 16 can include form data 216 and multiple functions 219.
[0020] A unique identifier 203 can be either a unique alpha-numeric number, such as the result of a cryptographic hash function, or can be a unique number generated by the collaboration server 1 13 (FIG. 1 ) when the information object 1 16 is created. For example, the collaboration server 1 13 can apply a cryptographic hash function, such as a version of the Secure Hash Algorithm, to an information object 1 16 to generate the unique identifier 203. In another example, the collaboration server 1 13 can increment a counter when the information object 1 16 is created and then set the unique identifier 203 equal to the value of the counter. In some embodiments, both approaches can be combined to minimize the risk of collisions from the cryptographic hash function or duplicate counter values resulting from integer overflow errors. For example, the counter can be incremented and the value prepended or appended to the result of a cryptographic has function to create a unique identifier 203. [0021] The content 206 corresponds to the data represented by an information object 1 16, which can include one or more information object references 209a... n and/or one or more attributes 213. Each information object reference 209a... n points or links to a related information object 223. A related information object 223 can correspond to information that is a component of the information object 1 16 or is related to the information object 223 in some manner. For example, an information object 1 16 representing the country "Russia" can have an information object reference 209 linking the information object 1 16 to a related information 223 corresponding to the city "Moscow." The information object 1 16 representing "Russia" can also include a second information object reference 209 to a related information object 223 representing a list of countries and a third information object reference 209 to a related information object 223 representing "Communism."
[0022] The attributes 213 of the information object 1 16 represent data stored within the Information Object 1 16 which can or not be directly presented to the user as main content. Attributes 213 of an information object 1 16 can include, for example, a username of a user who originally created the information object 1 16, a username of each user who has modified the information object 1 16, a timestamp recording the creation of the information object 1 16 and/or modification of the information object 1 16, a version of the interface standard supported by the information object 1 16 for use with the collaboration server 1 13 (FIG. 1 ) or the client application 123 (FIG. 1 ), language and/or cultural identification, and other such data. In some instances, the attributes 213 themselves can be represented by other information objects 1 16. For example, a username of the creator of an information object 1 16 can be represented by an information object 1 16 that represents a user account.
[0023] The form data 216 corresponds to the data necessary to represent or display an information object 1 16 on a display 1 19 (FIG. 1 ). For example, form data 216 can represent the size of the information object 1 16 on the display 1 19, the location of the information object 1 16 on the display 1 19, a transparency value of the information object 1 16, whether to overlay or underlay the information object on the display 1 19 with respect to individual ones of the related information objects 223, and similar data or values. In some instances, the form data 216 can further specify the default placement of related information objects 223 on a display 1 19 relative to the information object 1 16.
[0024] The functions 219 correspond to programmatic interfaces, methods, or similar mechanisms through which the client application 123 (FIG. 1 ) or the collaboration server 1 13 can interact with or otherwise manipulate the information object 1 16. For example, the functions 219 can include functions for setting an information object 1 16 visible or invisible on a display 1 19, functions for editing or otherwise modifying the information object 1 16, functions for creating new information object references 209 or otherwise linking an information object 1 16 to a related information object 223.
[0025] An information objection 1 16 or a related information object 223 can also have individual information object references 209 corresponding to user interface elements represented by information objects, such as a navigation information object 226, a menu area information object 229, and a client device information object 233. For example, the navigation information object 226 can describe or define the structure or relationships of the currently selected information object 1 16 in relation to other information objects 1 16. In some embodiments, the menu area information object 229 can describe or define various menu or other user interface 300 (FIG. 1 ) components which can be used to interact with the information object 1 16, such as editing, copying or deleting the information object 1 16. In some embodiments, the menu area information object 229 can also provide for functionality to create new information objects 1 16. Further, in some embodiments, the client device information object 233 can contain user and system-wide settings, such as sound volume, display brightness, network connectivity settings, and other settings.
[0026] Moving to FIG. 3A, shown is an example user interface 300, denoted herein as 300a, of the client application 123 (FIG. 1 ) executing on the client computing device 106. As illustrated, an information object 1 16a can have other, related information objects 1 16b, 1 16c, and 1 16d overlaid on top of the information object 1 16a, permitting a user to visualize the relationships between the information objects 1 16a, 1 16b, 1 16c, and 1 16d. Whichever information object 1 16 is currently selected by the user, or otherwise in focus, can have a corresponding navigation information object 226, menu area information object 229, and client computing device information object 233 displayed.
[0027] Referring next to FIG. 3B, shown is an example user interface 300, denoted herein as 300b, of the client application 123 (FIG. 1 ) executing on the client computing device 106. Shown to the right is a navigation information object 226 (FIG. 2), denoted herein as navigation bar 226b, comprising a number of information objects 1 16. In this particular user interface 300b, an information object 1 16 has been selected and is displayed in the middle of the screen.
[0028] Turning now to FIG. 3C, shown is an example user interface 300, denoted herein as 300c, of the client application 123 (FIG. 1 ) executing on the client computing device 106. Shown to the right is a navigation information object 226 (FIG. 2), denoted herein as 226c, comprising a number of information objects 1 16. In this particular user interface 300c, a use has selected another information object 1 16 and the user interface 300c has changed accordingly.
[0029] Moving on to FIG. 3D, shown is an example user interface 300, denoted herein as 300d, of the client application 123 (FIG. 1 ) executing on the client computing device 106. This particular user interface 300d shows the ability of a user of the client application 123 to associate one or more information objects 1 16 (FIG. 1 ) together.
[0030] Turning now to FIG. 3E, shown is an example user interface 300, denoted herein as 300e, of the client application 123 (FIG. 1 ) executing on the client computing device 106 (FIG. 1 ). The user interface 300e displays a number of information objects 1 16, wherein each information object 1 16 includes information about one or more topics which are each embodied by a corresponding information object 1 16. Further, relationships between information objects 1 16 are depicted in order to properly convey the relationship of information.
[0031] Turning now to FIG. 3F, shown is an example user interface 300, denoted herein as 300f, of the client application 123 (FIG. 1 ) executing on the client computing device 106 (FIG. 1 ). The user interface 300f depicts the presentation of a child information object 1 16. In this particular example, a user has selected the E. Coli information object depicted in user interface 300e (FIG. 3E), which has caused the client application 123 to surface the information object 1 16 for E. Coli to the forefront of the user interface 300f. Other information objects 1 16 have been moved to the background and/or blurred, had any focus removed, or otherwise deemphasized in order to avoid distracting the focus of the user from the surfaced information object 1 16.
[0032] Turning now to FIG. 3G, shown is an example user interface 300, denoted herein as 300g, of the client application 123 (FIG. 1 ) executing on the client computing device 106. The user interface 300g depicts a user creating one or more information objects 1 16 (FIG. 1 ). Such information objects 1 16 can be stored for future reference, or can be used for the purpose of creating a presentation, report, or similar document.
[0033] FIG. 4 shows a flowchart that provides one example of the operation of a portion of the client application 123 and the collaboration server 1 13 according to various embodiments. It is understood that the flowchart of FIG. 4 provides merely an example of the many different types of functional arrangements that can be employed to implement the operation of the portions of the client application 123 and the collaboration server 1 13 as described herein. As an alternative, the flowchart of FIG. 4 can be viewed as depicting an example of elements of a method implemented in the networked environment 100 (FIG. 1 ) according to one or more embodiments.
[0034] Beginning with box 403, the client application 123 receives a selection of "Create New" or similar option through a user interface 300 (FIG. 1 ) of the client application 123 indicating that a user wishes to create a new information object 1 16 (FIG. 2). In some embodiments, for example, the user can have made a selection to create a new information object 1 16 by interacting with a menu area information object 229 (FIG. 2).
[0035] Subsequently at box 406, the client application 123 creates a new information object 1 16 locally. In some embodiments, the new information object 1 16 can be locally cached for immediate use by the client application 123 pending an upload of the newly created information object 1 16 to the collaboration server 1 13. In some embodiments, the client application 123 can further assign a unique identifier 203 (FIG. 2) to the newly created information object 1 16 and populate the content 206 (FIG. 2) and form data 216 (FIG. 2) with default values. For example, the attributes 213 (FIG. 2) can be automatically populated with the user account information of the user who created the information object and an information object reference 209 (FIG. 2) can be automatically created to refer to related information object 223 corresponding to a parent or sibling information object 1 16.
[0036] Proceeding next to box 409, the client application 123 sends the newly created information object 1 16 to the collaboration server 1 13. In some embodiments, the newly created information object 1 16 can be serialized, for example by calling a function 219 (FIG. 2) of the information object 1 16 to serialize it, and then send the serialized information object 1 16 to the collaboration server 1 13. In various embodiments, the client application 1 13 can instead send a copy of the unique identifier 203, the content 206, and the form data 216 to the collaboration server 1 13.
[0037] Referring next to box 413, the collaboration server 1 13 determines whether or not the information corresponding to the newly created information object 1 16 is valid. For example, the collaboration server 1 13 might check for errors as part of the deserialization process. The collaboration server 1 13 can check to see if the data is formatted correctly. As another example, the collaboration server 1 13 can check to determine if the unique identifier 203 of the newly created information object 1 16 is duplicative of a unique identifier 203 of an information object 1 16 already existing in the data store 1 1 1 (FIG. 1 ), which indicates that either the newly created information object 1 16 is a duplicate or that there is a collision between the unique identifiers 203 of the two information objects 1 16 which needs to be resolved. If the information is invalid, then execution proceeds to box 446. If the information is valid, however, then execution proceeds to box 416.
[0038] If execution skips to box 446, the collaboration server 1 13 generates an error message event and sends an error message to the client application 123. The error message can include an error code identifying the type or source of the error, an error description, and a cause of the error. In some embodiments, the error message itself can be an information object 1 16 representing the error and including the applicable error information. In various embodiments, the collaboration server 1 13 can also log the error and any associated error information to the data store 1 1 1 or a log file for later analysis.
[0039] Moving on to box 416, the collaboration server 1 13 creates an information object 1 16 in the data store 1 1 1 using the information received from the client application 123. If necessary, the collaboration server 1 13 also creates any parent or child information objects required, as well as any references or connections between the newly created information object 1 16 and other existing information objects 1 16. [0040] Referring next to box 419, the collaboration server 1 13 sends a notice to the client application 123 that the information object 1 16 has been created. The notice can be in the form of a message, event notifier, or other data format. Additionally, the collaboration server 1 13 can, in some embodiments, mark the newly created information object 1 16 as being currently modified or that modifications to the newly created information object 1 16 are in progress. This can lock the information object 1 16 or otherwise prevent the information object 1 16 from being modified by other users, applications, or processes while the information object 1 16 is being modified.
[0041] Proceeding to box 423, the client application 123 receives a notification from the collaboration server 1 13 that the information object 1 16 has been created. In some embodiments, the notification can also include an indication that the newly created information object 1 16 is marked for editing or modifications. If the newly created information object is marked for editing, the client application 123 can enable modifications to be made to the client or local copy of the information object 1 16. For example, the client application 123 can mark fields of the newly created information object 1 16 as editable, enable various menu functions for the information object 1 16, or take similar actions.
[0042] Moving on to box 426, the client application 123 obtains one or more user modifications to the newly created information object 1 16. In some embodiments, the client application 123 can automatically save the user modifications. For example, the client application 123 can automatically send each change to the collaboration server 1 13, or the client application 123 can send changes to the collaboration server 1 13 in batches on a periodic basis, such as every few minutes, every hour, or some other period of time. The client application 123 can also locally save changes or modifications to the newly created information object 1 16 on the client computing device 106 (FIG. 1 ). When the user has finished modifying the newly created information object 1 16, the final set of changes is sent to the collaboration server 1 13. In some embodiments, the changes sent can be sent in a file format that records the changes between the copy of the information object 1 16 stored in the data store 1 1 1 and the copy of the information object 1 16 stored on the client computing device 106. In various embodiments, the changes can instead be sent as copy of the information object 1 16 locally stored on the client computing device 106 to be used to replace the copy of the corresponding information object 1 16 stored in the data store 1 1 1 . In such embodiments, the copy of the information object 1 16 can be serialized and transmitted to the collaboration server 1 13.
[0043] Referring next to box 429, the collaboration server 1 13 determines whether or not the information corresponding to the modified information object 1 16 is valid. For example, the collaboration server 1 13 might check for errors as part of the deserialization process. The collaboration server 1 13 can check to see if the data is formatted correctly. If the information is invalid, then execution proceeds to box 446, previously described. If the information is valid, however, then execution proceeds to box 433.
[0044] Proceeding next to box 433, the collaboration server 1 13 stores the modifications to the information object 1 16 in the data store 1 1 1 . In some embodiments, this can be accomplished by overwriting or replacing a previous copy of information object 1 16 stored in the data store 1 1 1 . In other embodiments, the content of the information object 1 16 can be edited or updated instead of overwriting the information object 1 16 with a newer copy or version. [0045] Moving on to box 436, the collaboration server 1 13 sends a notice to the client application 123 that the updates to the information object 1 16 are completed. The notice can be in the form of a message, event notifier, or other data format. Additionally, the collaboration server 1 13 can mark the newly created information object 1 16 as being as editable, such that other users or processes waiting to make changes to the information object 1 16 can do so.
[0046] Referring next to box 439, the client application 123 receives the notice that the updates or changes to the newly created information object 1 16 are complete. In some embodiments, the client application 123 can lock or otherwise prevent users from modifying the newly created information object 1 16 upon receiving the notice. Execution then proceeds to box 443, where the client application 123 renders the newly created information object 1 16.
[0047] FIG. 5 shows a flowchart that provides one example of the operation of a portion of the client application 123 and the collaboration server 1 13 according to various embodiments. It is understood that the flowchart of FIG. 5 provides merely an example of the many different types of functional arrangements that can be employed to implement the operation of the portions of the client application 123 and the collaboration server 1 13 as described herein. As an alternative, the flowchart of FIG. 5 can be viewed as depicting an example of elements of a method implemented in the networked environment 100 (FIG. 1 ) according to one or more embodiments.
[0048] Beginning with box 503, the client application 123 marks an information object 1 16 as editable. For example, an information object 1 16 (FIG. 1 ) can be locked by another process or user for editing by the collaboration server 1 13. Accordingly, until the collaboration server 1 13 unlocks the information object 1 16 and communicates to the client application 123 that the information object 1 16 is free for editing, the information object 1 16 can not be editable by a user of the client application 123.
[0049] Subsequent to marking the information object 1 16 as editable, execution on the client application moves to box 506, where the client application 123 obtains a user selection of the information object 1 16 for editing. The user can, for example use a mouse click, touch gesture, or other interaction to indicate to the client application 123 that the information object 1 16 is to be edited.
[0050] Proceeding to box 509, the client application 123 retrieves the unique identifier 203 (FIG. 2) of the information object 1 16. Upon retrieval, the client application 123 sends the unique identifier 203 to the collaboration server 1 13.
[0051] Referring next to box 513, the collaboration server 1 13 determines whether or not the unique identifier 203 (FIG. 2) is valid. For example, the collaboration server 1 13 can determine whether an information object 1 16 in the data store 1 1 1 (FIG. 1 ) with the unique identifier 203 exists. If not, the collaboration server 1 13 can generate an error. As another example, the collaboration server 1 13 can further determine whether the information object 1 16 in the data store 1 1 1 is an editable information object 1 16. If not, the collaboration server 1 13 can generate an error. If the collaboration server 1 13 determines that the unique identifier 203 is invalid, then execution proceeds to box 543. If the information is valid, however, then execution proceeds to box 516.
[0052] If execution skips to box 543, the collaboration server 1 13 generates an error message event and sends an error message to the client application 123. The error message can include an error code identifying the type or source of the error, an error description, and a cause of the error. In some embodiments, the error message itself can be an information object 1 16 representing the error and including the applicable error information. In various embodiments, the collaboration server 1 13 can also log the error and any associated error information to the data store 1 1 1 or a log file for later analysis.
[0053] Moving on to box 516, the collaboration server 1 13 can mark the selected information object 1 16 as being currently modified or that modifications to the selected information object 1 16 are in progress. This can lock the information object 1 16 or otherwise prevent the information object 1 16 from being modified by other users, applications, or processes while the information object 1 16 is being modified. After locking the information object 1 16, the collaboration server 1 13 then sends a message to the client application 123 that the information object 1 16 can be edited.
[0054] Referring next to box 519, the client application 123 can enable modifications to be made to the client or local copy of the information object 1 16 in response to receiving the message from the collaboration server 1 13. For example, the client application 123 can mark fields of the selected information object 1 16 as editable, enable various menu functions for the information object 1 16, or take similar actions.
[0055] Proceeding to box 523, the client application 123 obtains one or more user modifications to the selected information object 1 16. In some embodiments, the client application 123 can automatically save the user modifications. For example, the client application 123 can automatically send each change to the collaboration server 1 13, or the client application 123 can send changes to the collaboration server 1 13 in batches on a periodic basis, such as every few minutes, every hour, or some other period of time. The client application 123 can also locally save changes or modifications to the selected information object 1 16 on the client computing device 106 (FIG. 1 ). When the user has finished modifying the selected information object 1 16, the final set of changes is sent to the collaboration server 1 13. In some embodiments, the changes sent can be sent in a file format that records the changes between the copy of the information object 1 16 stored in the data store 1 1 1 and the copy of the information object 1 16 stored on the client computing device 106. In various embodiments, the changes can instead be sent as a copy of the information object 1 16 locally stored on the client computing device 106 to be used to replace the copy of the corresponding information object 1 16 stored in the data store 1 1 1 . In such embodiments, the copy of the information object 1 16 can be serialized and transmitted to the collaboration server 1 13.
[0056] Referring next to box 526, the collaboration server 1 13 determines whether or not the information corresponding to the modified information object 1 16 is valid. For example, the collaboration server 1 13 might check for errors as part of the deserialization process. The collaboration server 1 13 can check to see if the data is formatted correctly. If the information is invalid, then execution proceeds to box 543, previously described. If the information is valid, however, then execution proceeds to box 529.
[0057] Moving on to box 529, the collaboration server 1 13 stores the modifications to the information object 1 16 in the data store 1 1 1 . In some embodiments, this can be accomplished by overwriting or replacing a previous copy of information object 1 16 stored in the data store 1 1 1 . In other embodiments, the content of the information object 1 16 can edited or updated instead of overwriting the information object 1 16 with a newer copy or version.
[0058] Referring next to box 533, the collaboration server 1 13 sends a notice to the client application 123 that the updates to the information object 1 16 are completed. The notice can be in the form of a message, event notifier, or other data format. Additionally, the collaboration server 1 13 can mark the selected information object 1 16 as being as editable, such that other users or processes waiting to make changes to the information object 1 16 can do so.
[0059] Moving on to box 536, the client application 123 receives the notice that the updates or changes to the selected information object 1 16 are complete. In some embodiments, the client application 123 can lock or otherwise prevent users from modifying the selected information object 1 16 upon receiving the notice. Execution then proceeds to box 539, where the client application 123 renders the modified information object 1 16.
[0060] FIG. 6 shows a flowchart that provides one example of the operation of a portion of the client application 123 and the collaboration server 1 13 according to various embodiments. It is understood that the flowchart of FIG. 6 provides merely an example of the many different types of functional arrangements that can be employed to implement the operation of the portions of the client application 123 and the collaboration server 1 13 as described herein. As an alternative, the flowchart of FIG. 6 can be viewed as depicting an example of elements of a method implemented in the networked environment 100 (FIG. 1 ) according to one or more embodiments.
[0061] Beginning with box 603, the client application 123 receives information or data that is to be imported into the system. For example, the client application 123 can receive a video file, an image file, a portable document format (PDF) document, a text document, an audio file, or some other type of file.
[0062] Subsequently at box 606, the client application 123 analyzes the file and creates a new information object 1 16 locally based on the file. In some embodiments, the new information object 1 16 can be locally cached for immediate use by the client application 123 pending an upload of the newly created information object 1 16 to the collaboration server 1 13. In some embodiments, the client application 123 can further assign a unique identifier 203 (FIG. 2) to the newly created information object 1 16 and populate the content 206 (FIG. 2) and form data 216 (FIG. 2) with default values. For example, the attributes 213 (FIG. 2) can be automatically populated with the user account information of the user who created the information object and an information object reference 209 (FIG. 2) can be automatically created to refer to related information object 223 corresponding to a parent or sibling information object 1 16. Further, in some embodiments, the client application 123 can set values for certain attributes 209 based on the file and can populate the content 206 and form data 216 with values based at least in part on the imported file.
[0063] Proceeding next to box 609, the client application 123 sends the newly created information object 1 16 to the collaboration server 1 13. In some embodiments, the newly created information object 1 16 can be serialized, for example by calling a function 219 (FIG. 2) of the information object 1 16 to serialize it, and then send the serialized information object 1 16 to the collaboration server 1 13. In various embodiments, the client application 1 13 can instead send a copy of the unique identifier 203, the content 206, and the form data 216 to the collaboration server 1 13.
[0064] Referring next to box 613, the collaboration server 1 13 determines whether or not the information corresponding to the newly created information object 1 16 is valid. For example, the collaboration server 1 13 might check for errors as part of the deserialization process. The collaboration server 1 13 can check to see if the data is formatted correctly. As another example, the collaboration server 1 13 can check to determine if the unique identifier 203 of the newly created information object 1 16 is duplicative of a unique identifier 203 of an information object 1 16 already existing in the data store 1 1 1 (FIG. 1 ), which indicate that either the newly created information object 1 16 is a duplicate or that there is a collision between the unique identifiers 203 of the two information objects 1 16 which needs to be resolved. If the information is invalid, then execution proceeds to box 646. If the information is valid, however, then execution proceeds to box 616.
[0065] If execution skips to box 646, the collaboration server 1 13 generates an error message event and sends an error message to the client application 123. The error message can include an error code identifying the type or source of the error, an error description, and a cause of the error. In some embodiments, the error message itself can be an information object 1 16 representing the error and including the applicable error information. In various embodiments, the collaboration server 1 13 can also log the error and any associated error information to the data store 1 1 1 or a log file for later analysis.
[0066] Moving on to box 616, the collaboration server 1 13 creates an information object 1 16 in the data store 1 1 1 using the information received from the client application 123. If necessary, the collaboration server 1 13 also creates any parent or child information objects required, as well as any references or connections between the newly created information object 1 16 and other existing information objects 1 16.
[0067] Referring next to box 619, the collaboration server 1 13 sends a notice to the client application 123 that the information object 1 16 has been created. The notice can be in the form of a message, event notifier, or other data format. Additionally, the collaboration server 1 13 can, in some embodiments, mark the newly created information object 1 16 as being currently modified or that modifications to the newly created information object 1 16 are in progress. This can lock the information object 1 16 or otherwise prevent the information object 1 16 from being modified by other users, applications, or processes while the information object 1 16 is being modified.
[0068] Proceeding to box 623, the client application 123 receives a notification from the collaboration server 1 13 that the information object 1 16 has been created. In some embodiments, the notification can also include an indication that the newly created information object 1 16 is marked for editing or modifications. If the newly created information object is marked for editing, the client application 123 can enable modifications to be made to the client or local copy of the information object 1 16. For example, the client application 123 can mark fields of the newly created information object 1 16 as editable, enable various menu functions for the information object 1 16, or take similar actions.
[0069] Moving on to box 626, the client application 123 obtains one or more user modifications to the newly created information object 1 16. In some embodiments, the client application 123 can automatically save the user modifications. For example, the client application 123 can automatically send each change to the collaboration server 1 13, or the client application 123 can send changes to the collaboration server 1 13 in batches on a periodic basis, such as every few minutes, every hour, or some other period of time. The client application 123 can also locally save changes or modifications to the newly created information object 1 16 on the client computing device 106 (FIG. 1 ). When the user has finished modifying the newly created information object 1 16, the final set of changes is sent to the collaboration server 1 13. In some embodiments, the changes sent can be sent in a file format that records the changes between the copy of the information object 1 16 stored in the data store 1 1 1 and the copy of the information object 1 16 stored on the client computing device 106. In various embodiments, the changes can instead be sent as copy of the information object 1 16 locally stored on the client computing device 106 to be used to replace the copy of the corresponding information object 1 16 stored in the data store 1 1 1 . In such embodiments, the copy of the information object 1 16 can be serialized and transmitted to the collaboration server 1 13.
[0070] Referring next to box 629, the collaboration server 1 13 determines whether or not the information corresponding to the modified information object 1 16 is valid. For example, the collaboration server 1 13 might check for errors as part of the deserialization process. The collaboration server 1 13 can check to see if the data is formatted correctly. If the information is invalid, then execution proceeds to box 646, previously described. If the information is valid, however, then execution proceeds to box 633.
[0071] Proceeding next to box 633, the collaboration server 1 13 stores the modifications to the information object 1 16 in the data store 1 1 1 . In some embodiments, this can be accomplished by overwriting or replacing a previous copy of information object 1 16 stored in the data store 1 1 1 . In other embodiments, the content of the information object 1 16 can edited or updated instead of overwriting the information object 1 16 with a newer copy or version.
[0072] Moving on to box 636, the collaboration server 1 13 sends a notice to the client application 123 that the updates to the information object 1 16 are completed. The notice can be in the form of a message, event notifier, or other data format. Additionally, the collaboration server 1 13 can mark the newly created information object 1 16 as being as editable, such that other users or processes waiting to make changes to the information object 1 16 can do so.
[0073] Referring next to box 639, the client application 123 receives the notice that the updates or changes to the newly created information object 1 16 are complete. In some embodiments, the client application 123 can lock or otherwise prevent users from modifying the newly created information object 1 16 upon receiving the notice. Execution then proceeds to box 643, where the client application 123 renders the newly created information object 1 16.
[0074] FIG. 7 shows a flowchart that provides one example of the operation of a portion of the client application 123 and the collaboration server 1 13 according to various embodiments. It is understood that the flowchart of FIG. 7 provides merely an example of the many different types of functional arrangements that can be employed to implement the operation of the portions of the client application 123 and the collaboration server 1 13 as described herein. As an alternative, the flowchart of FIG. 7 can be viewed as depicting an example of elements of a method implemented in the networked environment 100 (FIG. 1 ) according to one or more embodiments. [0075] Beginning with box 703, the client application 123 receives a trigger event. The trigger event includes any event which indicates that the information object 1 16 associated with the trigger event should be modified. A trigger event can include, for example, a command received by the user interface 300 (FIG. 1 ) to automatically arrange or layout the displayed information objects 1 16 according to one or more predefined rules. The user interface can then send a trigger to the corresponding information objects 1 16 to modify their form data 216 according to the one or more predefined rules. For example, the trigger event can instruct the information objects 1 16 can alter their position, size or shape values stored in the form data 216.
[0076] Proceeding to box 706, the client application 123 retrieves the unique identifier 203 (FIG. 2) of the information object 1 16 that corresponds to the trigger event. Upon retrieval, the client application 123 sends the unique identifier 203 to the collaboration server 1 13.
[0077] Referring next to box 709, the collaboration server 1 13 determines whether or not the unique identifier 203 (FIG. 2) is valid. For example, the collaboration server 1 13 can determine whether an information object 1 16 in the data store 1 1 1 (FIG. 1 ) with the unique identifier 203 exists. If not, the collaboration server 1 13 can generate an error. As another example, the collaboration server 1 13 can further determine whether the information object 1 16 in the data store 1 1 1 is an editable information object 1 16. If not, the collaboration server 1 13 can generate an error. If the collaboration server 1 13 determines that the unique identifier 203 is invalid, then execution proceeds to box 739. If the information is valid, however, then execution proceeds to box 713. [0078] If execution skips to box 739, the collaboration server 1 13 generates an error message event and sends an error message to the client application 123. The error message can include an error code identifying the type or source of the error, an error description, and a cause of the error. In some embodiments, the error message itself can be an information object 1 16 representing the error and including the applicable error information. In various embodiments, the collaboration server 1 13 can also log the error and any associated error information to the data store 1 1 1 or a log file for later analysis.
[0079] Moving on to box 713, the collaboration server 1 13 can mark the information object 1 16 as being currently modified or that modifications to the information object 1 16 are in progress. This can lock the information object 1 16 or otherwise prevent the information object 1 16 from being modified by other users, applications, or processes while the information object 1 16 is being modified. After locking the information object 1 16, the collaboration server 1 13 then sends a message to the client application 123 that the information object 1 16 can be edited.
[0080] Proceeding to box 719, the client application 123 modifies the information object 1 16 in response to the trigger according to the conditions associated with the trigger. In some embodiments, the changes can be automatically saved locally on the client computing device 106 (FIG. 1 ) pending the changes being sent to the collaboration server 1 13.
[0081] Referring next to box 723, the collaboration server 1 13 determines whether or not the information corresponding to the modified information object 1 16 is valid. For example, the collaboration server 1 13 might check for errors as part of the deserialization process. The collaboration server 1 13 can check to see if the data is formatted correctly. If the information is invalid, then execution proceeds to box 739, previously described. If the information is valid, however, then execution proceeds to box 526.
[0082] Moving on to box 726, the collaboration server 1 13 stores the modifications to the information object 1 16 in the data store 1 1 1 . In some embodiments, this can be accomplished by overwriting or replacing a previous copy of information object 1 16 stored in the data store 1 1 1 . In other embodiments, the content of the information object 1 16 can edited or updated instead of overwriting the information object 1 16 with a newer copy or version.
[0083] Referring next to box 729, the collaboration server 1 13 sends a notice to the client application 123 that the updates to the information object 1 16 are completed. The notice can be in the form of a message, event notifier, or other data format. Additionally, the collaboration server 1 13 can mark the newly created information object 1 16 as being as editable, such that other users or processes waiting to make changes to the information object 1 16 can do so.
[0084] Moving on to box 733, the client application 123 receives the notice that the updates or changes to the information object 1 16 are complete. In some embodiments, the client application 123 can lock or otherwise prevent users from modifying the information object 1 16 upon receiving the notice. Execution then proceeds to box 736, where the client application 123 renders the modified information object 1 16.
[0085] FIG. 8 shows a flowchart that provides one example of the operation of a portion of the client application 123 and the collaboration server 1 13 according to various embodiments. It is understood that the flowchart of FIG. 8 provides merely an example of the many different types of functional arrangements that can be employed to implement the operation of the portions of the client application 123 and the collaboration server 1 13 as described herein. As an alternative, the flowchart of FIG. 8 can be viewed as depicting an example of elements of a method implemented in the networked environment 100 (FIG. 1 ) according to one or more embodiments.
[0086] Beginning with box 803, the client application 123 receives data from a data source to be added to an existing information object 1 16 (FIG. 1 ). The data source, for example, can include one or more sensors and/or other data feeds 126 (FIG. 1 ). Data can be received as an information object 1 16 or a series of information objects 1 16. For example, a temperature sensor can record a series of temperatures and supply them to the client application 123 as a series of information objects 1 16 or as a single information object 1 16 representing the stream or series of temperature readings. In some embodiments, the sensors and/or other data feeds can supply the data as a raw data that has not yet been processed into one or more information objects 1 16. It is also noted that in some embodiments, the sensors and/or other data feeds 126 can supply information directly to the collaboration server 1 13.
[0087] Referring next to box 806, the client application 123 validates the information supplied by the one or more sensors and/or other data feeds 126. Validation can depend on the type of information supplied by the one or more sensors and/or other data feeds 126. If the data is received in the form of an information object 1 16, the client application 123 can determine whether or not the information object is validly formatted and constructed. If the data is received as raw data, the client application 123 can perform validation checks on the data received. If the data received is invalid, execution skips to box 843. If the data received is valid, then execution proceeds to box 809.
[0088] If execution skips to box 843, the client application sends an error message to the sensor and/or other data feed 126 indicating that the data or information object 1 16 received is invalided. In some embodiments, the client application 123 can also generate an error message to be rendered within the user interface 300 (FIG. 1 ) and/or write the error or error message to a log. The process then terminates.
[0089] If execution proceeds to box 809, however, then the client application 123 invokes one or more functions 219 (FIG. 2) of the existing information object 1 16. As part of the invocation process, the client application 123 can query or send a request to the collaboration server 1 13 for a copy of the latest or most current version of the function 219 to be invoked. For example, if the data supplied by the one or more sensors and/or other data feeds 126 were temperature data or a series of temperature readings, then the client application 123 can invoke an "AddNewTemperatureReading" function 219 of the existing information object 1 16 to add the data received by adding an information object reference 209 (FIG. 2) to the existing information object 1 16 that creates an association between the existing information object 1 16. In some embodiments, a generic "AddNewData" function 219 can be invoked to create an information object reference 209 between the data received and existing information object 1 16.
[0090] Proceeding next to box 813, the collaboration server 1 13 determines whether the information provided is valid. For example, the collaboration server can determine whether the arguments supplied by the client application 123 with respect with the function 219 to be called are correct. To use the illustrative example of a temperature sensor, the collaboration server can determine whether the client application 123 is passing temperature readings to an "AddNewTemperatureReading" function 219 or whether the client application 123 is attempting to pass arguments that are unrelated to temperature data. As another example, the collaboration server 1 13 can determine whether the request for the most current version of the function 219 is valid. As an example, the requested function might not exist or might have been deprecated or removed from the current implementation of the system, and therefore the function can no longer be available to be called. In some embodiments, a subset of functions 219 can require elevated or special permissions to execute, and therefore the collaboration server 1 13 must determine whether the client application 213 has the appropriate permissions to execute the function 219. If the collaboration server 1 13 determines that the request is for the most recent version of the function 219 is invalid, execution skips to box 846. However, if the collaboration server 1 13 determines that the request is valid, then execution proceeds to box 816.
[0091] Skipping ahead to box 846, the collaboration server 1 13 generates an error message event and sends an error message to the client application 123. The error message can include an error code identifying the type or source of the error, an error description, and a cause of the error. In some embodiments, the error message itself can be an information object 1 16 representing the error and including the applicable error information. In various embodiments, the collaboration server 1 13 can also log the error and any associated error information to the data store 1 1 1 (Fig. 1 ) or a log file for later analysis. [0092] Referring next to box 816, the collaboration server 1 13 queries the data store 1 1 1 to determine the most current version of the function 219 which the client application 123 has requested to execute. The collaboration server 1 13 then sends the code or logic for the most current or recent version of the function 219 to the client application 123. In some embodiments, the function 219 can be sent as human readable source code. In other embodiments, the function 219 can be serialized and sent to the client application 123.
[0093] Moving on to box 819, the client application 123 receives the most recent version of the function 219 from the collaboration server 1 13. If the function 219 is provided as human readable source code, the client application 123 can compile or interpret the human readable source code into a machine readable binary. If the function 219 has been sent in a serialized form, the function 219 can be deserialized by the client application 123. The client application 123 then executes the function 219.
[0094] Proceeding next to box 823, the results of the function 219 executed in box 819 are sent to the collaboration server 1 13. In some embodiments, the results can be sent as a newly created information object 1 16 or set of information objects 1 16.
[0095] Referring next to box 826, the collaboration server 1 13 determines whether the results of the function invoked in box 819 are valid. For example, the collaboration server 1 13 can determine whether the resulting information objects 1 16 are formatted correctly. As another example, the collaboration server 1 13 can determine whether a collision exists between the resulting information object 1 16 or objects 1 16 and any preexisting information objects 1 16 in the data store 1 1 1 . If the results are invalid, then execution skips to box 846, as previously described. If the results are valid, then execution instead proceeds to box 829.
[0096] Moving on to box 829, the collaboration server 1 13 marks the initial information object 1 16 as being modified. This locks or otherwise prevents the initial information object 1 16 from being modified by other client applications 123 or processes. The collaboration server then saves the data or information objects 1 16 resulting from the function 219 executed in box 819 to the data store 1 1 1 and also saves any modifications necessary to link the initial information object 1 16 to the newly created information objects 1 16.
[0097] Proceeding next to box 833, the collaboration server 1 13 marks the respective information objects 1 16 as having been modified, unlocking the information objects 1 16 such that other client applications 123 or other processes can read or modify them. The collaboration server 1 13 then sends a message to the client application 123 indicating that all changes to the respective information objects 1 16 are complete. Referring next to box 836, the client application 123 receives notification from the collaboration server 1 13 that the updates to the information objects 1 16 in the data store 1 1 1 have been completed. Moving on to box 839, the function 219 invoked in box 809 and executed in box 819 completes, and the function 219 ends.
[0098] With reference to FIG. 9, shown is a schematic block diagram of the computing environment 103 according to an embodiment of the present disclosure. The computing environment 103 includes one or more computing devices 900. Each computing device 900 includes at least one processor circuit, for example, having a processor 903 and a memory 906, both of which are coupled to a local interface 909. To this end, each computing device 900 can comprise, for example, at least one server computer or like device. The local interface 909 can comprise, for example, a data bus with an accompanying address/control bus or other bus structure as can be appreciated.
[0099] Stored in the memory 906 are both data and several components that are executable by the processor 903. In particular, stored in the memory 906 and executable by the processor 903 are collaboration server 1 13, and potentially other applications. Also stored in the memory 906 can be a data store 1 1 1 and other data. In addition, an operating system 91 1 can be stored in the memory 906 and executable by the processor 903.
[0100] It is understood that there can be other applications that are stored in the memory 906 and are executable by the processor 903 as can be appreciated. Where any component discussed herein is implemented in the form of software, any one of a number of programming languages can be employed such as, for example, C, C++, C#, Objective C, Java®, JavaScript®, Perl, PHP, Visual Basic®, Python®, Ruby, Flash®, or other programming languages.
[0101] A number of software components are stored in the memory 906 and are executable by the processor 903. In this respect, the term "executable" means a program file that is in a form that can ultimately be run by the processor 903. Examples of executable programs can be, for example, a compiled program that can be translated into machine code in a format that can be loaded into a random access portion of the memory 906 and run by the processor 903, source code that can be expressed in proper format such as object code that is capable of being loaded into a random access portion of the memory 906 and executed by the processor 903, or source code that can be interpreted by another executable program to generate instructions in a random access portion of the memory 906 to be executed by the processor 903, etc. An executable program can be stored in any portion or component of the memory 1006 including, for example, random access memory (RAM), read-only memory (ROM), hard drive, solid-state drive, USB flash drive, memory card, optical disc such as compact disc (CD) or digital versatile disc (DVD), floppy disk, magnetic tape, or other memory components.
[0102] The memory 906 is defined herein as including both volatile and nonvolatile memory and data storage components. Volatile components are those that do not retain data values upon loss of power. Nonvolatile components are those that retain data upon a loss of power. Thus, the memory 906 can comprise, for example, random access memory (RAM), read-only memory (ROM), hard disk drives, solid-state drives, USB flash drives, memory cards accessed via a memory card reader, floppy disks accessed via an associated floppy disk drive, optical discs accessed via an optical disc drive, magnetic tapes accessed via an appropriate tape drive, and/or other memory components, or a combination of any two or more of these memory components. In addition, the RAM can comprise, for example, static random access memory (SRAM), dynamic random access memory (DRAM), or magnetic random access memory (MRAM) and other such devices. The ROM can comprise, for example, a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other like memory device.
[0103] Also, the processor 903 can represent multiple processors 903 and/or multiple processor cores and the memory 906 can represent multiple memories 906 that operate in parallel processing circuits, respectively. In such a case, the local interface 909 can be an appropriate network that facilitates communication between any two of the multiple processors 903, between any processor 903 and any of the memories 906, or between any two of the memories 906, etc. The local interface 909 can comprise additional systems designed to coordinate this communication, including, for example, performing load balancing. The processor 903 can be of electrical or of some other available construction.
[0104] Although collaboration server 1 13 and the client application 123, and other various systems described herein can be embodied in software or code executed by general purpose hardware as discussed above, as an alternative the same can also be embodied in dedicated hardware or a combination of software/general purpose hardware and dedicated hardware. If embodied in dedicated hardware, each can be implemented as a circuit or state machine that employs any one of or a combination of a number of technologies. These technologies can include, but are not limited to, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits (ASICs) having appropriate logic gates, field-programmable gate arrays (FPGAs), or other components, etc. Such technologies are generally well known by those skilled in the art and, consequently, are not described in detail herein.
[0105] The functionality and operation of an implementation of portions of the collaboration server 1 13 or the client application 123 can be described in the present disclosure. If embodied in software, the functionality described can represent a module, segment, or portion of code that comprises program instructions to implement the specified logical functions. The program instructions can be embodied in the form of source code that comprises human- readable statements written in a programming language or machine code that comprises numerical instructions recognizable by a suitable execution system such as a processor 903 in a computer system or other system. The machine code can be converted from the source code, etc. If embodied in hardware, each block can represent a circuit or a number of interconnected circuits to implement the specified logical function(s).
[0106] Although a specific order of execution for the application can be described, it is understood that the order of execution can differ from that which is depicted. Functionality described can be implemented concurrently or in parallel with other described functionality. Moreover, functionality described can occur in an order other than that described or depicted in the present disclosure. Further, in some embodiments, functionality described herein can be skipped or omitted. In addition, any number of counters, state variables, warning semaphores, or messages might be added to the logical flow described herein, for purposes of enhanced utility, accounting, performance measurement, or providing troubleshooting aids, etc. It is understood that all such variations are within the scope of the present disclosure.
[0107] Also, any logic or application described herein, including collaboration server 1 13 and the client application 123, that comprises software or code can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as, for example, a processor 903 in a computer system or other system. In this sense, the logic can comprise, for example, statements including instructions and declarations that can be fetched from the computer-readable medium and executed by the instruction execution system. In the context of the present disclosure, a "computer-readable medium" can be any medium that can contain, store, or maintain the logic or application described herein for use by or in connection with the instruction execution system.
[0108] The computer-readable medium can comprise any one of many physical media such as, for example, magnetic, optical, or semiconductor media. More specific examples of a suitable computer-readable medium would include, but are not limited to, magnetic tapes, magnetic floppy diskettes, magnetic hard drives, memory cards, solid-state drives, USB flash drives, or optical discs. Also, the computer-readable medium can be a random access memory (RAM) including, for example, static random access memory (SRAM) and dynamic random access memory (DRAM), or magnetic random access memory (MRAM). In addition, the computer-readable medium can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable readonly memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other type of memory device.
[0109] It should be emphasized that the above-described embodiments of the present disclosure are merely possible examples of implementations set forth for a clear understanding of the principles of the disclosure. Many variations and modifications can be made to the above-described embodiment(s) without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.

Claims

CLAIMS I claim:
1 . A non-transitory computer-readable medium embodying a program comprising:
code that generates a user interface on a client computing device; code that queries a collaboration server for an information object to be rendered within the user interface on behalf of a user in response to a request to render the information object;
code that retrieves form data from the information object received from the collaboration server; and
code that renders the information object within the user interface based at least in part on the form data of the information object.
2. The non-transitory computer-readable medium of claim 1 , further comprising:
code that retrieves an identification of a related information object from the information object;
code that queries the collaboration server for the related information object; and
code that renders the related information object within the user interface.
3. The non-transitory computer-readable medium of claim 2, further comprising code that renders within the user interface an indication of a relationship between the information object and the related information object.
4. The non-transitory computer-readable medium of any one of claims 1 -3, further comprising:
code that obtains a modification of the information object;
code that sends the modification to the collaboration server;
code that renders a modified version of the information object within the user interface in response to receiving a first notification from the collaboration server that the modification is valid; and
code that renders an error message within the user interface in response to receiving a second notification from the collaboration server that the modification is invalid.
5. The non-transitory computer-readable medium of any one of claims 1 -4, further comprising:
code that generates a new information object in response to receiving data from a data source;
code creates an information object reference linking the information object to the new information object; and
code that sends the information object, the new information, and the information object reference to the collaboration server.
6. The non-transitory computer-readable medium of claim 5, wherein the data source comprises an electronic device that generates data and transmits the data to the computing device.
7. The non-transitory computer-readable medium of any of claims 1 - 6, wherein the information object comprises a unique identifier, an attribute, an information object reference, form data, or a function.
8. A system, comprising:
a computing device;
an application executable on the computing device, the application comprising:
logic that generates a user interface on a client computing device;
logic that queries a collaboration server for an information object to be rendered within the user interface on behalf of a user in response to a request to render the information object;
logic that retrieves form data from the information object received from the collaboration server; and
logic that renders the information object within the user interface based at least in part on the form data of the information object.
9. The system of claim 8, wherein the application further comprises: logic that retrieves an identification of a related information object from the information object; logic that queries the collaboration server for the related information object; and
logic that renders the related information object within the user interface.
10. The system of claim 9, wherein the application further comprises logic that renders within the user interface an indication of a relationship between the information object or the related information object.
1 1 . The system of any one of claims 8-10, wherein the application further comprises:
logic that obtains a modification of the information object;
logic that sends the modification to the collaboration server;
logic that renders a modified version of the information object within the user interface in response to receiving a first notification from the collaboration server that the modification is valid; and
logic that renders an error message within the user interface in response to receiving a second notification from the collaboration server that the modification is invalid.
12. The system of any one of claims 8-1 1 , wherein the application further comprises:
logic that generates a new information object in response to receiving data from a data source; logic creates an information object reference linking the information object to the new information object; and
logic that sends the information object, the new information, and the information object reference to the collaboration server.
13. The system of claim 12, wherein the data source comprises an electronic device that generates data and transmits the data to the computing device.
14. The system of any one of claims claim 8-13, wherein the information object comprises a unique identifier, an attribute, an information object reference, form data, or a function.
15. A method, comprising:
generating, via a computing device, a user interface on a client computing device;
querying, via the computing device, a collaboration server for an information object to be rendered within the user interface on behalf of a user in response to a request to render the information object;
retrieving, via the computing device, form data from the information object received from the collaboration server; and
rendering, via the computing device, the information object within the user interface based at least in part on the form data of the information object.
16. The method of claim 15, further comprising:
retrieving, via the computing device, an identification of a related information object from the information object;
querying, via the computing device, the collaboration server for the related information object; and
rendering, via the computing device, the related information object within the user interface.
17. The method of claim 16, further comprising rendering, via the computing device, within the user interface an indication of a relationship between the information object and the related information object.
18. The method of any one of claims 15-17, further comprising:
obtaining, via the computing device, a modification of the information object;
sending, via the computing device, the modification to the collaboration server;
rendering, via the computing device, a modified version of the information object within the user interface in response to receiving a first notification from the collaboration server that the modification is valid; and
rendering, via the computing device, an error message within the user interface in response to receiving a second notification from the collaboration server that the modification is invalid.
19. The method of any one of claims 15-18, further comprising:
generating, via the computing device, a new information object in response to receiving data from a data source;
creating, via the computing device, an information object reference linking the information object to the new information object; and
sending, via the computing device, the information object, the new information, and the information object reference to the collaboration server.
20. The method of any one of claims 15-19, wherein the information object comprises a unique identifier, an attribute, an information object reference, form data, and a function.
PCT/US2014/027197 2013-03-15 2014-03-14 Visualization interface for information object system WO2014152312A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201480026525.0A CN105229564B (en) 2013-03-15 2014-03-14 The visualization interface of information object system
EP14768858.4A EP2972666B1 (en) 2013-03-15 2014-03-14 Visualization interface for information object system
HK16107003.2A HK1218981A1 (en) 2013-03-15 2016-06-17 Visualization interface for information object system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361787688P 2013-03-15 2013-03-15
US61/787,688 2013-03-15
US14/208,346 2014-03-13
US14/208,346 US9772984B2 (en) 2013-03-15 2014-03-13 Visualization interface for information object system

Publications (1)

Publication Number Publication Date
WO2014152312A1 true WO2014152312A1 (en) 2014-09-25

Family

ID=51581183

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2014/027197 WO2014152312A1 (en) 2013-03-15 2014-03-14 Visualization interface for information object system

Country Status (5)

Country Link
US (2) US9772984B2 (en)
EP (1) EP2972666B1 (en)
CN (1) CN105229564B (en)
HK (1) HK1218981A1 (en)
WO (1) WO2014152312A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11036914B2 (en) * 2017-06-29 2021-06-15 Salesforce.Com, Inc. Automatic layout engine
US11683354B2 (en) * 2021-08-25 2023-06-20 Adobe Inc. Systems for resolving conflicts in collaborative digital content editing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086608A1 (en) * 2003-10-17 2005-04-21 Andreas Roessler Selective rendering of user interface of computer program
US20060010258A1 (en) * 2004-07-09 2006-01-12 Microsoft Corporation Dynamic object validation
US20070226314A1 (en) * 2006-03-22 2007-09-27 Sss Research Inc. Server-based systems and methods for enabling interactive, collabortive thin- and no-client image-based applications
WO2008006197A1 (en) 2006-07-09 2008-01-17 90 Degree Software Inc. Methods and apparatus for reusing data access and presentation elements
US20100185961A1 (en) * 2009-01-20 2010-07-22 Microsoft Corporation Flexible visualization for services

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933597A (en) * 1996-04-04 1999-08-03 Vtel Corporation Method and system for sharing objects between local and remote terminals
US6324544B1 (en) * 1998-10-21 2001-11-27 Microsoft Corporation File object synchronization between a desktop computer and a mobile device
US20100332998A1 (en) * 2009-06-26 2010-12-30 Xerox Corporation Collaborative document environments in three-dimensional virtual worlds
US8417696B2 (en) * 2010-06-10 2013-04-09 Microsoft Corporation Contact information merger and duplicate resolution
US9081735B2 (en) 2011-02-12 2015-07-14 International Business Machines Corporation Collaborative information source recovery
CN102355492B (en) * 2011-09-30 2016-03-30 浙江元亨通信技术股份有限公司 Soft switch commanding dispatching system
US8982145B2 (en) * 2012-08-31 2015-03-17 Google Inc. Display error indications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086608A1 (en) * 2003-10-17 2005-04-21 Andreas Roessler Selective rendering of user interface of computer program
US20060010258A1 (en) * 2004-07-09 2006-01-12 Microsoft Corporation Dynamic object validation
US20070226314A1 (en) * 2006-03-22 2007-09-27 Sss Research Inc. Server-based systems and methods for enabling interactive, collabortive thin- and no-client image-based applications
WO2008006197A1 (en) 2006-07-09 2008-01-17 90 Degree Software Inc. Methods and apparatus for reusing data access and presentation elements
US20100185961A1 (en) * 2009-01-20 2010-07-22 Microsoft Corporation Flexible visualization for services

Also Published As

Publication number Publication date
CN105229564A (en) 2016-01-06
US9772984B2 (en) 2017-09-26
EP2972666A1 (en) 2016-01-20
EP2972666B1 (en) 2019-07-17
CN105229564B (en) 2018-08-10
HK1218981A1 (en) 2017-03-17
EP2972666A4 (en) 2016-10-19
US20170364496A1 (en) 2017-12-21
US20160321223A1 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
US10817516B2 (en) Result types for conditional data display
CN108292231B (en) Method and system for generating applications from data
US10565293B2 (en) Synchronizing DOM element references
US9245274B2 (en) Identifying selected dynamic content regions
US20150128063A1 (en) Aggregated information access and control using a personal unifying taxonomy
JP2016224923A (en) Method and system for automated generation of user form interface
US10261996B2 (en) Content localization using fallback translations
EP2732388A2 (en) Method for associating third party content with online document signing
US20140189526A1 (en) Changing log file content generation
US20170364496A1 (en) Visualization interface for information object system
US9342530B2 (en) Method for skipping empty folders when navigating a file system
US11526578B2 (en) System and method for producing transferable, modular web pages
US20170286195A1 (en) Information object system
JP2016513298A (en) Electronic document providing method, system, parent server, and child client
CN107357926B (en) Webpage processing method and device and electronic equipment
CN111125565A (en) Method and equipment for inputting information in application
JP7298413B2 (en) Operation screen creation device, operation screen creation method and program
KR20150041352A (en) Apparatus and Method for creating web application
CN118567996A (en) Page automation test method and device, electronic equipment and medium
CN115576962A (en) Database operation method, device, medium and electronic equipment
CN116955289A (en) File processing method and device, electronic equipment and storage medium
Hughes SharePoint Designer 2010 Unleashed

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201480026525.0

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14768858

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2014768858

Country of ref document: EP