Disambiguating footnotes with back-references

Hello from the future. It’s 2023 where (when?) I am. Most of the threads I’ve consulted are over ten years old. I hope some contributors are still around.

I am finishing up a CSL processor written in Swift. It was passing all the disambiguation tests (including Andrea*.txt) until I ran into bugreports_EnvAndUrb.txt.

The difficulty is that it has a position=subsequent condition in the citation element to render citations after the first differently.

At the same time, I had earlier noticed while coding that @Frank_Bennett said of a different test, “ITEM-1 should render in the same form everywhere in the document.”

I took that to mean (and that test seems to confirm) that whatever is done to disambiguate a cite in one place should apply to the same cite elsewhere.

It is obvious that this can’t apply to an “ibid” or similar but what is the rule?

Does the position condition mean that a given cite may actually appear differently every time? If so, how does that square with “ITEM-1 should render in the same form everywhere”?

Thanks for considering!

I think the “rule” I’ll implement, to see if it makes the remaining tests pass, is to treat cites as render-same-everywhere if their basic render (not yet disambiguated or collapsed) is the same and, of course, they cite the same reference.

So if ITEM-1’s basic render is the same in footnote 5 and 8 but different in 12 and 19 then disambig/collapse updates to ITEM-1 in footnote 5 will also update its render in footnote 8 but not 12 or 19.

… refactor 14, underway :smile:

Sorry for the late response, but yes, I think that’s right. Frank’s note about ITEM-1 wasn’t a general rule for all styles (which, obviously, doesn’t make sense) but specific to that disambiguation example in a style without any position testing.

(These forums aren’t super active, but people are very much around, yes.)

1 Like

Just to close this out … I updated code so it only “links” (leaves them instances of or pointers to same object) cites as described above — if they render the same before disambiguation and collapsing then they will do so afterwards — and it’s passing the tests.

(I haven’t passed every test in the suite yet but making progress)