Re: [Tracker] nfo:hasMediaStream max cardinality change
- From: Martyn Russell <martyn lanedo com>
- To: Philip Van Hoof <philip codeminded be>, Tracker mailing list <tracker-list gnome org>
- Subject: Re: [Tracker] nfo:hasMediaStream max cardinality change
- Date: Thu, 21 Aug 2014 10:20:29 +0100
On 08/08/14 10:55, Philip Van Hoof wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
How to implement this would go like this:
Hi Philip,
Thanks for the email here, allow me to respond :)
- - Detect the change with nao:lastModified and the existing
introspection ontology (tooling for this is available because of the
existing support)
- - Store the pending change (tooling available)
- - Make the new table for the multi-value property
- - SELECT the column out of the class's table and INSERT the values into
the new table
- - Change the introspection ontology
- - DROP the column out of the class's table. I think SQLite doesn't
support this so you will have to recreate the table. There is tooling
available for this. (recreate as tablename_tmp with the new column,
select into from the old to the tablename_tmp, leaving out the old
column, drop tablename, rename tablename_tmp to tablename).
- - Remove the pending change
As original developer of the ontology change coping I can tell you
that this is not an easy piece of work. I can of course assist whoever
wants to try this.
But without it I think we should revert the cardinality change for
nfo:hasMediaStream. Perhaps add a nfo:hasStream or
nfo:hasMultiMediaStream property or something instead and mark the old
nfo:hasMediaStream as deprecated?
I think warning people is enough. I would prefer an upgrade path of
course, but it's not always possible. Let me explain why:
- We don't break the database schema much and to be fair and this comes
in the next set of stable releases.
- This isn't a highly regular or common property and should affect few
people.
- The actual Nepomuk standards are showing this with no max cardinality,
which is why I had no problem updating it to be in line with the
standards here.
- Using codec without this change is quite useless, since most media
don't use just one codec, hence the cardinality change.
- The property can't be deprecated because the new name we choose would
differ from the official standard¹ and create possible confusion.
¹ http://www.semanticdesktop.org/ontologies/2007/03/22/nfo/#hasMediaStream
Reason to revert is loss of data to people who are not using the
journal (most and/or everyone of the embedded users) and having to
Actually, this entirely depends on the packager and distribution. The
default is to enable the journal. I have been asked by the RedHat folks
to disable it by default, and I was going to, but this makes me think
it's wise not to.
I have no idea who enables or disables the journal in each case.
rebuild the entire meta.db using the journal for everybody else.
I think putting a strong warning into the release note for 1.2 that a
reindex may be required is the right way forward here.
We could bump the DB version, but we've not done that for years not with
the current nao:lastModified approach we've had for so long. The DB
version change would force a reindex.
Latter is not the worst thing in the world, former is bad. Evil. Wrong.
Sometimes it's required though. For a while now, I've wanted some way to
backup "user-specific" data in the DB, e.g. tags or things that can not
be retrieved back from files (that's not always true for tags of
course). This is why.
Note that the disable-journal feature exists for privacy reasons too:
Without it deleting triples will just mean adding a delete command to
the journal. The original data remains in the journal. That also means
that all data ever accumulated can be read from the journal. Also data
that once got deleted.
This is not acceptable for everybody, and they therefore should
disable the journal.
So you think we should disable the journal by default?
Another reason to disable the journal is a serious performance
improvement, a lot less I/O usage, and a lot less disk space usage.
Sounds like you think we should :)
So removing the disable-journal option is ... not an option (and the
feature is being used by the N9, Jolla and a few other users. I think
Pelagicore too for example -- or they should be).
Yea.
--
Regards,
Martyn
Founder & Director @ Lanedo GmbH.
http://www.linkedin.com/in/martynrussell
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]