#!/usr/bin/env ruby
#
# RDFWeb CoDepiction index generator
#
# Look up photos do-depicting some person, via their mailbox.
# Generate HTML.
# Assumes data has been drafragmented / smushed.
#
# danbri $Id: codepiction_client.rb,v 1.4 2002/06/27 16:29:21 danbri Exp $

require 'squish'
require 'dbi'

mbox='mailto:libby.miller@bristol.ac.uk'
query=<<EOQ;

	SELECT ?thumb, ?name, ?dd, ?mbox, ?uri,  
	WHERE (foaf::depiction ?x ?uri)
	(foaf::depiction ?z ?uri)
	(foaf::mbox ?x #{mbox})
	(foaf::mbox ?z ?mbox) 
	(foaf::name ?z ?name)
	(foaf::thumbnail ?uri ?thumb) 
	(dc::description ?uri ?dd)
	USING 
	foaf for http://xmlns.com/foaf/0.1/  
	dc for http://purl.org/dc/elements/1.1/
EOQ

DBI_DRIVER = 'DBI:Pg:test1'
DBI_USER = 'danbri'
DBI_PASS=''

q = SquishQuery.new.parseFromText query

by_img={}
DBI.connect( DBI_DRIVER, DBI_USER, DBI_PASS) do | dbh |
  dbh.select_all( q.toSQLQuery  ) do | row |
    by_img[row['uri']] = [] if by_img[row['uri']] == nil
    by_img[row['uri']].push ResultRow.new(row.clone)
   end
end

puts "<html><head><title>RDFWeb: Co-depiction directory</title</head>\n\n<body>\n"
puts "<h1>Codepictionary...</h1>\n\n"

by_img.each_value do |images|

   puts "<br /><br /><table summary=\"description of a photo\" border=\"0\" width=\"90%\"> "

   puts "<tr>";
   i=images[0]
   puts "<td valign=\"top\"> <em>" + i.dd 
   puts "</em>\n\n"

   puts "<ul>"
   images.each do |who| 
     puts "<li>#{who.name} &lt;#{who.mbox}&gt; </li> \n" 
   end
   puts "</ul>\n</td>\n\n"

   puts "<td valign=\"top\"><a href=\"#{i.uri}\"><img alt=\"+i.dd+""\" align=\"right\" src=\"#{i.thumb}\" /></a></td>\n\n"
   puts "</tr>"
   puts "</table>\n\n"

end



puts "\n\n</body>\n</html>\n\n"


