diff options
author | Philip Van Hoof <philip@codeminded.be> | 2010-11-24 15:13:08 +0100 |
---|---|---|
committer | Philip Van Hoof <philip@codeminded.be> | 2010-11-24 15:58:10 +0100 |
commit | 038df1dfb8759beb4191a97e15292d0beac7355e (patch) | |
tree | 94cb445fd5b9adac26a69b1b6e90e5b1cb80d550 | |
parent | 37cc69997955dd379f16ddd77380ff226f71286b (diff) | |
download | tracker-038df1dfb8759beb4191a97e15292d0beac7355e.tar.gz |
tracker-extract: png: Fixed nested use of anonymous blank nodes
Fixes NB#202291
-rw-r--r-- | src/tracker-extract/tracker-extract-png.c | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/src/tracker-extract/tracker-extract-png.c b/src/tracker-extract/tracker-extract-png.c index c29c6d24c..b5a1d73c0 100644 --- a/src/tracker-extract/tracker-extract-png.c +++ b/src/tracker-extract/tracker-extract-png.c @@ -412,11 +412,13 @@ read_metadata (TrackerSparqlBuilder *preupdate, } if (xd->address || xd->country || xd->city) { + gchar *addruri; + tracker_sparql_builder_predicate (metadata, "mlo:location"); - + tracker_sparql_builder_object_blank_open (metadata); tracker_sparql_builder_predicate (metadata, "a"); - tracker_sparql_builder_object (metadata, "mlo:GeoPoint"); + tracker_sparql_builder_object (metadata, "mlo:GeoPoint"); /* GeoPoint */ if (xd->address) { tracker_sparql_builder_predicate (metadata, "mlo:address"); @@ -438,35 +440,40 @@ read_metadata (TrackerSparqlBuilder *preupdate, tracker_sparql_builder_object_unvalidated (metadata, xd->country); } + addruri = tracker_sparql_get_uuid_urn ("postal-address"); + tracker_sparql_builder_predicate (metadata, "mlo:asPostalAddress"); - tracker_sparql_builder_object_blank_open (metadata); /* PostalAddress */ + tracker_sparql_builder_object_iri (metadata, addruri); - tracker_sparql_builder_predicate (metadata, "a"); - tracker_sparql_builder_object (metadata, "nco:PostalAddress"); + tracker_sparql_builder_object_blank_close (metadata); /* GeoPoint */ + + tracker_sparql_builder_insert_open (preupdate, NULL); + tracker_sparql_builder_subject_iri (preupdate, addruri); + + tracker_sparql_builder_predicate (preupdate, "a"); + tracker_sparql_builder_object (preupdate, "nco:PostalAddress"); if (xd->address) { - tracker_sparql_builder_predicate (metadata, "nco:streetAddress"); - tracker_sparql_builder_object_unvalidated (metadata, xd->address); + tracker_sparql_builder_predicate (preupdate, "nco:streetAddress"); + tracker_sparql_builder_object_unvalidated (preupdate, xd->address); } if (xd->state) { - tracker_sparql_builder_predicate (metadata, "nco:region"); - tracker_sparql_builder_object_unvalidated (metadata, xd->state); + tracker_sparql_builder_predicate (preupdate, "nco:region"); + tracker_sparql_builder_object_unvalidated (preupdate, xd->state); } if (xd->city) { - tracker_sparql_builder_predicate (metadata, "nco:locality"); - tracker_sparql_builder_object_unvalidated (metadata, xd->city); + tracker_sparql_builder_predicate (preupdate, "nco:locality"); + tracker_sparql_builder_object_unvalidated (preupdate, xd->city); } if (xd->country) { - tracker_sparql_builder_predicate (metadata, "nco:country"); - tracker_sparql_builder_object_unvalidated (metadata, xd->country); + tracker_sparql_builder_predicate (preupdate, "nco:country"); + tracker_sparql_builder_object_unvalidated (preupdate, xd->country); } - tracker_sparql_builder_object_blank_close (metadata); /* PostalAddress */ - - tracker_sparql_builder_object_blank_close (metadata); + tracker_sparql_builder_insert_close (preupdate); } if (ed->x_resolution) { |