-
Notifications
You must be signed in to change notification settings - Fork 0
Class organization
Classes in GraphZOO are used to represent objects containing objects, families, parameters and metadata. Each class may have one or more subclasses. The organization of classes at different levels (PostgreSQL/SQLite database, Sage, ...) should closely follow the model presented here.
The model will be implemented in Scala.
Each class should have only those properties and methods that are applicable to all (or at least a vast majority) of its members. Properties and methods that are only applicable to a subset of the members should belong to a subclass, an exception being subsets characterized by a single property. All properties should be optional (i.e., a missing value meaning that the value has not been computed). An object may belong to several classes as long as they share a common ancestor.
For instance, a member of the ZooGraph
class may have a (boolean) property is_cayley
, but only those graphs for which this property is true may have properties which only make sense for Cayley graphs, such as the underlying group (identified by the second part of the GAP id, as the first part is the order of the graph) and (perhaps optionally) the generating set. The Petersen graph will then be member of both CVTGraph
and DistanceRegularGraph
classes (since they descend from ZooGraph
, of which it is also a member), but will not be a CayleyGraph
.
Classes are given in bulleted lists below, with indented bullets representing subclasses. All of them are subclasses of the main class ZooEntity
.
Data classes are subclasses of the class ZooObject
.
Any member of a class in this category uniquely represents a discrete object.
-
ZooGraph
- basic graphs-
CVTGraph
- cubic vertex-transitive graphs -
CayleyGraph
- Cayley graphs -
DistanceRegularGraph
- strongly regular and distance-regular graphs -
SPXGraph
- split Praeger-Xu graphs
-
-
ZooGroup
- basic groups
The members of this category are parameter sets, which may not uniquely define an object, or may correspond to no object at all.
-
GraphParameters
- a common superclass for parameter sets of graphs with a variable number of parameters -
GraphFamilyParameters
- a common superclass for parameter sets of graph families with a variable number of parameters
Property classes are subclasses of the class ZooProperty
.
Members of classes in this category represent properties that may take multiple values. Set classes are subclasses of the class ZooSet
.
-
Alias
- alternate names for objects -
FamilyMember
- a mapping between objects and families
Members of classes in this category represent properties determined by a variable number of parameters.
-
Eigenvalue
- an eigenvalue of a graph together with its multiplicity -
IntersectionNumber
- the number of vertices at distances i, j from two vertices at distance h, if defined -
KreinParameter
- Krein parameters of distance-regular graphs -
Cosine
- the cosine sequence corresponding to an eigenvalue of a distance-regular graph -
QPolynomialOrdering
- a Q-polynomial ordering of eigenvalues
-
Change
- changes made to the database -
Citation
- citations for objects and their properties -
Publication
- articles, books etc. appearing in citations