[tracker/wip/carlosg/serialize-api: 9/13] libtracker-data: Forward annotated column types on DESCRIBE queries
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/serialize-api: 9/13] libtracker-data: Forward annotated column types on DESCRIBE queries
- Date: Wed, 2 Feb 2022 13:48:32 +0000 (UTC)
commit 2ef7f31c5c94cbdfc3ed05c79478efb9140aea41
Author: Carlos Garnacho <carlosg gnome org>
Date: Sun Jan 30 16:09:00 2022 +0100
libtracker-data: Forward annotated column types on DESCRIBE queries
All of subject/predicate/graph are ensured to always be resources, the
only variable type is the object, which is fetched from the tracker_triples
table directly.
Since this involves changes (towards better) in the interpretation of
RDF data for our serialization tests, update these as well.
src/libtracker-data/tracker-sparql.c | 20 +++++++++++++-------
.../serialize/describe-graph-trig.out | 6 +++---
.../serialize/describe-graph-ttl.out | 4 ++--
.../serialize/describe-single-trig.out | 2 +-
.../serialize/describe-single-ttl.out | 2 +-
.../serialize/describe-var-trig.out | 4 ++--
.../libtracker-sparql/serialize/describe-var-ttl.out | 4 ++--
7 files changed, 24 insertions(+), 18 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c
index 45b5e3b15..0a6007156 100644
--- a/src/libtracker-data/tracker-sparql.c
+++ b/src/libtracker-data/tracker-sparql.c
@@ -3405,13 +3405,19 @@ translate_DescribeQuery (TrackerSparql *sparql,
/* DescribeQuery ::= 'DESCRIBE' ( VarOrIri+ | '*' ) DatasetClause* WhereClause? SolutionModifier
*/
_expect (sparql, RULE_TYPE_LITERAL, LITERAL_DESCRIBE);
- _append_string (sparql,
- "SELECT "
- " COALESCE((SELECT Uri FROM Resource WHERE ID = subject), 'urn:bnode:' || subject),"
- " (SELECT Uri FROM Resource WHERE ID = predicate),"
- " object, "
- " (SELECT Uri FROM Resource WHERE ID = graph) "
- "FROM tracker_triples ");
+ _append_string_printf (sparql,
+ "SELECT "
+ " COALESCE((SELECT Uri FROM Resource WHERE ID = subject), 'urn:bnode:' ||
subject),"
+ " (SELECT Uri FROM Resource WHERE ID = predicate),"
+ " object, "
+ " (SELECT Uri FROM Resource WHERE ID = graph) ");
+
+ handle_value_type_column (sparql, TRACKER_PROPERTY_TYPE_RESOURCE, NULL);
+ handle_value_type_column (sparql, TRACKER_PROPERTY_TYPE_RESOURCE, NULL);
+ _append_string (sparql, ", object_type ");
+ handle_value_type_column (sparql, TRACKER_PROPERTY_TYPE_RESOURCE, NULL);
+
+ _append_string_printf (sparql, "FROM tracker_triples ");
if (sparql->policy.graphs) {
_append_graph_checks (sparql, "graph",
diff --git a/tests/libtracker-sparql/serialize/describe-graph-trig.out
b/tests/libtracker-sparql/serialize/describe-graph-trig.out
index ac95a7f36..07165da63 100644
--- a/tests/libtracker-sparql/serialize/describe-graph-trig.out
+++ b/tests/libtracker-sparql/serialize/describe-graph-trig.out
@@ -37,11 +37,11 @@ GRAPH <B> {
}
GRAPH <A> {
- <a> rdf:type "http://www.w3.org/2000/01/rdf-schema#Resource",
"http://tracker.api.gnome.org/ontology/v3/nie#InformationElement",
"http://tracker.api.gnome.org/ontology/v3/nfo#Media",
"http://tracker.api.gnome.org/ontology/v3/nmm#MusicPiece" .
+ <a> rdf:type rdfs:Resource, nie:InformationElement, nfo:Media, nmm:MusicPiece .
}
GRAPH <B> {
- <a> rdf:type "http://www.w3.org/2000/01/rdf-schema#Resource",
"http://tracker.api.gnome.org/ontology/v3/nie#InformationElement",
"http://tracker.api.gnome.org/ontology/v3/nfo#Media",
"http://tracker.api.gnome.org/ontology/v3/nmm#MusicPiece" .
+ <a> rdf:type rdfs:Resource, nie:InformationElement, nfo:Media, nmm:MusicPiece .
- <b> rdf:type "http://www.w3.org/2000/01/rdf-schema#Resource",
"http://tracker.api.gnome.org/ontology/v3/nie#InformationElement",
"http://tracker.api.gnome.org/ontology/v3/nfo#Media",
"http://tracker.api.gnome.org/ontology/v3/nmm#MusicPiece" .
+ <b> rdf:type rdfs:Resource, nie:InformationElement, nfo:Media, nmm:MusicPiece .
}
diff --git a/tests/libtracker-sparql/serialize/describe-graph-ttl.out
b/tests/libtracker-sparql/serialize/describe-graph-ttl.out
index 5d52de100..f6e9b5199 100644
--- a/tests/libtracker-sparql/serialize/describe-graph-ttl.out
+++ b/tests/libtracker-sparql/serialize/describe-graph-ttl.out
@@ -24,6 +24,6 @@
-<a> rdf:type "http://www.w3.org/2000/01/rdf-schema#Resource",
"http://tracker.api.gnome.org/ontology/v3/nie#InformationElement",
"http://tracker.api.gnome.org/ontology/v3/nfo#Media",
"http://tracker.api.gnome.org/ontology/v3/nmm#MusicPiece", "http://www.w3.org/2000/01/rdf-schema#Resource",
"http://tracker.api.gnome.org/ontology/v3/nie#InformationElement",
"http://tracker.api.gnome.org/ontology/v3/nfo#Media",
"http://tracker.api.gnome.org/ontology/v3/nmm#MusicPiece" .
+<a> rdf:type rdfs:Resource, nie:InformationElement, nfo:Media, nmm:MusicPiece, rdfs:Resource,
nie:InformationElement, nfo:Media, nmm:MusicPiece .
-<b> rdf:type "http://www.w3.org/2000/01/rdf-schema#Resource",
"http://tracker.api.gnome.org/ontology/v3/nie#InformationElement",
"http://tracker.api.gnome.org/ontology/v3/nfo#Media",
"http://tracker.api.gnome.org/ontology/v3/nmm#MusicPiece" .
+<b> rdf:type rdfs:Resource, nie:InformationElement, nfo:Media, nmm:MusicPiece .
diff --git a/tests/libtracker-sparql/serialize/describe-single-trig.out
b/tests/libtracker-sparql/serialize/describe-single-trig.out
index 6e485625d..ec5667d31 100644
--- a/tests/libtracker-sparql/serialize/describe-single-trig.out
+++ b/tests/libtracker-sparql/serialize/describe-single-trig.out
@@ -18,5 +18,5 @@
rdfs:Resource nrl:classSpecification "https://www.w3.org/TR/rdf-schema/#ch_resource" ;
rdfs:label "All Resources" ;
rdfs:comment "All resources" ;
- rdf:type "http://www.w3.org/2000/01/rdf-schema#Resource", "http://www.w3.org/2000/01/rdf-schema#Class" .
+ rdf:type rdfs:Resource, rdfs:Class .
}
diff --git a/tests/libtracker-sparql/serialize/describe-single-ttl.out
b/tests/libtracker-sparql/serialize/describe-single-ttl.out
index fed9b04df..78b8ce55a 100644
--- a/tests/libtracker-sparql/serialize/describe-single-ttl.out
+++ b/tests/libtracker-sparql/serialize/describe-single-ttl.out
@@ -17,4 +17,4 @@
rdfs:Resource nrl:classSpecification "https://www.w3.org/TR/rdf-schema/#ch_resource" ;
rdfs:label "All Resources" ;
rdfs:comment "All resources" ;
- rdf:type "http://www.w3.org/2000/01/rdf-schema#Resource", "http://www.w3.org/2000/01/rdf-schema#Class" .
+ rdf:type rdfs:Resource, rdfs:Class .
diff --git a/tests/libtracker-sparql/serialize/describe-var-trig.out
b/tests/libtracker-sparql/serialize/describe-var-trig.out
index f4a3af0e5..eb1ceda36 100644
--- a/tests/libtracker-sparql/serialize/describe-var-trig.out
+++ b/tests/libtracker-sparql/serialize/describe-var-trig.out
@@ -18,6 +18,6 @@
rdfs:Class nrl:classSpecification "https://www.w3.org/TR/rdf-schema/#ch_class" ;
rdfs:label "Class" ;
rdfs:comment "The class of classes" ;
- rdfs:subClassOf "http://www.w3.org/2000/01/rdf-schema#Resource" ;
- rdf:type "http://www.w3.org/2000/01/rdf-schema#Resource", "http://www.w3.org/2000/01/rdf-schema#Class" .
+ rdfs:subClassOf rdfs:Resource ;
+ rdf:type rdfs:Resource, rdfs:Class .
}
diff --git a/tests/libtracker-sparql/serialize/describe-var-ttl.out
b/tests/libtracker-sparql/serialize/describe-var-ttl.out
index 6718f7bed..8cd80c5d4 100644
--- a/tests/libtracker-sparql/serialize/describe-var-ttl.out
+++ b/tests/libtracker-sparql/serialize/describe-var-ttl.out
@@ -17,5 +17,5 @@
rdfs:Class nrl:classSpecification "https://www.w3.org/TR/rdf-schema/#ch_class" ;
rdfs:label "Class" ;
rdfs:comment "The class of classes" ;
- rdfs:subClassOf "http://www.w3.org/2000/01/rdf-schema#Resource" ;
- rdf:type "http://www.w3.org/2000/01/rdf-schema#Resource", "http://www.w3.org/2000/01/rdf-schema#Class" .
+ rdfs:subClassOf rdfs:Resource ;
+ rdf:type rdfs:Resource, rdfs:Class .
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]