#!/usr/bin/env ruby

# usage:
#
# rdfdump file:../rdf/whodoeswhat.rdf  -o ntriples -q > ../rdf/whodoeswhat.nt
# rdfdump file:../rdf/partners.rdf  -o ntriples -q > ../rdf/partners.nt
# rdfdump file:../rdf/_esw_projdata.rdf  -o ntriples -q > ../rdf/_esw_projdata.rdf.nt
# 
# 


require 'squish'
require 'basicrdf'

squish='select ?deliv, ?email, ?num, ?date, ?dd,  
WHERE 
(pm::deliv_lead_email ?deliv ?email) 
(pm::name ?deliv ?dd) 
(pm::number ?deliv ?num) 
(pm::realDateDue ?deliv ?date) 
USING 
 pm for http://www.w3.org/2002/02/esw/pm# 
foaf for http://xmlns.com/foaf/0.1/' 

query = SquishQuery.new.parseFromText squish

data = Loader.ntfile2graph '../rdf/whodoeswhat.nt'
data2 = Loader.ntfile2graph '../rdf/_esw_projdata.nt'
data3 = Loader.ntfile2graph '../rdf/partners.nt'

data.tell_all data2.statements
data.tell_all data3.statements

#puts "Query: \n#{query.inspect} \n\n\n"

resultset = SquishQuery.ask query, data

puts "<rdf:RDF 
  xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"
  xmlns:ev=\"http://purl.org/rss/1.0/modules/event/\"
  xmlns=\"http://purl.org/rss/1.0/\"
>\n\n"


resultset.each do |row|
   del = ResultRow.new row
   puts "<item rdf:about=\"#{row.values['deliv']}\">"
  puts "<title>#{row.values['dd']} (#{row.values['email']})</title>"
  puts "<link>#{row.values['deliv']}</link>"
  puts "<ev:startdate>#{row.values['date']}</ev:startdate>"
  puts "<ev:enddate>#{row.values['date']}</ev:enddate>"
  puts "</item>"
  puts "\n\n"
end

puts "</rdf:RDF>"
