From bb75f2d8f45b9d8247c97be025f18eb149f94cd5 Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Tue, 2 Jun 2020 12:26:16 +0200 Subject: cli: tracker export: Hardcode some value types We were outputting tag URIs formatted as strings rather than URIs. The root cause here is that tracker_sparql_cursor_get_value_type() doesn't reliably distingish URIs and strings for us. I worked around this by querying from the schema, but the query doesn't work when rdfs:range is rdf:Resource. Rather than complicate the query, I've hardcoded the values here. --- src/tracker/tracker-export.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/tracker/tracker-export.c b/src/tracker/tracker-export.c index 87947788f..96f3ae955 100644 --- a/src/tracker/tracker-export.c +++ b/src/tracker/tracker-export.c @@ -337,18 +337,17 @@ export_run_photo_favourites (void) const gchar *query; g_autoptr(GError) error = NULL; - query = "SELECT \"\" COALESCE(nie:url(?u), ?u) ?p ?v" - " (EXISTS { ?p rdfs:range [ rdfs:subClassOf rdfs:Resource ] }) AS ?is_resource " + query = "SELECT \"\" COALESCE(nie:url(?u), ?u) ?p ?v ?is_resource" "{" " { " - " SELECT ?u (rdf:type AS ?p) (nmm:Photo AS ?v) " + " SELECT ?u (rdf:type AS ?p) (nmm:Photo AS ?v) (true AS ?is_resource)" " { " " ?u a nmm:Photo ; nao:hasTag nao:predefined-tag-favorite . " " } " " } " " UNION " " { " - " SELECT ?u (nao:hasTag AS ?p) (nao:predefined-tag-favorite AS ?v) " + " SELECT ?u (nao:hasTag AS ?p) (nao:predefined-tag-favorite AS ?v) (true AS ?is_resource)" " { " " ?u a nmm:Photo ; nao:hasTag nao:predefined-tag-favorite . " " } " @@ -371,18 +370,17 @@ export_run_files_starred (void) const gchar *query; g_autoptr(GError) error = NULL; - query = "SELECT \"\" COALESCE(nie:url(?u), ?u) ?p ?v" - " (EXISTS { ?p rdfs:range [ rdfs:subClassOf rdfs:Resource ] }) AS ?is_resource " + query = "SELECT \"\" COALESCE(nie:url(?u), ?u) ?p ?v ?is_resource" "{" " { " - " SELECT ?u (rdf:type AS ?p) (nfo:FileDataObject AS ?v) " + " SELECT ?u (rdf:type AS ?p) (nfo:FileDataObject AS ?v) (true AS ?is_resource)" " { " " ?u a nfo:FileDataObject ; nao:hasTag " " } " " } " " UNION " " { " - " SELECT ?u (nao:hasTag AS ?p) ( AS ?v) " + " SELECT ?u (nao:hasTag AS ?p) ( AS ?v) (true AS ?is_resource)" " { " " ?u a nfo:FileDataObject ; nao:hasTag " " } " -- cgit v1.2.1