 
         reset: -> @set()
 
+
+    # Selectors of elements that pertain to the data attribute
+    # for the node. The `nulls` selector is used to flag whether
+    # or not to include empty and/or NULL values.
+    FieldControl.defaultUI =
+        id: '[name=id],[data-id]'
+        value: '[name=value],[data-value]'
+        operator: '[name=operator],[data-operator]'
+        nulls: '[name=nulls],[data-nulls]'
+
+
+    # Attribute-based properties representing a constant value
+    FieldControl.defaultAttrs =
+        id: 'data-id'
+        value: 'data-value'
+        operator: 'data-operator'
+        nulls: 'data-nulls'
+
+
     { FieldControl }

                if @node.cid is id then delete @node
                return node

        # Gets the DataField `id`
        getId: ->
            if @model.id
                @model.id
            else
                if @$id.is FORM_ELEMENTS
                    id = InputIO.get @$id
                else
                    id = @$id.attr @idAttr
                @cleanId id

        # Get the operator
        getOperator: ->
            if @$operator.is FORM_ELEMENTS
                operator = InputIO.get @$operator
            else
                operator = @$operator.attr @operatorAttr
            @cleanOperator operator

        getValue: ->
            if @$value.is FORM_ELEMENTS
                value = InputIO.get @$value
            else
                value = @$value.attr @valueAttr
            @cleanValue value

        getNulls: ->
            if @$nulls.is FORM_ELEMENTS
                nulls = InputIO.get @$nulls
            else
                nulls = @$nulls.attr @nullsAttr
            @cleanNulls nulls

        setId: (id) ->
            if @model.id then return
            if @$id.is FORM_ELEMENTS
                InputIO.set @$id, id
            else
                @$id.attr @idAttr, id
            return

        setOperator: (operator) ->
            if @$operator.is FORM_ELEMENTS
                InputIO.set @$operator, operator
            else
                @$operator.attr @operatorAttr, operator
            return

        setValue: (value) ->
            if @$value.is FORM_ELEMENTS
                InputIO.set @$value, value
            else
                @$value.attr @valueAttr, value
            return

        # Special case since this is purely a boolean field
        setNulls: (value) ->
            value = Boolean value
            if @$nulls.is FORM_ELEMENTS
                InputIO.set @$nulls, value
            else
                @$nulls.attr @nullsAttr, value
            return

        # Triggered any time the control contents have changed
        change: (event) ->
            @trigger 'change', @, @get()

        # Creates a new node with the control contents
        add: ->

            # A flag denoting whether or not this FieldControl is managed
            # by a ConceptControlView. Managed views have their validation errors
            # caught by the parent view. Default to false
            managed: true

        events:
            'keyup input': 'change'
            'change select': 'change'
            'click input[type=radio],input[type=checkbox]': 'change'

        constructor: ->
            super
            # Various ways to define the UI elements
            @ui = _.extend {}, @constructor.defaultUI, @ui, @options.ui
            @attrs = _.extend {}, @constructor.defaultAttrs, @attrs, @options.attrs

        # Given a client id, deference the node
        _deferenceNode: (cid) ->
