diff options
author | Philip Van Hoof <philip@codeminded.be> | 2010-11-24 15:12:13 +0100 |
---|---|---|
committer | Philip Van Hoof <philip@codeminded.be> | 2010-11-24 15:58:10 +0100 |
commit | d7bcb835c60e017bea321adcc267e8030659beda (patch) | |
tree | 98c8379143b9dd2428a658fbfbe81407a06d3672 | |
parent | f569909a00250bc970974c81cc58500ce6de76b8 (diff) | |
download | tracker-d7bcb835c60e017bea321adcc267e8030659beda.tar.gz |
libtracker-extract: xmp: Fixed nested use of anonymous blank nodes
Fixes NB#202291
-rw-r--r-- | src/libtracker-extract/tracker-xmp.c | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/src/libtracker-extract/tracker-xmp.c b/src/libtracker-extract/tracker-xmp.c index 7b3b39489..6ff14f654 100644 --- a/src/libtracker-extract/tracker-xmp.c +++ b/src/libtracker-extract/tracker-xmp.c @@ -872,9 +872,11 @@ tracker_xmp_apply (TrackerSparqlBuilder *preupdate, } if (data->address || data->country || data->city) { + gchar *addruri; + tracker_sparql_builder_predicate (metadata, "mlo:location"); - tracker_sparql_builder_object_blank_open (metadata); + tracker_sparql_builder_object_blank_open (metadata); /* GeoPoint */ tracker_sparql_builder_predicate (metadata, "a"); tracker_sparql_builder_object (metadata, "mlo:GeoPoint"); @@ -898,35 +900,41 @@ tracker_xmp_apply (TrackerSparqlBuilder *preupdate, tracker_sparql_builder_object_unvalidated (metadata, data->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_predicate (metadata, "a"); - tracker_sparql_builder_object (metadata, "nco:PostalAddress"); + tracker_sparql_builder_object_iri (metadata, addruri); + + 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 (data->address) { - tracker_sparql_builder_predicate (metadata, "nco:streetAddress"); - tracker_sparql_builder_object_unvalidated (metadata, data->address); + tracker_sparql_builder_predicate (preupdate, "nco:streetAddress"); + tracker_sparql_builder_object_unvalidated (preupdate, data->address); } if (data->state) { - tracker_sparql_builder_predicate (metadata, "nco:region"); - tracker_sparql_builder_object_unvalidated (metadata, data->state); + tracker_sparql_builder_predicate (preupdate, "nco:region"); + tracker_sparql_builder_object_unvalidated (preupdate, data->state); } if (data->city) { - tracker_sparql_builder_predicate (metadata, "nco:locality"); - tracker_sparql_builder_object_unvalidated (metadata, data->city); + tracker_sparql_builder_predicate (preupdate, "nco:locality"); + tracker_sparql_builder_object_unvalidated (preupdate, data->city); } if (data->country) { - tracker_sparql_builder_predicate (metadata, "nco:country"); - tracker_sparql_builder_object_unvalidated (metadata, data->country); + tracker_sparql_builder_predicate (preupdate, "nco:country"); + tracker_sparql_builder_object_unvalidated (preupdate, data->country); } - tracker_sparql_builder_object_blank_close (metadata); /* PostalAddress */ - - tracker_sparql_builder_object_blank_close (metadata); + tracker_sparql_builder_insert_close (preupdate); } return TRUE; |