[tracker] Fixed nco:hasAffiliation in TIFF and JPEG extractors



commit 07580f1fbf179924e81b62e97fce08dbe3ce316c
Author: Philip Van Hoof <philip codeminded be>
Date:   Mon Jan 25 12:51:02 2010 +0100

    Fixed nco:hasAffiliation in TIFF and JPEG extractors

 src/tracker-extract/tracker-extract-jpeg.c |   34 ++++++++++++++++++--------
 src/tracker-extract/tracker-extract-tiff.c |   35 ++++++++++++++++++---------
 2 files changed, 46 insertions(+), 23 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-jpeg.c b/src/tracker-extract/tracker-extract-jpeg.c
index a2dc6a7..d467ec3 100644
--- a/src/tracker-extract/tracker-extract-jpeg.c
+++ b/src/tracker-extract/tracker-extract-jpeg.c
@@ -341,17 +341,6 @@ extract_jpeg (const gchar          *uri,
 			g_free (id.contact);
 		}
 
-		if (id.byline_title) {
-			tracker_sparql_builder_predicate (metadata, "nco:hasAffiliation");
-			tracker_sparql_builder_object_blank_open (metadata);
-			tracker_sparql_builder_predicate (metadata, "a");
-			tracker_sparql_builder_object (metadata, "nco:Affiliation");
-			tracker_sparql_builder_predicate (metadata, "nco:title");
-			tracker_sparql_builder_object_unvalidated (metadata, id.byline_title);
-			tracker_sparql_builder_object_blank_close (metadata);
-			g_free (id.byline_title);
-		}
-
 		if (xd.keywords) {
 			insert_keywords (metadata, xd.keywords);
 			g_free (xd.keywords);
@@ -533,16 +522,39 @@ extract_jpeg (const gchar          *uri,
 		}
 
 		if (md.creator) {
+
+			if (id.byline_title) {
+				tracker_sparql_builder_subject (metadata, "_:affiliation_by_line");
+				tracker_sparql_builder_predicate (metadata, "a");
+				tracker_sparql_builder_object (metadata, "nco:Affiliation");
+
+				tracker_sparql_builder_subject (metadata, "_:affiliation_by_line");
+				tracker_sparql_builder_predicate (metadata, "nco:title");
+				tracker_sparql_builder_object_unvalidated (metadata, id.byline_title);
+
+				tracker_sparql_builder_subject_iri (metadata, uri);
+			}
+
 			tracker_sparql_builder_predicate (metadata, "nco:creator");
 			tracker_sparql_builder_object_blank_open (metadata);
 			tracker_sparql_builder_predicate (metadata, "a");
 			tracker_sparql_builder_object (metadata, "nco:Contact");
 			tracker_sparql_builder_predicate (metadata, "nco:fullname");
 			tracker_sparql_builder_object_unvalidated (metadata, md.creator);
+
+			if (id.byline_title) {
+				tracker_sparql_builder_predicate (metadata, "a");
+				tracker_sparql_builder_object (metadata, "nco:PersonContact");
+				tracker_sparql_builder_predicate (metadata, "nco:hasAffiliation");
+				tracker_sparql_builder_object (metadata, "_:affiliation_by_line");
+			}
+
 			tracker_sparql_builder_object_blank_close (metadata);
 			g_free (md.creator);
 		}
 
+		g_free (id.byline_title);
+
 		if (md.comment) {
 			tracker_sparql_builder_predicate (metadata, "nie:comment");
 			tracker_sparql_builder_object_unvalidated (metadata, md.comment);
diff --git a/src/tracker-extract/tracker-extract-tiff.c b/src/tracker-extract/tracker-extract-tiff.c
index 51a3fdd..31d5408 100644
--- a/src/tracker-extract/tracker-extract-tiff.c
+++ b/src/tracker-extract/tracker-extract-tiff.c
@@ -497,16 +497,6 @@ extract_tiff (const gchar *uri, TrackerSparqlBuilder *metadata)
 		g_free (iptc_data.contact);
 	}
 
-	if (iptc_data.byline_title) {
-		tracker_sparql_builder_predicate (metadata, "nco:hasAffiliation");
-		tracker_sparql_builder_object_blank_open (metadata);
-		tracker_sparql_builder_predicate (metadata, "a");
-		tracker_sparql_builder_object (metadata, "nco:Affiliation");
-		tracker_sparql_builder_predicate (metadata, "nco:title");
-		tracker_sparql_builder_object_unvalidated (metadata, iptc_data.byline_title);
-		tracker_sparql_builder_object_blank_close (metadata);
-		g_free (iptc_data.byline_title);
-	}
 
 	if (xmp_data.publisher) {
 		tracker_sparql_builder_predicate (metadata, "nco:publisher");
@@ -700,17 +690,38 @@ extract_tiff (const gchar *uri, TrackerSparqlBuilder *metadata)
 	}
 
 	if (merge_data.creator) {
-		tracker_sparql_builder_predicate (metadata, "nco:creator");
 
+		if (iptc_data.byline_title) {
+			tracker_sparql_builder_subject (metadata, "_:affiliation_by_line");
+			tracker_sparql_builder_predicate (metadata, "a");
+			tracker_sparql_builder_object (metadata, "nco:Affiliation");
+
+			tracker_sparql_builder_subject (metadata, "_:affiliation_by_line");
+			tracker_sparql_builder_predicate (metadata, "nco:title");
+			tracker_sparql_builder_object_unvalidated (metadata, iptc_data.byline_title);
+
+			tracker_sparql_builder_subject_iri (metadata, uri);
+		}
+
+		tracker_sparql_builder_predicate (metadata, "nco:creator");
 		tracker_sparql_builder_object_blank_open (metadata);
 		tracker_sparql_builder_predicate (metadata, "a");
 		tracker_sparql_builder_object (metadata, "nco:Contact");
-
 		tracker_sparql_builder_predicate (metadata, "nco:fullname");
 		tracker_sparql_builder_object_unvalidated (metadata, merge_data.creator);
+
+		if (iptc_data.byline_title) {
+			tracker_sparql_builder_predicate (metadata, "a");
+			tracker_sparql_builder_object (metadata, "nco:PersonContact");
+			tracker_sparql_builder_predicate (metadata, "nco:hasAffiliation");
+			tracker_sparql_builder_object (metadata, "_:affiliation_by_line");
+		}
+
 		tracker_sparql_builder_object_blank_close (metadata);
 		g_free (merge_data.creator);
 	}
+
+	g_free (iptc_data.byline_title);
 }
 
 TrackerExtractData *



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