This patch doesn't yet replace the move logic, but already introduces
the isStoredAs predicate.

I'm not certain about the applications.c file, as it apparently isn't
closing the sparql update query. Hence attaching this patch for review
by Jürg.


-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be
        
diff --git a/src/plugins/evolution/tracker-evolution-registrar.c b/src/plugins/evolution/tracker-evolution-registrar.c
index e61ee32..161c66f 100644
--- a/src/plugins/evolution/tracker-evolution-registrar.c
+++ b/src/plugins/evolution/tracker-evolution-registrar.c
@@ -279,6 +279,7 @@ perform_set (TrackerEvolutionRegistrar *object,
 {
 	guint i = 0;
 	TrackerSparqlBuilder *sparql;
+	const gchar *uri = subject; /* Change to URN */
 
 	sparql = tracker_sparql_builder_new_update ();
 
@@ -292,6 +293,13 @@ perform_set (TrackerEvolutionRegistrar *object,
 	tracker_sparql_builder_predicate (sparql, "rdf:type");
 	tracker_sparql_builder_object (sparql, "nmo:Email");
 
+	tracker_sparql_builder_subject_iri (sparql, uri);
+	tracker_sparql_builder_predicate (sparql, "a");
+	tracker_sparql_builder_object (sparql, "nie:DataObject");
+	tracker_sparql_builder_subject_iri (sparql, subject);
+	tracker_sparql_builder_predicate (sparql, "nie:isStoredAs");
+	tracker_sparql_builder_object_iri (sparql, uri);
+
 	tracker_sparql_builder_subject_iri (sparql, subject);
 	tracker_sparql_builder_predicate (sparql, "rdf:type");
 	tracker_sparql_builder_object (sparql, "nmo:MailboxDataObject");
diff --git a/src/plugins/kmail/tracker-kmail-registrar.c b/src/plugins/kmail/tracker-kmail-registrar.c
index b4b4e5e..bde666f 100644
--- a/src/plugins/kmail/tracker-kmail-registrar.c
+++ b/src/plugins/kmail/tracker-kmail-registrar.c
@@ -162,6 +162,7 @@ perform_set (TrackerKMailRegistrar *object,
 {
 	guint i = 0;
 	TrackerSparqlBuilder *sparql;
+	const gchar *uri = subject; /* Change to URN */
 
 	sparql = tracker_sparql_builder_new_update ();
 
@@ -175,6 +176,13 @@ perform_set (TrackerKMailRegistrar *object,
 	tracker_sparql_builder_predicate (sparql, "rdf:type");
 	tracker_sparql_builder_object (sparql, "nmo:Email");
 
+	tracker_sparql_builder_subject_iri (sparql, uri);
+	tracker_sparql_builder_predicate (sparql, "a");
+	tracker_sparql_builder_object (sparql, "nie:DataObject");
+	tracker_sparql_builder_subject_iri (sparql, subject);
+	tracker_sparql_builder_predicate (sparql, "nie:isStoredAs");
+	tracker_sparql_builder_object_iri (sparql, uri);
+
 	tracker_sparql_builder_subject_iri (sparql, subject);
 	tracker_sparql_builder_predicate (sparql, "rdf:type");
 	tracker_sparql_builder_object (sparql, "nmo:MailboxDataObject");
diff --git a/src/tracker-miner-fs/modules/applications.c b/src/tracker-miner-fs/modules/applications.c
index 2e8825a..65dffbe 100644
--- a/src/tracker-miner-fs/modules/applications.c
+++ b/src/tracker-miner-fs/modules/applications.c
@@ -309,6 +309,13 @@ tracker_application_file_get_metadata (TrackerModuleFile *file, gchar **mime_typ
 		tracker_sparql_builder_predicate (sparql, "nfo:fileName");
 		tracker_sparql_builder_object_string (sparql, filename);
 		g_free (filename);
+
+		tracker_sparql_builder_subject_iri (sparql, uri);
+		tracker_sparql_builder_predicate (sparql, "a");
+		tracker_sparql_builder_object (sparql, "nie:DataObject");
+		tracker_sparql_builder_subject_iri (sparql, uri); /* Change to URN */
+		tracker_sparql_builder_predicate (sparql, "nie:isStoredAs");
+		tracker_sparql_builder_object_iri (sparql, uri);
 	}
 
 	if (cats)
diff --git a/src/tracker-miner-fs/modules/evolution-imap.c b/src/tracker-miner-fs/modules/evolution-imap.c
index a48c27b..245522d 100644
--- a/src/tracker-miner-fs/modules/evolution-imap.c
+++ b/src/tracker-miner-fs/modules/evolution-imap.c
@@ -918,6 +918,13 @@ get_message_metadata (TrackerModuleFile *file)
 		tracker_sparql_builder_predicate (sparql, "a");
 		tracker_sparql_builder_object (sparql, "nmo:Email");
 
+		tracker_sparql_builder_subject_iri (sparql, uri);
+		tracker_sparql_builder_predicate (sparql, "a");
+		tracker_sparql_builder_object (sparql, "nie:DataObject");
+		tracker_sparql_builder_subject_iri (sparql, uri); /* Change to URN */
+		tracker_sparql_builder_predicate (sparql, "nie:isStoredAs");
+		tracker_sparql_builder_object_iri (sparql, uri);
+
 		tracker_sparql_builder_predicate (sparql, "nmo:sentDate");
 		tracker_sparql_builder_object_date (sparql, &t);
 
diff --git a/src/tracker-miner-fs/modules/evolution-pop.c b/src/tracker-miner-fs/modules/evolution-pop.c
index ecfbd8d..8108ccf 100644
--- a/src/tracker-miner-fs/modules/evolution-pop.c
+++ b/src/tracker-miner-fs/modules/evolution-pop.c
@@ -344,6 +344,13 @@ get_message_metadata (TrackerModuleFile *file, GMimeMessage *message)
 	tracker_sparql_builder_predicate (sparql, "a");
 	tracker_sparql_builder_object (sparql, "nmo:Email");
 
+	tracker_sparql_builder_subject_iri (sparql, uri);
+	tracker_sparql_builder_predicate (sparql, "a");
+	tracker_sparql_builder_object (sparql, "nie:DataObject");
+	tracker_sparql_builder_subject_iri (sparql, uri); /* Change to URN */
+	tracker_sparql_builder_predicate (sparql, "nie:isStoredAs");
+	tracker_sparql_builder_object_iri (sparql, uri);
+
 	g_mime_message_get_date (message, &t, NULL);
 	tracker_sparql_builder_predicate (sparql, "nmo:sentDate");
 	tracker_sparql_builder_object_date (sparql, &t);
diff --git a/src/tracker-miner-fs/tracker-module-metadata-utils.c b/src/tracker-miner-fs/tracker-module-metadata-utils.c
index 3fe867a..6557670 100644
--- a/src/tracker-miner-fs/tracker-module-metadata-utils.c
+++ b/src/tracker-miner-fs/tracker-module-metadata-utils.c
@@ -783,6 +783,13 @@ tracker_module_metadata_utils_get_data (GFile *file, TrackerSparqlBuilder *sparq
 	tracker_sparql_builder_predicate (sparql, "a");
 	tracker_sparql_builder_object (sparql, "nfo:FileDataObject");
 
+	tracker_sparql_builder_subject_iri (sparql, uri);
+	tracker_sparql_builder_predicate (sparql, "a");
+	tracker_sparql_builder_object (sparql, "nie:DataObject");
+	tracker_sparql_builder_subject_iri (sparql, uri); /* Change to URN */
+	tracker_sparql_builder_predicate (sparql, "nie:isStoredAs");
+	tracker_sparql_builder_object_iri (sparql, uri);
+
 	if (g_file_info_get_file_type (file_info) == G_FILE_TYPE_DIRECTORY) {
 		tracker_sparql_builder_object (sparql, "nfo:Folder");
 	}
_______________________________________________
tracker-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/tracker-list

Reply via email to