Chapter 1. Wrapped Graphs

Table of Contents

1.1. Types summary

A wrapped graph describes an object that holds and manages as data graph and a query graph. This allows us to apply XL rules and queries on additional graphs using the same logic as on a workbench.

1.1. Types summary

Currently 5 types of wrapped graphs are implemented in this plug-in, this types differ in the way of storing the data graph and on the thread of execution.

The simples implementation is GraphObject, which defines a read only resource that can only be added via the GraphObjectExplorer. It is possible to import the same type of objects as for the 3D scene e.g dtd, obj qsm. The data graph will be stored in the original format and changes on it will not be stored.

A SecGraph stores the data graph in the same XML format as the project graph, which allows to store all graph structures that are allowed in GroIMP. While it is possible to import graph structures to the SecGraphExporer similar to the GraphObjectExplorer, it is also possible to create a SecGraph on the fly with the initial producer or as a clone of an existing graph structure.

A SecGraph is a so called EmbededSharedObject, meaning that it can be the attribute of a node in another graph which still can be stored and reloaded. In this scenario the data-graph in the SecGraph object is stored in its own XML file.

Contrary to this the NonEsoSecGraph object has the same features as a SecGraph but the graph is not stored, meaning after closing and reopening a project the data-graph of the NonEsoSecGraph is empty. While this is an disadvantage, the NonEsoSecGraph scales better if used in large numbers (1000+).

Finally for both the SecGraph and the NonEsoSecGraph a multi-threaded version is available (ThreadedSecGraph, NonEsoThreadedSecGraph). In these all graph operations are executed on as pool of threads allowing to manipulate/query multiple ThreadedSecGraph in parallel).