SALVIAS intellectual property rights policies and data access controls This document explain the general SALVIAS intellectual property rights policy, data ownership and access metadata within the SALVIAS plots database, and their implementation within the SALVIAS web interface (UI). CONTENTS 1. PROJECT-LEVEL ACCESS CONTROLS 2. PLOT-LEVEL ACCESS CONTROLS 3. USER-LEVEL ACCESS CONTROLS 4. GENERAL SALVIAS DATA ACCESS POLICY 5. DATA DOWNLOAD LOGS ________________________________________________ 1. PROJECT-LEVEL ACCESS CONTROLS These reside in table 'projects' and apply to sets of plot representing a particular research project and owned and administered by a particular data provider/owner. All these settings can be over-ridden by plot-level and user-level controls. `project_pi` VARCHAR(30) The username of the main (designated) owner of all plots in the project. This person always has full, grant level access for all plots within the project (i.e., access level=4; see below). `project_pi` is a foreign key to tbl_salvias.`username` in the separate database salvias_users. `allow_download_all` TINYINT(1), DEFAULT(1), Values (0,1) The setting only affects whether or not the download_all icon appears when all plots within a particular project are displayed. `allow_download_all`=0 has the effect of preventing the download_all icon from displaying. `allow_download_all`=1 allows the download_all icon to display. Note that this setting is over-ridden by plot-level and user-level access controls. Even if `allow_download_all`=0, individual plot data download icons may display according to the individual access setting for each plot. For this reason, `allow_download_all` really does not control access in any meaningful way, but only governs whether users are allowed the convenience of downloading all plots in a single file as opposed to downloading plots one by one. `ipr_specific` LONGTEXT, Values: unconstrained, DEFAULT: "There are no specific use conditions attached to this dataset. For general use conditions, see SALVIAS General Participant Agreement at http://www.salvias.net/eula/eula1.html" Text IPR statement transmitted with all downloads for this dataset. In theory, the default message should be used only if `allow_download_all`=1 and AccessLevel=1 (see below) However, we have been inconsistent in the use of this field. The contents of this field do not affect behavior of the UI. The following query shows these settings for the current salvias_plots database: mysql> SELECT project_id, LEFT(project_name, 30), project_pi, allow_download_all, -> LEFT(ipr_specific, 36) -> FROM projects; +------------+--------------------------------+-----------------+--------------------+--------------------------------------+ | project_id | LEFT(project_name, 30) | project_pi | allow_download_all | LEFT(ipr_specific, 36) | +------------+--------------------------------+-----------------+--------------------+--------------------------------------+ | 1 | Gentry Transect Dataset | jsmiller | 1 | There are no specific use conditions | | 2 | Boyle Transects | bboyle | 1 | There are no specific use conditions | | 3 | OTS Transects | bboyle | 1 | | | 5 | RAINFOR - 0.1 ha Madre de Dios | oliverp | 1 | There are no specific use conditions | | 6 | Noel Kempff Forest Plots | tkilleen | 1 | There are no specific use conditions | | 7 | Noel Kempff Savanna Plots | tkilleen | 1 | There are no specific use conditions | | 8 | Inventarios de Bosques en Ecua | neill | 0 | There are no specific use conditions | | 9 | Inventarios de Bosques de la C | neill | 0 | There are no specific use conditions | | 10 | Enquist Lab Transect Dataset | benquist | 1 | There are no specific use conditions | | 11 | INW Vegetation Plots | jennings | 1 | There are no specific use conditions | | 12 | Cam Webb Borneo Plots | cam_webb | 1 | There are no specific use conditions | | 13 | Pilon Lajas Treeplots Bolivia | tkilleen | 1 | There are no specific use conditions | | 14 | Madidi Transects | peter jorgensen | 1 | There are no specific use conditions | | 16 | nsf_example | nsf_salvias | 1 | There are no specific use conditions | | 17 | Madidi Permanent Plots | peter jorgensen | 1 | There are no specific use conditions | | 18 | SERBO Selva Seca Oaxaca | boyle_admin | 0 | There are no specific use conditions | | 19 | DeWalt Bolivia forest plots | sdewalt | 1 | There are no specific use conditions | | 21 | La Selva Secondary Forest Plot | letcher | 1 | There are no specific use conditions | | 22 | ACA Amazon Forest Inventories | ncpitman | 1 | There are no specific use conditions | | 23 | Madidi Savana Line Transects | peter jorgensen | 1 | | | 24 | Bonifacino Forest Transects | mbonifacino | 1 | There are no specific use conditions | | 25 | RAINFOR - 1 ha Peru | oliverp | 1 | There are no specific use conditions | +------------+--------------------------------+-----------------+--------------------+--------------------------------------+ 22 rows in set (0.00 sec) 2. PLOT-LEVEL ACCESS CONTROLS SALVIAS maintains one plot-level access control. It's definition is stored in the table `lookup_plot_security_levels`, and takes on the following values: mysql> select * from lookup_plot_security_levels; +-------+---------------------------+ | level | description | +-------+---------------------------+ | 1 | No Access | | 2 | Can view plot metadata | | 3 | Can download plot details | | 4 | Can assign access to plot | +-------+---------------------------+ 4 rows in set (0.00 sec) These values from 1-4 are assigned to column `AccessCode` in table PlotMetadata, and are used by the UI to enforce access as follows: 1: Plot metadata is not displayed and data cannot be downloaded. Effectively, such plots are invisible to all users. The only exceptions are (i) database administrators and (ii) users who have been granted plot x user access which over-rides the plot-level setting (see 3. USER-LEVEL ACCESS CONTROLS, below). 2: Plot metadata are displayed and can be downloaded (in a small file describing locality, lat, long, elevation, etc.), but not the full data. Instead of a data download icon, the user sees a question mark icon. The plan was that this would generate an email message which would be sent to the plot owner, requesting access, but we never got around to implementing this feature. In any case, this setting means the user must contact the data owner (or database administrator, who forward the request) to request access. 3: Plot metadata are displayed, and both the metadata file and full raw data file are downloadable (i.e., the download icons appear for both metadata and full data). 4. Same as 3, plus the user may change default access level for a plot and grant user- level access to particular users for this plot (see 3. USER-LEVEL ACCESS CONTROLS, below). For database administrators and data owners, the UI allows setting of a default, project- level access. In practice, this is simply done by update query that assigns one of the four access codes to all plots within a project. 3. USER-LEVEL ACCESS CONTROLS User-level access controls use the same four codes defined above (see 2. PLOT-LEVEL ACCESS CONTROLS). These are set on a user x plot basis, and override plot-level access control for specific users. Only database administrators or users with access level=4 for a specific plot may assign or change the access levels for other users for that plot. User x plot access levels are stored in the table `permissions_plot_user`, which has the following definition: mysql> describe permissions_plot_user; +--------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+-------+ | plot_id | int(11) | | PRI | 0 | | | username | varchar(50) | | PRI | | | | access_level | mediumint(9) | | MUL | 0 | | +--------------+--------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) `plot_id` links to PlotMetadata.`PlotID` and `username` links to tbl_users.`username` in the separate database salvias_users: mysql> describe tbl_users; +------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------+----------------+ | id | mediumint(9) | | PRI | NULL | auto_increment | | username | varchar(30) | | UNI | | | | password | varchar(250) | YES | | NULL | | | lname | varchar(25) | YES | | NULL | | | fname | varchar(25) | YES | | NULL | | | email | varchar(100) | YES | | NULL | | | alt_email | varchar(60) | YES | | NULL | | | html_link_id | mediumint(9) | YES | | NULL | | | address | varchar(200) | YES | | NULL | | | city | varchar(100) | YES | | NULL | | | state | varchar(11) | YES | | NULL | | | zip | varchar(15) | YES | | NULL | | | phone | varchar(25) | YES | | NULL | | | country_id | int(11) | YES | | NULL | | | room_number | varchar(10) | YES | | NULL | | | institution_id | int(11) | YES | | NULL | | | Department | varchar(50) | YES | | NULL | | | spec_dq_priority | tinyint(4) | | | 0 | | +------------------+--------------+------+-----+---------+----------------+ 18 rows in set (0.00 sec) If there is an entry for a particular user x plot combination in table permissions_plot_user, it overrides the settings of PlotMetadata.AccessCode. User-level permissions are therefore optional. If there are no entries for a given plot x user in table permissions_plot_user, then the default setting for that plot in PlotMetadata.AccessCode applies. 4. GENERAL SALVIAS DATA ACCESS POLICY SALVIAS general data access policy requires that users contact data owners and offer them co-authorship, unless they specifically indicate that data are publicly available and do not require co-authorship. In other words, even if the data can be freely downloaded, you must still contact the data owner and offer them co-authorship, unless the access conditions transmitted with the dataset (as stored in salvias_plots.projects.ipr_specific; see 1. PROJECT-LEVEL ACCESS CONTROLS, above) specifically state that no conditions are attached to the data. Users agree to this policy as a condition of access to SALVIAS. Furthermore, they are notified that all their data downloads are logged and reported to the original data provider. A statement of this policy is stored in licence_lookup.ipr_brief_text in the salvias_users database, and is currently as follows: --------------------------- As a participant of the SALVIAS network, I recognize that transfer of any data between project participants does not imply the transfer of rights to publication of the data. Therefore, I agree first to obtain the consent of the original data providers before submitting any work for publication. Furthermore, I understand that when I publish an analysis based wholly or in part on the data of another SALVIAS participant, the original data provider shall be co-author on that publication, unless he or she specifically relinquishes co-authorship. I agree to involve data-contributors in the analysis and writing of any research based on their data, whenever this is appropriate. I agree to abide by all conditions of data access set by individual data providers for data managed by SALVIAS and its participants, and understand that I may not redistribute any data obtained through SALVIAS, unless specifically permitted to do so by the original data provider. As a specific condition of use of the SALVIAS plots database, I agree to have my download activity recorded by SALVIAS; all downloads of plot data by me will be reported to the respective plot owners, along with my identity and contact information. I further agree to acknowledge SALVIAS as a source of any data or information obtained through the SALVIAS website. The SALVIAS website should be cited as: "The SALVIAS Project (2002 and onward). Retrieved [date_retrieved], from http://www.salvias.net" Rights and obligations of SALVIAS participants As a SALVIAS participant, you may request access to data managed by SALVIAS, subject to any restrictions set by individual data providers for individual data sets. As a participant, you must abide by the SALVIAS General Participant Agreement, in addition to any specific data access conditions set by individual data providers for data which you obtain from SALVIAS. As a contributor of data to SALVIAS ("data provider"), you are entitled to set the level of access for any data that you provide, as specified by the data access categories outlined below. SALVIAS agrees to limit access to your data, and to transfer your data to requesting parties, only as permitted by the data access restrictions set by you. As a contributor of plot data, you are entitled to view download activity of your plots by other SALVIAS members, and contact information for those members. As a contributor of data to SALVIAS, you automatically become a participant in the SALVIAS network. ------------------------- This policy is displayed to all new users when they sign up to SALVIAS. They are asked to agree to this policy and their response is stored in the table licence_user_lookup: mysql> SELECT * FROM licence_user_lookup LIMIT 12; +-------------+------------+----------+------------+ | username | licence_id | accepted | date | +-------------+------------+----------+------------+ | bboyle | 1 | Y | 2004-05-07 | | benquist | 1 | Y | 2004-05-07 | | vishal | 1 | Y | 2004-05-07 | | mweiser | 1 | Y | 2004-10-27 | | gracia | 1 | Y | 2004-05-07 | | madmin | 1 | Y | 2004-05-07 | | JoeUser | 1 | Y | 2004-05-07 | | tkilleen | 1 | Y | 2004-05-07 | | ipni | 1 | Y | 2004-05-10 | | boyle_admin | 1 | Y | 2004-05-10 | | gaube | 1 | Y | 2004-05-10 | | sdewalt | 1 | Y | 2004-05-10 | +-------------+------------+----------+------------+ 12 rows in set (0.00 sec) Users are blocked from accessing SALVIAS unless they respond yes. Whenever the general access policy is altered, the UI forces all users to review the revised policy on next login. Again, they must agree (or not) to the policy, and are only allowed access if they agree. 5. DATA DOWNLOAD LOGS As an aid to "self-enforcement" of the SALVIAS data access policy, all downloads of plot data are recorded and stored in the table log_plot_download in the salvias_plots database. The following shows the 10 most recent plot data downloads from SALVIAS: mysql> select * from log_plot_download -> order by download_timestamp desc -> limit 10; +-----------+---------------------+----------------+---------+--------------------+------------+ | EnteredBy | download_timestamp | ip | plot_id | plot_administrator | project_id | +-----------+---------------------+----------------+---------+--------------------+------------+ | bboyle | 2012-11-14 10:30:28 | 150.135.114.36 | 25928 | ncpitman | 22 | | bboyle | 2012-11-14 10:20:33 | 150.135.114.36 | 510 | neill | 9 | | ncpitman | 2012-11-08 14:36:54 | 177.114.79.135 | NULL | | 25 | | ncpitman | 2012-11-08 13:43:13 | 177.114.79.135 | NULL | | 25 | | ncpitman | 2012-11-05 16:32:50 | 177.114.39.21 | NULL | | 1 | | ncpitman | 2012-11-05 15:33:16 | 177.114.39.21 | NULL | | 1 | | vbuzzard | 2012-10-26 09:09:29 | 10.134.165.192 | 26229 | | 10 | | vbuzzard | 2012-10-26 09:08:34 | 10.134.165.192 | 26229 | | 10 | | rgarcia | 2012-10-26 04:02:22 | 193.62.154.252 | 412 | Percy Nunez V. | 5 | | rgarcia | 2012-10-26 04:02:17 | 193.62.154.252 | 411 | Percy Nunez V. | 5 | +-----------+---------------------+----------------+---------+--------------------+------------+ 10 rows in set (0.05 sec) `EnteredBy` is the username of the user executing the download. The IP of the computer from which the user accessed the data is also recorded. `project_id` and `plot_id` identify the actual plot downloaded. `plot_administrator` is a FK to tbl_users.username in database salvias_users, and identifies the main data owner (should also be the same as projects.project_pi). Data owners (projects.project_pi) can view a list of all downloads of their plots whenever they log onto salvias. As well as any user with permission level=4 (see 3. USER-LEVEL ACCESS CONTROLS, above) can view the download log for all plot for which they have level 4 access. Database administrators can view download logs for all plots at all times. We had also planned to have the UI automatically notify plot owner via email any time someone downloaded their plots, but never got around to it. An ideal implementation would be to allow users to "opt in" to receiving these notifications, with the additional option of receiving a notification following each download or a weekly digest.