Download Φ License Φ Forum Φ Team Φ Home
The query language of ConceptBase allows to transform answers into multiple external formats such as XML. Another example is the DOT format of Graphviz. Graphviz is a powerful set of tools to lay out directed and undirected graphs. Since ConceptBase manages models that can be visualized as graphs, an export interface to Graphviz is a natural option. Indeed, the answer transformation capabilities of ConceptBase are well-suited to do the job.
The first example is an Entity-Relationship Diagram (ERD).
EntityType Staff with attr name: String; hired: Date; salary: Integer attr,key staffno: Integer end EntityType Faculty with attr since: Date; post: String end EntityType Technician with attr since: Date; post: String end EntityType Student with attr since: Date attr,key studentid: Integer end EntityType University with attr, key name: String; location: String end EntityType Course with attr,key courseno: Integer; semester: String attr title: String end RelationshipType employs with role,"0..n" employee: Staff role,"1..1" employer: University end IsaType ISA_1 with sub sub1: Faculty; sub2: Technician super super1: Staff end RelationshipType teaches with role,"1..1" teacher: Faculty role subject: Course end EntityRelationshipType attends with role stud: Student; course: Course attr quota: Integer end Domain Date end Domain String end Domain Integer end Domain Real end UniversityModel in ERDModel with contains e1: Staff; e2: Faculty; e3: Technician; e4: Student; e5: University; e6: Course; e7: employs; e8: teaches; e9: attends; e10: ISA_1 end
The transformation of the Telos code (left) to the graphs (right) is performed by a collection of queries that classify the model elements into Graphviz node/link types and then formats the output according to the DOT language of Graphviz. It is well possible to expose certain nodes or links depending on their characteristics. For example, key attributes of entity types are displayed by ellipses with double lines and relationship types with attributes are displayed as diamonds with squared corners.
The second example is a Petri Net model for Dutch traffic lights.
red1 in Place with sendsToken t1: rg1 end yellow1 in Place with sendsToken t1: yr1 end green1 in Place with sendsToken t1: gy1 end safe1 in Place with sendsToken t1: rg1 end yr1 in Transition with producesToken p1: red1; p2: safe2 end rg1 in Transition with producesToken p1: green1 end gy1 in Transition with producesToken p1: yellow1 end red2 in Place with sendsToken t1: rg2 end yellow2 in Place with sendsToken t1: yr2 end green2 in Place with sendsToken t1: gy2 end safe2 in Place with sendsToken t1: rg2 end yr2 in Transition with producesToken p1: red2; p2: safe1 end rg2 in Transition with producesToken p1: green2 end gy2 in Transition with producesToken p1: yellow2 end TrafficLights in PNModel with contains e1: red1; e2: yellow1; e3: green1; e4: safe1; e5: red2; e6: yellow2; e7: green2; e8: safe2; e9: yr1; e10: rg1; e11: gy1; e12: yr2; e13: rg2; e14: gy2 end
The Petri Net models the coordination of the two traffic lights of a road crossing. Places (i.e. states) are denoted by circles and transitions between states are denoted by boxes. The Telos model above is just listing the places and transitions together with their links (sendsToken, producesToken).The Graphviz layout (by neato) is perfectly symmetric in this case (and certain other other cases). Indeed, the two traffic lights are following the same scheme. Compare this layout to the man-made layout from here. The source code of the transformation routine is available here.
http://conceptbase.cc -- Contact: M. Jeusfeld, Tilburg University, Postbus 90153, 5000 LE Tilburg, The Netherlands -- 18-Dec-2012