From a716b2c0571f5bdcd817835cecb30cb7a4c745e0 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 17 Mar 2007 03:15:44 +0000 Subject: Nicer automata diagrams from machina2dot.py. Added midi2machina program. git-svn-id: http://svn.drobilla.net/lad/machina@362 a436a847-0d15-0410-975c-d299462d15a1 --- util/machina2dot.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'util') diff --git a/util/machina2dot.py b/util/machina2dot.py index eb89ec8..cb704ef 100755 --- a/util/machina2dot.py +++ b/util/machina2dot.py @@ -16,7 +16,7 @@ parser.parse_into_model(model, "file:" + sys.argv[1]) print """ digraph finite_state_machine { rankdir=LR; - node [shape = doublecircle ]; + node [ shape = circle ]; """, node_durations = { } @@ -30,14 +30,17 @@ SELECT DISTINCT ?n ?dur WHERE { } """) +invis_id = 0; + for result in initial_nodes_query.execute(model): node_id = result['n'].blank_identifier duration = float(result['dur'].literal_value['string']) node_durations[node_id] = duration + print "\t{ node [ style = invis ] ", + print "invis%d" % invis_id, " }" print '\t', node_id, "[ label = \"d =", duration, "\"];" - - -print "\tnode [shape = circle ];" + print '\t', "invis%d" % invis_id, " -> ", node_id + invis_id += 1 nodes_query = RDF.SPARQLQuery(""" @@ -53,7 +56,7 @@ for result in nodes_query.execute(model): node_id = result['n'].blank_identifier duration = float(result['dur'].literal_value['string']) node_durations[node_id] = duration - print '\t', node_id, "[ label = \"d =", duration, "\"]; " + print '\t', node_id, "[ label = \"d =", "%.2f" % duration, "\"]; " edge_query = RDF.SPARQLQuery(""" @@ -69,7 +72,7 @@ SELECT DISTINCT ?tail ?head ?prob WHERE { for edge in edge_query.execute(model): print '\t', edge['tail'].blank_identifier, ' -> ', print edge['head'].blank_identifier, ' ', - print "[ label = \"", edge['prob'].literal_value['string'], "\" ", + print "[ label = \"", "%1.2f" % float(edge['prob'].literal_value['string']), "\" ", print "minlen = ", node_durations[edge['tail'].blank_identifier] * 2, " ];" print "}" -- cgit v1.2.1