metanorma / pubid-ieee

PubID spec and implementation for IEEE deliverables
BSD 2-Clause "Simplified" License
1 stars 0 forks source link

Convert IEEE identifier in ISO or ISO/IEEE mixed format to IEEE format #112

Closed mico closed 4 months ago

mico commented 6 months ago

Examples:

mico commented 6 months ago

@ronaldtse I believe identifiers like IEC/IEEE 60214-2:2019 we should keep in ISO format, am I right?

mico commented 6 months ago

@ronaldtse Here is identifier I converting to ISO format currently: IEC/IEEE P63113 CD4, April 2019 In output we are getting: IEC/IEEE CD P63113.4, April 2019 Now I need to convert it back to IEEE format. How I should add ISO stage to output? Should it be IEC/IEEE P63113/CD4, April 2019? Also there are iteration "4" in this stage. Should I keep it as part of stage like in original identifier? I'm not sure if it will be correct if I place it after identifier's number like IEC/IEEE P63113.4/CD, April 2019. It looks better, but for IEEE number after dot is a part number usually.

mico commented 6 months ago

Original identifier IEC/IEEE 60214-2:2019 can be found on "IEC" website.

On IEEE website it appears in different formats (ISO and IEEE):

image image

@ronaldtse Should we convert this identifiers to "IEEE" format as well?

ronaldtse commented 6 months ago

@mico maybe we should define an "ISO-style" stage in IEEE identifier format, using the D draft prefix.

e.g. IEC/IEEE P63113 CD4, April 2019 => IEC/IEEE P63113/DCD4, April 2019

So this is purely IEEE.

ronaldtse commented 6 months ago

Original identifier IEC/IEEE 60214-2:2019 can be found on "IEC" website.

On IEEE website it appears in different formats (ISO and IEEE): image image

@ronaldtse Should we convert this identifiers to "IEEE" format as well?

I think so, you're right here. Let's use "IEEE/IEC 60214-2-2019" for IEEE.

mico commented 6 months ago

I think so, you're right here. Let's use "IEEE/IEC 60214-2-2019" for IEEE.

@ronaldtse Should we convert "IEC/IEEE 60214-2:2019" to "IEEE/IEC 60214-2-2019" or we convert it only when it starts with "IEEE" eg. "IEC/IEEE 60214-2:2019"

mico commented 5 months ago

@mico maybe we should define an "ISO-style" stage in IEEE identifier format, using the D draft prefix.

e.g. IEC/IEEE P63113 CD4, April 2019 => IEC/IEEE P63113/DCD4, April 2019

So this is purely IEEE.

@ronaldtse Why we don't keep it in currently implemented IEEE style? eg. "IEC/IEEE P63113/CD4, April 2019" Without "D" prefix it is visually better, easier to read (something like "/DDIS" looks a little weird). We can just assume everything after slash is a draft stage if it's not a defined entity like Amendment or Corrigenda. What do you think about it?

opoudjis commented 5 months ago

The point here is to convert identifiers to a format that IEEE recognises. I would also convert identifiers that started with IEC/IEEE, as IEEE is still interested in them; and I would not reorder IEC/IEEE to IEEEE/IEC, since that ordering is already decided by the first publisher, and IEEE cannot change the identifier that radically.

Because the point is to keep things familiar to IEEE users, my opinion is that a new D prefix is a terrible idea: they will not be able to guess what it is about, and it is needlessly leading to confusion—to the extent it will likely be rejected by the IEEE. If we are going to put draft stage information into these IEEE-style identifiers at all, we should be as explicit about it as possible: I would suggest `IEC/IEEE P63113 draft CD4, April 2019. At least "draft CD4" is not forcing IEEE users to work out what is going on.

mico commented 5 months ago

`IEC/IEEE P63113 draft CD4, April 2019. At least "draft CD4"

IEC/IEEE Draft Std P63113/CD4, April 2019 - that how it is supposed to be already in IEEE format, a “draft” word already there

mico commented 5 months ago

@ronaldtse @opoudjis there are identifiers in ISO format like IEEE/ISO/IEC 8802-3:2021/Amd 4-2021

For IEEE format identifiers we don't have amendments with number and year, there are only amendments without number and year, like ANSI C63.4a-2017 (Amendment to ANSI C63.4-2014), IEEE Std 802.3ba-2010 (Amendment to IEEE Standard 802.3-2008), IEEE P802.3bk/D3.0, March 2013 (Amendment of IEEE Std 802.3-2012).

Amendment's numbering in IEEE format are different from ISO amendments (they use letters in identifiers number, like "a" in ANSI C63.4a-2017) so I'm not sure if it will be correct to just reformat IEEE/ISO/IEC 8802-3:2021/Amd 4-2021 to something like IEEE/ISO/IEC Std 8802-3-2021/Amd 4-2021. Or just keep it in original ISO format?

mico commented 4 months ago

@ronaldtse should identifier ISO/IEC/IEEE CD P26513/D1, August 2015 have draft version and ISO stage at the same time? Will it be correct to render it as ISO/IEC/IEEE Std Draft P26513/CD1, August 2015?

opoudjis commented 4 months ago

Guys, I don't have a sense of where this requirement came from, and it increasingly seems to be a bad idea to me. There is going to be a myriad places where the information model of ISO and IEEE identifiers deviate, and @ronaldtse you need to make a blanket rule, rather than adjudicate individual cases: when an ISO identifier has a model difference from the IEEE identifier, do we really treat it like an IEEE identifier, or do we let ISO features in to the IEEE identifier?

Because if we really are treating these identifiers like IEEE identifiers, then we should be ignoring numbers and years of amendments (which means amendments ambiguous), and we should be ignoring ISO stages.

if this is a requirement we made up and not IEEE, then drop this, because it is stupid. If ISO produced an identifier for the document, and IEEE did not bother to come up with its own identifier, then we have zero business guessing what a hypothetical identifier should be.

If this is a requirement from IEEE, and it is existing practice, it is IEEE's job, not ours, to come up with what the rules are for transforming ISO identifiers to IEEE, and IEEE will have already done so.

If this is a requirement from IEEE, and they have never done it, and they want us to come up with the rules, then they are irresponsible, and in my opinion our identifiers should look like ISO as much as possible (so jam in numbers and years of amendments and ISO stages wherever it looks like they'll fit), because the more different the ISO and IEEE format identifiers are, the more potential for trouble we are raising.

I can't give you answers, @mico, because I don't have the business context for this. The last paragraph is my opinion if we have to come up with a rule, but my real opinion is that this is a bad idea, and we should be doing nothing without explicit IEEE sign-off.

opoudjis commented 4 months ago

Because I do not understand the business requirement, and I think this is naive to be doing without IEEE feedback, I am not going to review the PR for this. The test cases look plausible enough, especially now you are no longer pursuing the utterly bizarre recommendation of a "DCD4" stage identifier (which nobody in IEEE would ever understand, because they expect to see draft numbers after a D). But there are a whole lot of edge cases where this will simply not work.

Shrug. Proceed with this, but without IEEE feedback, you are going to do things they will ask you to undo.