Closed wrygiel closed 7 years ago
As @kaiqu explained here, we might need relations between "contact"s and IIAs.
In version 0.1.0 of the Institutions API schema, this is dealt with via the "iia-id" sequence, but - if I understood this correctly - this is not enough. We need to able to assign iia-ids for every role of every contact.
@kaiqu, did I understand this correctly?
First, some data model terminology:
A Coordinator belongs to an Institution/Org Unit, and can (in the next version) be connected to 0..* IIAs. I think the latter connections belong in the IIAs API.
BTW, I suggest we use "quotes" (or something) instead of XML
Contacts are Coordinators for Mobilities
Oops, I have used a different terminology in my XSD. Are these terms defined in WP2's dictionary?
My "contact" element is not necessarily a person. It can be, for example, an office (a phone number, or an email address, shared by a couple of people). Do you think it's a wrong assumption on my part? Do you think that we can require all coordinators to be specific persons?
A Coordinator belongs to an Institution/Org Unit, and can (in the next version) be connected to 0..* IIAs. I think the latter connections belong in the IIAs API.
I would rather assume that coordinators are part of factsheets (and factsheets are served in Institutions API).
In my mind, these two entities are divided quite clearly, according to the following:
Contacts are Coordinators for Mobilities
Oops, I have used a different terminology in my XSD. Are these terms defined in WP2's dictionary?
No - the task of aligning the model with the dictionary was assigned a lower priority, to be done after the structure is finalized.
My "contact" element is not necessarily a person. It can be, for example, an office (a phone number, or an email address, shared by a couple of people). Do you think it's a wrong assumption on my part? Do you think that we can require all coordinators to be specific persons?
This is a matter of terminology, rather than structure (it was probably not a good idea to delay the above-mentioned aligning with the dictionary, since it's important to know exactly what we are talking about when designing the structure). In the model, there is a sharp delineation between two types of contact information:
I've never been quite happy with the latter, so now might be the time to change it. In my mind, the term "coordinator" denotes a person, while "contact" is more general. I propose the following:
A Coordinator belongs to an Institution/Org Unit, and can (in the next version) be connected to 0..* IIAs. I think the latter connections belong in the IIAs API.
I would rather assume that coordinators are part of factsheets (and factsheets are served in Institutions API).
The Coordinators themselves, yes. I was referring to their connections to IIAs - i.e. a Coordinator having Role for an IIA (denoted in the coming version by a N:M relationship).
In my mind, these two entities are divided quite clearly, according to the following:
Factsheets contain information which is public, and can change in time without the need of signing the IIA again. IIAs contain information which is not necessarily public, and - if it changes - it requires the agreement to be signed again.
With that distinction, I guess assigning a new Coordinator to an IIA doesn't necessitate re-signing, so then I agree that the assignment of Coordinators to IIAs belong in the Institutions/Departments APIs.
My "contact" element is not necessarily a person.
For example, see here (source), or here (source).
The Contact term is discussed in my previous message, but I notice that the above examples seem to indicate more Roles than the ones mentioned so far.
(more factsheet examples)
I looked at some of these in the beginning of the modeling process, but it would probably be a good idea to go through some more fact sheets at this point to 1) check that the model hasn't lost any information and 2) complete code sets such as Role...
(...) two types of contact information: For people it's defined in the Coordinator entity
The term "coordinator" seems to fit our current set of roles. But I can imagine that as the list of roles grows, it might become very awkward, at some point. Intuitively, "coordinating something" seems to be a subset of all possible roles (and we can expect for this set to be growing).
BTW - our model image is becoming a bit tangled up. Do we need to model all entities on a single image? Perhaps it would be easier for the readers to split it up, for example, by the API?
Before I tackle your other comments - let's think about minimum requirements again, for a moment. The more I think on this, the more I wonder if we really need to model all these roles. Since EWP allows communication between whole systems, then perhaps it's up to the particular system developer to know who is supposed to do what in which context, and the partner doesn't need to know that. If this is true, then do we need roles in our model at all? Or, perhaps, we need only a small subset?
I would start with the smallest set of features required to meet our use cases. We can always add more features as we go.
Since it's somewhat unclear to me at this point, I have moved <role-id>
and other related elements to a separate feature branch. (So that the master
branch stays "clean".)
No - the task of aligning the model with the dictionary was assigned a lower priority, to be done after the structure is finalized.
It is a good assumpiton if we talk about technical dictionary prepared by WP3, not terminology prepared by WP2. That should be taken care of in the first place.
I looked at some of these in the beginning of the modeling process, but it would probably be a good idea to go through some more fact sheets at this point
You will find a substantial set gathered once by the partners in the Mobility project: https://www.usos.edu.pl/Mobility/InfoSheets/
In fact any proposal for the model should first be checked against this set of fact sheets.
I would start with the smallest set of features required to meet our use cases. We can always add more features as we go.
I agree.
The term "coordinator" seems to fit our current set of roles. But I can imagine that as the list of roles grows, it might become very awkward, at some point. Intuitively, "coordinating something" seems to be a subset of all possible roles (and we can expect for this set to be growing).
Yes.
BTW - our model image is becoming a bit tangled up. Do we need to model all entities on a single image? Perhaps it would be easier for the readers to split it up, for example, by the API?
Splitting up by API is not really possible, as many entities are used in more than one API. I guess it could be split up into some kind of "business areas", associating entities with a "primary" API:
Organization
IIA
Mobility
There are basically three ways to do this (ranging from the easiest to the most work):
I would like to try option 1 first, if we can assume everyone to have access to color printers?
Before I tackle your other comments - let's think about minimum requirements again, for a moment. The more I think on this, the more I wonder if we really need to model all these roles. Since EWP allows communication between whole systems, then perhaps it's up to the particular system developer to know who is supposed to do what in which context, and the partner doesn't need to know that. If this is true, then do we need roles in our model at all? Or, perhaps, we need only a small subset?
I assume contact information is only visual (if it was to be used programmatically in a different way for different Roles, the Roles would definitely be necessary). The only reason, then, for having defined Roles would be to be able to programmatically display contact information in a standard way for those Roles (and possibly to determine which Roles are assigned at a HEI).
I would start with the smallest set of features required to meet our use cases. We can always add more features as we go.
I agree. If Roles are deemed to be outside the smallest set, I'll remove them.
the task of aligning the model with the dictionary was assigned a lower priority, to be done after the structure is finalized.
It is a good assumpiton if we talk about technical dictionary prepared by WP3, not terminology prepared by WP2. That should be taken care of in the first place.
Aha. Ok, I will do that before releasing the next version of the model.
You will find a substantial set gathered once by the partners in the Mobility project: https://www.usos.edu.pl/Mobility/InfoSheets/
In fact any proposal for the model should first be checked against this set of fact sheets.
There are more than 70 documents here (counting the ones in the subdirectories) - is it possible to identify a key subset of them, for me to check?
I would have to look at them myself ;) I did but it was a couple of years ago. Just pick up 10 randomly.
It might be of some use to have a look at businessCardT in: https://www.usos.edu.pl/Mobility/Documentation2/default.html
It might be of some use to have a look at businessCardT in: https://www.usos.edu.pl/Mobility/Documentation2/default.html
Hm... Leaving out userDefinedBusinessCardSectionT and userDefinedSectionItemT (a generic name/value structure), the remaining components seem to be modeled by the current version:
organizationBCSection is covered by:
iroOfficeBCSection is covered by:
So, unless there is need for such a generic name/value structure, the model seems sufficient in this respect.
It is a good assumpiton if we talk about technical dictionary prepared by WP3, not terminology prepared by WP2. That should be taken care of in the first place.
Aha. Ok, I will do that before releasing the next version of the model.
I have produced a version of the WP2 Dictionary (data_dictionary.xslx), where I map from the Field Name to the current model, expressed by two added columns "WP3 - Attribute" and "WP3 - Entity". There are some questions which should be cleared up - should I commit the spreadsheet (possibly to a branch), or would this be considered unnecessary clutter in the repo?
I have produced a version of the WP2 Dictionary (data_dictionary.xslx), where I map from the Field Name to the current model, expressed by two added columns "WP3 - Attribute" and "WP3 - Entity". There are some questions which should be cleared up - should I commit the spreadsheet (possibly to a branch), or would this be considered unnecessary clutter in the repo?
I tried pushing the commented file to a new branch, but the server returns "permission denied" / HTTP 403. Should I have write access to this repo, or is it better to send the commented file to the technical mailing list?
@wrygiel @erasmus-without-paper/wp2
So, unless there is need for such a generic name/value structure, the model seems sufficient in this respect.
In my opinion there is a need for such generic section since it gives the possibility to send any information which might seem relevent by sending HEI. Our old Mobility client and server is in operation, you can see some real examples at: http://mobility.usos.edu.pl/mobility-server-transport/ These are business cards prepared by partner institutions.
So, unless there is need for such a generic name/value structure, the model seems sufficient in this respect.
In my opinion there is a need for such generic section since it gives the possibility to send any information which might seem relevent by sending HEI. Our old Mobility client and server is in operation, you can see some real examples at: http://mobility.usos.edu.pl/mobility-server-transport/ These are business cards prepared by partner institutions.
I think this is solved by the Info attribute in Inst/Org Unit in the latest version of the model. It represents 0..* Info elements with Headers for display/grouping (as described in my message to the technical list yesterday). I propose to replace the predefined Role IDs with this.
Is this already reflected in the XSD or XML example?
Are you sure that all posted Business Cards (Fact Sheets) from the Mobility server can be easily described by the model? Could we see the XML examples showing this? That would be real proof of concept.
What you see at http://mobility.usos.edu.pl/mobility-server-transport/ is posted automatically by the server after API invocation of the client. XML contains header (title) section which helps to structure information in a way readable for humans. We might even post such Facts Sheets of EWP partners at the registry web page (if we decide to have one and if there comes an attribute 'public' with the invocation).
Are you sure that all posted Business Cards (Fact Sheets) from the Mobility servrr can be easily described by the model? Could we see the XML examples showing this? That would be real proof of concept.
I am working on it.
What you see at http://mobility.usos.edu.pl/mobility-server-transport/ is posted automatically by the server after API invocation of the client. XML contains header (title) section which helps to structure information in a way readable for humans.
This fits the Info structure perfectly (header + content repeated), which was the result of examining quite a few fact sheets (including the one from UW). It also fits pretty well with what @wrygiel created in a branch (except he called the structure "embedded-mobility-factsheet" and made it embeddable/recursive).
Also, since there doesn't seem to be any need for programmatic processing of predefined Role IDs, I propose to replace them with headers. That way, we get the header/content structure for all kinds of repeating information connected to Inst/Org Unit. (Coming in the next model version)
I tried pushing the commented file to a new branch, but the server returns "permission denied" / HTTP 403.
In general, only WP2 is allowed to change things in ewp-wp2-*
repositories, because they are responsible for their contents. If you would like to suggest changes, the "GitHub way" of doing this is to create a fork (your local copy of the repository), and then make a pull request. Then, you assign people to this pull request to review your comments.
BTW, @kaiqu, I see we are working on one API in parallel. I hope it's not too confusing for you :) I also have some local changes for Organizational Units API, but I'm not sure if will be able to push them before I leave for my holidays.
In general, only WP2 is allowed to change things in ewp-wp2-* repositories, because they are responsible for their contents. If you would like to suggest changes, the "GitHub way" of doing this is to create a fork (your local copy of the repository), and then make a pull request. Then, you assign people to this pull request to review your comments.
Sorry about the GitHub newbie questions, but I have created the fork and pull request, but I don't see how to assign people to it?
BTW, @kaiqu, I see we are working on one API in parallel. I hope it's not too confusing for you :) I also have some local changes for Organizational Units API, but I'm not sure if will be able to push them before I leave for my holidays.
No problem :-) I'm waiting with the Org Units API until the Institutions API is finished, since they will be very similar.
I have created the fork and pull request, but I don't see how to assign people to it
It seems that you'd need to have write-permissions to assign people directly. So, lets use @mention tags instead.
As @kaiqu explained here, we might need relations between
<contact>
s and IIAs.
In the latest IIAs API draft (version 0.1.0), we have dealt with this problem by allowing <contact>
elements in various places of the IIA element tree. Each such contact can have a <role-description>
. Contacts with very specific roles have separate elements to distinguish them. We will see if this proves enough for our purposes (new, more specific issues might arise in the future).
BTW, this also means that some data that we initially planned to put in the Institutions API, will now be placed in the IIAs API (as explained here).
As @kaiqu explained here, we might need relations between
<contact>
s and IIAs.In version
0.1.0
of the Institutions API schema, this is dealt with via the<iia-id>
sequence, but - if I understood this correctly - this is not enough. We need to able to assign iia-ids for every role of every contact.@kaiqu, did I understand this correctly?