[tracker/urn-in-extractor: 3/3] tracker-extract-playlist: Produce correct SparQL for nfo:MediaFileListEntry.



commit d42e09fa1d3ec7a1c71648f5e4a82cebea55db29
Author: Carlos Garnacho <carlos lanedo com>
Date:   Wed Feb 24 11:06:25 2010 +0100

    tracker-extract-playlist: Produce correct SparQL for nfo:MediaFileListEntry.
    
    nie:isStoredAs now uses tracker_extract_get_urn() in order to link correctly
    nfo:MediaFileListEntry entities with their nfo:MediaList.

 src/tracker-extract/tracker-extract-playlist.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-playlist.c b/src/tracker-extract/tracker-extract-playlist.c
index 801e9d2..5c4275c 100644
--- a/src/tracker-extract/tracker-extract-playlist.c
+++ b/src/tracker-extract/tracker-extract-playlist.c
@@ -58,6 +58,7 @@ typedef struct {
 	gint64 total_time;
 	TrackerSparqlBuilder *metadata;
 	const gchar *uri;
+	const gchar *urn;
 } PlaylistMetadata;
 
 static void extract_playlist (const gchar          *uri,
@@ -100,7 +101,12 @@ entry_parsed (TotemPlParser *parser, const gchar *to_uri, GHashTable *to_metadat
 	tracker_sparql_builder_object (data->metadata, "nie:InformationElement");
 
 	tracker_sparql_builder_predicate (data->metadata, "nie:isStoredAs");
-	tracker_sparql_builder_object_iri (data->metadata, data->uri);
+	if (data->urn) {
+		tracker_sparql_builder_object_iri (data->metadata, data->urn);
+	} else {
+		tracker_sparql_builder_object (data->metadata, "_:file");
+	}
+
 	tracker_sparql_builder_predicate (data->metadata, "nie:url");
 	tracker_sparql_builder_object_string (data->metadata, data->uri);
 
@@ -133,7 +139,8 @@ extract_playlist (const gchar          *uri,
 {
 	TotemPlParser       *pl;
 	TotemPlParserResult  result;
-	PlaylistMetadata     data = { 0, 0, metadata, uri };
+	const gchar         *urn = tracker_extract_get_urn ();
+	PlaylistMetadata     data = { 0, 0, metadata, uri, urn };
 
 	pl = totem_pl_parser_new ();
 
@@ -145,9 +152,6 @@ extract_playlist (const gchar          *uri,
 	tracker_sparql_builder_predicate (metadata, "a");
 	tracker_sparql_builder_object (metadata, "nfo:MediaList");
 
-	tracker_sparql_builder_predicate (metadata, "nie:isStoredAs");
-	tracker_sparql_builder_object_iri (metadata, uri);
-
 	result = totem_pl_parser_parse (pl, uri, FALSE);
 
 	switch (result) {



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