Trouble migrating from Jurism 6 (back to native) Zotero 9

I switched from Zotero 6 to Jurism 6 in 2021 because I needed multiple citation languages. Now that feature is in Zotero 9 and Jurism (still on 6) is not well supported on Mac silicon, so I want to move back to Zotero.

However...

1. I cannot sync Jurism with my Zotero cloud account because it cannot log on. Iit says the credentials are invalid, but I can log on manually just fine; I presume Jurism is just not up to date with Zotero authentication protocols.

2. Jurism will not export the whole library as an RDF (or anything else); the error log says it has an unknown library type. I can export and import a few items, but I have over 11k items altogether.

3. If I just copy Jurism/jurism.sqlite to Zotero/zotero.sqlite Zotero tells me I need to upgrade because I need 6 but it is only on 9!

Did anyone manage such a migration?

Ideally I would like to copy the multilingual data into the CNE plugin as well, but could forego that if necessary - as long I as I am sure I have the whole library.

  • I am working on an extractor (python script) that will take data from a Jurism 6 database and write a format that can be imported into Zotero 9, including attachments and CNE tags. If anyone wants to help ....
  • Have you tried changing your Zotero password and syncing right afterwards -- as per Zotero devs that should be possible to get Zotero versions <9 to authenticate and would then get you going.

    If you do use an extractor, I'd recommend going from the Jurism database through the Zotero API rather than an import format. The beta should also have a local implementation of the write API.
  • @adamsmith thanks. Yes I tried the password change trick but it seems Zotero has closed that loophole now. The new Zotero logon uses a web page to authenticate.

    I am not sure what you mean by "going from the Jurism database through the Zotero API"?

    The current approach is to use a python script to write an RDF file, then import that into Zotero. Seems safest. It is however still work in progress. For details see https://github.com/AndySymons/Jurism-to-Zotero-migrator
  • I tried the password change trick but it seems Zotero has closed that loophole now
    We haven't for older Zotero clients, but we can't guarantee it works for Jurism, which likely identifies itself differently.

    Zotero API is referring to https://www.zotero.org/support/dev/web_api/v3/
  • edited August 6, 2026
    @dstillman Thanks. I tried several times with Jurism over the last couple of years, but no luck.

    I can export a few items from Jurism 6 and import them into Zotero 9, but for some reason Jurism will not export the whole library. I am also trying to get the extractor to translate Jurism language fields into 'Extra' field tags for CNE, and do a few 'cleaning up' tasks:
    - normalise language field values to iso codes (e.g. 'Spanish' to 'es'), so CNE will recognise them (good practice anyway)
    - change (legacy) absolute linked attachment paths to relative
    - keep the original date added (as a tag in 'Extra' (because the Zotero import overwrites it with the import data)
  • edited August 13, 2026
    I am happy to announce that I now have a solution that meets my needs: https://github.com/AndySymons/Jurism-to-Zotero-migrator
  • I'm glad you found something, but I'm not sure the need for it? If you were syncing up to the point that it stopped working, you should be able to just install Zotero 9 and sync up. The extra data is all stored in the extra field, I thought. I don't think any of the sqllite data uploaded in the sync. That said, for pure multi-lingual maybe it was different.
  • @AndySymons first and foremost, thank you so much for this! This is exactly what I've been looking for! That said, I ran into a few issues so I posted them on your GitHub issues page. Willing to help where I can!
  • @rish The problem was not synching with Zotero -- it was synching with Jurism. That has been broken for a couple of years now. I mentioned it only as one of several reasons to stop using Jurism! Once I migrate to Zotero I am sure synch will not be a problem any more.

    The solution I 'found' is actually to build a migration program myself that extracts the data from Jurism, and writes a Zotero RDF file, putting the language information into tags in 'Extra' that can be read by the Zotero CNE plugin. I am not quite there yet, but close. See my GitHub page for details.

    I am of course still interested in any shortcuts anyone can offer!
  • @nomadism Thanks very much for bringing this to my attention, and am I pleased to have found an audience.

    Issues I am working on (and hope to solve within a few days) are

    1. Some fields missing altogether (a slip up in regression testing)
    2. Collections and saved searches not migrated.
    3. Transliterations not migrated - these were originally out of scope, because I never used them; but I am going to bring them into scope.

    Please bear with me, all this requires a lot of testing and I do not want to rush it - but look out for release 1.3 soon.
  • I guess I still don't understand this. Can't you just open your Juris-m repository in Zotero 9/10? That's what I did. Maybe that doesn't work with the CNE language issues - I'm focused on citation data, which was already in extra and not stored separately in sqlite.
  • @risch I couldn't, but am happy to hear that you could and interested to hear more!

    in my case, Zotero 9 told me that the database is in Zotero 6 (true), which is a future version (false) and I had to upgrade to read it. I tried several tricks (including reverting to Zotero 6) without success. There are full details on my GitHub Wiki page "Why?".
    https://github.com/AndySymons/Jurism-to-Zotero-migrator/wiki/1.-Why?

    I assume when you open a Jurism database in Zotero, it ignores the Jurism special (legal) types and all the language variants. I do want these and do not see that any of them are written to Extra? (Which is what I plan to do).

  • edited 6 days ago
    OK, so I am recalling now that I did not open the jurism DB in zotero. I just synced Jurism to the central repository, and then synced that repository to Zotero. This would lose: 1. Anything stored in a local sqllite db (this would be language info, not legal data, maybe. I don't know how that was stored), 2. Anything in the local db that had not synced before syncing broke.

    The special legal data is definitely in the extra field in the MLZExtra JSON- new legal types, new fields like jurisdiction, etc. Jurism hides this, but if you look at the extra field on the web you can see what's there. I did it and I worked with others on it. I don't know about language stuff like japanese characters. The CNE folks can say if that transferred over.

    All I can say is that if you sync with a Zotero repository, my plugin has been plug-compatible with jurism on the legal side, and everything I have needed is in the extra field.
  • @risch Thanks for the clarification. I have not been able to sync for years either because Jurism did not keep up with Zotero authentication.

  • Odd - syncing just broke last March/April. In any event, if you convert (a useful tool), just copy over the extra field directly and my plugin should work.
  • @risch I am now writing a "Multi-Variant Zotero" (MVZ) plugin that should cope with the language issues. It will allow variants for all text variables in a way that mimics Jurism. (I tried for a while with Cite-Non-English but found it too limiting for my purposes).

    In parallel, I am adapting my Jurism to Zotero Migration program (JZM), to write tags for MVZ, so that all variants are included. (This is work in progress and my GitHub page is not yet fully up to speed with this).

    Regarding Jurism judicial extensions, at the moment, I map old Jurism judicial item types to standard Zotero types, e.g. "Classic" to "Book".
    I convert Jurism Jurisdiction and Court codes to plain text using Jurism's own lookup tables.
    I map the old Jurism fields to equivalent Zotero fields where possible then write any fields that do not fit the Zotero schema to custom Extra tags "jzm-".

    I could potentially change these jzm tags (which currently do no more than preserve the data) to Citation Phoenix tags (which are presumably entered into citations), so that we end up with a complete kit that replaces Jurism with Zotero + MVZ + Citation Phoenix, and a migration program that brings the data across from Jurism in a compatible format for both!

    I would just need a complete list of the tags you need in the Extra field (I did not yet find one on your GitHub page).

    Do you create special item types as well?

    I do not use judicial features myself and have not yet got around to testing your plugin. I will be generating test cases, but would need to know what the results are supposed to look like!


  • @AndySymons -

    Yes, if you want this plugin to be useful, I recommend that you match juris-m's field data format. Indeed, most of this data is already in Zotero's extra field in juris-m (jurism just hides it), so I'm not understanding what you need to rewrite/transform in the first place other than language data. You can get that field formatting from the jurism code. To answer you question, yes, I also do custom types. It is stored in the xtype: json in extra, just as jurism did it. Like I said, multiple people seem to have been able to load my plugin with jurism data just by syncing with zotero.

    The full list of custom fields and types is not on my website. It is in Schema.json in the jurism repository. I copy all of the abbrevs and jurisdictions from LRR, which is now maintained by George Duffner. That's what I mimic, exactly. As noted above, I'm suggesting you do the same, or else you are going to have a plugin that converts data into a useless format (that, or you are going to have to rewrite all of the data transformations into CSL and basically reimplement your own version of jurism).

    I'm not sure what language features of CNE and what you are doing in your plugin are missing in citation phoenix (other than script). Folks have been using my plugin with other languages already - the field names and citations are localized.
  • I'm really wondering why you are building something if you haven't even tested out citation-phoenix yet. It's ready and easy to test out.
Sign In or Register to comment.