21
 Netron Graph Library v2.1 White Paper Published: September 2004 Reviewed and updated: November 2004 Francois M.Vanderseypen, Ph.D. THE NETRON PROJECT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.

Netron Graph Library V2.1 White Paper

Embed Size (px)

Citation preview

Page 1: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 1/21

 

Netron Graph Library v2.1 White Paper

Published: September 2004Reviewed and updated: November 2004

Francois M.Vanderseypen, Ph.D.

THE NETRON PROJECT MAKES NO WARRANTIES,EXPRESS, IMPLIED OR STATUTORY,

AS TO THE INFORMATION IN THIS DOCUMENT.

Page 2: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 2/21

Netron Graph Library v2.1 White Paper

Content

•  Summary of features 

•  What's in the box? 

•  Features, overview and screen shots o  Biotron application o  Automatron application 

o  Generic graph application o  Graph analysis application o  Groogler II application 

•  Setup notes 

•  FAQ 

•  Tutorials 

•  Help and documentation 

•  NAF integration 

•  Changes since v2.0 

•  Features of v3.0 •  License 

Abstract

The Netron graph library has, since the first release, been improved in manyways both in its scope, stability, ease of use and speed. Substantial effort hasgone into debugging and speed improvements, in making the graph control easyto use and still open to advanced needs. You can now use the graph library indiverse ways and in a variety of applications (in all .Net programming languages)with a minimum of code. You'll find in the graph library and the included sample

application a source of inspiration or new ways to display data in your ownapplications.

Page 3: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 3/21

Netron Graph Library v2.1 White Paper

Summary of essential features

- Solid open source C# code, totally free- Fully CLS compliant, can be used in any  .Net language- Easy to use- Visual Studio toolbox controls- Drag-drop support- Extensive code comments, tutorials, complete applications and documentation

online- Integrates into the Netron framework (NAF) but can be used outside it too- Programming interface to handle graphs, node and connections- Interactive editing and context menu's- Plugable and extensible model (uses .Net reflection) of shapes, connections andshape libraries- Layout algorithms- Support for visual data flow programming paradigm and developmentenvironments

- Support for GraphML- Zoom in and out of the canvas- Continuously improved and used in our own applications- Fully supports the CLR and 100% managed code, no extra assemblies required- Full interactive access to traditional graph algorithms (Dijkstra, Floy, Prim,...)- Ships with advanced applications showing in detail how to use in real-worldapplications

Solid open source code

The source code was written and architectured with care and contains a lot ofcoding comments in case you want to tweak the library or simply understand themechanics. You can find extensive help, tutorials and other stuff online on the

Netron site. Support is available via the forums on the Netron site, we would beglad to hear from you and receive some feedback to improve the library.

Ease of use

You can get a graph application working with just a few lines of code using thesupplied shape libraries and controls:

...

graphControl1.LoadLibraries();

graphControl1.OnNewConnection+=

new NewConnection(graphControl1_OnNewConnection);

. . .

There are a lot of properties available at design-time (see fig.1) to customize the

graph control, many events to attach handlers to. You can use the supplied shapelibraries or create your own custom shapes with ease. You can have a graphapplication up-and-running in no time.

Page 4: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 4/21

Netron Graph Library v2.1 White Paper

Figure 1: Properties and events of the graph control 

True owner-drawn .Net controls

The graph components (see fig.2) can be added in your Visual Studio toolbox andused likeany other element of your toolkit. If you add the Netron graph library to yourtoolbox you will see:

•  the graph control, i.e. the actual graph canvas

• the shape viewer, from which you can select and drag-drop shapes. Itacts as a library for your application. Both the graph control and shapeviewer load their content either via the config file or via code.

Page 5: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 5/21

Netron Graph Library v2.1 White Paper

•  the mini-map, which acts as a birds-eye view (see fig.3) on the graphcontrol which is especially useful when you zoom in or zoom out .

Figure 2: the graph library in the Visual Studio toolbox 

Drag-drop support

Shapes can be added via drag-and-drop, via the programming model or via thecontext menu. On all levels you decide what's happening, how and when, via theaccessible events, design-time properties and extensible architecture.

Figure 3: mini-map and context menu of the canvas 

Integrates into NAF

Page 6: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 6/21

Netron Graph Library v2.1 White Paper

NAF is the bigger collection of Netron controls all integrated in a neatand rock-solid programming model called the Netron Application Framework.You can benefit from the integration or use the control in your own applications.

Programming interface

You can access all the essential elements of a graph, the graph control andshapes via code. Of course, since the code is yours you are free to add andamplifythe coding model.

...

Shape  shape = t hi s. gr aphCont r ol 1. AddShape( "Si mpl eShape" , newPoi nt F(80, 20) ) ;shape. Text  = "Not e t hat ' I t em 1' cannot be moved. Thi s i s set i n t he code. \ n You can di sabl e shape

moves gl obal l y i n \ n t he canvas pr opert i es ( see ' Al l owShapeMove' ) " ;shape. FitSize( f al se) ;

Shape  shape1 = gr aphCont r ol 1. AddNode( " I t em1") ; Set Shape( shape1) ;Shape shape2 = gr aphCont r ol 1. AddNode( " I t em2") ; Set Shape( shape2) ;shape1. Mobile=f al se;Connect( shape1, shape2) ;. . .

Extensible

The object model is written in such a way that you can inherit and plug intoalmost everywhere your own code and objects.

•  You can use the default behavior and elements of shapes or override themand create new behaviors.

•  You can attach event handler to the supplied events and react tograph events in function of your application

•  You can define custom shapes and connections (UDC: user definedconnections, see fig.4)

•  You can plug into the layout algorithms

Page 7: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 7/21

Netron Graph Library v2.1 White Paper

Figure 4: user defined connections

Layout algorithms

Layout algorithms try to organize graphs in a visually pleasing way. The Netron

graph control contains the spring embedder algorithm and the tree or rectangularalgorithm. In future version more algorithms will be supplied and more graphmathematics will be fused into the graph control.

Visual programming

The graph control supports the visual programming paradigm. This means thatyou can write highly interactive diagrams whereby data 'flows' between nodes

over connections. You can create dynamic simulation models, query analyzers,XML viewers, UML applications or node based programming languages.

In addition

- Hot keys: among other, fine positioning of shapes via arrow keys- Canvas grid and snap-to-grid features- Open/save (extensible serialization)- Printing, print preview- Save diagrams as JPG images- design-time and run-time properties accessible via the Microsoft property grid- VB.Net and C# code samples

What's in the box?

Page 8: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 8/21

Netron Graph Library v2.1 White Paper

If you start up the Visual Studio solution under the 'GraphApplications' directory,you will see the following list of projects. See also the Setup topic below.

the AutomataShapes library is a collection of graph shapes for theAutomatron application

the Automatron application shows some advanced custom shapes

the BasiShapes library is a collection of general purpose graph shapes

the Biotron application (aka Visual Logo) shows how to implement the visualprogramming paradigm with the graph library

the BiotronCore library contains the essential classes and interface of theBiotron application

the BiotronShapes library is a collection of graph shapes to give life to thebionts of the Biotron application

the GenericGraphApplication application is a simple demonstration of thegraph library accessing some of its most basic properties and features

the GraphAnalysis application shows how you can benefit from the graph

library and the data structures library to do some traditional graph analysis

the GrooglerII application is an example of how you can use the graph layoutalgorithm to represent and lay out knowledge graphs

the NetronDataStructures library is a collection of well-known datastructures (queue, graph, stack, linked list and so on)

the NetronGraphLib library is the actual graph assembly with the graphcontrol and other elements related to it

the NetronMaths library is a collection of classes related to mathematicaloperations

Features, overview & screen shots

The Netron graph library is a generic graph library with an emphasis on usingshapes for programming (the 'visual programming' paradigm) and representation

of knowledge. In this release some examples were included to show how andwhat you can do. These examples are certainly not market-ready application but

invite you to explore and hopefully engage you in using the Netron graph library.

The Biotron application

Page 9: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 9/21

Netron Graph Library v2.1 White Paper

Origin and purpose

The biotron application combines various ideas:

•  using graphs to model behavior and mimic neural data flow

•  decentralized organization of particles

•  the possibility to use the graph control to implement data simulations

•  the possibility to re-cast a simple (textual) programming language likeLOGO into a true visual programming interface

You can find in the Netron downloads the #Logo application, a C# implementationof LOGO. The Biotron application is very similar but replaces the need to parseprogramming code and to compile it via C# (or any other .Net language)

altogether. No, lexical analysis or parsing is necessary with the Biotron, whichmakes extensions of the model much easier. Simply, by adding shapes (with acertain logic encoded therein) you can extend the capabilities of the simulations.

What can you do with it? 

By combining various Biotron (graph) shapes and connecting them you can modelthe behavior of particles (called in this context 'bionts'). This kind of visual

modeling is very common in 3D applications where it is used to create complexparticle effects like fire, water flow, storms and so on (see Alias Maya, Cinema4D, 3D Studio MAX...).

Page 10: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 10/21

Netron Graph Library v2.1 White Paper

How does it work? 

The graph control is used to support the graphical modeling and the built-inautomata mechanism is attached to arrays, representing the particles. The arrayis passed as a data token from one shape to another and a simple drawing canvastakes care of the painting of the individual particles (bionts).

You can extend this idea in many ways but it should give you an ideas how toprogram similar applications.

Various examples are included in the application under the 'Examples' menu item.They show how to use the Biotron shapes and deliver pretty pictures as well, likethe famous Wolfram fractals or colorful noise patterns.

You can find more information in the online help and documentation page of thisapplication.

Page 11: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 11/21

The Automatron application

Origin and purpose

The automatron application allows you to model cellular automata in a graphical

fashion using graphs to model iterative phenomena. This application shows:

•  how to create custom (advanced) shapes •  how to enable scripting in shapes (i.e. emitting C# code in shapes)

•  how to connect the property grid to shapes properties

•  how to use bitmaps and other .Net elements in .Net

Page 12: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 12/21

Netron Graph Library v2.1 White Paper

What can you do with it? 

The Automatron comes with a set of custom shapes you can drop on the canvas.These shapes allow a wide variety of mathematical and visual operations. Theapplication comes with a set of examples to show how to use the shapes andwhat you can do. The result of an Automatron graph is always a certaincalculation which eventually can be outputted to a bitmap or line-graph. In tocontrast to the Biotron application, this application does not trigger or move otherthings although it's very easy to attach additional code or UI elements to theAutomatron shapes.

You can combine shapes and nodes any ways you like. Simply drag-drop a shapefrom the library onto the canvas and drag connections between the connectors.

Click on 'run' in the menu and see what happens. By doule-clicking the shapes (orchoose 'properties' from the context menu) you can access the individual

properties and tweak the behavior of the shapes.

How does it work? 

The graph control's built-in data flow mechanism is used to make things work.The underlying automata is pulsating at the specified rate (accessible via the

properties of the graph) and at each pulse each graph shape performs a certainupdate. Some shape process incoming data and pass it over to the nextconnected shape(s), other are using the incoming data to draw it on a bitmap.

You can extend this idea in many ways but it should give you an ideas how toprogram similar applications (sound modeling applications, for example).

Page 13: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 13/21

Netron Graph Library v2.1 White Paper

You can find more information in the online help and documentation page of thisapplication, where you'll also find a detaild overview of the Automatron shapesand how to use them together.

The generic graph application

Origin and purpose

This demo application shows how:

  you can use various design-time and run-time properties of the graphcontrol

  the other GUI controls can be combined, how the mini-map can beconnected with the main canvas control

  you can attach even handlers and use the programming (object) model ofthe graph and shapes

You can also follow the online quickstart tutorial to see in details how you canbuild a graph application from scratch with just a dozen lines of code.

What can I do with it?

This application is in the first place a drawing application with which you cancreate basic diagrams and flowcharts (similar to Microsoft Visio). It is fairly easyto extend the shipped drawing shapes with your own, see the online tutorial 'How to implement and use automata shapes' for details.

Some advanced features like the data flow and the layout algorithm are not usedby this application, if you wish to try these out see (respectively) the Biotron

application above and the Groogler application below.

Page 14: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 14/21

Netron Graph Library v2.1 White Paper

You can find more information in the online help and documentation page of thisapplication.

How does it work? 

This application uses only the basic features of the graph control. How the graphcontrol is coded lies beyond the scope of this document, you can find moreinformation on the bits-and-bytes of the graph library in the Netron site.

The graph analysis application

Origin and purpose

This application shows how to use the various traditional graph algorithms fromthe new Netron data structures library and how the results can be shown

interactively using the graph library.

The Netron graph library can be used for doing traditional graph analysis, i.e.testing graph-like structures for:

•  shortest path

•  connectedness

•  cyclic property

•  Hamiltonian property

and so on. Since the graph data structure (as well as other) is widely used andemphasis was put on data flow aspects of the graph library, the graph analysis

part was taken to a separate assembly called the 'NetronDataStructures'. The

Page 15: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 15/21

Netron Graph Library v2.1 White Paper

graph analysis application shows you how you can combine the aforementionedlibrary and the graph control to explore graphs and their mathematical properties.

What can I do with it?

This application and the algorithms behind require some mathematicalbackground though the basic ideas are simple to grasp. It would require atextbook to explain all the machinery behind and the current assemblies are byno means complete since the field of graph theory is really a world on its own.Despite this, this current version should allow a wider audience of users to usethe graph control and to implement more refined layout algorithms since these

algorithms often depend on the precise mathematical form of graphs.

Recently a lot of research is going on in graph theory and random networks inparticular. The so-called small-world phenomenon, also called six degrees offreedom, pervades both technology and natures: the way our brain is connected,the way the internet hangs together, the social relationships of people...it seemsto underly a lot of systems. In this graph analysis demo you can experiment withvarious random graph algorithm, among which the Watts-Strogatz small-worldalgorithm.

You can find more information in the online help and documentation page of thisapplication.

How does it work?

The Netron data structures contains a lot of structures, among which the 'graph'

class and the 'algorithms' class. First, a random graph is generated correspondingto a random adjacency matrix. This matrix is used to feed the graph class and thealgorithm class, containing the various graph algorithms. Once, these class have

Page 16: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 16/21

Netron Graph Library v2.1 White Paper

outputted their calculations, a loop is going over the newly created adjacencymatrix to draw the directed graph. In this way, both libraries (the graph libraryand the data structures) are independent and can be used independently of each

other.

How the algorithms work and the theory behind it lies outside the scope of thisdocument but you will find more information on the Netron site.

The groogler application

Origin and purpose 

The Groogler application displays search results in a graph. It is very similar tovarious freely available Java applets and uses the a graph layout algorithm to

separate search results appropriately. This kind of layout of knowledge elementsis popular in knowledge management application, ontologies, memes applicationsand so on.

GrooglerII is a follow up of the original Groogler application. The originalapplication was using the free Google webservice to display search results in agraphical way. GrooglerII continues this idea but uses a PHP webservice attachedto the Netron site to show in a graphical way the inter-relations of the Wiki words.This example nicely shows at the same time that inter-operation between

different technologies (here PHP on Linux and a .Net client) does work viawebservices. If you are interested in the implementation of the PHP webservice,

please give me a sign.

Page 17: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 17/21

Netron Graph Library v2.1 White Paper

What can I do with it?

This application allows you to search the Netron site and explore the relationshipsbetween the various topics. You can start with one term and continue to expand itdirectly in the graph by reight-clicking and selecting the 'expand' item. You cango directly to the corresponding webpage by means of the 'browse' menu item.

Of course, you can use this method with any webservice, actually any dataserviceincluding data base recordsets, XML data, indes service and so on.

The original Groogler application (using the Google webservice)is still available inthe downloads of Netron, though it uses a previous version of the graph library itis still a useful example.

You can find more information in the online help and documentation page of thisapplication.

Setup notes

The zip-file contains a Visual Studio 2003 solution (there are various utilities onthe net to downgrade VS files, e.g. this one one the CodeProject site) with theabove mentioned projects running on (at least) Microsoft .Net 1.1. You canstart up the individual applications from the bin-directories or re-compile the

solution. Of course, you need to set or change the start-up project if you intend

to go through the application in debug-mode. A Visual Studio solution called

Page 18: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 18/21

Netron Graph Library v2.1 White Paper

'GraphApplications.sln' resides under the 'GraphApplications' directory if youwish to load all the applications and the graph library at once.

For more information on the individual projects and how they are linked together

see the overview above or visit the Netron site .

The code was successfully tested on .Net 1.1 with service pack 1. However, notests were performed on the Mono platform, or operating system prior toWindows XP. If you experience problems, please let us know.

FAQ

An up-to-date list of frequently asked questions can be found on the Netron site:

http://netron.sourceforge.net/ewiki/netron.php?id=NetronGraphLibFAQ

Here's a selection of questions:

1.  How do I add the graph control in the Visual Studio toolbox? 

2.  There are no shapes available in the shape viewer, how does one addshape libraries? 

3.  How can I drag and drop shapes in the control? 4.  What are the hotkeys? 5.  What is GraphML? 6.  Can I access the shape and graph properties at run-time? 7.  What are the design-time properties of the control? 

8.  What is the spring embedder layout algorithm? 

9.  What is the spring rectangular layout algorithm? 10. What is the NAF enabled graph control? 11. How can I remove the NAF specific code from the graph control? 12. What are the advantages of using the graph control inside the NAF

framework? 13. Can I print diagrams? 14. Can I use it as a server control in ASP.Net? 

You are invited to post additional questions (or answers) directly on the websiteor via the forums.

Tutorials

An up-to-date list of tutorials can be found on the Netron site:

http://netron.sourceforge.net/ewiki/netron.php?id=NetronGraphLibTutorials

A complete overview of the Netron graph library and additional tutorials willappear on the CodeProject website soon after this v2 release. Of course, you arewelcome to publish your own findings with respect to this library on the site ofyour choice. Send me small note if you do, I'd be happy to see how the Netronlibrary is used in your work.

Page 19: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 19/21

Netron Graph Library v2.1 White Paper

Help and documentation

For each of the shipped application there is a manual in the Netron site, pleasepoint your browser to the following links (which can be accessed inside the

application via the 'Help' menu item):

•  the GrooglerII application 

•  the generic graph application 

•  the graph analysis application 

•  the Automatron application 

•  the Biotron application 

To keep the size of the released zip low documentation was not generated butyou should have little problems to generate help files NDoc or any otherdocumentation tool.

NAF integration

The Netron Application Framework (NAF) went into its fourth preview just beforedevelopment on the graph library (re)started. This v2 of the graph library

integrates perfectly into NAF and cooperates via the NAF mechanism with theother components. The integration can be switched on or off with just a fewmodification, see this item in the FAQ list in particular. An official release of theNetron framework is planned after the release of this v2.

Changes since v2.0

Besides the bug fixes there have been substancial improvements since version2.0:

•  custom connections can now be added and developed in very much thesame way you add custom shapes to the library. Various examples have

been added in the SpecialShapes library to demonstrate the ease withwhich you can create fancy connections.

•  complete GraphML export, which was an under-developed features inv2.0. You can see it in action in the generic application, it looks very muchlike SOAP serialization but the GraphML format is the W3C standard for

representations of graphs as XML (see the GraphML organizationhowever).

•  shape controls are a new addition, they allow you to have combo-boxes,textboxes etc. inside a shape and hence inline editing. See the

SpecialShapes library or the generic application for examples.

•  various shapes events and delegates allowing you to add actions and havecontrol over the internals of the graph lib

•  VB.Net example, this demonstrates the graph control in Visual Basic.Net,same ease, same power, just a different language. Often VB.Netdevelopers get stuck since C# and VB.Net differ in little details, this codeshould give them a jump-start.

•  improved class structure and renaming: because of the CLS compliance

field had to be renamed, the Tracker has become the base class for othertracking classes, painting of shapes and connection goes via a different

Page 20: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 20/21

Netron Graph Library v2.1 White Paper

mechanism...many improvements to make the library more flexible andeasy to plug into your own applications

•  this-and-that in the examples (GrooglerII, Generic app,..) to reflect the

changes in the base library or to show how new features should be used.

Furthermore, the architecture paper is continually being improved (currentlyversion 0.3) and is your technical guide to the Netron graph library.

Features of v3.0

Features under consideration for version 3.0 include:

•  grouping of shapes

•  collapse/expand groups of shapes to handle large amounts of shapes l

•  layers

•  bi-directional GraphML; inport/export of GraphML data•  .Net 2.0 compatible:re-writing of the data structures with generics, ...

•  additional graph layout algorithms

•  additional examples

•  UML shape library

•  the Biotron application will be extended a lot

•  installation/setups, GAC controls, Visual Studio integrated help, an overallmore professional toolbox control

Of course, all of this will remain free and your feedback/suggestions are very

welcome.

License

The Netron license can be found on the Netron site at the wiki NetronLicense andis, for your convenience, reproduced here. You need to include the full textsomewhere in you code is you make use of the library. If you have questionsregarding this license agreement, send a note to

[email protected].

Copyright © Francois Vanderseypen "The Netron Project". 

All rights reserved.

NO WARRANTY

BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE

PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN

WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS"WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED

TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD

THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIROR CORRECTION.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANYCOPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE

PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,

Page 21: Netron Graph Library V2.1 White Paper

8/13/2019 Netron Graph Library V2.1 White Paper

http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 21/21

Netron Graph Library v2.1 White Paper

SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO

USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDEREDINACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM

TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN

ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Permission is granted to anyone to use this software for any purpose, including commercial

applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote the

original software. If you use this software in a product, an acknowledgment in the productdocumentation would be appreciated but is not required.

2. Altered source versions must be plainly marked as such, and must not be misrepresented as beingthe original software.

3. This notice may not be removed or altered from any source distribution.

Copyright © Lutz Roeder. 

All rights reserved.

This software is provided 'as-is', without any express or implied warranty. In no event will the authorsbe held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercialapplications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote theoriginal software. If you use this software in a product, an acknowledgment in the product

documentation would be appreciated but is not required.

2. Altered source versions must be plainly marked as such, and must not be misrepresented as being

the original software.

3. This notice may not be removed or altered from any source distribution.

Please visit the Netron site for up to date information, while the latest source code can be downloaded

from the Sourceforge CVS .

Ad Maiorem Dei Gloriam