diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2022-07-11 20:31:09 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2023-01-10 13:02:31 +0100 |
commit | aa67cc737a82660c69dfed2d7da7ea7ac4960527 (patch) | |
tree | 669bf7053533a89cbb16307a6e9ab292b49b1c3d | |
parent | af89f12b1547ff0d7f01286495c545a63aa1bf29 (diff) | |
download | tracker-aa67cc737a82660c69dfed2d7da7ea7ac4960527.tar.gz |
libtracker-sparql: Integrate JSON-LD serializers and deserializers in API
Add a new TRACKER_RDF_FORMAT_JSON_LD TrackerRdfFormat enum value, and use
the serializer/deserializer objects for those, so that this new value is
accepted in all API that takes this enum.
-rw-r--r-- | src/libtracker-sparql/direct/tracker-direct-statement.c | 2 | ||||
-rw-r--r-- | src/libtracker-sparql/direct/tracker-direct.c | 2 | ||||
-rw-r--r-- | src/libtracker-sparql/remote/tracker-http-module.c | 1 | ||||
-rw-r--r-- | src/libtracker-sparql/tracker-deserializer.c | 5 | ||||
-rw-r--r-- | src/libtracker-sparql/tracker-endpoint-http.c | 1 | ||||
-rw-r--r-- | src/libtracker-sparql/tracker-enums-private.h | 1 | ||||
-rw-r--r-- | src/libtracker-sparql/tracker-enums.h | 4 | ||||
-rw-r--r-- | src/libtracker-sparql/tracker-resource.c | 2 | ||||
-rw-r--r-- | src/libtracker-sparql/tracker-serializer.c | 4 |
9 files changed, 22 insertions, 0 deletions
diff --git a/src/libtracker-sparql/direct/tracker-direct-statement.c b/src/libtracker-sparql/direct/tracker-direct-statement.c index 36ff5d198..1f4f695a8 100644 --- a/src/libtracker-sparql/direct/tracker-direct-statement.c +++ b/src/libtracker-sparql/direct/tracker-direct-statement.c @@ -192,6 +192,8 @@ convert_format (TrackerRdfFormat format) return TRACKER_SERIALIZER_FORMAT_TTL; case TRACKER_RDF_FORMAT_TRIG: return TRACKER_SERIALIZER_FORMAT_TRIG; + case TRACKER_RDF_FORMAT_JSON_LD: + return TRACKER_SERIALIZER_FORMAT_JSON_LD; default: g_assert_not_reached (); } diff --git a/src/libtracker-sparql/direct/tracker-direct.c b/src/libtracker-sparql/direct/tracker-direct.c index a84bc3990..ab97a90bb 100644 --- a/src/libtracker-sparql/direct/tracker-direct.c +++ b/src/libtracker-sparql/direct/tracker-direct.c @@ -220,6 +220,8 @@ convert_format (TrackerRdfFormat format) return TRACKER_SERIALIZER_FORMAT_TTL; case TRACKER_RDF_FORMAT_TRIG: return TRACKER_SERIALIZER_FORMAT_TRIG; + case TRACKER_RDF_FORMAT_JSON_LD: + return TRACKER_SERIALIZER_FORMAT_JSON_LD; default: g_assert_not_reached (); } diff --git a/src/libtracker-sparql/remote/tracker-http-module.c b/src/libtracker-sparql/remote/tracker-http-module.c index 0c6c17dc7..ed87cd1b7 100644 --- a/src/libtracker-sparql/remote/tracker-http-module.c +++ b/src/libtracker-sparql/remote/tracker-http-module.c @@ -40,6 +40,7 @@ static const gchar *mimetypes[] = { "application/sparql-results+xml", "text/turtle", "application/trig", + "application/ld+json", }; G_STATIC_ASSERT (G_N_ELEMENTS (mimetypes) == TRACKER_N_SERIALIZER_FORMATS); diff --git a/src/libtracker-sparql/tracker-deserializer.c b/src/libtracker-sparql/tracker-deserializer.c index b1ea33331..0b0d4f8bf 100644 --- a/src/libtracker-sparql/tracker-deserializer.c +++ b/src/libtracker-sparql/tracker-deserializer.c @@ -24,6 +24,7 @@ #include "tracker-deserializer.h" #include "tracker-deserializer-turtle.h" #include "tracker-deserializer-json.h" +#include "tracker-deserializer-json-ld.h" #include "tracker-deserializer-xml.h" #include "tracker-private.h" @@ -181,6 +182,8 @@ tracker_deserializer_new (GInputStream *stream, return tracker_deserializer_turtle_new (stream, namespaces); case TRACKER_SERIALIZER_FORMAT_TRIG: return tracker_deserializer_trig_new (stream, namespaces); + case TRACKER_SERIALIZER_FORMAT_JSON_LD: + return tracker_deserializer_json_ld_new (stream, namespaces); default: g_warn_if_reached (); return NULL; @@ -197,6 +200,8 @@ pick_format_for_file (GFile *file) if (g_str_has_suffix (uri, ".trig")) format = TRACKER_SERIALIZER_FORMAT_TRIG; + if (g_str_has_suffix (uri, ".jsonld")) + format = TRACKER_SERIALIZER_FORMAT_JSON_LD; g_free (uri); diff --git a/src/libtracker-sparql/tracker-endpoint-http.c b/src/libtracker-sparql/tracker-endpoint-http.c index 52a19458e..e38bb78bb 100644 --- a/src/libtracker-sparql/tracker-endpoint-http.c +++ b/src/libtracker-sparql/tracker-endpoint-http.c @@ -64,6 +64,7 @@ const gchar *supported_formats[] = { "http://www.w3.org/ns/formats/SPARQL_Results_XML", "http://www.w3.org/ns/formats/Turtle", "http://www.w3.org/ns/formats/TriG", + "http://www.w3.org/ns/formats/JSON-LD", }; G_STATIC_ASSERT (G_N_ELEMENTS (supported_formats) == TRACKER_N_SERIALIZER_FORMATS); diff --git a/src/libtracker-sparql/tracker-enums-private.h b/src/libtracker-sparql/tracker-enums-private.h index e1b0792ae..fe38150f2 100644 --- a/src/libtracker-sparql/tracker-enums-private.h +++ b/src/libtracker-sparql/tracker-enums-private.h @@ -28,6 +28,7 @@ typedef enum TRACKER_SERIALIZER_FORMAT_XML, /* application/sparql-results+xml */ TRACKER_SERIALIZER_FORMAT_TTL, /* text/turtle */ TRACKER_SERIALIZER_FORMAT_TRIG, /* application/trig */ + TRACKER_SERIALIZER_FORMAT_JSON_LD, /* application/ld+json */ TRACKER_N_SERIALIZER_FORMATS } TrackerSerializerFormat; diff --git a/src/libtracker-sparql/tracker-enums.h b/src/libtracker-sparql/tracker-enums.h index 15bbde537..f0f41f5ea 100644 --- a/src/libtracker-sparql/tracker-enums.h +++ b/src/libtracker-sparql/tracker-enums.h @@ -28,6 +28,9 @@ * ([http://www.w3.org/ns/formats/Turtle](http://www.w3.org/ns/formats/Turtle)) * @TRACKER_RDF_FORMAT_TRIG: Trig format * ([http://www.w3.org/ns/formats/Trig](http://www.w3.org/ns/formats/Trig)) + * @TRACKER_RDF_FORMAT_JSON_LD: JSON-LD format + * ([http://www.w3.org/ns/formats/JSON-LD](http://www.w3.org/ns/formats/JSON-LD)). + * This value was added in version 3.5. * @TRACKER_N_RDF_FORMATS: The total number of RDF formats * * Describes a RDF format to be used in data exchange. @@ -35,6 +38,7 @@ typedef enum { TRACKER_RDF_FORMAT_TURTLE, TRACKER_RDF_FORMAT_TRIG, + TRACKER_RDF_FORMAT_JSON_LD, TRACKER_N_RDF_FORMATS } TrackerRdfFormat; diff --git a/src/libtracker-sparql/tracker-resource.c b/src/libtracker-sparql/tracker-resource.c index d3bde29ad..ff55d8ae8 100644 --- a/src/libtracker-sparql/tracker-resource.c +++ b/src/libtracker-sparql/tracker-resource.c @@ -1684,6 +1684,8 @@ convert_format (TrackerRdfFormat format) return TRACKER_SERIALIZER_FORMAT_TTL; case TRACKER_RDF_FORMAT_TRIG: return TRACKER_SERIALIZER_FORMAT_TRIG; + case TRACKER_RDF_FORMAT_JSON_LD: + return TRACKER_SERIALIZER_FORMAT_JSON_LD; case TRACKER_N_RDF_FORMATS: g_assert_not_reached (); } diff --git a/src/libtracker-sparql/tracker-serializer.c b/src/libtracker-sparql/tracker-serializer.c index a95961d92..f6a72f9fd 100644 --- a/src/libtracker-sparql/tracker-serializer.c +++ b/src/libtracker-sparql/tracker-serializer.c @@ -23,6 +23,7 @@ #include "tracker-serializer.h" #include "tracker-serializer-json.h" +#include "tracker-serializer-json-ld.h" #include "tracker-serializer-trig.h" #include "tracker-serializer-turtle.h" #include "tracker-serializer-xml.h" @@ -165,6 +166,9 @@ tracker_serializer_new (TrackerSparqlCursor *cursor, case TRACKER_SERIALIZER_FORMAT_TRIG: type = TRACKER_TYPE_SERIALIZER_TRIG; break; + case TRACKER_SERIALIZER_FORMAT_JSON_LD: + type = TRACKER_TYPE_SERIALIZER_JSON_LD; + break; default: g_warn_if_reached (); return NULL; |