[tracker/uuid-geo-stuff: 5/7] tracker-extract: pdf: Fixed nested use of anonymous blank nodes



commit 77a61c217b110d2e7b235e9dc0a38565d4cd2e88
Author: Philip Van Hoof <philip codeminded be>
Date:   Wed Nov 24 15:12:53 2010 +0100

    tracker-extract: pdf: Fixed nested use of anonymous blank nodes
    
    Fixes NB#202291

 src/tracker-extract/tracker-extract-pdf.cpp |   37 ++++++++++++++++-----------
 1 files changed, 22 insertions(+), 15 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-pdf.cpp b/src/tracker-extract/tracker-extract-pdf.cpp
index cec2ef3..5118f78 100644
--- a/src/tracker-extract/tracker-extract-pdf.cpp
+++ b/src/tracker-extract/tracker-extract-pdf.cpp
@@ -740,11 +740,13 @@ extract_pdf (const gchar          *uri,
 			}
 
 			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");
@@ -766,35 +768,40 @@ extract_pdf (const gchar          *uri,
 					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);
 			}
 
 			/* PDF keywords aren't used ATM (why not?) */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]