case class Road (g: PropertyGraph) extends NodeType (g) { addProperty ("name", "S") addProperty ("speedLimit", "I") addProperty ("lanes", "I") key ("name") } // Road case class Intersection (g: PropertyGraph, r1: Road, r2: Road) extends EdgeType (g, r1, r2) { addProperty ("control", "S") } // Intersection object Test extends App { val g = PropertyGraph ("Athens_roads") val main = Road (g) main("name") = "main" main("speedlimit") = 35 main("lanes") = 2 val oak = Road (g) oak("name") = "oak" oak("speedlimit") = 45 oak("lanes") = 1 val main2oak = Intersection (g, main, oak) main2oak ("control") = "stop_sign" g.print () g.display () } // Test