diff options
-rw-r--r-- | raul/RDFModel.h | 2 | ||||
-rw-r--r-- | src/RDFModel.cpp | 8 |
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); |