In the relational database, we use biblionumber as the ID for bibliographic records, but a triplestore we need to use a RDF URI. So I'm going to put together a module with a little method for minting URIs. While we could just agree on a convention, it probably makes sense to use the convention in the module and then use the module elsewhere to keep things consistent.
I've been thinking that it might be worthwhile to mint a URI and then store it in a database table. Even if we moved all the metadata for a bibliographic record into a triplestore, we'd still be storing transactional information in the relational database. So we're still going to have a biblionumber in the relational database. If we store the RDF URI in the RDBMS, we gain a certain robustness in the event that someone changes a system preference containing the URI syntax used for minting. I mean... if they changed the syntax, it could break the ability to dereference those old URIs, but it's still valid RDF even if you can't dereference it. Plus hopefully they'd fix it so that you could still dereference it (ideally through a redirect I reckon).
I've created a Koha::RDF module and a mint_uri() method. It just creates and returns the URI string using the URI module. I've also added some tests for it. I think saving it to the database will be part of AddBiblio and/or ModBiblio. Some thinking to do about how best to optimally add the URI to the database. Off the top of my head, I'd want to save it at AddBiblio time, but you'd want to be able to update existing biblios... so if you do ModBiblio, you could just run touch_all_biblios.pl. Anyway, it's 5:04pm, so that's another day. I'll post the code tomorrow morning.
Created attachment 63640 [details] [review] Bug 18586 - Create module to mint RDF subject URIs Created the Koha::RDF module to mint URIs for RDF documents that represent Koha bibliographic records. _TEST PLAN_ To test the module, just run 'prove t/Koha/RDF.t'. You'll get some warnings about not being able to find koha-conf.xml, but you can safely ignore them or you can point to any koha-conf.xml file since it's not used by the test in actuality.
Created attachment 63645 [details] [review] Bug 18586 - Create module to mint RDF subject URIs Created the Koha::RDF module to mint URIs for RDF documents that represent Koha bibliographic records. _TEST PLAN_ To test the module, just run 'prove t/Koha/RDF.t'. You'll get some warnings about not being able to find koha-conf.xml, but you can safely ignore them or you can point to any koha-conf.xml file since it's not used by the test in actuality. Signed-off-by: Magnus Enger <magnus@libriotech.no> Works as expected. No warnings when run like: sudo koha-shell -c "prove t/Koha/RDF.t" kohadev
Created attachment 64406 [details] [review] Bug 18586 - Create module to mint RDF subject URIs Created the Koha::RDF module to mint URIs for RDF documents that represent Koha bibliographic records. _TEST PLAN_ To test the module, just run 'prove t/Koha/RDF.t'. You'll get some warnings about not being able to find koha-conf.xml, but you can safely ignore them or you can point to any koha-conf.xml file since it's not used by the test in actuality. Signed-off-by: Magnus Enger <magnus@libriotech.no> Works as expected. No warnings when run like: sudo koha-shell -c "prove t/Koha/RDF.t" kohadev Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
I know this is waiting for a long time, but does it make sense to have it pushed without other related patches? Alone it will not bring anything to our codebase.
(In reply to Jonathan Druart from comment #6) > I know this is waiting for a long time, but does it make sense to have it > pushed without other related patches? I would say it can wait. (But it would be excellent to have it in master early in the 18.11 iteration, I'll start using it sometime after summer :-)
While this doesn't do much on its own, I think getting a start in will be helpful. Awesome work all! Pushed to master for 18.11
I'll be at Kohacon18, so happy to talk/work on RDF and OAI-PMH stuff there, if folk are interested! Since doing my work with RDF in Koha, I've actually been exposed to a lot more RDF with Fedora Commons and the IIIF protocol, so I have a lot more insight into how RDF is *actually* being used in the library world. I think there's a lot of issues with my other RDF work, and I'd probably even like to change this patch a bit, since it's hard-coded to mint URLs using the "bib" prefix, which is supported in the Apache configuration, but... hard-coded stuff isn't great. Anyway, cool to see some renewed interest in this!
Enhancement, will not be backported for 18.05.x series.
I am tempted to get this removed/reverted/rewritten...