require 'RDF4R/Consumer/Standard'
require 'RDF4R/Driver/XMLParser'
require 'RDF4R/Driver/SimpleData'

module RDF4R

	def parse(filename, base_uri)
		consumer = Consumer::Standard.new
		File.open(filename) do |file|
			return Driver::XMLParser.process(file, base_uri, consumer)
		end
	end

	module_function :parse

end

if __FILE__ == $0
  models = nil
  filename = ARGV.shift or (puts "need filename"; exit 1)
	base = (ARGV.shift or %Q{file://#{filename}})
	uri = ARGV.shift
	models = RDF4R.parse(filename, base)
	if models.size == 0
		puts "no models found"
		exit 0
	elsif models.size > 1
		puts "i got multiple models, you probably didn't want that"
		exit 0
	else
		model = models.shift
		if uri
			resource = model.resources_by_uri[uri]
			resource.to_rdf_xml $stdout
		else
			model.to_rdf_xml $stdout
		end
	end
end
