The present invention relates generally to graphical representation. More particularly, the invention relates to mechanisms for developing graphical tools.
The latter part of the twentieth century and the early part of the twenty-first century have seen exponential increases in the generation and distribution of information. Pictorial representation has always been a particularly convenient way to present information. Pictures can be used to convey important elements of information in a way that can be rapidly understood by a recipient. As data processing equipment has become more widespread and more powerful, more numerous and accessible graphical tools have been developed, increasing the ability of users to create pictorial structures and representations.
In typical prior art systems, a drawing or design package includes a set of tools defined more or less as a unit by a developer of the package, or by some designer who provides a tool set to be used with the package. Such sets of tools may only imperfectly meet the needs of a particular user, but the average user may lack the technical ability to create a tool set customized to his or her needs, or may not wish to devote the time required to create a customized tool set.
In one embodiment of the invention, a method comprises configuring at least one processor to perform the functions of receiving inputs from a user as the user creates one or more graphical elements representing one or more properties, identifying one or more visual characteristics of the graphical elements and one or more properties represented by the graphical elements, and storing information identifying one or more visual characteristics and one or more properties of the graphical elements.
In another embodiment of the invention, an apparatus comprises at least one processor and a memory storing a program of instructions. The instructions, when executed by the processor, configure the apparatus to receive inputs from a user as the user constructs two or more graphical elements, identify common properties shared between one or more of the graphical elements, and assign similar visual characteristics to different graphical elements. Similar visual characteristics are used for the different graphical elements to indicate common properties illustrated by the different elements.
In another embodiment of the invention, a computer readable memory stores a program of instructions. Execution of the program of instructions by a processor configures an apparatus to perform at least the functions of receiving inputs from a user as the user constructs one or more graphical elements, identifying common properties shared between two or more of the visual elements, and assigning similar visual characteristics to different graphical elements. Similar visual characteristics are used for different graphical elements to indicate common properties shared by the different graphical elements.
These and other embodiments and aspects are detailed below with particularity.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Embodiments of the present invention recognize a need to provide accessible tools allowing users to customize, or even to create, their own mechanisms for graphical representation. One key to accessibility is automation—an accurate recognition of what the user is trying to do and appropriate response to such recognition. Another key to accessibility is generalization. Generalization allows for the undertaking of specific activities and identification of elements of those activities as applicable to other, related uses. For example, a particular graphical element may be created during construction of a presentation. A graphical element may comprise an element directed primarily toward visual representation of information, such as pictures, lines, shapes, and the like, and contrasts with conveyance of information primarily through text.
Generalization allows for assignment of the graphical element to a category of related elements, and it also allows for propagation of characteristics of the graphical element to other related elements. Generalizations may be broader or narrower, and may be used in combination. For example, in spoken language, various parts of speech may be used in combination, such as in a combination of subject-verb-object. Similarly, in a set of graphical elements, some elements may represent actors and things or persons acted upon, and elements may include characteristics indicating their relationship to other elements. For example, an element may have a particular color to indicate that it is associated with a particular person and a particular shape to indicate that it represents the person is taking an action. Another element may have a different color to indicate that it is associated with a different person, and a particular shape to indicate that the person is a recipient of the action. In embodiments of the present invention, as will be seen below, such categorizations can grow and develop based on the construction of individual elements. That is, a user may construct a particular graphical representation. During the construction, the mechanisms used in the construction, or associated mechanisms, may examine the choices made by the user and automatically assign categories and characteristics to elements of the representation and may also suggest such categories and characteristics to the user for selection. Alternatively or in addition, the user may define characteristics of elements that are selected or created, and such characteristics may be propagated to elements in the same category, whether these categories are user defined or automatically generated.
The diagram 100 comprises blocks representing actions by specifically identified parties that are taking actions associated with their roles with respect to an organization. The diagram 100 comprises blocks of particular colors and shapes, with various ones of the blocks also containing text identifying specific parties or actions. In the particular example shown, the diagram 100 presents a representation of an activity involving the treatment of a patient at a doctor's office. The office receives a request for an appointment and makes the appointment. The doctor sees the patient and then contacts an external provider for lab work. The doctor receives the lab report and contacts the patient with the results.
In the present example, the blocks are used to represent activities, with the color of each block being used to designate the classification of the party involved in the action. The block contains text identifying the action, and may also contain text identifying the party. Connectors between the blocks are shaped so as to identify the nature of the action taken, such as a patient contact, internal contact within the office, or contact between the office and an outside service provider. As described in greater detail below, the various elements of the diagram may be taken from a library that can change and evolve both automatically based on analysis of their use and through direct user selections.
The circle 102 represents an initial event experienced by the patient, namely, the experience of symptoms. A connector 104 provides a connection to the block 106, which indicates an action taken by the patient. The connector 104 is chosen to indicate the general nature of the connection between the event specified by the block 102 and the event specified by the block 106. The connection in this case is an action by the patient in response to an experience of an event. The block 106 indicates a contact by the patient with the doctor's office, with a connector 108 chosen to indicate, from the perspective of the doctor's office, an external contact. The block 110 indicates an action by the receptionist, namely, to receive the appointment request, and the connector 112 leads to a block 114, which is a decision block indicating different actions to be taken depending on whether the patient is a new patient or not. The blocks 118 and 128 indicate additional receptionist actions, the blocks 124 and 134 represent doctor actions, the blocks 130 and 144 represent additional patient actions, and the block 138 represents action by an outside lab. In the present example, the different blocks are assigned colors to indicate the actors they represent, and the various connectors 104, 108, 112, 122, 126, 129, 132, 136, 140, and 142 have different appearances to indicate the types of connections they represent. For example, the connector 104 has one appearance to indicate that it represents a connection between an event experienced by the patient and a patient action, the connector 108 has another appearance to indicate that it represents a contact between the office and a patient, the connector 112 has another appearance to indicate that it connects actions by the same person within the office, the connector 122 has still another appearance to indicate that it represents an internal contact within the office, and the connectors 136 and 138 have another appearance to indicate that they represent a contact between the office and an outside provider.
The various component of the diagram 100, and the diagram 100 as a whole, exhibit a number of characteristics, and the design choices made by a user may be observed during the creation of the diagram 100 by automated equipment and tools used in creating the diagram 100. In particular, shared properties may be observed and elements provided by a palette of available elements may be automatically configured to exhibit characteristics reflecting these properties. In addition, elements may be explicitly added to the palette and the added elements may be specifically designated by a user as associated with particular properties, with particular characteristics designated as reflecting those properties.
As an example of the characteristics associated with the properties being represented, the connectors illustrated in
The palette management module 304 also examines elements as they are being created and determines if an element should be automatically added to the palette database 302. Such determinations may be made based on associations between an element and properties to be represented, and such associations may be identified through any number of mechanisms, such as similarity to elements used in already created designs, explicit user designation, and other mechanisms.
The graphics construction package 300 may also implement a basic tool set 310, providing mechanisms for creation of basic shapes, lines, connectors, and the like, as well as mechanisms for modifying basic shapes and creating designs from scratch. In addition, the graphics construction package may implement an association parsing module 312 for associating properties with various activities and contacts. The association parsing module 312 may create or suggest associations based on its observation of use of various elements in a graphical representation, or may receive specific designations of properties from a user. Graphical elements may then be given characteristics associated with their properties. Often, what is important is not that particular characteristics be associated with particular properties, but that the characteristics of elements differ when the elements represent different properties. Therefore, in one embodiment, the association parsing module 312 assigns particular categories of characteristics to elements and assigns a specific characteristic within a category to an element based on the property associated with the element, with the characteristic being chosen at random. For example, a block element might be associated with a color and a connector element might be associated with a drawing style, such as a solid or dashed line. When the association parsing module 312 detected that an element being created had a property differing from those previously used, it might randomly select a previously unused characteristic by some appropriate mechanism. For example, in the example presented in
One convenient way to associate characteristics with an element is through the use of tags. Therefore, in one embodiment, the graphics construction package 300 stores an association database 314 that uses tags to indicate various properties. Tags may be ordinary words that have meaning to a user and can be manually added by a user.
The association database 314 may be constructed or refined as each project is developed, and tags developed for one project may remain in the association database 314, with the tags and their associations being used to inform the graphics construction package 318 during work on subsequent projects in the same category.
The association database 314 may include records associating tags with properties, activities, persons, graphical elements, and graphical element characteristics. Thus, for example, the tag “internal” may appear in a number of records. For example, consider the record below. The record defines representations of a doctor as the doctor appears in graphical elements relating to internal activities and communications within the office. Therefore, the record appears as follows:
Another record might relate to an interaction between the doctor and the receptionist, and might appear as follows:
As associations are developed, through analysis by the association parsing module or through explicit designation by a user, additional records may be created defining the associations. For example, a record might be created associating the “INTERNAL” tag with doctor-receptionist interactions, and might appear as follows:
Once this record has been created, association parsing module 312 can use it to automatically assign appropriate characteristics to elements. Suppose, for example, that a user has selected and positioned blocks designating the doctor and receptionist, and wishes to show an interaction between them. To take one example, the user may select the interaction by dragging a connector into place. The connector may appear on a palette of available elements. Because doctor-receptionist interactions have been designated as “internal”, there is no need for a multitude of different connectors to appear on the palette, with varying characteristics indicating the nature of the interactions they represent. Instead, the association parsing module 312 will examine the association database 314 and recognize that the interaction is an internal interaction and that the connector for such interactions is to be represented as a solid line with a closed arrow, and automatically cause the connector to take on the correct characteristics once the connector has been put in place.
In addition, the graphics construction package 300 presents the capability for a user to create graphical elements from scratch, or to modify existing graphical elements. A user may, for example, use the basic tool set 310 to create elements, and these elements may be examined for commonality with existing elements. In addition, newly designed elements, or existing elements, may be placed in a design, and characteristics such as the position and orientation of an element, or its relation to other elements in the design, may be examined for commonality with previously created elements or standard elements, and properties may be associated with the element and with one or more of its characteristics as used in the design. Thus, for example, if a user creates a first block and colors the block yellow, and creates a second block and colors the block orange, the association parsing module 312 can review the association database 314 to identify the properties associated with yellow and orange blocks. The association parsing module 312 will be able to identify the yellow block as representing the doctor and the orange block as representing the receptionist. As the user places the blocks and performs additional actions, such as adding connectors or orienting the blocks, the association parsing module 312 may recognize relationships between previously used combinations and may update the association database 314 to associate the combination with the relationship indicated by the arrangement of the blocks. The association parsing module 312 may deliver the newly identified relationship to the palette management module 304, which may then update the palette database 302. For example, in addition to presenting the individual elements, the palette database 302 may, once the new associations have been identified and updated, present the elements in the identified combinations or arrangements.
In addition to providing its own graphical tools in the tool set 310 and analyzing designs created by a user with those tools, the graphics construction package may also analyze designs created using other drawing tools and drawing packages. In one embodiment of the invention, the graphics construction package 300 may provide a background observation module 316 that may, upon activation, reside in the background of a user computer or a network in such a way that it is able to detect the user's activities with a drawing package. Numerous drawing packages are available, and some drawing packages use formats shared among multiple drawing packages produced by different manufacturers, while others at least use formats shared among designs created by the drawing package itself or drawing packages created by the same manufacturer. The background observation module 316 may be adapted to detect and identify elements such as lines, shapes, curves, and the like, as well as characteristics such as line thickness, element color, dimensions, placement, and other characteristics. The background observation module 316 may observe and interpret designs and elements created using any drawing package with which it has been adapted to operate, and may populate the palette database 302 with elements created using one drawing package or another that happens to be employed by the user. All of the elements available on the palette database 302, however created, may be available for use with the graphics construction package 300. The palette manager 304 may suitably add elements to the palette database 302 in the format used by the graphics construction package 300 or, in other embodiments of the invention, in a standardized intermediate format that such that the elements retrieved from the palette database 302 can be automatically adapted for use with a particular drawing package employed by the user. If such an intermediate format is used, it is a relatively simple matter to make the palette database 302 available across drawing platforms, and the palette manager 304 may reside in the background of a user's computer or a network available to a plurality of users and convert elements from the intermediate format to a format adapted to a particular user's drawing platform as that user retrieves the elements from the palette database 302.
In addition to providing the background observation module 316, the graphics construction package 300 may also provide a survey module 318. This survey module 318 may be invoked whenever desired and may examine stored designs produced by the user and designs produced by others and accessible to the user. The survey module 318 may suitably be able to be limited in its operation to survey designs dealing with similar subject matter. For example, in the doctor's office discussed above, designs dealing with the various functions of the office are suitable candidates for examination because they can be expected to exhibit commonalities. Other designs, produced by different organizations, or by divisions of the same organization, may also be suitable candidates for examination if they can be expected to include sufficiently similar subject matter or to represent items and properties in a sufficiently similar way.
It can be seen that one of the elements appearing in the diagram as it appears in FIG. 4B—that is, the element 118—has been taken from the palette 402 and placed in the diagram. The elements appearing in the palette 402 are available for placement in the diagram at any time. In the present example, a user has dragged an element from the palette 402 to a position in the diagram, and completed details so that it appears as the element 118. Once the element 110 was created, its properties and characteristics were stored in the palette database 302, and its associations were identified by the association parsing module 312. A generalized representation of the properties and characteristics of the element 110 was then placed into the palette 402, and was made available for use.
It will be recognized that various restrictions may be desirable on placement of various elements or arrangements of elements in a diagram. For example, a connector indicating an internal contact or a provider contact should not be usable with a patient action. Therefore, appropriate constraints may suitably be associated with various elements. Creation of constraints and their associations with elements of a diagram may be performed or proposed by appropriate components of the graphics construction package 300. For example, the association parsing module 312 may observe elements as they are placed to determine the associations that are used, and the survey module 318 may examine a number of projects to determine the associations that are used over multiple projects. If, for example, a module examining the construction of one or more projects notes that a particular connector is not used with a particular action, a query may be presented to the user, allowing the user to impose constraints on elements or sets of elements. Thus, the connector indicating an internal contact may be associated with a constraint preventing its use in connection with a contact with a patient. The constraint may be automatically imposed, specifically designated by the user, or affirmed by the user in response to a suggestion from a module observing the uses of various elements, such as the palette management module 304, the background observation module 316, or the survey module 318.
At step 516, user changes to elements in a project are accepted as they are received, and such changes may be carried over to elements in the palette and may also be carried over to existing projects, again, according to user preferences. At step 518, as user inputs are received, elements from the palette are placed in desired locations in a project. As the elements are placed, they may take on visual characteristics automatically based on the properties of the information they represent and their placement in relationship to other elements. At step 520, at appropriate times, projects by one or more users may be surveyed across a system, such as an individual workstation, a network, or a distributed group of users. At step 522, one or more palettes are created or updated based on the properties and visual characteristics of elements and the usage of elements identified by the survey, and these palettes may be made available to one or more users.
Various embodiments of the present invention improve over the prior art by providing for mechanisms to identify commonalities between graphical elements, such as elements of a chart or diagram and relationships between graphical elements as indicated by their placement and use. Embodiments of the present invention further provide mechanisms to assign visual characteristics to elements based on detection of such commonalities and relationships—for example, recognizing a user selection of a visual characteristic for an element being placed in a diagram and further recognizing that the visual characteristic chosen by the user for the element should be assigned to other elements representing the same activities or possessing the same properties. Embodiments of the invention further provide for the creation of a palette of generalized elements available for placement in a graphics project, such as a chart or diagram. Embodiments of the invention further provide for such palettes to be made available for use in multiple projects and to different users, as well as the assembly of palettes using elements created by multiple projects and by one or more of multiple users.
The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiments were chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.