[tracker-miners/wip/carlosg/split-dataobject-informationelement: 33/38] tracker-extract: Ensure to set nfo:hasHash property on the DataObject
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker-miners/wip/carlosg/split-dataobject-informationelement: 33/38] tracker-extract: Ensure to set nfo:hasHash property on the DataObject
- Date: Thu, 30 Apr 2020 11:18:22 +0000 (UTC)
commit d9c60a01db90e13e7d605c953492d96255f7d425
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu Apr 23 17:33:07 2020 +0200
tracker-extract: Ensure to set nfo:hasHash property on the DataObject
This was kind of implied. In order to extract hash strings, explicitly
use the nie:isStoredAs relation, even though it points to the same
resource as of yet.
src/tracker-extract/tracker-extract-gstreamer.c | 7 +++++--
src/tracker-extract/tracker-extract-mp3.c | 7 +++++--
src/tracker-extract/tracker-extract-vorbis.c | 10 ++++++++--
.../test-extraction-data/audio/mp3-id3v2.4-1.expected.json | 14 +++++++++-----
.../test-extraction-data/audio/mp3-id3v2.4-2.expected.json | 14 +++++++++-----
.../test-extraction-data/audio/vorbis.expected.json | 14 +++++++++-----
6 files changed, 45 insertions(+), 21 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-gstreamer.c b/src/tracker-extract/tracker-extract-gstreamer.c
index 8ca887691..ca61e5634 100644
--- a/src/tracker-extract/tracker-extract-gstreamer.c
+++ b/src/tracker-extract/tracker-extract-gstreamer.c
@@ -884,7 +884,7 @@ extract_metadata (MetadataExtractor *extractor,
g_object_unref (file);
if (hash) {
- TrackerResource *hash_resource;
+ TrackerResource *file_resource, *hash_resource;
char *hash_str;
hash_resource = tracker_resource_new (NULL);
@@ -896,7 +896,10 @@ extract_metadata (MetadataExtractor *extractor,
tracker_resource_set_string (hash_resource, "nfo:hashAlgorithm", "gibest");
- tracker_resource_set_relation (resource, "nfo:hasHash", hash_resource);
+ file_resource = tracker_resource_new (file_url);
+ tracker_resource_add_take_relation (resource, "nie:isStoredAs", file_resource);
+
+ tracker_resource_set_relation (file_resource, "nfo:hasHash", hash_resource);
g_object_unref (hash_resource);
}
diff --git a/src/tracker-extract/tracker-extract-mp3.c b/src/tracker-extract/tracker-extract-mp3.c
index bdbeee9e5..2f8242078 100644
--- a/src/tracker-extract/tracker-extract-mp3.c
+++ b/src/tracker-extract/tracker-extract-mp3.c
@@ -2889,7 +2889,7 @@ tracker_extract_get_metadata (TrackerExtractInfo *info)
}
if (md.acoustid_fingerprint) {
- TrackerResource *hash_resource;
+ TrackerResource *hash_resource, *file_resource;
hash_resource = tracker_resource_new (NULL);
tracker_resource_set_uri (hash_resource, "rdf:type", "nfo:FileHash");
@@ -2897,7 +2897,10 @@ tracker_extract_get_metadata (TrackerExtractInfo *info)
tracker_resource_set_string (hash_resource, "nfo:hashValue", md.acoustid_fingerprint);
tracker_resource_set_string (hash_resource, "nfo:hashAlgorithm", "chromaprint");
- tracker_resource_set_relation (main_resource, "nfo:hasHash", hash_resource);
+ file_resource = tracker_resource_new (uri);
+ tracker_resource_add_take_relation (main_resource, "nie:isStoredAs", file_resource);
+
+ tracker_resource_set_relation (file_resource, "nfo:hasHash", hash_resource);
g_object_unref (hash_resource);
}
diff --git a/src/tracker-extract/tracker-extract-vorbis.c b/src/tracker-extract/tracker-extract-vorbis.c
index fbba3076d..193f8ff4a 100644
--- a/src/tracker-extract/tracker-extract-vorbis.c
+++ b/src/tracker-extract/tracker-extract-vorbis.c
@@ -314,7 +314,8 @@ tracker_extract_get_metadata (TrackerExtractInfo *info)
}
if (vd.acoustid_fingerprint) {
- TrackerResource *hash_resource;
+ TrackerResource *hash_resource, *file_resource;
+ gchar *uri;
hash_resource = tracker_resource_new (NULL);
tracker_resource_set_uri (hash_resource, "rdf:type", "nfo:FileHash");
@@ -322,7 +323,12 @@ tracker_extract_get_metadata (TrackerExtractInfo *info)
tracker_resource_set_string (hash_resource, "nfo:hashValue", vd.acoustid_fingerprint);
tracker_resource_set_string (hash_resource, "nfo:hashAlgorithm", "chromaprint");
- tracker_resource_set_relation (metadata, "nfo:hasHash", hash_resource);
+ uri = g_file_get_uri (file);
+ file_resource = tracker_resource_new (uri);
+ tracker_resource_add_take_relation (metadata, "nie:isStoredAs", file_resource);
+ g_free (uri);
+
+ tracker_resource_set_relation (file_resource, "nfo:hasHash", hash_resource);
g_object_unref (hash_resource);
diff --git a/tests/functional-tests/test-extraction-data/audio/mp3-id3v2.4-1.expected.json
b/tests/functional-tests/test-extraction-data/audio/mp3-id3v2.4-1.expected.json
index c81c6e97a..eabddc4fc 100644
--- a/tests/functional-tests/test-extraction-data/audio/mp3-id3v2.4-1.expected.json
+++ b/tests/functional-tests/test-extraction-data/audio/mp3-id3v2.4-1.expected.json
@@ -60,10 +60,14 @@
"tracker:referenceIdentifier": "123456"
}
],
- "nfo:hasHash": {
- "@type": "nfo:hasHash",
- "nfo:hashAlgorithm": "chromaprint",
- "nfo:hashValue": "111222"
- }
+ "nie:isStoredAs": [
+ {
+ "nfo:hasHash": {
+ "@type": "nfo:hasHash",
+ "nfo:hashAlgorithm": "chromaprint",
+ "nfo:hashValue": "111222"
+ }
+ }
+ ]
}
}
diff --git a/tests/functional-tests/test-extraction-data/audio/mp3-id3v2.4-2.expected.json
b/tests/functional-tests/test-extraction-data/audio/mp3-id3v2.4-2.expected.json
index d716ceb53..f937f087e 100644
--- a/tests/functional-tests/test-extraction-data/audio/mp3-id3v2.4-2.expected.json
+++ b/tests/functional-tests/test-extraction-data/audio/mp3-id3v2.4-2.expected.json
@@ -57,10 +57,14 @@
"tracker:referenceIdentifier": "123456"
}
],
- "nfo:hasHash": {
- "@type": "nfo:hasHash",
- "nfo:hashAlgorithm": "chromaprint",
- "nfo:hashValue": "111222"
- }
+ "nie:isStoredAs": [
+ {
+ "nfo:hasHash": {
+ "@type": "nfo:hasHash",
+ "nfo:hashAlgorithm": "chromaprint",
+ "nfo:hashValue": "111222"
+ }
+ }
+ ]
}
}
diff --git a/tests/functional-tests/test-extraction-data/audio/vorbis.expected.json
b/tests/functional-tests/test-extraction-data/audio/vorbis.expected.json
index 3707d5cfb..55ec43979 100644
--- a/tests/functional-tests/test-extraction-data/audio/vorbis.expected.json
+++ b/tests/functional-tests/test-extraction-data/audio/vorbis.expected.json
@@ -54,10 +54,14 @@
"tracker:referenceIdentifier": "123456"
}
],
- "nfo:hasHash": {
- "@type": "nfo:hasHash",
- "nfo:hashAlgorithm": "chromaprint",
- "nfo:hashValue": "111222"
- }
+ "nie:isStoredAs": [
+ {
+ "nfo:hasHash": {
+ "nfo:hashValue": "111222",
+ "nfo:hashAlgorithm": "chromaprint",
+ "@type": "nfo:FileHash"
+ }
+ }
+ ]
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]