After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 733573 - playlists are given RDF type nmm:MusicPiece and nfo:Audio
playlists are given RDF type nmm:MusicPiece and nfo:Audio
Status: RESOLVED FIXED
Product: tracker
Classification: Core
Component: Extractor
1.1.x
Other Linux
: Normal normal
: ---
Assigned To: tracker-extractor
Depends on:
Blocks:
 
 
Reported: 2014-07-22 17:38 UTC by Andres Gomez
Modified: 2014-08-21 12:18 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
libtracker-extract: Only use FallbackRdfTypes from the first matching module (1.25 KB, patch)
2014-07-22 17:46 UTC, Andres Gomez
committed Details | Review

Description Andres Gomez 2014-07-22 17:38:31 UTC
tracker compiled from master with jhbuild

$ TRACKER_VERBOSITY=3 <path_to>/libexec/tracker-miner-fs
...
(tracker-miner-fs:20438): Tracker-DEBUG: Received monitor event:3 (G_FILE_MONITOR_EVENT_CREATED) for file:'file:///home/tanty/Music/testing-playlist.pls'
(tracker-miner-fs:20438): Tracker-DEBUG: Waiting for event pairs
(tracker-miner-fs:20438): Tracker-DEBUG: Received monitor event:0 (G_FILE_MONITOR_EVENT_CHANGED) for file:'file:///home/tanty/Music/testing-playlist.pls'
(tracker-miner-fs:20438): Tracker-DEBUG: Received monitor event:1 (G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT) for file:'file:///home/tanty/Music/testing-playlist.pls'
(tracker-miner-fs:20438): Tracker-DEBUG: Event 'G_FILE_MONITOR_EVENT_CREATED' for URI 'file:///home/tanty/Music/testing-playlist.pls' has timed out (2 seconds have elapsed)
(tracker-miner-fs:20438): Tracker-DEBUG: Emitting ITEM_CREATED for (FILE) 'file:///home/tanty/Music/testing-playlist.pls'
Tracker-INFO: Processing…
(tracker-miner-fs:20438): Tracker-DEBUG: No more events to pair
(tracker-miner-fs:20438): Tracker-DEBUG: Processing file 'file:///home/tanty/Music/testing-playlist.pls'...
(tracker-miner-fs:20438): Tracker-DEBUG: Creating new item 'file:///home/tanty/Music/testing-playlist.pls'
(tracker-miner-fs:20438): Tracker-DEBUG: Flushing SPARQL buffer, reason: Queue handlers NONE
(tracker-miner-fs:20438): Tracker-DEBUG: (Sparql buffer) Finished array-update with 1 tasks
Tracker-INFO: Idle
Tracker-INFO: Finished mining in seconds:0.006933, total directories:0, total files:0

$ <path_to>/bin/tracker-info /home/tanty/Music/testing-playlist.pls 
Querying information for entity:'/home/tanty/Music/testing-playlist.pls'
  'urn:uuid:762cfef0-02d1-4a14-9d16-077ee9f43909'
Results:
  'http://purl.org/dc/elements/1.1/date' = '2014-07-22T17:37:09Z'
  'http://purl.org/dc/elements/1.1/source' = 'http://www.tracker-project.org/ontologies/tracker#extractor-data-source'
  'http://purl.org/dc/elements/1.1/source' = 'urn:nepomuk:datasource:9291a450-1d49-11de-8c30-0800200c9a66'
  'http://purl.org/dc/elements/1.1/title' = 'Hola'
  'tracker:added' = '2014-07-22T17:37:13Z'
  'tracker:modified' = '39'
  'rdf:type' = 'http://www.w3.org/2000/01/rdf-schema#Resource'
  'rdf:type' = 'http://www.semanticdesktop.org/ontologies/2007/01/19/nie#DataObject'
  'rdf:type' = 'http://www.semanticdesktop.org/ontologies/2007/01/19/nie#InformationElement'
  'rdf:type' = 'http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject'
  'rdf:type' = 'http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Media'
  'rdf:type' = 'http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Audio'
  'rdf:type' = 'http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MediaList'
  'rdf:type' = 'http://www.tracker-project.org/temp/nmm#MusicPiece'
  'rdf:type' = 'http://www.tracker-project.org/temp/nmm#Playlist'
  'nie:byteSize' = '47'
  'nie:dataSource' = 'http://www.tracker-project.org/ontologies/tracker#extractor-data-source'
  'nie:dataSource' = 'urn:nepomuk:datasource:9291a450-1d49-11de-8c30-0800200c9a66'
  'nie:isPartOf' = 'urn:uuid:de622841-c13a-ae91-3421-9a39de9a759a'
  'nie:url' = 'file:///home/tanty/Music/testing-playlist.pls'
  'nfo:belongsToContainer' = 'urn:uuid:de622841-c13a-ae91-3421-9a39de9a759a'
  'tracker:available' = 'true'
  'nie:isStoredAs' = 'urn:uuid:762cfef0-02d1-4a14-9d16-077ee9f43909'
  'nie:mimeType' = 'audio/x-scpls'
  'nie:title' = 'Hola'
  'nfo:fileLastAccessed' = '2014-07-22T17:37:09Z'
  'nfo:fileLastModified' = '2014-07-22T17:37:09Z'
  'nfo:fileName' = 'testing-playlist.pls'
  'nfo:fileSize' = '47'
Comment 1 Andres Gomez 2014-07-22 17:40:28 UTC
The regression is caused by this commit:

From 00775457ef0a8724f8e55ba62bb534057d3a95ee Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Thu, 13 Feb 2014 13:42:35 +0100
Subject: [PATCH 081/246] tracker-extract: Split generic gstreamer/libav
 extract rules

This is so audio, images and videos going through these modules get
more specific rdf:types than nfo:Media, as it is usually nfo:Media
subclasses which get flagged as tracker:notify. This fixes situations
where GraphUpdated wouldn't be emitted for files where it really
should.

--

Unfortunately, I've checked in the desktop, with a jhbuild, and even our own code and I cannot reproduce the same behavior.

I'm trying to debug it in the device but, a quick workaround would be to modify the FallbackRdfTypes field in tracker/src/tracker-extract/90-libav-audio-generic.rule back to:

FallbackRdfTypes=nfo:Media;

Or remove it completely, as in the original file.
Comment 2 Andres Gomez 2014-07-22 17:42:33 UTC
Argh!

(In reply to comment #1)
... 
> Unfortunately, I've checked in the desktop, with a jhbuild, and even our own
> code and I cannot reproduce the same behavior.
> 
> I'm trying to debug it in the device but, a quick workaround would be to modify
> the FallbackRdfTypes field in
> tracker/src/tracker-extract/90-libav-audio-generic.rule back to:
> 
> FallbackRdfTypes=nfo:Media;
> 
> Or remove it completely, as in the original file.
...

This is wrong. It also happens in JHBuild after rechecking.

The reason is that the audio/* mime type matches the 15-playlist.rule and the 90-*-audio-generic.rule and uses the FallbackRdfTypes in both rules instead of just the ones in the first matching rule: 15-playlist.rule
Comment 3 Andres Gomez 2014-07-22 17:46:46 UTC
Created attachment 281407 [details] [review]
libtracker-extract: Only use FallbackRdfTypes from the first matching module
Comment 4 Martyn Russell 2014-08-07 10:44:42 UTC
Comment on attachment 281407 [details] [review]
libtracker-extract: Only use FallbackRdfTypes from the first matching module

Patch looks good to me.
Carlos any comment before allowing Andres to commit this?
Comment 5 Martyn Russell 2014-08-21 12:18:22 UTC
Comment on attachment 281407 [details] [review]
libtracker-extract: Only use FallbackRdfTypes from the first matching module

Great patch, I actually needed it for the nfo:SourceCode patch I just pushed, commit ec4f8ecc3d1a56b20b4ecadff686bb68aa29179a - thanks again! :)
Comment 6 Martyn Russell 2014-08-21 12:18:47 UTC
This problem has been fixed in the development version. The fix will be available in the next major software release. Thank you for your bug report.