 ((exports) ->
 
   RDF_IRI = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-  RDF_XMLLiteral = RDF_IRI + 'XMLLiteral'
+  RDF_XML_LITERAL = RDF_IRI + 'XMLLiteral'
+  RDFA_USES_VOCAB = "http://www.w3.org/ns/rdfa#usesVocabulary"
 
 
   extract = (doc, base, profile='html') ->

      #{'@context': state.result.context, '@graph': items}


  class State
    constructor: (base=null, @profile, @resolveURI) ->
      @mappings = {base: base, lang: null, vocab: null, prefixes: {}}
      @lists = {}
      @hanging = {rels: [], revs: [], lists: []}
      @result = null
      @current = null

    newLocal: (base, lang, vocab, prefixes) ->
      # TODO: new State with updated members
      ctor = () ->
      ctor.prototype = this
      return new ctor


  class Mappings


  ##
  # A representation of the interpreted description formed by the logical
  # attributes of an element. Use this to produce triples.
  class Description
    constructor: (el, parentState=null) ->
      parentState = @computeParentState(el, parentState)
      #@data =
      data = new ElementData(el, parentState)
      @state = data.state
      @tagName = data.tagName
      #@mappings = data.mappings
      @about = data.getAbout()
      @resource = data.getResource()
      @types = data.getTypes()

    }


  inherit = (obj) ->
    ctor = () ->
    ctor.prototype = obj
    return new ctor


  exports.extract = extract
  exports.Description = Description
  exports.State = State
