Where to Find Up-to-date yFiles Information

This page is from the outdated yFiles for Java 2.13 documentation. You can find the most up-to-date documentation for all yFiles products on the yFiles documentation overview page.

Please see the following links for more information about the yFiles product family of diagramming programming libraries and corresponding yFiles products for modern web apps, for cross-platform Java(FX) applications, and for applications for the Microsoft .NET environment.

More about the yFiles product family Close X

Chapter 1. Preface

Table of Contents

Diagrams
Benefits and Problems
From Diagrams to Graphs
Graph-related Problems
About yFiles
What it is
What it's not
Application Domains

yFiles is an extensive class library that provides algorithms and components for analyzing, viewing, and drawing graphs, diagrams, and networks. It is entirely written in the Java™ programming language and can be used to develop sophisticated applications to be deployed on every platform with a working Java Runtime Environment installation.

This chapter gives an overview what kind of purposes the yFiles library serves, and what kind of applications and application domains are possible.

Diagrams

Diagrams of any kind naturally arise in a wide variety of application domains. The diagrams encountered commonly comprise entities together with their relationships. Entities are usually represented by some kind of object, e.g., a colored rectangle, and the relationships are usually represented by a connecting line with or without some kind of decoration at its ends. Figure 1.1, “Different kinds of diagrams” shows some examples of diagrams.

Figure 1.1. Different kinds of diagrams

A family tree.
 
A semantic network.
Sample process.

Benefits and Problems

"A diagram is worth a thousand words." is a popular proverb which best expresses the benefits of using diagrams:

  • Subjects of arbitrary complexity can be arranged to get a clear picture of hidden structures and dependencies.
  • Gordian relationships can be clarified in a matter of seconds.
  • Information is communicated to a broad audience easily.

However, these properties strongly depend on the quality of a diagram. And the task of making legible diagrams is often tedious and moreover error-prone when done by hand. Sketching even small data sets can become awkward enough to forsake entirely.

With large data sets the problem of making high-quality, easy-to-understand diagrams aggravates. Doing it by hand is no longer an alternative, so the need for an automatic generation grows.

From Diagrams to Graphs

Diagrams in the common sense, i.e., some sort of entities together with connecting lines as described above, are closely related to the mathematical notion of a "graph." Basically, this means that diagrams and graphs serve the same purpose, the two concepts are interchangeable. Hence, a question that arises in the context of a diagram is equally a question concerning a graph.

Formally, a graph is defined as a tuple of two sets, a node set and an edge set. A "node" in this definition is the equivalent of an entity, while an "edge" represents a connecting line, i.e., a relationship between entities.

There is a variety of terms used to refer to the mathematically coined "node" and "edge," however in the course of this document we will stick to the original names as often as possible. See the glossary for more graph structure terminology widely used in this documentation.