Closed dalepotter closed 6 years ago
The CRS Channel Code is an element elsewhere in the Standard https://github.com/IATI/pyIATI/pull/229 - adding it like this would lead to multiple ways that literally the same sort of information is presented!
The original discussion fails to notice this.
The CRS Channel Code is an element elsewhere in the Standard IATI/pyIATI#229 - adding it like this would lead to multiple ways that literally the same sort of information is presented!
There’s another element that uses the codelist, but I think it’s unrelated. What makes you think it’s related?
There’s another element that uses the codelist, but I think it’s unrelated. What makes you think it’s related?
Related in the sense that they are both ways to present the same information (a value from a Codelist). The context is unimportant for this aspect of the technical implementation.
This change leads to multiple ways to define the same sort of information (a value ideally from the Codelist). This is bad. As such, the following changes should additionally be made at the same time:
@code
attribute to iati-activity/crs-add/channel-code
to make it consistent with other equivalent values.CRSChannelCode
Codelist.iati-activity/crs-add/channel-code/text()
- maintain backwards-compatibility.As noted elsewhere, it is possible this change could additionally be backported as a bug-fix to 2.02. At a minimum the changes should be made for 2.03.
This proposal for modification falls within the The Community inspects and comments on the 2.03 changes on GitHub as they are being developed.
step of the Upgrade Timetable.
You’re saying it’s a problem that in one instance CRSChannelCode
is used in an attribute, and in another instance it’s used in a text node?
This is bad.
Can you elaborate? I know you have an issue with the inconsistency of putting codelist items in text nodes (as discussed here: IATI/pyIATI#229)… But here you seem to suggest it’s especially bad to use both a text node and an attribute for the same codelist. Can you explain why this is particularly abhorrent?
You’re saying it’s a problem that in one instance CRSChannelCode is used in an attribute, and in another instance it’s used in a text node?
Correct.
But here you seem to suggest it’s especially bad to use both a text node and an attribute for the same codelist. Can you explain why this is particularly abhorrent?
It's not necessarily a huge amount worse in combination. It mostly highlights the sillyness of iati-activity/crs-add/channel-code
.
In the general sense, you could kinda stretch an argument to say that a particular Codelist requires newlines in its code
s (see: related explanation).
In the specific case, it may have previously been argued that CRSChannelCode
definitely needed the ability to have newlines in code
s (the one reason you might require an element over an attribute). With this proposal, however, it becomes clear that this cannot be the case since it forces the Codelist to be limited to values that are permitted within an attribute.
Sooooo, this proposal eliminates any argument for why iati-activity/crs-add/channel-code
is at element rather than attribute level. Which, well, yeah.
@IATI/bas Can we get an update on what's happening with this one? We need actionable suggestions to move forward.
I think @hayfield’s comment is about iati-activity/crs-add/channel-code
, and not about this proposal. I don’t think anyone has a problem with this proposal as it stands. I.e.:
It's not necessarily a huge amount worse in combination.
I don’t see why this proposal can’t be progressed. What do you think, @hayfield?
The two issues are related.
This is currently with @IATI/bas to make some sort of decision.
Currently waiting to hear back on this one @stevieflow (you should have received an e-mail about this last week).
One organisation are using the current channel code element at v2.02. We're trying to get in contact to see why and whether or not this can be changed.
If they are happy to change their reporting then we can go ahead and make sure the standard is consistent.
One organisation are using the current channel code element at v2.02.
The dashboard seems to suggest there are more, now [1]. (I think slovakaid publish this too, but a bug with their data means the dashboard isn’t including them [2].)
We're trying to get in contact to see why and whether or not this can be changed.
I don’t understand… What are you asking these publishers to change? It sounds like you’re talking about the text()
vs @code
issue… Is that right?
[1] http://dashboard.iatistandard.org/element/iati-activity_crs-add_channel-code.html [2] https://iatiregistry.org/dataset/slovakaid-69_1_ac
So - tell me this again.
With this proposal, I'll be able to describe one organisation with two references:
eg - for UNDP:
<participating-org ref="XM-DAC-41114" crs-channel-code="41114" role="1" type="40" />
Or - to quote @hayfield
This change leads to multiple ways to define the same sort of information (a value ideally from the Codelist). This is bad.
Are we sure about this?
I actually understood the original intention was to something about publishers being able to use the ''Channel Parent Category'' from OECD-DAC Channel codes - eg column A from cell 8 on "Channel codes" sheet from the latest OECD DAC code list:
40000 MULTILATERAL ORGANISATIONS 41000 United Nations agency, fund or commission (UN)
(btw - as an aside, why would anyone use 40000 value in their data ?)
BUT this then implies creation of a new non-embedded codelist, which then needs close maintenance and inspection routines we've had to cobble together (thanks to master cobbler @andylolz)
Can someone please remind me why this is useful? @bill-anderson ?
I thought we wanted to get away from generic codes (DFID did this recently - @jjohnadamsDFID ?).
And - didn't we move away from just declaring (for UNDP example) 41114
when we know it has to be XM-DAC-41114
to help data users?
What exactly does adding crs-channel-code to the participating-org element help do?
We're trying to get in contact to see why and whether or not this can be changed.
I don’t understand… What are you asking these publishers to change? It sounds like you’re talking about the text() vs @code issue… Is that right?
I don't quite understand either. FCO use the channel-code
sub element in the crs-add
- eg - in this file:
<crs-add>
<channel-code>52000</channel-code>
</crs-add>
That's permissible in the standard. What needs to change?
That's permissible in the standard. What needs to change?
Update: that's permissible in the available/live versions 2.0x of the standard. @hayfield am I right in understanding you want to change this - rendering a breaking change?
Update: that's permissible in the available/live versions 2.0x of the standard. @hayfield am I right in understanding you want to change this - rendering a breaking change?
My proposal would be to:
crs-add/channel-code
to bring it in-line with the proposal in this PRThis then ideally leaves nobody using the poorly designed deprecated thing, with everything consistent and nice for data users and anybody who may use the attribute in the future.
(NOTE: I don't know what the email you received said)
@stevieflow
Wait
The final 2.03 proposal doc says:
Publishers will now be able use CRS channel delivery codes to describe the types of organisations they are working with.
Keyword here (my emphasis): "types" of orgs.
As in:
40000 MULTILATERAL ORGANISATIONS 41000 United Nations agency, fund or commission (UN)
But I assume not
41304 UNESCO United Nations Educational, Scientific and Cultural Organisation UNESCO 41146 UNWOMEN United Nations Entity for Gender Equality and the Empowerment of Women ONU Femmes
The actual channel codes list from OECD tries to list the generic type along with several specific agencies.
By progressing down this route, we seem to be caught into two other proposals for 2.03
1 - modify the organisationType codelist to have more values (where's the GitHub issue for this?). Wouldn't this incorporate the generic / types from the channel codes already?
2 - Migrate the organisationRegistrationAgency list to org-id (where's the githib issue for this?). Wouldn't that guide people to output specific agencies on the channel code list with the XM-DAC prefix?
So - to repeat: what value do we get from this?
And I add: who is to benefit?
@timgdavies may have something to add
Notify the one user of the shouldn't-ever-have-been-added-at-2.02 thing (FCO)
Mm.. I'm not really sure about this, for a couple of reasons:
modify the organisationType codelist to have more values (where's the GitHub issue for this?)
https://github.com/IATI/IATI-Codelists-NonEmbedded/issues/182
Migrate the organisationRegistrationAgency list to org-id (where's the githib issue for this?)
https://github.com/IATI/IATI-Schemas/issues/339
@IATI/bas: Could you take a look at the questions?
A summary of a Tech Team discussion today that relates to crs-add/channel-code ...
That all sounds fine to me.
But I don’t think anything here addresses @stevieflow’s point above: https://github.com/IATI/IATI-Schemas/issues/338#issuecomment-347618462
@stevieflow's point ...
By progressing down this route, we seem to be caught into two other proposals for 2.03 1 - modify the organisationType codelist to have more values (where's the GitHub issue for this?). Wouldn't this incorporate the generic / types from the channel codes already? 2 - Migrate the organisationRegistrationAgency list to org-id (where's the githib issue for this?). Wouldn't that guide people to output specific agencies on the channel code list with the XM-DAC prefix? So - to repeat: what value do we get from this? And I add: who is to benefit?
DAC reporters benefit. We cannot easily (i.e. disruptive change in major upgrade) reconcile the differences between the IATI OrganisationType codes and generic CRS delivery channel codes. We recognise this is a duplication but given that we need to remain compatible with the CRS and we want implementing agencies properly described as participating orgs we see no better option. NB that channel codes were not included in the original IATI standard for the very reason that the list tries to fulfill two very different functions: org types and identifiers.
Add a new attribute at
iati-activities/iati-activity/participating-org/@crs-channel-code
, typexsd:string
with the following definition:The attribute will have type
xsd:string
with occurrence rule0..1
.Tasks:
iati-activities/iati-activity/participating-org/@crs-channel-code
IATI-Codelists/mapping.xml
(to link this attribute to theCRSChannelCode
codelist)