diff --git a/show/dance2008/config.n3 b/show/dance2008/config.n3
--- a/show/dance2008/config.n3
+++ b/show/dance2008/config.n3
@@ -42,3 +42,77 @@ sh:song14 rdfs:label "14 blonde"; :showP
sh:song15 rdfs:label "15 charleston2"; :showPath "dance2008/15-charleston2.ogg" .
sh:song16 rdfs:label "16 rich2"; :showPath "dance2008/16-rich2.ogg" .
sh:song17 rdfs:label "17 business-mh"; :showPath "dance2008/17-business-mh.ogg" .
+
+
+dmx:c1 :dmxAddress 1 .
+dmx:c2 :dmxAddress 2 .
+dmx:c3 :dmxAddress 3 .
+dmx:c4 :dmxAddress 4 .
+dmx:c5 :dmxAddress 5 .
+dmx:c6 :dmxAddress 6 .
+dmx:c7 :dmxAddress 7 .
+dmx:c8 :dmxAddress 8 .
+dmx:c9 :dmxAddress 9 .
+dmx:c10 :dmxAddress 10 .
+dmx:c11 :dmxAddress 11 .
+dmx:c12 :dmxAddress 12 .
+dmx:c13 :dmxAddress 13 .
+dmx:c14 :dmxAddress 14 .
+dmx:c15 :dmxAddress 15 .
+dmx:c16 :dmxAddress 16 .
+dmx:c17 :dmxAddress 17 .
+dmx:c18 :dmxAddress 18 .
+dmx:c19 :dmxAddress 19 .
+dmx:c20 :dmxAddress 20 .
+dmx:c21 :dmxAddress 21 .
+dmx:c22 :dmxAddress 22 .
+dmx:c23 :dmxAddress 23 .
+dmx:c24 :dmxAddress 24 .
+dmx:c25 :dmxAddress 25 .
+dmx:c26 :dmxAddress 26 .
+dmx:c27 :dmxAddress 27 .
+dmx:c28 :dmxAddress 28 .
+dmx:c29 :dmxAddress 29 .
+dmx:c30 :dmxAddress 30 .
+dmx:c31 :dmxAddress 31 .
+dmx:c32 :dmxAddress 32 .
+dmx:c33 :dmxAddress 33 .
+dmx:c34 :dmxAddress 34 .
+dmx:c35 :dmxAddress 35 .
+dmx:c36 :dmxAddress 36 .
+dmx:c37 :dmxAddress 37 .
+dmx:c38 :dmxAddress 38 .
+dmx:c39 :dmxAddress 39 .
+dmx:c40 :dmxAddress 40 .
+dmx:c41 :dmxAddress 41 .
+dmx:c42 :dmxAddress 42 .
+dmx:c43 :dmxAddress 43 .
+dmx:c44 :dmxAddress 44 .
+dmx:c45 :dmxAddress 45 .
+dmx:c46 :dmxAddress 46 .
+dmx:c47 :dmxAddress 47 .
+dmx:c48 :dmxAddress 48 .
+dmx:c49 :dmxAddress 49 .
+dmx:c50 :dmxAddress 50 .
+dmx:c51 :dmxAddress 51 .
+dmx:c52 :dmxAddress 52 .
+dmx:c53 :dmxAddress 53 .
+dmx:c54 :dmxAddress 54 .
+dmx:c55 :dmxAddress 55 .
+dmx:c56 :dmxAddress 56 .
+dmx:c57 :dmxAddress 57 .
+dmx:c58 :dmxAddress 58 .
+dmx:c59 :dmxAddress 59 .
+dmx:c60 :dmxAddress 60 .
+dmx:c61 :dmxAddress 61 .
+dmx:c62 :dmxAddress 62 .
+dmx:c63 :dmxAddress 63 .
+dmx:c64 :dmxAddress 64 .
+dmx:c65 :dmxAddress 65 .
+dmx:c66 :dmxAddress 66 .
+dmx:c67 :dmxAddress 67 .
+dmx:c68 :dmxAddress 68 .
+dmx:c69 :dmxAddress 69 .
+dmx:c70 :dmxAddress 70 .
+dmx:c71 :dmxAddress 71 .
+dmx:c72 :dmxAddress 72 .
diff --git a/show/dance2008/patch-rules.n3 b/show/dance2008/patch-rules.n3
new file mode 100644
--- /dev/null
+++ b/show/dance2008/patch-rules.n3
@@ -0,0 +1,18 @@
+@prefix ch: .
+@prefix dmx: .
+@prefix rdfs: .
+@prefix l9: .
+@prefix log: .
+@prefix string: .
+
+@prefix prep: .
+
+{
+ [prep:name ?name; prep:output ?c] .
+
+ ch: log:uri ?channelNamespace .
+ (?channelNamespace ?name) string:concatenation ?uriString .
+ ?chanUri log:uri ?uriString .
+} => {
+ ?chanUri a l9:Channel; rdfs:label ?name; l9:output ?c .
+} .
diff --git a/show/dance2008/patch-source.n3 b/show/dance2008/patch-source.n3
new file mode 100644
--- /dev/null
+++ b/show/dance2008/patch-source.n3
@@ -0,0 +1,72 @@
+@prefix : .
+@prefix dmx: .
+
+# build with:
+# cwm show/dance2008/patch-source.n3 --filter=show/dance2008/patch-rules.n3 --n3=/ > show/dance2008/patch.n3
+
+[ :name "oran1"; :output dmx:c21 ] .
+[ :name "oran2"; :output dmx:c25 ] .
+[ :name "oran3"; :output dmx:c29 ] .
+[ :name "oran4"; :output dmx:c33 ] .
+[ :name "gree1"; :output dmx:c22 ] .
+[ :name "gree2"; :output dmx:c26 ] .
+[ :name "gree3"; :output dmx:c30 ] .
+[ :name "gree4"; :output dmx:c34 ] .
+[ :name "blue1"; :output dmx:c23 ] .
+[ :name "blue2"; :output dmx:c27 ] .
+[ :name "blue3"; :output dmx:c31 ] .
+[ :name "blue4"; :output dmx:c35 ] .
+[ :name "red1"; :output dmx:c24 ] .
+[ :name "red2"; :output dmx:c28 ] .
+[ :name "red3"; :output dmx:c32 ] .
+[ :name "red4"; :output dmx:c36 ] .
+# 35 blue has a white in it too
+
+[ :name "b11"; :output dmx:c54 ] .
+[ :name "b12"; :output dmx:c53 ] .
+[ :name "b13"; :output dmx:c52 ] .
+[ :name "b14"; :output dmx:c51 ] .
+[ :name "b15"; :output dmx:c50 ] .
+[ :name "b16"; :output dmx:c49 ] .
+[ :name "b21"; :output dmx:c55 ] .
+[ :name "b22"; :output dmx:c56 ] .
+[ :name "b23"; :output dmx:c57 ] .
+[ :name "b24"; :output dmx:c58 ] .
+[ :name "b25"; :output dmx:c59 ] .
+[ :name "b26"; :output dmx:c60 ] .
+[ :name "b31"; :output dmx:c61 ] .
+[ :name "b32"; :output dmx:c62 ] .
+[ :name "b33"; :output dmx:c63 ] .
+[ :name "b34"; :output dmx:c64 ] .
+[ :name "b35"; :output dmx:c65 ] .
+[ :name "b36"; :output dmx:c66 ] .
+
+[ :name "post-l"; :output dmx:c45 ] .
+[ :name "post-r"; :output dmx:c46 ] .
+[ :name "down-cr"; :output dmx:c16 ] .
+[ :name "down-c"; :output dmx:c18 ] .
+[ :name "down-l"; :output dmx:c13 ] .
+[ :name "down-r"; :output dmx:c14 ] .
+[ :name "up-l"; :output dmx:c40 ] .
+[ :name "front1"; :output dmx:c1 ] .
+[ :name "front2"; :output dmx:c2 ] .
+[ :name "front3"; :output dmx:c3 ] .
+[ :name "front4"; :output dmx:c4 ] .
+[ :name "front5"; :output dmx:c5 ] .
+[ :name "front6"; :output dmx:c6 ] .
+[ :name "front7"; :output dmx:c7 ] .
+[ :name "front8"; :output dmx:c8 ] .
+[ :name "front9"; :output dmx:c9 ] .
+[ :name "front10"; :output dmx:c10 ] .
+[ :name "front11"; :output dmx:c11 ] .
+[ :name "front12"; :output dmx:c12 ] .
+
+[ :name "blacklight"; :output dmx:c15 ] .
+[ :name "stroberate"; :output dmx:c19 ] .
+[ :name "strobedim"; :output dmx:c20 ] .
+
+[ :name "cyc"; :output dmx:c44 ] .
+
+[ :name "house"; :output dmx:c68 ] .
+
+
diff --git a/show/dance2008/patch.n3 b/show/dance2008/patch.n3
--- a/show/dance2008/patch.n3
+++ b/show/dance2008/patch.n3
@@ -1,18 +1,245 @@
-@prefix ch: .
-@prefix dmx: .
-@prefix rdfs: .
-@prefix rdf: .
-@prefix : .
-@prefix mus: .
-@prefix show: .
-@prefix sh: .
+#Processed by Id: cwm.py,v 1.190 2006/08/09 23:20:42 syosi Exp
+ # using base file:///my/proj/light9/show/dance2008/patch-source.n3
+
+# Notation3 generation by
+# notation3.py,v 1.191 2006/08/01 01:14:04 syosi Exp
-# test data
-ch:cycRed1 a :Channel; rdfs:label "cycRed1"; :output dmx:c83 .
-ch:cycRed2 a :Channel; rdfs:label "cycRed2"; :output dmx:c80 .
-ch:cycRed3 a :Channel; rdfs:label "cycRed3"; :output dmx:c77 .
-ch:cycRed4 a :Channel; rdfs:label "cycRed4"; :output dmx:c74 .
-ch:cycGreen1 a :Channel; rdfs:label "cycGreen1"; :output dmx:c82 .
-ch:cycGreen2 a :Channel; rdfs:label "cycGreen2"; :output dmx:c79 .
-ch:cycGreen3 a :Channel; rdfs:label "cycGreen3"; :output dmx:c76 .
-ch:cycGreen4 a :Channel; rdfs:label "cycGreen4"; :output dmx:c73 .
+# Base was: file:///my/proj/light9/show/dance2008/patch-source.n3
+ @prefix : .
+ @prefix ch: .
+ @prefix dmx: .
+ @prefix rdfs: .
+
+ ch:b11 a :Channel;
+ :output dmx:c54;
+ rdfs:label "b11" .
+
+ ch:b12 a :Channel;
+ :output dmx:c53;
+ rdfs:label "b12" .
+
+ ch:b13 a :Channel;
+ :output dmx:c52;
+ rdfs:label "b13" .
+
+ ch:b14 a :Channel;
+ :output dmx:c51;
+ rdfs:label "b14" .
+
+ ch:b15 a :Channel;
+ :output dmx:c50;
+ rdfs:label "b15" .
+
+ ch:b16 a :Channel;
+ :output dmx:c49;
+ rdfs:label "b16" .
+
+ ch:b21 a :Channel;
+ :output dmx:c55;
+ rdfs:label "b21" .
+
+ ch:b22 a :Channel;
+ :output dmx:c56;
+ rdfs:label "b22" .
+
+ ch:b23 a :Channel;
+ :output dmx:c57;
+ rdfs:label "b23" .
+
+ ch:b24 a :Channel;
+ :output dmx:c58;
+ rdfs:label "b24" .
+
+ ch:b25 a :Channel;
+ :output dmx:c59;
+ rdfs:label "b25" .
+
+ ch:b26 a :Channel;
+ :output dmx:c60;
+ rdfs:label "b26" .
+
+ ch:b31 a :Channel;
+ :output dmx:c61;
+ rdfs:label "b31" .
+
+ ch:b32 a :Channel;
+ :output dmx:c62;
+ rdfs:label "b32" .
+
+ ch:b33 a :Channel;
+ :output dmx:c63;
+ rdfs:label "b33" .
+
+ ch:b34 a :Channel;
+ :output dmx:c64;
+ rdfs:label "b34" .
+
+ ch:b35 a :Channel;
+ :output dmx:c65;
+ rdfs:label "b35" .
+
+ ch:b36 a :Channel;
+ :output dmx:c66;
+ rdfs:label "b36" .
+
+ ch:blacklight a :Channel;
+ :output dmx:c15;
+ rdfs:label "blacklight" .
+
+ ch:blue1 a :Channel;
+ :output dmx:c23;
+ rdfs:label "blue1" .
+
+ ch:blue2 a :Channel;
+ :output dmx:c27;
+ rdfs:label "blue2" .
+
+ ch:blue3 a :Channel;
+ :output dmx:c31;
+ rdfs:label "blue3" .
+
+ ch:blue4 a :Channel;
+ :output dmx:c35;
+ rdfs:label "blue4" .
+
+ ch:cyc a :Channel;
+ :output dmx:c44;
+ rdfs:label "cyc" .
+
+ ch:down-c a :Channel;
+ :output dmx:c18;
+ rdfs:label "down-c" .
+
+ ch:down-cr a :Channel;
+ :output dmx:c16;
+ rdfs:label "down-cr" .
+
+ ch:down-l a :Channel;
+ :output dmx:c13;
+ rdfs:label "down-l" .
+
+ ch:down-r a :Channel;
+ :output dmx:c14;
+ rdfs:label "down-r" .
+
+ ch:front1 a :Channel;
+ :output dmx:c1;
+ rdfs:label "front1" .
+
+ ch:front10 a :Channel;
+ :output dmx:c10;
+ rdfs:label "front10" .
+
+ ch:front11 a :Channel;
+ :output dmx:c11;
+ rdfs:label "front11" .
+
+ ch:front12 a :Channel;
+ :output dmx:c12;
+ rdfs:label "front12" .
+
+ ch:front2 a :Channel;
+ :output dmx:c2;
+ rdfs:label "front2" .
+
+ ch:front3 a :Channel;
+ :output dmx:c3;
+ rdfs:label "front3" .
+
+ ch:front4 a :Channel;
+ :output dmx:c4;
+ rdfs:label "front4" .
+
+ ch:front5 a :Channel;
+ :output dmx:c5;
+ rdfs:label "front5" .
+
+ ch:front6 a :Channel;
+ :output dmx:c6;
+ rdfs:label "front6" .
+
+ ch:front7 a :Channel;
+ :output dmx:c7;
+ rdfs:label "front7" .
+
+ ch:front8 a :Channel;
+ :output dmx:c8;
+ rdfs:label "front8" .
+
+ ch:front9 a :Channel;
+ :output dmx:c9;
+ rdfs:label "front9" .
+
+ ch:gree1 a :Channel;
+ :output dmx:c22;
+ rdfs:label "gree1" .
+
+ ch:gree2 a :Channel;
+ :output dmx:c26;
+ rdfs:label "gree2" .
+
+ ch:gree3 a :Channel;
+ :output dmx:c30;
+ rdfs:label "gree3" .
+
+ ch:gree4 a :Channel;
+ :output dmx:c34;
+ rdfs:label "gree4" .
+
+ ch:house a :Channel;
+ :output dmx:c68;
+ rdfs:label "house" .
+
+ ch:oran1 a :Channel;
+ :output dmx:c21;
+ rdfs:label "oran1" .
+
+ ch:oran2 a :Channel;
+ :output dmx:c25;
+ rdfs:label "oran2" .
+
+ ch:oran3 a :Channel;
+ :output dmx:c29;
+ rdfs:label "oran3" .
+
+ ch:oran4 a :Channel;
+ :output dmx:c33;
+ rdfs:label "oran4" .
+
+ ch:post-l a :Channel;
+ :output dmx:c45;
+ rdfs:label "post-l" .
+
+ ch:post-r a :Channel;
+ :output dmx:c46;
+ rdfs:label "post-r" .
+
+ ch:red1 a :Channel;
+ :output dmx:c24;
+ rdfs:label "red1" .
+
+ ch:red2 a :Channel;
+ :output dmx:c28;
+ rdfs:label "red2" .
+
+ ch:red3 a :Channel;
+ :output dmx:c32;
+ rdfs:label "red3" .
+
+ ch:red4 a :Channel;
+ :output dmx:c36;
+ rdfs:label "red4" .
+
+ ch:strobedim a :Channel;
+ :output dmx:c20;
+ rdfs:label "strobedim" .
+
+ ch:stroberate a :Channel;
+ :output dmx:c19;
+ rdfs:label "stroberate" .
+
+ ch:up-l a :Channel;
+ :output dmx:c40;
+ rdfs:label "up-l" .
+
+#ENDS