Sha256: 1c7bdc7dfc8b9ec9894bf9508cb8cc48286ae68d8e1ba49d778281297a459121

Contents?: true

Size: 1.09 KB

Versions: 4

Compression:

Stored size: 1.09 KB

Contents

# Author:: Eyal Oren
# Copyright:: (c) 2005-2006 Eyal Oren
# License:: LGPL

# FetchingAdapter is an extension to rdflite for fetching RDF from online sources.
class FetchingAdapter < RDFLite
  ConnectionPool.register_adapter(:fetching, self)

	# TODO: check that rapper is installed

	# fetches RDF/XML data from given url and adds it to the datastore, using the 
	# source url as context identifier.
  def fetch url
    # check if url starts with http://
		return unless url.match(/http:\/\/(.*)/)

		$activerdflog.debug "fetching from #{url}"

		#model = Redland::Model.new
		#parser = Redland::Parser.new('rdfxml')
		#scan = Redland::Uri.new('http://feature.librdf.org/raptor-scanForRDF')
		#enable = Redland::Literal.new('1')
		#Redland::librdf_parser_set_feature(parser, scan.uri, enable.node)
		#parser.parse_into_model(model, url)
		#triples = Redland::Serializer.ntriples.model_to_string(nil, model)

		triples = `rapper --scan --quiet "#{url}"`
		lines = triples.split($/)
		$activerdflog.debug "found #{lines.size} triples"

		context = RDFS::Resource.new(url)
		add_ntriples(triples, context)
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
activerdf_rdflite-1.3 lib/activerdf_rdflite/fetching.rb
activerdf_rdflite-1.4.1 lib/activerdf_rdflite/fetching.rb
activerdf_rdflite-1.2.3 lib/activerdf_rdflite/fetching.rb
activerdf_rdflite-1.4 lib/activerdf_rdflite/fetching.rb