-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Missing GSIM class – specification of Exchange Channel #5
Comments
To address one of the issues raised last year, that a presentation shouldn't require and InformationSet, I think that creating a super-class InformationStructure would help. The new InformationSet would parallel what we have for ReferentialMetadataSet and DataSet so that we can talk about the structure of either with one class. Proposed changes are outlined in red. |
Proposed changes:
We could think of this pattern as related to the classical Model-View-Controller (MVC) pattern. (see MVC reference):
In our case, the InformationSet/Structure would be the model, the ChannelPresentation the view, and the Channel itself the controller. This is not a formal mapping, just another way of looking at these classes so that they make more sense. |
According to the definition of ExchangeChannel, "The Exchange Channel is used for external and internal purposes", which means the collection and dissemination are just examples. However, that is not clear at all from other definitions and explanatory texts, or even the chosen extensions, e.g. Questionnaire, AdministrativeRegister, etc. We need to review the definitions and examples to make sure they clearly show the internal use case. We could add examples of data repositories for governance and harmonization, e.g. Data Hubs, Data Marts, which can be considered ExchangeChannels (much in the same way as AdministrativeRegisters). |
An example of using the classes mentioned above in a process model: |
The proposed changes is shown below as a high level domain model, The Model complies with most existing definitions of --protocol,protocol specification , product/product container , producer to a consumer. Need to add new destination-type to store or present . |
Exchange channel:
|
I'm trying to see how this can work with the examples we have in a way that is not too system-oriented. For instance, let's take the registers. A register doesn't seem to be a product that is transmitted or exchange, it's the actual means. What's transmitted is an information set extracted from the register. If the register is maintained in a relational DB and we connect to it via ODBC to run SQL queries, isn't ODBC the mechanism, hence the protocol? What's the channel then between the information and the consumer if not the register itself? |
I've put together a tentative proposal integrating most of Khrishnan's and Andreas' ideas above, as best as I understand them. The main change is the view of channel in a more traditional way as a transport/interface mechanism, which includes a Protocol, e.g. web service, FTP, face-to-face interview. Cardinalities need to be discussed in more detail once the over picture is more or less in place. |
Regarding the proposal above:
|
I agree.
Protocol and Provision Agreement are part of the specification, I think.
It's a bad name, I just couldn't find a better one. Manager, container and organizer are other options that came to my mind. It's where the content to be exchanged is maintained and organized, the capture or sharing tool. Essentially, it's the former ExchangeChannel minus the transport piece (send/receive). For instance, an electronic questionnaire would be the new ExchangeHub, the web page would be the new ExchangeChannel, HTTP+HTML would be the Protocol, the ProvisionAgreement would be the usual, and the ExchangeSpecification would be the design that puts all that together. |
Provision Agreement informs the specification, it's not quite part of it. I think it is still needed as an its own entity to store the negotiated/agreed basis for exchange: retention, sharing agreement, etc. |
Yes, we definitely need the class, same as Protocol. I just meant that the specification as a design document might have the agreement as a part, but it might just be a supporting document informing it.
Perhaps InformationContainer?
I like the idea of DataHarvest being an ExchangeChannel with the new definition. |
Ok, here is my last model: We really don't need the InformationHub, but I think it's a nice way of representing where Registers and Data Hubs in general fit in the information exchange story. I think this covers everything we discussed. Granted, the notion of Product is still different from what Andrea is using in her process model, but that can be addressed by just creating a wrapper class in the implementation model for InformationSet, InformationStructure and Presentation. Some impedance mismatch between GSIM and implementation models is expected, we just need to minimize it and ensure a mapping, e.g. via a wrapper class, is straightforward. In the end, we do need to define Product as an InformationExchange, giving the nature of Product, which includes dynamic content and online query tools. Barring some minor changes, e.g. renaming, cardinalities, etc. this model should be it. |
This looks OK to me. But I am still not sure the Administrative aspect of Information Exchange is being captured. |
Yes, that connection is weaker now. There is a composition between InformationExchange and InformationHub though, which is as strong as you can get between two classes.. In the end, I think that trying to capture registers (a type of repository) as a channel/exchange entity is what got us into this mess. The idea has merit, but we need to stretch these notions too far to make them fit, so keeping information repositories (hubs) connected but separated seems more precise and clearer for most people. We didn't discuss micro-data dissemination hubs, like PUMFs repositories, which are similar to registers from the exchange point of view, and many others, like dissemination databases, e.g. CANSIM, that function as a backend that can be accessed from a multitude of products. This model covers that case too. |
Yes, I was actually thinking that we should have another subtype of InformationExchange for the administrative nature/type of exchange in addition to having the registers as InformationHub(s). We will have Questionnaire, DataHaverst, Administrative??? and Product. |
If I understand correctly, you are proposing to change the composition between InformationExchange and InformationHub to an isA relationship. The problem with that, I think, is that it would still make hubs a type InformationExchange, which is what created the original problem. We'll be putting together transport and content management, won't we? |
Not at all... in addition to AdministrativeRegister for managing the content, there is an "Administrative Data Collection Tool" for bringing the information inside the organization. |
Hi, here is another proposal:
|
I agree with this, but I think we are still missing a third option for administrative data, not a register, but as a type of information brought into the organization from an external organization, a part from Data Harvest channels which include web scrapper, API, scanner, sensor, satellite, etc. |
Suggestion for definitions of the added/changed classes: Exchange Instrument
-> Now I am thinking whether it is easier if we merge Protocol and Exchange Instrument (if the latter is really for "concrete/usable tool, not an abstract notion") Data Harvest
Questionnaire
Exchange Specification
Information Structure
Dissemination Component / Instrument ?
|
Updated version of the figure: |
@JALinnerud it was an intentional change, I thought if we are going to make Presentation independent from Product and be able to exist on its own without Product, Output Specification no longer "defines" Presentation, but rather "uses" (existing) Presentations |
Explanatory text for Data Harvester in GSIM v1.2 was " Examples of Data Harvest channels include web scraper, API, scanner, sensor, satellite, etc. " I think these were useful examples and hope we can keep them. |
@JALinnerud I will add "Examples of Data Harvest channels include web scraper, API, scanner, sensor" in the explanatory text! I would exclude "satellite" though, as satellite is more than "data harvest" tool, and it is essentially sensors on satellite that capture the signal data |
I think Register is kind of lonely up there. Even though they are not channels, they still are means of sharing information and need to be linked to Provision Agreement and some sort of "interface" specification, similarly to Product. Perhaps Exchange specification doesn't need to be linked only to Exchange Channel... it seems to me we are missing some generalization here. Other than that, I think it works. |
Updated version based on meeting notes #30 (relationship between Register and Statistical Support removed) |
Ready to be modelled in EA |
There is a lack of GSIM information object to describe the specification of Exchange Channel in general (c.f., there is Questionnaire Specification and Output Specification for Questionnaire and Product which are the sub-types of Exchange Channel)
The text was updated successfully, but these errors were encountered: