[cc-devel] liblicense help: libexempi not reading back some predicates?
Asheesh Laroia
asheesh at creativecommons.org
Wed Dec 24 13:04:37 EST 2008
Howdy Hub (and hello cc-devel, CC:d),
First of all, happy post-Solstice, and merry Christmas! I hope this email
finds everyone well.
I'm trying to verify liblicense's support for storing and retrieving
predicates in non-CC namespaces, such as dc:creator. I'm having some
problems with Exempi that, now that I've spent a fair bit of time looking
at alone, I am kind of clueless as to why it doesn't work the way I
expect. I wondered if you might be able to help.
To grab the liblicense code I'm confused by, do this:
$ git clone git://code.creativecommons.org/liblicense
$ cd liblicense
$ git branch asheesh-experimental-two origin/asheesh-experimental-two
$ git checkout asheesh-experimental-two
$ git submodule init && git submodule update
$ ./autogen.sh && make check
You'll see one test fails, the predicate read/write test. The specific
line that fails is exempi reading back dc:creator. The code path is
pretty simple; modules/io/exempi.c's exempi_write() writes the predicate,
and exempi_read() in the same file reads it. Exempi prefers to see
predicates as a pair of (namespace, name), whereas we prefer to see
predicates as atomic URIs; the result is that in modules/io/shared_xmp.c,
I have a silly function (which yes, should not return a struct) that
splits up a uri into a namespace and a "rest" (a qualified name).
In the test that fails, we attempt to write and read dc:creator.
Note that if you employ this *horrendous hack*, exempi seems to
successfully read and write the result. Specifically, if you try to write
the invalid predicate of dc:morePermissions instead of dc:creator, it
reads back fine. To see this, simply change the ret.rest on line 31 of
shared_xmp.c to "_ll_shared_xmp_morepermissions" and re-run "make check".
I'm quite spooked by this and wanted to check in with you, Hubert, to see
what you make of it.
-- Asheesh.
P.S. My deepest thanks to you already, Hubert, for your help with other
liblicense issues, especially the test suite!
--
Avoid reality at all costs.
More information about the cc-devel
mailing list