Simplifying the presentation of a visually complex semantic model within a graphical modeling application

A model simplification tool can receive a command to simplify the presentation of a visually complex semantic model from a graphical modeling application. The visually complex semantic model can be comprised of a multitude of object representations and their associations, such that the usability of the model is impaired. An association status can be determined for each object representation, which can designate the object representation as autonomous, containment, or subordinate. The presentation of the visually complex semantic model can be consolidated based on the association status of object representations. Subordinate objects can be nested within containment objects to produce a simplified semantic model. The simplified semantic model can be rendered within the graphical modeling application.

BACKGROUND OF THE INVENTION

The present invention relates to the field of semantic modeling, and, more particularly, to simplifying the presentation of visually complex semantic models in a graphical modeling application.

Semantic models are commonly used to graphically represent a variety of objects and the relationships between them. Many graphical modeling applications are commercially available that provide users with an easy and effective means for creating semantic models. However, as the semantic model increases in size and/or complexity, the coherency and readability of the graphical representation within the graphical modeling application is greatly reduced.

For example, a semantic model of an enterprise business system can include a vast quantity of objects and relationships. Because such a large and highly-connected model requires a considerable amount of presentation space, a graphical modeling application is generally unable to present the model in its entirety in a display area without a considerable reduction in size, which further reduces the readability. Additionally, relationship lines between objects that are widely dispersed are difficult to draw without obscuring other objects and/or relationships.

Graphical modeling applications currently offer little assistance for simplifying the presentation of these visually complex semantic models. Users are forced to reorganize their large, complex models in order to work with the restrictions of the modeling application. Rearranging objects, reducing object and/or text size are typical steps taken by users, which often only further reduce the readability of the model.

BRIEF SUMMARY OF THE INVENTION

The present invention can be implemented in accordance with numerous aspects consistent with the materials presented herein. One aspect of the present invention can include a method for simplifying the presentation of a visually complex semantic model. A model simplification tool can receive a command to simplify the presentation of a visually complex semantic model from a graphical modeling application. The visually complex semantic model can be comprised of multiple object representations and a multitude of associations between the object representations such that the usability of the visually complex semantic model is impaired. An association status can be determined for each object representation in the visually complex semantic model. The association status can indicate the level of association of the object representation and can designate the object representation as an autonomous object, a containment object, or a subordinate object. The presentation of the visually complex semantic model can be consolidated based on the association status of object representations. Subordinate objects can be nested within containment objects to produce a simplified semantic model. The simplified semantic model can then be rendered within a presentation area of the graphical modeling application. Associations of nested subordinate objects can be suppressed until their rendering is requested.

Another aspect of the present invention can include a simplified semantic model. Such a model can include graphical representations of subordinate objects, containment objects, autonomous objects, and associations between the objects. Subordinate objects can represent objects that are dependently-related to other objects. Containment objects can represent objects that contain at least one subordinate object. Autonomous objects can represent objects that are associatively parallel to another object.

Still another aspect of the present invention can include a system for simplifying the presentation of a visually complex semantic model. Such a system can include a set of simplification rules and a model simplification tool. The set of simplification rules can define guidelines to handle the simplification of object representations and their corresponding associations contained within the visually complex semantic model. The model simplification tool can be configured to convert the visually complex semantic model into a simplified semantic model using the plurality of simplification rules.

DETAILED DESCRIPTION OF THE INVENTION

The present invention discloses a solution that simplifies the presentation of a visually complex semantic model within a graphical modeling tool. A model simplification tool can utilize simplification rules to transform the visually complex semantic model into a simplified semantic model. The transformation of objects and associations within the visually complex semantic model can require the determination of a containment status for each object. The containment status can indicate how an object and associations are to be structured within the simplified semantic model. Objects can be designated as autonomous, containment, or subordinate. Subordinate objects can be nested within their corresponding containment objects as a list or a tree structure. The associations of the subordinate objects can be rendered on an as-needed basis to further clarify the presentation of the simplified semantic model.

Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any appropriate medium, including, but not limited to the Internet, wireline, optical fiber cable, RF, etc.

Any suitable computer usable or computer readable medium may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory, a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD. Other computer-readable medium can include a transmission media, such as those supporting the Internet, an intranet, a personal area network (PAN), or a magnetic storage device. Transmission media can include an electrical connection having one or more wires, an optical fiber, an optical storage device, and a defined segment of the electromagnet spectrum through which digitally encoded content is wirelessly conveyed using a carrier wave.

Note that the computer-usable or computer-readable medium can even include paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.

FIG. 1is a schematic diagram illustrating a system100for simplifying the presentation of a visually complex semantic model125in accordance with embodiments of the inventive arrangements disclosed herein. In system100, a user105can transform a visually complex semantic model125into a simplified semantic model155using a model simplification tool140in conjunction with a graphical modeling application115.

As used herein, the term “visually complex semantic model” is used to describe a semantic model whose configuration of objects130and associations135impede the usability of the semantic model as a vehicle for presenting information in a clear and concise manner.

A visually complex semantic model125can contain a large quantity of objects130and associations135such that the entirety of the visually complex semantic model125is unable to be viewed within the presentation area120of the graphical modeling application115. Alternately, a visually complex semantic model125can consist of a moderate quantity of objects130that are related by a large number and variety of associations135. The entirety of such a visually complex semantic model125can be viewed in the presentation area120; however, the high level of connectivity between the objects130can obscure the clarity of the associations135.

A user105can utilize a graphical modeling application115running on a client110to interact with a visually complex semantic model125. The client110can represent a variety of computing devices capable of supporting the operation of the graphical modeling application115and model simplification tool140.

The graphical modeling application115can represent a commercially-available (e.g., a commercial off-the-shelf) software product or proprietary special purposed computer program product capable of operating on the client110. The graphical modeling application115can include a presentation area120capable of rendering the visually complex semantic model125and simplified semantic model155. For example, in one embodiment, the graphical modeling application115can be a software development modeling tool, such as IBM's RATIONAL SOFTWARE PRODUCT, and the presentation area120can be a modeling canvas. In another example, the application115can be part of an integrated development environment (IDE), such as an ECLIPSE based IDE. The application115can conform to any of a variety of modeling standards including, but not limited to, the Unified Modeling Language (UML), Rational Unified Process (RUP), BOOCH modeling based standards, and the like. Additionally, the graphical modeling application115can include any software application that utilizes a visual semantic model, which includes software object models, process models, organization models, prototype models, and the like.

It should be noted that the graphical modeling application115can include a variety of other elements and features for interacting with a semantic model, and that only the elements directly involved with the present invention have been represented in system100.

The model simplification tool140can represent a software application configured to transform the visually complex semantic model125into a corresponding simplified semantic model155. It is critical to emphasize that the simplified semantic model155contains the same data as the visually complex semantic model125; only reconfigured into a more concise format. In one embodiment, the tool140can be implemented as a plug-in to an existing, otherwise unmodified graphical modeling application115. In a different embodiment, the tool140can represent a functionality included and embedded within application115.

The simplified semantic model155can represent the objects130of the visually complex semantic model125in a format based upon their type of associations135. Object representations within the simplified semantic model155can include autonomous objects162, containment objects164, and subordinate objects166. An autonomous object162can represent an object130from the visually complex semantic model125that does not have any associations135that represent a dependent relationship to another object130.

A containment object164can represent an object130from the visually complex semantic model125that has a dependent association135with one or more other objects130. For example, a Car object130having a composed of association135with a Chassis object130can be represented in the simplified semantic model155as a containment object164. In this example, the Chassis object130can be identified as a subordinate object166of the Car containment object164.

Subordinate objects166can be presented within their corresponding containment object164. The dependent nature of the association135between the containment object164and its subordinate objects166can be implied by nesting the presentation of the subordinate objects166within the containment object164. Different relationships between subordinate objects166and containment objects164can exist. Further, it is possible for a single subordinate object166to have multiple relationships with a containment object164. In one embodiment, a visual indicator can indicate a type of relationship between the subordinate object166and the containment object164, when the simplified semantic model155is rendered in a canvas.

For example, using a UML relationship example, object A (e.g., an instance of containment object164) can contain objects B and C (e.g., each instance of a subordinate object166). Object B can have a generalization relationship with object A and object C can have an association relationship with object A. Objects B and C can be rendered in a subordinate list of containment object A with a visual indication to show the type or kind of relationship each (objects B and C) have with object A. In another example, object B can have both a generalization and an association relationship with object A. These multiple subordinate relationships can be visually expressed by duplicating object B in a subordinate list of containment object A, so that when rendered in a canvas object B appears once for each relationship along with a relationship indicator.

To assist in the creation of the simplified semantic model155, the model simplification tool140can include a set of simplification rules145and a redundant object handler150. The simplification rules145can define the guidelines for handling the conversion of an object130and its corresponding associations135from the visually complex semantic model125to its simplified representation within the simplified semantic model155. For example, a simplification rule145can state that an object130with at least one dependent association135should be treated as a subordinate object166.

The redundant object handler150can represent a component of the model simplification tool140that can be configured to handle occurrences where an object130from the visually complex semantic model125is required to be reiterated within the simplified semantic model155. For example, a circular relationship between objects130in the visually complex semantic model125can be resolved by creating multiple instances of the containment164or subordinate166object within the simplified semantic model155.

The redundant object handler150can also be used to handle a redundancy created by the user105when working with the simplified semantic model155. For example, the user105can copy a subordinate object166outside of its containment object164in order to have a full-sized version of the subordinate object166to work with in the presentation area120of the graphical modeling application115.

In one embodiment, to clearly identify an object repeated in the simplified semantic model155, the redundant object handler150can attach a unique identifier to the name of each instance. Additionally, the redundant object handler150can designate a particular instance of the repeated object as a primary instance to store the locations of the other instances. Internally tracking the instances of a redundant object can ensure that deletion commands are handled properly within the simplified semantic model155without relying on the user105to know the location of all object instances. For example, a deletion of the primary instance can be propagated through the model155to delete all other instances of the object.

In another embodiment, a separate (JAVA) map can be utilized that maintains a list of all semantic objects130, which includes duplicates. When the map is queried based upon an object identifier, a list of all the semantic objects stored in the map is returned. When there is only one object in the map, only one item is returned. Deletion commands can be properly handled by deleting a set of objects returned from the map query. Thus, there is no need to designate one instance of a repeated object as a primary instance (i.e., propagation of a deletion action through the model155is not necessary, since use of the map containing duplicates ensures all objects in the model155having that object identifier are deleted.)

The model simplification tool140and graphical modeling application115can both be configured to interface with each other. For example, the model simplification tool140can be invoked from the graphical modeling application115. Further, the graphical modeling application115can execute commands upon a simplified semantic model155displayed in the presentation area120.

In an alternate embodiment, the model simplification tool140can operate as a stand alone application upon an electronic file (not shown) containing the visually complex semantic model125, producing a simplified semantic model155that can be stored in an electronic format for later rendering by the graphical modeling application115.

FIG. 2is a collection of examples200,220, and240illustrating the representation of object structures within a simplified semantic model in accordance with an embodiment of the inventive arrangements disclosed herein. These examples200,220, and240can be produced within the context of system100or any other system supporting the simplification of visually complex semantic models using embedded structures.

It should be noted that the structures shown in the examples200,220, and240are not meant to represent a visually complex semantic model, but illustrate how portions of a visually complex semantic model can be simplified.

Example200can depict the simplification of a structure containing multiple dependent objects. The conventional representation205can represent how multiple dependent objects can be presented in a typical graphical modeling application. As shown in this example220, objects B, C, D, and E can be dependently related to object A. It is important to note that all objects A, B, C, D, and E are graphically displayed when the model is rendered.

The simplified representation210of the conventional representation205can also present objects A, B, C, D, and E, but in a different format. In the simplified representation210, objects B, C, D, and E can be presented differently than object A based on their dependent relationship.

As shown in the simplified representation210, object A is graphically presented as a containment object212. Objects B, C, D, and E can be textually displayed in an expanded view as a subordinate object list218within the subordinate object display216. Thus, a graphical modeling application would only need to render one graphical object instead of rendering five graphical objects as in the conventional representation205.

To further reduce the display space required to render a containment object212, the containment object212can include a user-selectable display control214that can hide the subordinate object display216, resulting in a collapsed view.

Example220can depict the simplification of a structure containing a dependent object that has multiple dependent objects. The conventional representation225can represent how an object that is dependent to one object but also has multiple objects dependently related to it can be presented in a typical graphical modeling application. As shown in this example220, object A can be dependently related to object Z with objects B, C, D, and E dependently related to object A. Objects W and Y can also be dependently related to object Z. It is important to note that all objects of the conventional representation225are graphically displayed when the model is rendered in a graphical modeling application.

The simplified representation230of the conventional representation225can also present objects A, B, C, D, E, W, Y, and Z, but in a different format. Similar to example200, object Z can be graphically presented as a containment object232since all other objects are either directly or indirectly dependently related to it.

The subordinate objects of object Z can be textually displayed in an expanded view as a subordinate object tree238within the subordinate object display236. A tree238can be used, contrast to the list218of example200, to capture the dependent association between object A and objects B, C, D, and E. The tree structure238can include branches that can be expanded and collapsed to control the display of objects within the subordinate object display236.

As with example200, a graphical modeling application would only need to render one graphical object instead of rendering eight graphical objects as in the conventional representation225. To further reduce the display space required to render a containment object232, the containment object232can include a user-selectable display control234that can hide the subordinate object display236, resulting in a collapsed view.

Example240can depict the simplification of a structure containing objects in an infinite containment loop, which has a conventional representation245as shown. An infinite containment loop can be defined as a circular reference among a set of the objects. In an infinite containment loop, all of the objects of the loop are subordinate to other ones of the objects. There is no true “uncontained” container object. For example, object A can contain object B; object B can contain object C; and object C can contain object A. Additional cyclic containment relationships can also exist. For example, object A can contain object B, which contains object A. Also, object A can contain object B, which contains object C, which contains object A.

When creating the simplified representation250, it is important to detect an infinite containment loop and then to select one of the objects (object A, object B, or object C). This selected object is then considered an uncontained object252, which is rendered upon a canvas. The same selected object has at least one duplicate, which is treated as a subordinate object in subordinate object display254.

As shown in example240, object M can be related to object K such that both objects are aware of each other, as in an Association within the Unified Modeling Language (UML). Object M can have a composition association with object L, which can have a composition association object K. The simplified representation250can represent how a model simplification tool can utilize redundant objects256to resolve this situation.

In the simplified representation250, object K can be determined to be the containment object252. This determination can be made by the model simplification tool using elements such as the redundant object handler150and/or simplification rules145of system100. Despite being the containment object252, object K can be repeated within the subordinate object display254as redundant objects256to show the additional associations between object K and the objects M and L.

Each redundant object256can include a unique identifier258. In this example, the unique identifier258is an index numbering scheme detailing that numbers each redundant object256and indicates the total number of copies with the number in parentheses.

As with the other examples200and220, the subordinate object display256of the containment object252can be hidden in a collapsed view (not shown).

FIG. 3is a flow chart of a method300describing the simplification of a visually complex semantic model by a model simplification tool in accordance with an embodiment of the inventive arrangements disclosed herein. Method300can be performed in the context of system100and/or utilize the examples200,220, and240ofFIG. 2.

Method can begin with step305where the model simplification tool can receive a command to simplify a visually complex semantic model. The command can be executed by a user from within a graphical modeling application and/or directly from the model simplification tool. The model simplification tool can determine an association status for each object in the model in step310. Objects can be designated autonomous, containment, and subordinate.

In step315, objects with an association status of autonomous and their related associations can be transcribed to the simplified semantic model. It should be noted that step315is shown to emphasize that autonomous objects do not require restructuring since they do not contain nor are they contained by any other object. Step315can also be consolidated into a step that transcribes all objects into the simplified semantic model.

The processing of containment and subordinate objects can begin in step320where an inclusive list of subordinate objects can be determined for each containment object. The model simplification tool can analyze all the relationships within the list of subordinate objects in step325.

In step330, an infinite containment loop can be identified by determining the repetition of either a subordinate object or the containment object in any chain of relationships between the objects. When a redundant object is found, step335can execute where multiple instances of the redundant object can be created with one of the instances designated as the primary instance. Each instance of the redundant object can be assigned a unique identifier in step340. In step345, pointers to the other instances of the redundant object can be stored in the primary instance.

Steps330-345as shown inFIG. 3assume an implementation that utilizes a primary instance, where deletions of object instances linked to the primary instance are propagated through a simplified model. It should be appreciated that other implementations exist and that the invention is not limited in this regard. For example, in an alternative implementation, a map containing all object instances including duplicates can be utilized. Use of this map negates a need for designating a primary instance, as previously mentioned.

Upon completion of step345or when a redundant object is not found within the list of subordinate objects, flow can proceed to step350where a display structure can be created for the subordinate objects. The display structure can be constructed as a list or a tree, depending upon whether any subordinate object contains additional dependent objects.

In step355, the model simplification tool can transcribe the containment object, its display structure, and associations into the simplified semantic model. The model simplification tool can provide the simplified semantic model to a graphical modeling application for rendering in step360.

FIG. 4is a diagram of sample pseudocode410,420used to detect a recursion problem and to duplicate objects when simplifying visually complex semantic models in accordance with an embodiment of the inventive arrangements disclosed herein.

The code410,420can be used to find and respond to infinite containment loops, as expressed in example240ofFIG. 2. The code410,420is to illustrate one potential means for implementing underlying code and is not intended as a limitation of the scope of the inventive arrangements disclosed herein. In the code example410,420a widget is a term used to refer to an object of a semantic model.

Before the code410,420is called, a contained widget list can be created by iterating thought all containment links on each widget and by adding any contained widgets to the list. A containment link can be a relationship between two widgets to be rendered by containing one widget within another (i.e., a containment object is to be used).

Programmatic instructions can iterate through the contained widget list to ensure that each widget in the list is eventually contained by a widget (e.g., containment object) presented in a canvas showing a simplified representation of a model (i.e., each widget is eventually included in the simplified semantic model). More specifically, each containment link of each widget can be examined to find all of the containing widgets, each of those can be examined to find all of their containment links, and so forth. If one containing widget along a containment link path appears in the simplified semantic model, the widget can be drawn within at least one container and duplicate widgets do not need to be drawn.

As shown in code410, the findDuplicatewidgets method can be used to determine if any widget in the contained widget list should be duplicated. The method also selects widgets to be duplicated.

The getContainingwidgets method420can be a helper method that finds the containing widgets of a widget. Because a widget may be several containers deep and have multiple paths within a model, getContainingwidgets method can be called for each level of containers above a widget.