Can someoe explain me this Dtag code?

Thankyou all for your help:

(
{
    var tag, index, trig, rules, axiom;
    axiom = [1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1];
    rules = [[0, 0], [1, 1, 0, 1]];
    trig = Impulse.kr(4);
    tag = Dtag(256, 2, axiom, rules, mode: 5);
    index = Demand.kr(trig, 0, tag).poll(trig);
    SinOsc.ar(index* 100 + 300 + SinOsc.kr([4, 4.1], 0, 8)) * 0.1
}.play;
)

If i recall this is from the supercollider book…at least , i recognise the axiom parameter. You would have to find the class file for the axiom stuff … i think it was custom written for a data sonification project. Maybe someone on the forum can provide better insight…or correct me.