= Organization in GeoNetwork's domain model (originating from [http://nationaalgeoregister.nl Nationaal Georegister]) = || '''Date''' || 2009/09/03 || || '''Contact(s)''' || [http://wiki.osgeo.org/wiki/User:Heikki Heikki Doeleman] || || '''Last edited''' || [[Timestamp]] || || '''Status''' || draft || || '''Assigned to release''' || 2.5 || || '''Resources''' || The work may be done in the NGR project || == Overview == In !GeoNetwork there is no concept of "Organization". In [http://nationaalgeoregister.nl NGR] and in [http://www.geocat.ch/ SwissTopo] the concept was needed and has been implemented as a small addition to the existing notion of "Group". It would be better, though, to not mix up those two concept and implement Organization as a first-class citizen in !GeoNetwork's domain model.[[BR]][[BR]] An Organizations page lists all the organizations in your !GeoNetwork node and provides a quick search link to search metadata by organization.[[BR]][[BR]] After [http://logs.qgis.org/geonetwork/%23geonetwork.2009-09-01.log this discussion on the IRC channel], I have made two class diagrams to be discussed, differing in how user roles are handled (see below). === Proposal Type === * '''Type''': GUI Change, Core Change * '''App''': !GeoNetwork * '''Module''': Data Manager, Group Manager, GUI === Links === * '''Email discussions''':[[BR]] on geonetwork-devel: [http://n2.nabble.com/Proposals-to-include-NGR-functionality-to-GeoNetwork-trunk-td3365623.html#a3365623 "Proposals to include NGR functionality to GeoNetwork trunk"] * '''IRC discussions''':[[BR]] [http://logs.qgis.org/geonetwork/%23geonetwork.2009-09-01.log September 1st, 2009 on GeoNetwork's IRC channel][[BR]] [http://logs.qgis.org/geonetwork/%23geonetwork.2009-09-08.log September 8th, 2009 on GeoNetwork's IRC channel] === Voting History === * None as yet ---- == Motivations == The motivations for these changes are : '''1.''' The notion of Organization is lacking in !GeoNetwork's domain model[[BR]] '''2.''' The Organization Page gives more exposure to organizations publishing metadata and services, and improves search functionality[[BR]] == Proposal == The first class diagram extends my original proposal [http://trac.osgeo.org/geonetwork/wiki/ChangesFromNGR here] in order to allow for "departments", i.e. an Organization that has a parent Organization. It also explicitly models the system groups "all", "intranet" and "guest", which are Groups but are not Organizations.[[BR]][[BR]] [[Image(ngr.organizations.1.jpg)]][[BR]] The second class diagram builds on the first one but has the added feature that a User may have more than one combination. This combination is called a Participant. Every User is associated with at least one Participant. A Participant has one !UserRole and participates in one Group, and is the type of entity that can be logged in. This way, a User can act with more than one role in one or more Groups. A Group of course can have any number of Participants.[[BR]][[BR]] [[Image(ngr.organizations.2.jpg)]][[BR]] This second model, being a larger change from the current model, is therefore more work to implement but it also greatly increases the sophistication of GeoNetwork's domain model. The Organization page as it is in [http://nationaalgeoregister.nl NGR] is reprinted here:[[BR]][[BR]] [[Image(ngr.organizationpage.png)]][[BR]] === Backwards Compatibility Issues === '''1.''' a database change is required. SQL script to update existing DBs will be available[[BR]] '''2.''' a database content change is required. A migration script to update existing DB's content will be available[[BR]] == Risks == == Participants == * As above == Feedback == * [wiki:FeedbackOrganizationModel]