summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--raul/RDFModel.h2
-rw-r--r--src/RDFModel.cpp8
2 files changed, 7 insertions, 3 deletions
diff --git a/raul/RDFModel.h b/raul/RDFModel.h
index 63cdb9d..576aec8 100644
--- a/raul/RDFModel.h
+++ b/raul/RDFModel.h
@@ -37,7 +37,7 @@ class World;
class Model : public boost::noncopyable {
public:
Model(World& world);
- Model(World& world, const Glib::ustring& uri);
+ Model(World& world, const Glib::ustring& uri, Glib::ustring base_uri="");
~Model();
void serialize_to_file_handle(FILE* fd);
diff --git a/src/RDFModel.cpp b/src/RDFModel.cpp
index d05864f..080eb24 100644
--- a/src/RDFModel.cpp
+++ b/src/RDFModel.cpp
@@ -46,7 +46,7 @@ Model::Model(RDF::World& world)
/** Load a model from a URI (local file or remote).
*/
-Model::Model(World& world, const Glib::ustring& data_uri)
+Model::Model(World& world, const Glib::ustring& data_uri, Glib::ustring base_uri_str)
: _world(world)
, _serializer(NULL)
{
@@ -54,8 +54,12 @@ Model::Model(World& world, const Glib::ustring& data_uri)
_model = librdf_new_model(_world.world(), _storage, NULL);
librdf_uri* uri = librdf_new_uri(world.world(), (const unsigned char*)data_uri.c_str());
+ librdf_uri* base_uri = NULL;
+ if (base_uri_str != "")
+ base_uri = librdf_new_uri(world.world(), (const unsigned char*)base_uri_str.c_str());
librdf_parser* parser = librdf_new_parser(world.world(), "guess", NULL, NULL);
- librdf_parser_parse_into_model(parser, uri, NULL, _model);
+ librdf_parser_parse_into_model(parser, uri, base_uri, _model);
+ librdf_free_uri(base_uri);
librdf_free_uri(uri);
librdf_free_parser(parser);