diff --git a/show/dance2018/deviceClass.n3 b/show/dance2018/deviceClass.n3
new file mode 100644
--- /dev/null
+++ b/show/dance2018/deviceClass.n3
@@ -0,0 +1,156 @@
+@prefix : .
+@prefix rdfs: .
+
+:color a :DeviceAttr; rdfs:label "color"; :dataType :color .
+:rx a :DeviceAttr; rdfs:label "rx"; :dataType :angle .
+:ry a :DeviceAttr; rdfs:label "ry"; :dataType :angle .
+:uv a :DeviceAttr; rdfs:label "uv"; :dataType :scalar .
+:brightness a :DeviceAttr; rdfs:label "brightness"; :dataType :scalar .
+:zoom a :DeviceAttr; rdfs:label "zoom"; :dataType :scalar ;
+ rdfs:comment "maybe make this a separate 'wide to narrow' type" .
+:focus a :DeviceAttr; rdfs:label "focus"; :dataType :scalar .
+:iris a :DeviceAttr; rdfs:label "iris"; :dataType :scalar .
+:prism a :DeviceAttr; rdfs:label "prism"; :dataType :scalar .
+:strobe a :DeviceAttr; rdfs:label "strobe"; :dataType :scalar;
+ rdfs:comment "0=none, 1=fastest" .
+:goboSpeed a :DeviceAttr; rdfs:label "goboSpeed"; :dataType :scalar ;
+ rdfs:comment "0=stopped, 1=rotate the fastest".
+:quantumGoboChoice a :DeviceAttr; rdfs:label "gobo"; :dataType :choice;
+ :choice :spider, :windmill, :limbo, :brush, :whirlpool, :stars .
+:mini15GoboChoice a :DeviceAttr; rdfs:label "gobo"; :dataType :choice;
+ :choice :mini15Gobo1, :mini15Gobo2, :mini15Gobo3, :mini15Gobo4, :mini15Gobo5, :mini15Gobo6, :mini15Gobo7, :mini15Gobo8, :mini15Gobo9, :mini15Gobo10 .
+
+:goboShake a :DeviceAttr; rdfs:label "goboShake"; :dataType :scalar .
+
+:mini15Gobo1 :value 3 .
+:mini15Gobo2 :value 10 .
+:mini15Gobo3 :value 18 .
+:mini15Gobo4 :value 26 .
+:mini15Gobo5 :value 34 .
+:mini15Gobo6 :value 42 .
+:mini15Gobo7 :value 50 .
+:mini15Gobo8 :value 58 .
+:mini15Gobo9 :value 66 .
+:mini15Gobo10 :value 74 .
+
+:SimpleDimmer a :DeviceClass; rdfs:label "SimpleDimmer";
+ :deviceAttr :brightness;
+ :attr
+ [ :outputAttr :level; :dmxOffset 0 ] .
+
+:ChauvetColorStrip a :DeviceClass; rdfs:label "ChauvetColorStrip";
+ :deviceAttr :color;
+ :attr
+ [ :outputAttr :mode; :dmxOffset 0 ],
+ [ :outputAttr :red; :dmxOffset 1 ],
+ [ :outputAttr :green; :dmxOffset 2 ],
+ [ :outputAttr :blue; :dmxOffset 3 ] .
+
+:Mini15 a :DeviceClass; rdfs:label "Mini15";
+ :deviceAttr :color, :rx, :ry, :mini15GoboChoice, :goboShake ;
+ :attr
+ [ :outputAttr :xRotation; :dmxOffset 0 ],
+ [ :outputAttr :xFine; :dmxOffset 1 ],
+ [ :outputAttr :yRotation; :dmxOffset 2 ],
+ [ :outputAttr :yFine; :dmxOffset 3 ],
+ [ :outputAttr :rotationSpeed; :dmxOffset 4 ],
+ [ :outputAttr :dimmer; :dmxOffset 5 ],
+ [ :outputAttr :red; :dmxOffset 6 ],
+ [ :outputAttr :green; :dmxOffset 7 ],
+ [ :outputAttr :blue; :dmxOffset 8 ],
+ [ :outputAttr :colorChange; :dmxOffset 9 ],
+ [ :outputAttr :colorSpeed; :dmxOffset 10 ],
+ [ :outputAttr :goboShake; :dmxOffset 11 ],
+ [ :outputAttr :goboChoose; :dmxOffset 12 ] .
+
+:Source4LedSeries2 a :DeviceClass; rdfs:label "Source4LedSeries2";
+ :docs ;
+ :deviceAttr :color;
+ :attr
+ [ :dmxOffset 0; :outputAttr :red ],
+ [ :dmxOffset 1; :outputAttr :green ],
+ [ :dmxOffset 2; :outputAttr :blue ],
+ [ :dmxOffset 4; :outputAttr :strobe ],
+ [ :dmxOffset 7; :outputAttr :fixed255 ],
+ [ :dmxOffset 8; :outputAttr :fixed128_0 ],
+ [ :dmxOffset 9; :outputAttr :fixed128_1 ],
+ [ :dmxOffset 10; :outputAttr :fixed128_2 ],
+ [ :dmxOffset 11; :outputAttr :fixed128_3 ],
+ [ :dmxOffset 12; :outputAttr :fixed128_4 ],
+ [ :dmxOffset 13; :outputAttr :fixed128_5 ],
+ [ :dmxOffset 14; :outputAttr :fixed128_6 ] .
+
+
+:ChauvetHex12 a :DeviceClass; rdfs:label "ChauvetHex12";
+ :deviceAttr :color, :uv;
+ :docs ;
+ :attr
+ [ :outputAttr :red; :dmxOffset 0 ],
+ [ :outputAttr :green; :dmxOffset 1 ],
+ [ :outputAttr :blue; :dmxOffset 2 ],
+ [ :outputAttr :amber; :dmxOffset 3 ],
+ [ :outputAttr :white; :dmxOffset 4 ],
+ [ :outputAttr :uv; :dmxOffset 5 ] .
+
+:MacAura a :DeviceClass; rdfs:label "MacAura";
+ :docs ;
+ rdfs:comment "note- manual counts dmx from 1; :dmxOffset is from 0";
+ :deviceAttr :color, :rx, :ry, :zoom;
+ :attr
+ [ :dmxOffset 0 ; :outputAttr :shutter ], # use 22
+ [ :dmxOffset 1 ; :outputAttr :dimmer ],
+ [ :dmxOffset 2 ; :outputAttr :zoom ],
+ [ :dmxOffset 3 ; :outputAttr :pan ],
+ [ :dmxOffset 4 ; :outputAttr :panFine ],
+ [ :dmxOffset 5 ; :outputAttr :tilt ],
+ [ :dmxOffset 6 ; :outputAttr :tiltFine ],
+ [ :dmxOffset 7 ; :outputAttr :fixtureControl ], # use 0
+ [ :dmxOffset 8 ; :outputAttr :colorWheel ], # use 0
+ [ :dmxOffset 9 ; :outputAttr :red ],
+ [ :dmxOffset 10 ; :outputAttr :green ],
+ [ :dmxOffset 11 ; :outputAttr :blue ],
+ [ :dmxOffset 12 ; :outputAttr :white ],
+ [ :dmxOffset 13 ; :outputAttr :colorTemperature ],
+ [ :dmxOffset 14 ; :outputAttr :fx1Select ],
+ [ :dmxOffset 15 ; :outputAttr :fx1Adjust ],
+ [ :dmxOffset 16 ; :outputAttr :fx2Select ],
+ [ :dmxOffset 17 ; :outputAttr :fx2Adjust ],
+ [ :dmxOffset 18 ; :outputAttr :fxSync ],
+ [ :dmxOffset 19 ; :outputAttr :auraShutter ], # use 22
+ [ :dmxOffset 20 ; :outputAttr :auraDimmer ],
+ [ :dmxOffset 21 ; :outputAttr :auraColorWheel ],
+ [ :dmxOffset 22 ; :outputAttr :auraRed ],
+ [ :dmxOffset 23 ; :outputAttr :auraGreen ],
+ [ :dmxOffset 24 ; :outputAttr :auraBlue ] .
+
+:MacQuantum a :DeviceClass; rdfs:label "MacQuantum";
+ :docs ;
+ :deviceAttr :color, :rx, :ry, :zoom, :focus, :iris, :prism, :quantumGoboChoice, :goboSpeed, :strobe;
+ :attr
+ [ :dmxOffset 0; :outputAttr :shutter ],
+ [ :dmxOffset 1; :outputAttr :dimmerFadeHi ],
+ [ :dmxOffset 2; :outputAttr :dimmerFadeLo ],
+ [ :dmxOffset 3; :outputAttr :cyan ],
+ [ :dmxOffset 4; :outputAttr :magenta ],
+ [ :dmxOffset 5; :outputAttr :yellow ],
+ [ :dmxOffset 6; :outputAttr :colorWheel ; rdfs:comment "use 0" ],
+ [ :dmxOffset 7; :outputAttr :goboChoice ],
+ [ :dmxOffset 8; :outputAttr :goboSpeedHi ],
+ [ :dmxOffset 9; :outputAttr :goboSpeedLo ],
+ [ :dmxOffset 10; :outputAttr :goboStaticRotate ],
+ [ :dmxOffset 11; :outputAttr :prismRotation ],
+ [ :dmxOffset 12; :outputAttr :iris ],
+ [ :dmxOffset 13; :outputAttr :zoomHi ],
+ [ :dmxOffset 14; :outputAttr :zoomLo ],
+ [ :dmxOffset 15; :outputAttr :focusHi ],
+ [ :dmxOffset 16; :outputAttr :focusLo ],
+ [ :dmxOffset 17; :outputAttr :panHi ],
+ [ :dmxOffset 18; :outputAttr :panLo ],
+ [ :dmxOffset 19; :outputAttr :tiltHi ],
+ [ :dmxOffset 20; :outputAttr :tiltLo ],
+ [ :dmxOffset 21; :outputAttr :fixtureControl ; rdfs:comment "use 0" ],
+ [ :dmxOffset 22; :outputAttr :fx1Select ],
+ [ :dmxOffset 23; :outputAttr :fx1Adjust ],
+ [ :dmxOffset 24; :outputAttr :fx2Select ],
+ [ :dmxOffset 25; :outputAttr :fx2Adjust ],
+ [ :dmxOffset 26; :outputAttr :fxSync ] .