<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -12,6 +12,7 @@ module Calais
       :relevances =&gt; 'type/sys/RelevanceInfo',
     }
 
+    attr_accessor :submitter_code, :signature, :language, :submission_date, :request_id, :doc_title, :doc_date
     attr_accessor :hashes, :entities, :relations, :geographies, :categories
 
     def initialize(rdf_string)
@@ -77,9 +78,28 @@ module Calais
       def extract_data
         doc = XML::Parser.string(@raw_response).parse
 
-        doc.root.find(&quot;rdf:Description/rdf:type[contains(@rdf:resource, '#{MATCHERS[:docinfo]}')]/..&quot;).each { |node| node.remove! }
-        doc.root.find(&quot;rdf:Description/rdf:type[contains(@rdf:resource, '#{MATCHERS[:docinfometa]}')]/..&quot;).each { |node| node.remove! }
-        doc.root.find(&quot;rdf:Description/rdf:type[contains(@rdf:resource, '#{MATCHERS[:defaultlangid]}')]/..&quot;).each { |node| node.remove! }
+        doc.root.find(&quot;rdf:Description/rdf:type[contains(@rdf:resource, '#{MATCHERS[:docinfometa]}')]/..&quot;).each do |node|
+          @language = node['language']
+          @submission_date =  DateTime.parse node['submissionDate']
+
+          attributes = extract_attributes(node.find(&quot;*[contains(name(), 'c:')]&quot;))
+
+          @signature = attributes.delete('signature')
+          @submitter_code = attributes.delete('submitterCode')
+
+          node.remove!
+        end
+
+        doc.root.find(&quot;rdf:Description/rdf:type[contains(@rdf:resource, '#{MATCHERS[:docinfo]}')]/..&quot;).each do |node|
+          @request_id = node['calaisRequestID']
+
+          attributes = extract_attributes(node.find(&quot;*[contains(name(), 'c:')]&quot;))
+
+          @doc_title = attributes.delete('docTitle')
+          @doc_date = Date.parse attributes.delete('docDate')
+
+          node.remove!
+        end
 
         @categories = doc.root.find(&quot;rdf:Description/rdf:type[contains(@rdf:resource, '#{MATCHERS[:doccat]}')]/..&quot;).map do |node|
           category = Category.new
@@ -138,6 +158,7 @@ module Calais
           geography
         end
 
+        doc.root.find(&quot;rdf:Description/rdf:type[contains(@rdf:resource, '#{MATCHERS[:defaultlangid]}')]/..&quot;).each { |node| node.remove! }
         doc.root.find(&quot;./*&quot;).each { |node| node.remove! }
 
         return
@@ -159,7 +180,7 @@ module Calais
       rescue
         nil
       end
-      
+
       def extract_attributes(nodes)
         nodes.inject({}) do |hsh, node|
           value = if node['resource']</diff>
      <filename>lib/calais/response.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,6 +11,16 @@ describe Calais::Response, :new do
     @response = Calais::Response.new(SAMPLE_RESPONSE)
   end
 
+  it 'should extract document information' do
+    @response.language.should == 'English'
+    @response.submission_date.should be_a_kind_of(DateTime)
+    @response.signature.should == 'digestalg-1|iCEVI2NK1nAAvP+p5uaqnHISxdo=|U3QC5z6ZN1DLUJrqiP6gpTuxrdAxOaVOrjUQVuarCmb+zoqbm2fypA=='
+    @response.submitter_code.should == '4a388fbc-9897-def9-9233-efddbfbca363'
+    @response.request_id.should == '896ffd83-ad5f-4e4b-892b-4cc337a246af'
+    @response.doc_title.should == 'Record number of bicycles sold in Australia in 2006'
+    @response.doc_date.should be_a_kind_of(Date)
+  end
+
   it 'should extract entities' do
     entities = @response.entities
     entities.map { |e| e.type }.sort.uniq.should == %w[City Continent Country IndustryTerm Organization Person ProvinceOrState]</diff>
      <filename>spec/calais/response_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>9741d4b503531c0a2b7d9a79208c88a30e804a41</id>
    </parent>
  </parents>
  <author>
    <name>Abhay Kumar</name>
    <email>abhay@opensynapse.net</email>
  </author>
  <url>http://github.com/technicalpickles/calais/commit/29c1af323742c750a9b1a837e8ac553a8feb52d3</url>
  <id>29c1af323742c750a9b1a837e8ac553a8feb52d3</id>
  <committed-date>2008-12-18T23:20:04-08:00</committed-date>
  <authored-date>2008-12-18T23:20:04-08:00</authored-date>
  <message>extract all info from the response document</message>
  <tree>b88ae28a470dfcfff76cb3f22b10a55c528985dd</tree>
  <committer>
    <name>Abhay Kumar</name>
    <email>abhay@opensynapse.net</email>
  </committer>
</commit>
