+
|
+
ARGOS is an online tool in support of automated processes to creating, managing, sharing and linking DMPs with research artifacts they correspond to. It is the joint effort of OpenAIRE and EUDAT to deliver an open platform for Data Management Planning that addresses FAIR and Open best practices and assumes no barriers for its use and adoption. It does so by applying common standards for machine-actionable DMPs as defined by the global research data community of RDA and by communicating and consulting with researchers, research communities and funders to better reflect on their needs.
+
ARGOS provides a flexible environment and an easy interface for users to navigate and use.
Argos is an open and collaborative platform developed by OpenAIRE to facilitate + Research Data Management (RDM) activities concerning the implementation of Data + Management Plans. It uses OpenAIRE guides created by the RDM Task Force to + familiarize users with basic RDM concepts and guide them throughout the process of + writing DMPs. It also utilises the OpenAIRE pool of services and inferred sources to + make DMPs more dynamic in use and easier to be completed and published. Argos is + based on the OpenDMP open source software and is available through the OpenAIRE + Service catalogue and the EOSC.
+ ++ Argos is a flexible tool, designed to accommodate all research performing + and research funding organisations’ policies and Research Data Management (RDM) needs. + It already supports templates for different authorities. + These templates are created by Admin users in Argos. + In addition, we currently work to provide non-administrative users with the capability + to modify templates according to their own needs. +
+Argos is easy to use and navigate around. It familiarises users with the DMP process + and provides guidance on basic RDM concepts so that users find useful resources to + learn from without having to leave the Argos environment. Users can invite their + colleagues and collaboratively work on completing a DMP. Moreover, Argos is an + integral part of the OpeAIRE ecosystem and the Research + Graph. Argos integrates + other services of the ecosystem to enable contextualisation of information, which is + especially useful when data are re-used, for example to understand how/ if they can + be repurposed.
+Argos is designed as a tool for inclusive use by researchers, students, funders, + research communities and institutions. It can be used in the context of research + projects’ conduct to comply with funders’ RDM requirements, as a tool in support of + literacy programmes in academia or can be independently deployed to meet given + stakeholder demands. Also, it is available in native languages, thanks to the help + of OpenAIRE NOADs, which strengthens common understanding of all researchers + involved in the DMP writing process. + By using Argos, researchers and students are able to create their DMPs in + collaboration with other colleagues, learn basic RDM concepts throughout the process + and publish DMPs as outputs in an open and FAIR manner, among other things by + assigning DOIs and licenses and by maintaining DMPs as living documents through + versioning. + At the same time, Argos can be configured and deployed by funders, institutions and + research communities. They can plug in their own services and/ or make use of + OpenAIRE underlying services that Argos is built with ad-hoc.
+
+ Argos consists of two main functionalities: DMPs and Datasets.
+ Argos can be used for:
+
+ A. Viewing/ consulting publicly released DMPs and Datasets or Projects
+ corresponding to
+ DMPs
+
+ Argos offers options for publishing DMPs in two modes, private or public. To view
+ public DMPs and Datasets, there is no need for login to the platform.
+
+ B. Writing and publishing a DMP
+
+ Argos helps researchers comply with mandates that may be attached to their grant
+ proposal/ project funding. They can therefore choose from the most suitable to their
+ needs template from the Datasets collection and proceed with answering the
+ corresponding questions. Once finalized, researchers can assign a DOI to their DMP,
+ publish and eventually cite it.
+
+ C. Practicing on writing DMPs and Dataset Descriptions
+
+ Argos may be used for educational purposes. The process of Data Management Planning
+ reflects the data management lifecycle, hence the tool can be used in response to
+ global RDM training demands. Examples may refer to embedding DMPs and DMP tools in
+ specific curricula or be embedded in library instructions’ sessions to familiarize
+ researchers and students the processes of RDM and DMP.
+
+ Of course. If you want to compare DMPs or analyse DMP data, then we advise you to export the records in .xml. + This schema is the most complete as it includes all information held in a DMP: information provided by the Admin + when structuring the template and input provided by researchers when completing their DMPs. +
++ You can log in Argos by selecting one of the providers from the Login page. Argos + does not require Sign Up. +
++ If you are interested in becoming an administrator in Argos and benefit from extra + features relevant to creating tailored templates, please email argos@openaire.eu . +
+ ++ There is no need to switch from your administrator account to use Argos. The only + difference between regular users and administrators profiles in Argos is an extra + set of tools at the bottom of the main tool bar that is positioned on the left + handside. +
++ Argos does not have Sign Up. To change email, please see “Switch between accounts”. + Alternatevily, you can add more email addresses to your user account by selecting + the “Add alternative email” from your profile. +
++ You can switch between email accounts by loging in with different providers from the + Login page. The change depends on whether you have used different email addresses to + sign up with those providers. On the occassion that only one email address is used + for all providers offered by Argos, then no change is expected. You can always add + new email accounts in your profile from the “Add alternative email” in your profile + page. +
++ If you want to delete your Argos profile, please email argos@openaire.eu . +
++ You can access your profile page and make desired edits from clicking on the avatar + at the very top of the toolbar located on the right handside. +
++ Please try using a different provider from the Login page and contact us at: + argos@openaire.eu . +
++ If you are reading this right now, you probably know the answer already! One way to + access Argos is through the OpenAIRE Service + catalogue. Another way is through the + EOSC + Catalogue. But, you can always find Argos at + argos.openaire.eu . + To access Argos software, please visit + https://code-repo.d4science.org/MaDgiK-CITE/argos/src/branch/master + . +
++ Author of the DMP is everyone contributing to writing the DMP. Both Argos owners and + Argos members are DMP authors. Researchers, however, are not DMP authors. +
++ Argos DMP owner is the person initiating the DMP. People who are invited to join the + DMP process are members who contribute to writing the DMP. DMP owners have extra + editing rights and they are the ones to finalize the DMP process. Members can view + and edit DMPs and Datasets, but can not perform further actions for its validation + or finalization. +
++ Researchers in Argos are project contributors and usually those who own or have + managed data described in respective DMPs. +
++ Of course! This depends on whether the researcher has also been involved in the DMP + writing process. +
++ Not everyone can become an Admin user in Argos. This happens upon request at + argos@openaire.eu. Admin users are able to create + their own tailored templates from + a specialised editor, configure their own APIs and integrate services with Argos in + collaboration with and support of the Argos development team. Fees may apply + according to the type of requests. +
++ DMPs that are created as part of the project proposal are not included in Argos. + Only accepted project proposals are listed in the platform. If you can’t find your + project in the list (drop-down menu), please use the “Insert manually” + functionality. +
++ If you can’t find your grant in the list (drop-down menu), please use the “Insert + manually” functionality. +
++ You have to be an Admin user to design your own template in Argos. To learn more + about Admin users, check “What does an Admin user do?”. +
++ Yes, you can, provided that you are an Admin user. To learn more about Admin users, + check “What does an Admin user do?”. +
+They all perform the same action, but the difference lies in where you are directed + after you have saved your DMP or Dataset.
++ Yes, you can, as long as you haven’t assigned a DOI to your DMP. You just select + “Undo Finalization”. +
++ You may use the “Invite” button to share DMPs with your colleagues and start working + on them together. +
+
+ Of course. Argos supports collaborations across diverse teams. There are two most frequent ways that can address this question:
+
+ A. Everyone works on the same DMP, but on different dataset descriptions
+
+ In this case, each organisation makes its own dataset description(s) in a single DMP.
+ That means that the manager (i.e. person responsible for the DMP activity) creates a DMP in ARGOS
+ and shares it with everyone. If the DMP is shared with co-ownership rights,
+ then the people will be able to edit it and add their dataset descriptions at any time during the project.
+ If there is the need to control editing rights of people writing the DMPs, then the manager can create the dataset description(s)
+ and share these each time with the team members that are responsible for adding input for the specified datasets.
+
+ B. Everyone works on their own DMP and content is later merged into one single DMP
+
+ In this case, each organisation might work on their own DMP for the same project.
+ At one point, you need to decide which DMP is going to be the core for the work you perform, share co-ownership
+ between managers of all DMPs so they can copy all dataset descriptions of their DMPs in this single DMP document.
+
+ DMPs and Datasets can be cloned and used in different research contexts. + Existing DMPs presenting similarities with new ones, can be cloned, changed name and + then edited according to the new project data requirements. + Existing Datasets can be cloned and used in new DMPs that are reusing data described + in their context. +
++ Versioning in Argos is both an internal and an external process. That means that + versioning happens both in the Argos environment when editing the DMP, and outside + of Argos when a DMP output is published in Zenodo. At every stage of the DMP + lifecycle, users have the option of keeping versions of the DMPs they are editing. + In Argos, users can create new versions of their DMPs by selecting the “Start New + Version” option to keep track of the evolution of their DMP throughout the writing + process. When published, versioning is associated with a DOI. Published DMPs are + automatically versioned every time a newer version of the same output is uploaded in + Zenodo. +
++ A DMP in Argos consists of vital information about the research project on behalf of + which the DMP is created and of more in depth information about the management, + handling and curation of datasets collected, produced or reused during the research + lifetime. A DMP in Argos accommodates documentation of more than one datasets. That + way datasets are provided with the flexibility to be described separately, following + different templates per type of dataset or research community concerned each time, + also possible to be copied and used in multiple DMPs. Datasets are then bundled up + in a DMP and can be shared more broadly. Special attention is given to the handling + of data that are being re-used via OpenAIRE APIs. +
++ This depends on the reason why you are creating a DMP in the first place. If it is + for compliance matters with funders, institutions or research communities RDM + policies, then you may select the dataset template of that particular stakeholder. + If you are creating a DMP for training purposes, you may select and work on any + template from the Argos collection. +
++ Currently, it is not possible for all Argos users to create dataset templates of + their own, so they have to work on predefined templates. Additional rights for + editing Dataset templates according to tailored needs have Admin users. This is + expected to change in the near future. To learn more about Admin users, check “What + does an Admin user do?”. +
++ Yes, it is possible in Argos to create short versions of templates that can be used + for grant proposals, such as for Horizon Europe. + If you are interested in working with us to create this short version of any ARGOS template, + please contact us: argos@openaire.eu. +
++ Yes, you can. In the current version, this is possible for Admin users who have their own deployment on-premises or cloud. + Please note that this subject to change in the near future as we are working on a feature that will allow all users + to customise (remove/add/extend) specific questions on the template they are working on. +
++ A Dataset in Argos is an editor with set up questions that support the creation of + descriptions of how data are / have been handled, managed and curated throughout the + research data lifecycle. The editor holds a collection of Dataset templates each one + with different sets of predefined questions as per funders, institutions, research + communities RDM policy requirements. Researchers and students can choose the + template that corresponds to their RDM needs in order to get funding or get their + degree, respectively. A DMP in Argos may consist of one or more datasets. +
++ You don’t necessarily need to have many Datasets in a DMP. However, you might be + producing a plethora of data during your research that are diverse in type and/ or + scope of collection/ re-use, thus presenting diverse management needs. Argos gives + you the flexibility to describe all data produced and/ or re-used in your research + separately. That way it is easy to perform the mapping of information provided in a + DMP to the respective data types or data collections they correspond to. Equally, + reuse of particular datasets in different DMPs is easier. For the latter, please + check “How do I create an identical DMP or Dataset as a copy?”. +
++ This is something that has to be tackled conceptually, from the author of the DMP. + If those "products" have their own lifetime and rules (IPR, Access rights, etc), they should be described as different datasets. + Alternative formats should not be treated as different datasets, unless they have other differences due to the format, too. + But, for instance, if you have datasets in CSV and JSON formats and under the same terms, they could be seen as one dataset description in the DMP. +
++ Argos offers a search to Zenodo for prefilling the DMP you are working with dataset metadata. + This search has been developed according to the rules set by Zenodo + and therefore has the same behaviour as when you are using the search bar on the Zenodo interface. + However, we understand the need to be able to find records with their PID, + hence we introduced some changes and now support searching DOIs from the Argos interface. +
++ Of course! You can choose to manually describe your dataset, e.g. for a dataset you are planning to produce, + instead of pre-filling the template with available metadata from a dataset that has already been shared and preserved in a repository. +
++ Public DMPs and Public Datasets are collections of openly available Argos outputs. + That means that DMP owners and members are making their DMP and/or Dataset outputs + available to all Argos and non-Argos users who might want to consult or re-use them + under the framework provided by the assigned DMP license. Please also check “Is all + the information I create visible by default?”. +
++ No, it is not. You can choose how your DMP is displayed in Argos from the + “Visibility” option. Choosing Public will immediately locate your DMP in the “Public + DMPs” collection and make it available to all Argos and non-Argos users. + Choosing Private will keep the DMP visible only to you and to the people invited to + edit the DMP in collaboration with you. Private DMPs are not publicly displayed to + other users. +
++ DMP export contains all vital information for a DMP, including funding and dataset details, + while dataset export is a subset of the DMP export containing information only about a dataset described in the DMP. + Both DMP and Dataset exports are available in .pdf, .docx, .xml. + In addition, DMP export is available in the RDA .json format + to increase interoperability of ARGOS exchanged DMPs. +
++ No, there is no storage limit or fee for either files stored in Argos. +
++ Yes, it is possible. + But, to have different repositories attached to the system, you will need your own on-premises or cloud deployment. + We are already working on that for DSpace and Dataverse repositories. +
++ Yes, we are aware of that. + Argos has no control over the DMPs that you generate and publish and thus can not be held accountable for empty DMPs. + Please remember that, as on all other occasions where you publish content, you should do so responsinbly. + If you have any questions regarding publishing DMPs, don’t hesitate to contact us at argos@openaire.eu. +
++ Both options are possible according to how you have deposited the DMP in the first place. + If you have deposited your DMP with a token (i.e. from the ARGOS account on Zenodo), + then you won’t have editing rights on the Zenodo record, but you will still be able to make changes + on ARGOS by starting and depositing a new version of the published DMP. + However, if you have deposited your DMP using your own account on Zenodo (i.e. login to Zenodo with your own credentials), + then you are able to also make minor changes, e.g. on the title of the DMP, directly from the Zenodo interface. +
++ You might be experiencing this problem because there are incomplete mandatory fields + in your DMP. Please check for those fields, fill in with appropriate information and + try again. Should the problem persists, please contact argos@openaire.eu . +
++ DMPs can be shared with many colleagues in support of collaborative writing, but + DMPs should be worked by one person at a time. Argos will inform you if another + colleague has the DMP you are trying to edit open, so that your team avoids + information loss. +
++ You need to have a Zenodo login to perform a deposit. Please sign up in Zenodo or + use the token option to publish your DMPs and get a DOI. +
++ Yes, it is. The OpenDMP software that Argos has deployed upon is open source code + available under Apache 2.0 license. You may find more information about the software + here. +
++ Of course! Please feel free to suggest new features and to actively contribute to + Argos development via pull requests in Gitea. +
++ Argos takes all necessary steps in handling and protecting personal and sensitive + information. Please check the Argos Terms of Service and Privacy Policy. +
++ Please find all information about Argos Terms of Service and Privacy, here. + Additionally, you may find Argos Cookies policy, here. +
++ Unless there are any contractual or institutional agreements stating ownership of + outputs produced in the context of a project/ collaboration, owners of Argos outputs + are DMP contributors, i.e. DMP owners and DMP members, who have been involved with + writing the DMP. +
++ Please find all information about Argos Terms of Service and Privacy, here. + Additionally, you may find Argos Cookies policy, here. +
+ + +A DMP - short for Data Management Plan - is a document describing the processes that the data have undergone and the tools used for their handling and storage during a research lifecycle. Most importantly, DMPs secure provenance and enable re-use of data by appointing data managers and by including information on how data can be re-used by others in the future. Therefore, a DMP is a living document which is modified according to the data developments of a project before it’s completed and handed over at the end of the project. + Public funders increasingly contain DMPs in their grant proposals or policy funding requirements. A good paradigm is the European Commission demands for the production and delivery of DMPs for projects funded under the Horizon 2020 Funding Programme. On that note, and to encourage good data management practices uptake, many European institutions include DMPs in post-graduate researchers policies and offer relevant support to staff and students. +
+ +DMP template contains general but vital information about the name and the duration of the project that the DMP corresponds to, the contributing organisations and individuals as well as the datasets that are under the Dataset Description section. It also offers the possibility of describing datasets other than primary data generated, under “External References” section. A DMP template can have many Dataset Descriptions. +
+ +Dataset Description documents the management processes of datasets following funder’s or institution’s requirements. A dataset description is essentially a questionnaire template with underlying added value services for interoperability and machine readability of information which is developed based on the given requirements. Management requirements differ from funder to funder and from institution to institution, hence the growing collection of Dataset Descriptions to select from. + Moreover, a Dataset Description links to the documentation of one dataset, hence a DMP template may contain more than one dataset descriptions on the occasion when multiple datasets were used during the project. When documentation of some of the project’s datasets falls under additional requirements (e.g. projects receiving multiple grants from different sources), there is the possibility of describing datasets with more than one Dataset Description template. +
+The OpenDMP service was developed to provide a more flexible, collaborative environment with machine actionable solutions in writing, sharing and publishing Data Management Plans (DMPs). It is a product of cooperation between OpenAIRE AMKE and EUDAT CDI and is offered both as a software “OpenDMP '' and as an online service under the name “ARGOS”.
++
For any questions or comments you may have about the current Terms of Service, please contact us: argos@openaire.eu
++
+
Data Management Plan (DMP) is a collection of dataset descriptions, associated with an activity (“project” or “grant”). A DMP may be versioned, is exportable to various forms, currently machine readable (xml, json) and human readable (pdf/openxml) and can be assigned a DOI and published in Zenodo.
++
Dataset in Argos describes data according to a set of rules that is the dataset template.
++
Dataset Template is the set of rules that describe what Datasets contain and how they are handled. Dataset Templates are modified by Admins and contain attributes/fields, behavioral rules (e.g. toggling visibility of fields) and validation rules. Dataset Templates are linked to DMPs so that users are provided with specific formats of descriptions.
++
Project is a logical entity that defines the context where one or more Data Management Plans may be formed in.
++
Grant is a logical entity that defines the context where one or more Data Management Plans may be formed in.
++
Users are associated to DMPs and other entities (e.g. Datasets, Organizations) for authorization and may map to researchers.
++
Import - Import function supports upload of .json files that are produced according to RDA specifications for machine-actionable DMPs
++
+
+ +
+ Start New DMP is an easy way to start writing a DMP. It provides an editor that goes through the essential elements of a DMP and guides the process of its creation step by step. ++ From “Homepage” ++ + From Dashboard ++ or ++ + From “Add Dataset” ++ |
+
+
+ +
+ Add Dataset is an easy way to add new datasets to pre-existing DMPs. ++ From Dashboard ++ + From “My Datasets” ++ + From “My DMPs” ++ + From Dataset Editor ++ |
+
+
+
Repository - an electronic database or an information system where data are stored and maintained
++
Data set - a collection of data which are bind together under a specific format
++
Registry - a database of entities and descriptions
++
Service - a software of specific operations and tasks that interacts with other software and hardware
++
Researcher - an individual practicing research
++
Funding organization - an organisation that funds research programmes and/ or researchers’ activities
++
+
The homepage can be found under argos.openaire.eu, also accessible from the OpenAIRE Service catalogue and the EOSC.
++
+
+
About - informs about the scope and main functions of the tool (How it works, ROADMAP, FAQs, Contributors)
++
Resources - provides useful information about using Argos and includes dissemination material (Media Kit, User Guide, Co-branding)
++
Contact - a contact form that facilitates communication with Argos team
++
Sign in - enters the tool as a user
++
Different login options are available to choose from social media to research and scholarly communication channels.
++
+
Note! No user account is required.
++
+
A dedicated, customisable space of the user’s personal profile.
++ +
+ + |
+
+ My profile settings - displays the profile page which contains details such as name, email, zenodo account details etc. ++ Associated DMPs - a collection of users’ DMPs ++ Log out - terminates the session, and redirects to the login page. + |
+
+
+
+
The main menu is located on the left side of the screen. Depending on how users view the tool, i.e. whether they have logged in or not, the main menu changes to include features that are available only in individuals’ dashboards.
++ +
+ Main menu - not logged in ++ + + Home - gets you back to the homepage / dashboard ++ Public DMPs - a collection of DMPs publicly available in Argos ++ Public Datasets - a collection of Datasets publicly available in Argos ++ Co-Branding - a page to view the software and learn how to contribute ++ Support - a contact form that facilitates communication with Argos team ++ Send feedback - a feedback form to contribute thoughts and opinions about using Argos ++ About - informs about the scope and main functions of the tool ++ Terms of Service - provides the legal status for using of ARGOS ++ Glossary - includes the terminology used in the tool and explains basic components ++ User Guide - a guide for users to learn how to use Argos ++ |
+
+ Main menu - logged in ++ + + Home - gets you back to the homepage / dashboard ++ My DMPs - includes all DMPs which the user is either the owner or the collaborator of ++ My Datasets - includes all Datasets which the user is either the owner or the collaborator of ++ Public DMPs - a collection of DMPs publicly available in Argos ++ Public Datasets - a collection of Datasets publicly available in Argos ++ About - informs about the scope and main functions of the tool ++ Terms of Service - provides the legal status for using of ARGOS ++ Glossary - includes the terminology used in the tool and explains basic components ++ User Guide - a guide for users to learn how to use Argos ++ Contact support - a contact form that facilitates communication with Argos team ++ |
+
+
Dashboard is the console that appears after entering Argos from the Homepage and includes condensed information based on Argos function and their use.
++
Dashboard - Not logged in
++
+
+ +
+ + |
+
+ Latest Activity - displays publicly available DMPs and Datasets according to the date of their publication in Argos and their Label (DMPs or Datasets) + |
+
+ +
+ + |
+
+ Public Usage - shows the number of publicly available DMPs, Datasets, Grants and Organizations included in Argos ++ Note! When logged in to ARGOS the Homepage becomes a personal Dashboard, hence the numbers change to correspond to information provided by the individual’s activity. + |
+
+
Dashboard - Logged in
++
+
+
+ +
+ + |
+
+ Latest Activity - displays users’ DMPs and Datasets classified according to the date of their last modification, the status of the document (draft, finalized, published) and their label (DMPs or Datasets) + |
+
+ +
+ + |
+
+ Personal Usage - shows users activity in DMPs, Datasets, Grants and Organizations + |
+
+
+
Contains all DMPs and Datasets which the user is either the owner or the collaborator of. Both DMPs and Datasets on the user dashboard are classified by the date of their last modification, the status of the document (draft, finalized, published) and their label (DMPs or Datasets).
++
My DMPs
+Each DMP card is green and shows the role of the person viewing the DMP, the status of the writing process, the version of the current DMP, the grant associated with the DMP, the number and name of datasets that the DMP has.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Add Dataset - adds more Datasets to existing DMPs
++
Invite - provides people with edit rights on the document
++
Clone - creates an exact replica of the DMP
++ +
+ + |
+
+ New version - starts a new version of the DMP +All DMP Versions - shows the history of the different versions of the existing DMP +Delete - permanently removes DMPs ++ |
+
+
+
My Datasets
+Each Dataset card is yellow and shows the role of the person viewing the Dataset, the status of the writing process, the grant associated with the DMP and the tite of the DMP that the dataset is part of.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Invite - Sends email or searches the Argos Users Catalogue to find colleagues/ collaborators. Invitation sent provides people with edit rights on the document.
++
+ +
+ + |
+
+ Copy Dataset - creates a copy of the dataset +Delete - permanently removes Datasets + |
+
+
Contains DMPs outputs that are openly available in Argos. That means that DMP owners and members are making their DMP and/or Dataset outputs available to all Argos and non-Argos users who might want to consult or re-use them under the framework provided by the assigned DMP license.
+Both DMPs and Datasets on the user dashboard are classified by the date of their last modification and their label (DMPs or Datasets). Users can also search for the DMP or Dataset from the search bar.
++
Public DMPs
+Each Public DMP card is green and displays the title of the DMP, its status (published), the version of the DMP, the grant associated with it, the number and name of datasets that the DMP contains.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Clone - creates an exact replica of the DMP
+ +
+ + |
+
+ All DMP Versions - shows the history of the different versions of the existing DMP ++ |
+
+
+
Public Datasets
+Each Public Dataset card is yellow and displays the title of the dataset, the status of the dataset (published), the grant associated with the DMP and the title of the DMP that the dataset is part of.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++ +
+ + |
+
+ Copy Dataset - creates a copy of the dataset + |
+
+
There are many ways to create new DMPs in Argos.
++
Start new DMP - Start Wizard
++
+
There are four steps involved in creating a DMP: Main Info - Funding Info - License Info - Dataset Info
++
+
+
+
+
+
+
Title - title of the DMP
++
Description - brief description of what the DMP is about, it’s scope and objectives
++
Language - the language of the DMP
++
Visibility - how the DMP is displayed in Argos. By choosing Public, the DMP is automatically made available to all users from the “Public DMPs” collection.
++
Researchers - the people that have produced, processed, analysed the data described in the DMP
++
Organizations - the names of the organizations contributing to the creation and revision of the DMPs
++
Contact - the contact details of the DMP owner
++
+
+
+
+
Funding organizations - A drop-down menu where users may find the organisation that their research is funded by. In case that the name of a funding organisation can not be found in Argos, users may create a new record with the name and details of the funding organisation (“Insert it manually”).
++
Grants - A drop-down menu to select the grant that is associated with the research project of the given funding organisation. In case that the grant can not be found in Argos, users may create a new record with the number and name of the grant (“Insert it manually”).
++
Project - This field is to be completed only for projects where multiple grants apply. Otherwise, it is left blank and is later filled automatically by Argos metadata.
++
Note! There may be many projects associated with a grant number.
++
+
+
+
License - A list of licenses to choose from and assign to DMPs
++
+
+
+
+
Dataset Info - Select a template to describe your datasets. You may select more than one template.
++
Save DMPs
++
Discard - undo all changes made to the dataset
++
Save - keeps all changes made to the DMP and continues work on the same page
++
Save & Add Dataset - keeps all changes made to the DMP and the Dataset editor starts to describe the first dataset of the DMP
+ +There are two ways to create datasets: when creating the first dataset of the DMP and when adding datasets to existing DMPs. Add datasets are linked to and are associated with at least one DMP in Argos. A dataset can not exist as an orphan record.
++
First dataset
++
Once the DMP is created, the user can fill in the description for their data in the Dataset Editor.
++
Add dataset - Adds more Dataset to existing DMPs
+There are three steps involved in adding a Dataset: Select a DMP for your Dataset - Select Template - Edit Dataset
++
+
Selects an existing DMP from the drop-down menu
++
+
Selects the template of the Dataset that users are required to describe their datasets with by corresponding to their grant funding organisations.
++
+
A Dataset Editor to add information that describes management activities according to the selected template.
++
Save Datasets
+There are many ways to Save a DMP in Argos. They all serve the same function, but the difference lies in the follow up action.
++
+
+
Discard - undo all changes made to the dataset
++
Save - keeps all changes made and continues work on the same page
++
Save & Close - keeps all changes made, but the editor’s window closes and the user is redirected to their dashboard
++
Save & Add New - keeps all changes made and a new editor starts to describe a new dataset
+Records of DMPs and Datasets in Argos after editing and after finalization.
+Users can view the DMPs and Datasets they create from their dashboard. By opening a record they have created, they are provided with additional functionalities that are binded to the completion of the DMP writing process. Different functionalities apply according to the status of the DMP, i.e. before or after the DMP finalization.
++
+
DMPs before finalization
++
+
Before finalization, the DMP can be further edited, deleted or cloned. Users can review information that they have added regarding grant, researchers, DMP description and datasets used. New datasets can be added at any time from this page. Users can export the DMP, they can start working on a new version and/ or invite colleagues to collaborate on completing the DMP.
++
+
Invite
++
+
+
DMPs after finalization
++
+
After the DMP finalization, the DMP can be made publicly visible in Argos and deposited in Zenodo. Users can export the finalized DMP, they can start working on a new version and/ or invite colleagues to collaborate on completing the DMP. Finalization is possible to be reverted.
++
+
Datasets before finalization
+Argos offers different options before and after the Dataset finalization.
++
+
+
Before finalization, the Dataset can be further edited, deleted or cloned. Users can access the whole DMP that the dataset is part of from that page and review information that they have added regarding grant, researchers and Dataset description. Users can export the description of the dataset and invite colleagues to collaborate on its completion.
++
+
Datasets after finalization
++
+
After finalization, the Dataset can be exported and shared with colleagues for review.
++
+
+
+
+
+
+
Data Management Plan (DMP) is a collection of dataset descriptions, associated with an activity (“project” or “grant”). A DMP may be versioned, is exportable to various forms, currently machine readable (xml, json) and human readable (pdf/openxml) and can be assigned a DOI and published in Zenodo.
++
Dataset in Argos describes data according to a set of rules that is the dataset template.
++
Dataset Template is the set of rules that describe what Datasets contain and how they are handled. Dataset Templates are modified by Admins and contain attributes/fields, behavioral rules (e.g. toggling visibility of fields) and validation rules. Dataset Templates are linked to DMPs so that users are provided with specific formats of descriptions.
++
Project is a logical entity that defines the context where one or more Data Management Plans may be formed in.
++
Grant is a logical entity that defines the context where one or more Data Management Plans may be formed in.
++
Users are associated to DMPs and other entities (e.g. Datasets, Organizations) for authorization and may map to researchers.
++
Import - Import function supports upload of .json files that are produced according to RDA specifications for machine-actionable DMPs
++
+
+ +
+ Start New DMP is an easy way to start writing a DMP. It provides an editor that goes through the essential elements of a DMP and guides the process of its creation step by step. ++ From “Homepage” ++ + From Dashboard ++ or ++ + From “Add Dataset” ++ |
+
+
+ +
+ Add Dataset is an easy way to add new datasets to pre-existing DMPs. ++ From Dashboard ++ + From “My Datasets” ++ + From “My DMPs” ++ + From Dataset Editor ++ |
+
+
+
Repository - an electronic database or an information system where data are stored and maintained
++
Data set - a collection of data which are bind together under a specific format
++
Registry - a database of entities and descriptions
++
Service - a software of specific operations and tasks that interacts with other software and hardware
++
Researcher - an individual practicing research
++
Funding organization - an organisation that funds research programmes and/ or researchers’ activities
++
+
The homepage can be found under argos.openaire.eu, also accessible from the OpenAIRE Service catalogue and the EOSC.
++
+
+
About - informs about the scope and main functions of the tool (How it works, ROADMAP, FAQs, Contributors)
++
Resources - provides useful information about using Argos and includes dissemination material (Media Kit, User Guide, Co-branding)
++
Contact - a contact form that facilitates communication with Argos team
++
Sign in - enters the tool as a user
++
Different login options are available to choose from social media to research and scholarly communication channels.
++
+
Note! No user account is required.
++
+
A dedicated, customisable space of the user’s personal profile.
++ +
+ + |
+
+ My profile settings - displays the profile page which contains details such as name, email, zenodo account details etc. ++ Associated DMPs - a collection of users’ DMPs ++ Log out - terminates the session, and redirects to the login page. + |
+
+
+
+
The main menu is located on the left side of the screen. Depending on how users view the tool, i.e. whether they have logged in or not, the main menu changes to include features that are available only in individuals’ dashboards.
++ +
+ Main menu - not logged in ++ + + Home - gets you back to the homepage / dashboard ++ Public DMPs - a collection of DMPs publicly available in Argos ++ Public Datasets - a collection of Datasets publicly available in Argos ++ Co-Branding - a page to view the software and learn how to contribute ++ Support - a contact form that facilitates communication with Argos team ++ Send feedback - a feedback form to contribute thoughts and opinions about using Argos ++ About - informs about the scope and main functions of the tool ++ Terms of Service - provides the legal status for using of ARGOS ++ Glossary - includes the terminology used in the tool and explains basic components ++ User Guide - a guide for users to learn how to use Argos ++ |
+
+ Main menu - logged in ++ + + Home - gets you back to the homepage / dashboard ++ My DMPs - includes all DMPs which the user is either the owner or the collaborator of ++ My Datasets - includes all Datasets which the user is either the owner or the collaborator of ++ Public DMPs - a collection of DMPs publicly available in Argos ++ Public Datasets - a collection of Datasets publicly available in Argos ++ About - informs about the scope and main functions of the tool ++ Terms of Service - provides the legal status for using of ARGOS ++ Glossary - includes the terminology used in the tool and explains basic components ++ User Guide - a guide for users to learn how to use Argos ++ Contact support - a contact form that facilitates communication with Argos team ++ |
+
+
Dashboard is the console that appears after entering Argos from the Homepage and includes condensed information based on Argos function and their use.
++
Dashboard - Not logged in
++
+
+ +
+ + |
+
+ Latest Activity - displays publicly available DMPs and Datasets according to the date of their publication in Argos and their Label (DMPs or Datasets) + |
+
+ +
+ + |
+
+ Public Usage - shows the number of publicly available DMPs, Datasets, Grants and Organizations included in Argos ++ Note! When logged in to ARGOS the Homepage becomes a personal Dashboard, hence the numbers change to correspond to information provided by the individual’s activity. + |
+
+
Dashboard - Logged in
++
+
+
+ +
+ + |
+
+ Latest Activity - displays users’ DMPs and Datasets classified according to the date of their last modification, the status of the document (draft, finalized, published) and their label (DMPs or Datasets) + |
+
+ +
+ + |
+
+ Personal Usage - shows users activity in DMPs, Datasets, Grants and Organizations + |
+
+
+
Contains all DMPs and Datasets which the user is either the owner or the collaborator of. Both DMPs and Datasets on the user dashboard are classified by the date of their last modification, the status of the document (draft, finalized, published) and their label (DMPs or Datasets).
++
My DMPs
+Each DMP card is green and shows the role of the person viewing the DMP, the status of the writing process, the version of the current DMP, the grant associated with the DMP, the number and name of datasets that the DMP has.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Add Dataset - adds more Datasets to existing DMPs
++
Invite - provides people with edit rights on the document
++
Clone - creates an exact replica of the DMP
++ +
+ + |
+
+ New version - starts a new version of the DMP +All DMP Versions - shows the history of the different versions of the existing DMP +Delete - permanently removes DMPs ++ |
+
+
+
My Datasets
+Each Dataset card is yellow and shows the role of the person viewing the Dataset, the status of the writing process, the grant associated with the DMP and the tite of the DMP that the dataset is part of.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Invite - Sends email or searches the Argos Users Catalogue to find colleagues/ collaborators. Invitation sent provides people with edit rights on the document.
++
+ +
+ + |
+
+ Copy Dataset - creates a copy of the dataset +Delete - permanently removes Datasets + |
+
+
Contains DMPs outputs that are openly available in Argos. That means that DMP owners and members are making their DMP and/or Dataset outputs available to all Argos and non-Argos users who might want to consult or re-use them under the framework provided by the assigned DMP license.
+Both DMPs and Datasets on the user dashboard are classified by the date of their last modification and their label (DMPs or Datasets). Users can also search for the DMP or Dataset from the search bar.
++
Public DMPs
+Each Public DMP card is green and displays the title of the DMP, its status (published), the version of the DMP, the grant associated with it, the number and name of datasets that the DMP contains.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Clone - creates an exact replica of the DMP
+ +
+ + |
+
+ All DMP Versions - shows the history of the different versions of the existing DMP ++ |
+
+
+
Public Datasets
+Each Public Dataset card is yellow and displays the title of the dataset, the status of the dataset (published), the grant associated with the DMP and the title of the DMP that the dataset is part of.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++ +
+ + |
+
+ Copy Dataset - creates a copy of the dataset + |
+
+
There are many ways to create new DMPs in Argos.
++
Start new DMP - Start Wizard
++
+
There are four steps involved in creating a DMP: Main Info - Funding Info - License Info - Dataset Info
++
+
+
+
+
+
+
Title - title of the DMP
++
Description - brief description of what the DMP is about, it’s scope and objectives
++
Language - the language of the DMP
++
Visibility - how the DMP is displayed in Argos. By choosing Public, the DMP is automatically made available to all users from the “Public DMPs” collection.
++
Researchers - the people that have produced, processed, analysed the data described in the DMP
++
Organizations - the names of the organizations contributing to the creation and revision of the DMPs
++
Contact - the contact details of the DMP owner
++
+
+
+
+
Funding organizations - A drop-down menu where users may find the organisation that their research is funded by. In case that the name of a funding organisation can not be found in Argos, users may create a new record with the name and details of the funding organisation (“Insert it manually”).
++
Grants - A drop-down menu to select the grant that is associated with the research project of the given funding organisation. In case that the grant can not be found in Argos, users may create a new record with the number and name of the grant (“Insert it manually”).
++
Project - This field is to be completed only for projects where multiple grants apply. Otherwise, it is left blank and is later filled automatically by Argos metadata.
++
Note! There may be many projects associated with a grant number.
++
+
+
+
License - A list of licenses to choose from and assign to DMPs
++
+
+
+
+
Dataset Info - Select a template to describe your datasets. You may select more than one template.
++
Save DMPs
++
Discard - undo all changes made to the dataset
++
Save - keeps all changes made to the DMP and continues work on the same page
++
Save & Add Dataset - keeps all changes made to the DMP and the Dataset editor starts to describe the first dataset of the DMP
+ +There are two ways to create datasets: when creating the first dataset of the DMP and when adding datasets to existing DMPs. Add datasets are linked to and are associated with at least one DMP in Argos. A dataset can not exist as an orphan record.
++
First dataset
++
Once the DMP is created, the user can fill in the description for their data in the Dataset Editor.
++
Add dataset - Adds more Dataset to existing DMPs
+There are three steps involved in adding a Dataset: Select a DMP for your Dataset - Select Template - Edit Dataset
++
+
Selects an existing DMP from the drop-down menu
++
+
Selects the template of the Dataset that users are required to describe their datasets with by corresponding to their grant funding organisations.
++
+
A Dataset Editor to add information that describes management activities according to the selected template.
++
Save Datasets
+There are many ways to Save a DMP in Argos. They all serve the same function, but the difference lies in the follow up action.
++
+
+
Discard - undo all changes made to the dataset
++
Save - keeps all changes made and continues work on the same page
++
Save & Close - keeps all changes made, but the editor’s window closes and the user is redirected to their dashboard
++
Save & Add New - keeps all changes made and a new editor starts to describe a new dataset
+Records of DMPs and Datasets in Argos after editing and after finalization.
+Users can view the DMPs and Datasets they create from their dashboard. By opening a record they have created, they are provided with additional functionalities that are binded to the completion of the DMP writing process. Different functionalities apply according to the status of the DMP, i.e. before or after the DMP finalization.
++
+
DMPs before finalization
++
+
Before finalization, the DMP can be further edited, deleted or cloned. Users can review information that they have added regarding grant, researchers, DMP description and datasets used. New datasets can be added at any time from this page. Users can export the DMP, they can start working on a new version and/ or invite colleagues to collaborate on completing the DMP.
++
+
Invite
++
+
+
DMPs after finalization
++
+
After the DMP finalization, the DMP can be made publicly visible in Argos and deposited in Zenodo. Users can export the finalized DMP, they can start working on a new version and/ or invite colleagues to collaborate on completing the DMP. Finalization is possible to be reverted.
++
+
Datasets before finalization
+Argos offers different options before and after the Dataset finalization.
++
+
+
Before finalization, the Dataset can be further edited, deleted or cloned. Users can access the whole DMP that the dataset is part of from that page and review information that they have added regarding grant, researchers and Dataset description. Users can export the description of the dataset and invite colleagues to collaborate on its completion.
++
+
Datasets after finalization
++
+
After finalization, the Dataset can be exported and shared with colleagues for review.
++
+
+
+
+
+
+
Data Management Plan (DMP) is a collection of dataset descriptions, associated with an activity (“project” or “grant”). A DMP may be versioned, is exportable to various forms, currently machine readable (xml, json) and human readable (pdf/openxml) and can be assigned a DOI and published in Zenodo.
++
Dataset in Argos describes data according to a set of rules that is the dataset template.
++
Dataset Template is the set of rules that describe what Datasets contain and how they are handled. Dataset Templates are modified by Admins and contain attributes/fields, behavioral rules (e.g. toggling visibility of fields) and validation rules. Dataset Templates are linked to DMPs so that users are provided with specific formats of descriptions.
++
Project is a logical entity that defines the context where one or more Data Management Plans may be formed in.
++
Grant is a logical entity that defines the context where one or more Data Management Plans may be formed in.
++
Users are associated to DMPs and other entities (e.g. Datasets, Organizations) for authorization and may map to researchers.
++
Import - Import function supports upload of .json files that are produced according to RDA specifications for machine-actionable DMPs
++
+
+ +
+ Start New DMP is an easy way to start writing a DMP. It provides an editor that goes through the essential elements of a DMP and guides the process of its creation step by step. ++ From “Homepage” ++ + From Dashboard ++ or ++ + From “Add Dataset” ++ |
+
+
+ +
+ Add Dataset is an easy way to add new datasets to pre-existing DMPs. ++ From Dashboard ++ + From “My Datasets” ++ + From “My DMPs” ++ + From Dataset Editor ++ |
+
+
+
Repository - an electronic database or an information system where data are stored and maintained
++
Data set - a collection of data which are bind together under a specific format
++
Registry - a database of entities and descriptions
++
Service - a software of specific operations and tasks that interacts with other software and hardware
++
Researcher - an individual practicing research
++
Funding organization - an organisation that funds research programmes and/ or researchers’ activities
++
+
The homepage can be found under argos.openaire.eu, also accessible from the OpenAIRE Service catalogue and the EOSC.
++
+
+
About - informs about the scope and main functions of the tool (How it works, ROADMAP, FAQs, Contributors)
++
Resources - provides useful information about using Argos and includes dissemination material (Media Kit, User Guide, Co-branding)
++
Contact - a contact form that facilitates communication with Argos team
++
Sign in - enters the tool as a user
++
Different login options are available to choose from social media to research and scholarly communication channels.
++
+
Note! No user account is required.
++
+
A dedicated, customisable space of the user’s personal profile.
++ +
+ + |
+
+ My profile settings - displays the profile page which contains details such as name, email, zenodo account details etc. ++ Associated DMPs - a collection of users’ DMPs ++ Log out - terminates the session, and redirects to the login page. + |
+
+
+
+
The main menu is located on the left side of the screen. Depending on how users view the tool, i.e. whether they have logged in or not, the main menu changes to include features that are available only in individuals’ dashboards.
++ +
+ Main menu - not logged in ++ + + Home - gets you back to the homepage / dashboard ++ Public DMPs - a collection of DMPs publicly available in Argos ++ Public Datasets - a collection of Datasets publicly available in Argos ++ Co-Branding - a page to view the software and learn how to contribute ++ Support - a contact form that facilitates communication with Argos team ++ Send feedback - a feedback form to contribute thoughts and opinions about using Argos ++ About - informs about the scope and main functions of the tool ++ Terms of Service - provides the legal status for using of ARGOS ++ Glossary - includes the terminology used in the tool and explains basic components ++ User Guide - a guide for users to learn how to use Argos ++ |
+
+ Main menu - logged in ++ + + Home - gets you back to the homepage / dashboard ++ My DMPs - includes all DMPs which the user is either the owner or the collaborator of ++ My Datasets - includes all Datasets which the user is either the owner or the collaborator of ++ Public DMPs - a collection of DMPs publicly available in Argos ++ Public Datasets - a collection of Datasets publicly available in Argos ++ About - informs about the scope and main functions of the tool ++ Terms of Service - provides the legal status for using of ARGOS ++ Glossary - includes the terminology used in the tool and explains basic components ++ User Guide - a guide for users to learn how to use Argos ++ Contact support - a contact form that facilitates communication with Argos team ++ |
+
+
Dashboard is the console that appears after entering Argos from the Homepage and includes condensed information based on Argos function and their use.
++
Dashboard - Not logged in
++
+
+ +
+ + |
+
+ Latest Activity - displays publicly available DMPs and Datasets according to the date of their publication in Argos and their Label (DMPs or Datasets) + |
+
+ +
+ + |
+
+ Public Usage - shows the number of publicly available DMPs, Datasets, Grants and Organizations included in Argos ++ Note! When logged in to ARGOS the Homepage becomes a personal Dashboard, hence the numbers change to correspond to information provided by the individual’s activity. + |
+
+
Dashboard - Logged in
++
+
+
+ +
+ + |
+
+ Latest Activity - displays users’ DMPs and Datasets classified according to the date of their last modification, the status of the document (draft, finalized, published) and their label (DMPs or Datasets) + |
+
+ +
+ + |
+
+ Personal Usage - shows users activity in DMPs, Datasets, Grants and Organizations + |
+
+
+
Contains all DMPs and Datasets which the user is either the owner or the collaborator of. Both DMPs and Datasets on the user dashboard are classified by the date of their last modification, the status of the document (draft, finalized, published) and their label (DMPs or Datasets).
++
My DMPs
+Each DMP card is green and shows the role of the person viewing the DMP, the status of the writing process, the version of the current DMP, the grant associated with the DMP, the number and name of datasets that the DMP has.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Add Dataset - adds more Datasets to existing DMPs
++
Invite - provides people with edit rights on the document
++
Clone - creates an exact replica of the DMP
++ +
+ + |
+
+ New version - starts a new version of the DMP +All DMP Versions - shows the history of the different versions of the existing DMP +Delete - permanently removes DMPs ++ |
+
+
+
My Datasets
+Each Dataset card is yellow and shows the role of the person viewing the Dataset, the status of the writing process, the grant associated with the DMP and the tite of the DMP that the dataset is part of.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Invite - Sends email or searches the Argos Users Catalogue to find colleagues/ collaborators. Invitation sent provides people with edit rights on the document.
++
+ +
+ + |
+
+ Copy Dataset - creates a copy of the dataset +Delete - permanently removes Datasets + |
+
+
Contains DMPs outputs that are openly available in Argos. That means that DMP owners and members are making their DMP and/or Dataset outputs available to all Argos and non-Argos users who might want to consult or re-use them under the framework provided by the assigned DMP license.
+Both DMPs and Datasets on the user dashboard are classified by the date of their last modification and their label (DMPs or Datasets). Users can also search for the DMP or Dataset from the search bar.
++
Public DMPs
+Each Public DMP card is green and displays the title of the DMP, its status (published), the version of the DMP, the grant associated with it, the number and name of datasets that the DMP contains.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Clone - creates an exact replica of the DMP
+ +
+ + |
+
+ All DMP Versions - shows the history of the different versions of the existing DMP ++ |
+
+
+
Public Datasets
+Each Public Dataset card is yellow and displays the title of the dataset, the status of the dataset (published), the grant associated with the DMP and the title of the DMP that the dataset is part of.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++ +
+ + |
+
+ Copy Dataset - creates a copy of the dataset + |
+
+
There are many ways to create new DMPs in Argos.
++
Start new DMP - Start Wizard
++
+
There are four steps involved in creating a DMP: Main Info - Funding Info - License Info - Dataset Info
++
+
+
+
+
+
+
Title - title of the DMP
++
Description - brief description of what the DMP is about, it’s scope and objectives
++
Language - the language of the DMP
++
Visibility - how the DMP is displayed in Argos. By choosing Public, the DMP is automatically made available to all users from the “Public DMPs” collection.
++
Researchers - the people that have produced, processed, analysed the data described in the DMP
++
Organizations - the names of the organizations contributing to the creation and revision of the DMPs
++
Contact - the contact details of the DMP owner
++
+
+
+
+
Funding organizations - A drop-down menu where users may find the organisation that their research is funded by. In case that the name of a funding organisation can not be found in Argos, users may create a new record with the name and details of the funding organisation (“Insert it manually”).
++
Grants - A drop-down menu to select the grant that is associated with the research project of the given funding organisation. In case that the grant can not be found in Argos, users may create a new record with the number and name of the grant (“Insert it manually”).
++
Project - This field is to be completed only for projects where multiple grants apply. Otherwise, it is left blank and is later filled automatically by Argos metadata.
++
Note! There may be many projects associated with a grant number.
++
+
+
+
License - A list of licenses to choose from and assign to DMPs
++
+
+
+
+
Dataset Info - Select a template to describe your datasets. You may select more than one template.
++
Save DMPs
++
Discard - undo all changes made to the dataset
++
Save - keeps all changes made to the DMP and continues work on the same page
++
Save & Add Dataset - keeps all changes made to the DMP and the Dataset editor starts to describe the first dataset of the DMP
+ +There are two ways to create datasets: when creating the first dataset of the DMP and when adding datasets to existing DMPs. Add datasets are linked to and are associated with at least one DMP in Argos. A dataset can not exist as an orphan record.
++
First dataset
++
Once the DMP is created, the user can fill in the description for their data in the Dataset Editor.
++
Add dataset - Adds more Dataset to existing DMPs
+There are three steps involved in adding a Dataset: Select a DMP for your Dataset - Select Template - Edit Dataset
++
+
Selects an existing DMP from the drop-down menu
++
+
Selects the template of the Dataset that users are required to describe their datasets with by corresponding to their grant funding organisations.
++
+
A Dataset Editor to add information that describes management activities according to the selected template.
++
Save Datasets
+There are many ways to Save a DMP in Argos. They all serve the same function, but the difference lies in the follow up action.
++
+
+
Discard - undo all changes made to the dataset
++
Save - keeps all changes made and continues work on the same page
++
Save & Close - keeps all changes made, but the editor’s window closes and the user is redirected to their dashboard
++
Save & Add New - keeps all changes made and a new editor starts to describe a new dataset
+Records of DMPs and Datasets in Argos after editing and after finalization.
+Users can view the DMPs and Datasets they create from their dashboard. By opening a record they have created, they are provided with additional functionalities that are binded to the completion of the DMP writing process. Different functionalities apply according to the status of the DMP, i.e. before or after the DMP finalization.
++
+
DMPs before finalization
++
+
Before finalization, the DMP can be further edited, deleted or cloned. Users can review information that they have added regarding grant, researchers, DMP description and datasets used. New datasets can be added at any time from this page. Users can export the DMP, they can start working on a new version and/ or invite colleagues to collaborate on completing the DMP.
++
+
Invite
++
+
+
DMPs after finalization
++
+
After the DMP finalization, the DMP can be made publicly visible in Argos and deposited in Zenodo. Users can export the finalized DMP, they can start working on a new version and/ or invite colleagues to collaborate on completing the DMP. Finalization is possible to be reverted.
++
+
Datasets before finalization
+Argos offers different options before and after the Dataset finalization.
++
+
+
Before finalization, the Dataset can be further edited, deleted or cloned. Users can access the whole DMP that the dataset is part of from that page and review information that they have added regarding grant, researchers and Dataset description. Users can export the description of the dataset and invite colleagues to collaborate on its completion.
++
+
Datasets after finalization
++
+
After finalization, the Dataset can be exported and shared with colleagues for review.
++
+
+
+
+
+
+
Data Management Plan (DMP) is a collection of dataset descriptions, associated with an activity (“project” or “grant”). A DMP may be versioned, is exportable to various forms, currently machine readable (xml, json) and human readable (pdf/openxml) and can be assigned a DOI and published in Zenodo.
++
Dataset in Argos describes data according to a set of rules that is the dataset template.
++
Dataset Template is the set of rules that describe what Datasets contain and how they are handled. Dataset Templates are modified by Admins and contain attributes/fields, behavioral rules (e.g. toggling visibility of fields) and validation rules. Dataset Templates are linked to DMPs so that users are provided with specific formats of descriptions.
++
Project is a logical entity that defines the context where one or more Data Management Plans may be formed in.
++
Grant is a logical entity that defines the context where one or more Data Management Plans may be formed in.
++
Users are associated to DMPs and other entities (e.g. Datasets, Organizations) for authorization and may map to researchers.
++
Import - Import function supports upload of .json files that are produced according to RDA specifications for machine-actionable DMPs
++
+
+ +
+ Start New DMP is an easy way to start writing a DMP. It provides an editor that goes through the essential elements of a DMP and guides the process of its creation step by step. ++ From “Homepage” ++ + From Dashboard ++ or ++ + From “Add Dataset” ++ |
+
+
+ +
+ Add Dataset is an easy way to add new datasets to pre-existing DMPs. ++ From Dashboard ++ + From “My Datasets” ++ + From “My DMPs” ++ + From Dataset Editor ++ |
+
+
+
Repository - an electronic database or an information system where data are stored and maintained
++
Data set - a collection of data which are bind together under a specific format
++
Registry - a database of entities and descriptions
++
Service - a software of specific operations and tasks that interacts with other software and hardware
++
Researcher - an individual practicing research
++
Funding organization - an organisation that funds research programmes and/ or researchers’ activities
++
+
The homepage can be found under argos.openaire.eu, also accessible from the OpenAIRE Service catalogue and the EOSC.
++
+
+
About - informs about the scope and main functions of the tool (How it works, ROADMAP, FAQs, Contributors)
++
Resources - provides useful information about using Argos and includes dissemination material (Media Kit, User Guide, Co-branding)
++
Contact - a contact form that facilitates communication with Argos team
++
Sign in - enters the tool as a user
++
Different login options are available to choose from social media to research and scholarly communication channels.
++
+
Note! No user account is required.
++
+
A dedicated, customisable space of the user’s personal profile.
++ +
+ + |
+
+ My profile settings - displays the profile page which contains details such as name, email, zenodo account details etc. ++ Associated DMPs - a collection of users’ DMPs ++ Log out - terminates the session, and redirects to the login page. + |
+
+
+
+
The main menu is located on the left side of the screen. Depending on how users view the tool, i.e. whether they have logged in or not, the main menu changes to include features that are available only in individuals’ dashboards.
++ +
+ Main menu - not logged in ++ + + Home - gets you back to the homepage / dashboard ++ Public DMPs - a collection of DMPs publicly available in Argos ++ Public Datasets - a collection of Datasets publicly available in Argos ++ Co-Branding - a page to view the software and learn how to contribute ++ Support - a contact form that facilitates communication with Argos team ++ Send feedback - a feedback form to contribute thoughts and opinions about using Argos ++ About - informs about the scope and main functions of the tool ++ Terms of Service - provides the legal status for using of ARGOS ++ Glossary - includes the terminology used in the tool and explains basic components ++ User Guide - a guide for users to learn how to use Argos ++ |
+
+ Main menu - logged in ++ + + Home - gets you back to the homepage / dashboard ++ My DMPs - includes all DMPs which the user is either the owner or the collaborator of ++ My Datasets - includes all Datasets which the user is either the owner or the collaborator of ++ Public DMPs - a collection of DMPs publicly available in Argos ++ Public Datasets - a collection of Datasets publicly available in Argos ++ About - informs about the scope and main functions of the tool ++ Terms of Service - provides the legal status for using of ARGOS ++ Glossary - includes the terminology used in the tool and explains basic components ++ User Guide - a guide for users to learn how to use Argos ++ Contact support - a contact form that facilitates communication with Argos team ++ |
+
+
Dashboard is the console that appears after entering Argos from the Homepage and includes condensed information based on Argos function and their use.
++
Dashboard - Not logged in
++
+
+ +
+ + |
+
+ Latest Activity - displays publicly available DMPs and Datasets according to the date of their publication in Argos and their Label (DMPs or Datasets) + |
+
+ +
+ + |
+
+ Public Usage - shows the number of publicly available DMPs, Datasets, Grants and Organizations included in Argos ++ Note! When logged in to ARGOS the Homepage becomes a personal Dashboard, hence the numbers change to correspond to information provided by the individual’s activity. + |
+
+
Dashboard - Logged in
++
+
+
+ +
+ + |
+
+ Latest Activity - displays users’ DMPs and Datasets classified according to the date of their last modification, the status of the document (draft, finalized, published) and their label (DMPs or Datasets) + |
+
+ +
+ + |
+
+ Personal Usage - shows users activity in DMPs, Datasets, Grants and Organizations + |
+
+
+
Contains all DMPs and Datasets which the user is either the owner or the collaborator of. Both DMPs and Datasets on the user dashboard are classified by the date of their last modification, the status of the document (draft, finalized, published) and their label (DMPs or Datasets).
++
My DMPs
+Each DMP card is green and shows the role of the person viewing the DMP, the status of the writing process, the version of the current DMP, the grant associated with the DMP, the number and name of datasets that the DMP has.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Add Dataset - adds more Datasets to existing DMPs
++
Invite - provides people with edit rights on the document
++
Clone - creates an exact replica of the DMP
++ +
+ + |
+
+ New version - starts a new version of the DMP +All DMP Versions - shows the history of the different versions of the existing DMP +Delete - permanently removes DMPs ++ |
+
+
+
My Datasets
+Each Dataset card is yellow and shows the role of the person viewing the Dataset, the status of the writing process, the grant associated with the DMP and the tite of the DMP that the dataset is part of.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Invite - Sends email or searches the Argos Users Catalogue to find colleagues/ collaborators. Invitation sent provides people with edit rights on the document.
++
+ +
+ + |
+
+ Copy Dataset - creates a copy of the dataset +Delete - permanently removes Datasets + |
+
+
Contains DMPs outputs that are openly available in Argos. That means that DMP owners and members are making their DMP and/or Dataset outputs available to all Argos and non-Argos users who might want to consult or re-use them under the framework provided by the assigned DMP license.
+Both DMPs and Datasets on the user dashboard are classified by the date of their last modification and their label (DMPs or Datasets). Users can also search for the DMP or Dataset from the search bar.
++
Public DMPs
+Each Public DMP card is green and displays the title of the DMP, its status (published), the version of the DMP, the grant associated with it, the number and name of datasets that the DMP contains.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Clone - creates an exact replica of the DMP
+ +
+ + |
+
+ All DMP Versions - shows the history of the different versions of the existing DMP ++ |
+
+
+
Public Datasets
+Each Public Dataset card is yellow and displays the title of the dataset, the status of the dataset (published), the grant associated with the DMP and the title of the DMP that the dataset is part of.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++ +
+ + |
+
+ Copy Dataset - creates a copy of the dataset + |
+
+
There are many ways to create new DMPs in Argos.
++
Start new DMP - Start Wizard
++
+
There are four steps involved in creating a DMP: Main Info - Funding Info - License Info - Dataset Info
++
+
+
+
+
+
+
Title - title of the DMP
++
Description - brief description of what the DMP is about, it’s scope and objectives
++
Language - the language of the DMP
++
Visibility - how the DMP is displayed in Argos. By choosing Public, the DMP is automatically made available to all users from the “Public DMPs” collection.
++
Researchers - the people that have produced, processed, analysed the data described in the DMP
++
Organizations - the names of the organizations contributing to the creation and revision of the DMPs
++
Contact - the contact details of the DMP owner
++
+
+
+
+
Funding organizations - A drop-down menu where users may find the organisation that their research is funded by. In case that the name of a funding organisation can not be found in Argos, users may create a new record with the name and details of the funding organisation (“Insert it manually”).
++
Grants - A drop-down menu to select the grant that is associated with the research project of the given funding organisation. In case that the grant can not be found in Argos, users may create a new record with the number and name of the grant (“Insert it manually”).
++
Project - This field is to be completed only for projects where multiple grants apply. Otherwise, it is left blank and is later filled automatically by Argos metadata.
++
Note! There may be many projects associated with a grant number.
++
+
+
+
License - A list of licenses to choose from and assign to DMPs
++
+
+
+
+
Dataset Info - Select a template to describe your datasets. You may select more than one template.
++
Save DMPs
++
Discard - undo all changes made to the dataset
++
Save - keeps all changes made to the DMP and continues work on the same page
++
Save & Add Dataset - keeps all changes made to the DMP and the Dataset editor starts to describe the first dataset of the DMP
+ +There are two ways to create datasets: when creating the first dataset of the DMP and when adding datasets to existing DMPs. Add datasets are linked to and are associated with at least one DMP in Argos. A dataset can not exist as an orphan record.
++
First dataset
++
Once the DMP is created, the user can fill in the description for their data in the Dataset Editor.
++
Add dataset - Adds more Dataset to existing DMPs
+There are three steps involved in adding a Dataset: Select a DMP for your Dataset - Select Template - Edit Dataset
++
+
Selects an existing DMP from the drop-down menu
++
+
Selects the template of the Dataset that users are required to describe their datasets with by corresponding to their grant funding organisations.
++
+
A Dataset Editor to add information that describes management activities according to the selected template.
++
Save Datasets
+There are many ways to Save a DMP in Argos. They all serve the same function, but the difference lies in the follow up action.
++
+
+
Discard - undo all changes made to the dataset
++
Save - keeps all changes made and continues work on the same page
++
Save & Close - keeps all changes made, but the editor’s window closes and the user is redirected to their dashboard
++
Save & Add New - keeps all changes made and a new editor starts to describe a new dataset
+Records of DMPs and Datasets in Argos after editing and after finalization.
+Users can view the DMPs and Datasets they create from their dashboard. By opening a record they have created, they are provided with additional functionalities that are binded to the completion of the DMP writing process. Different functionalities apply according to the status of the DMP, i.e. before or after the DMP finalization.
++
+
DMPs before finalization
++
+
Before finalization, the DMP can be further edited, deleted or cloned. Users can review information that they have added regarding grant, researchers, DMP description and datasets used. New datasets can be added at any time from this page. Users can export the DMP, they can start working on a new version and/ or invite colleagues to collaborate on completing the DMP.
++
+
Invite
++
+
+
DMPs after finalization
++
+
After the DMP finalization, the DMP can be made publicly visible in Argos and deposited in Zenodo. Users can export the finalized DMP, they can start working on a new version and/ or invite colleagues to collaborate on completing the DMP. Finalization is possible to be reverted.
++
+
Datasets before finalization
+Argos offers different options before and after the Dataset finalization.
++
+
+
Before finalization, the Dataset can be further edited, deleted or cloned. Users can access the whole DMP that the dataset is part of from that page and review information that they have added regarding grant, researchers and Dataset description. Users can export the description of the dataset and invite colleagues to collaborate on its completion.
++
+
Datasets after finalization
++
+
After finalization, the Dataset can be exported and shared with colleagues for review.
++
+
+
+
+
Plano de Gestão de Dados (PGD) – Corresponde a um conjunto de Datasets, associado a uma determinada atividade (grant ou projeto). O PGD pode ser versionado e exportado em vários formatos. É, atualmente, “machine readable” (xml, json) e “human readable” (pdf/openxml). Pode, igualmente, ser-lhe atribuído um DOI e proceder-se à sua publicação no Zenodo.
+Dataset - Descreve os dados de acordo com um conjunto de regras, através de um modelo de dados.
+Modelo de Dados – é composto por um conjunto de questões que descrevem o que os Datasets contêm e como são tratados. Estes modelos estão ligados a PGDs, de modo a que os utilizadores tenham acesso a formatos específicos consoante a instituição a que reportam. Os modelos só podem ser modificados por administradores. Um grant e/ou um projeto definem o contexto em que um ou mais PGDs podem ser criados.
+Importar ficheiro - Suporta a função de importar ficheiros em formato .json, que são produzidos de acordo com as especificações da Research Data Alliance (RDA) para PGDs acionáveis por máquina.
O botão “Criar novo PGD” permite de forma simples iniciar o seu plano. Esta opção fornece um editor que percorre os elementos essenciais de um PGD, guiando o processo de criação do documento passo a passo.
A partir do "Início"
A partir de “Adicione um Dataset”
Adicionar um Dataset é uma forma simples de adicionar novos modelos de dados a PGDs pré-existentes.
A partir do “Início”
A partir de “Os meus Datasets”
A partir de “Os meus PGDs”
A partir do “Editor de Dataset”
Repositório - Base de dados eletrónica ou sistema de informação onde os dados são armazenados e mantidos.
+Registo – Uma base de dados de entidades e descrições.
+Serviço - Um software de operações e tarefas específicas, que interage com outro software e hardware.
+Investigador – Um indivíduo que pratica investigação.
+Financiador – Uma organização que financia projetos de investigação e/ou atividades de investigadores.
+A página inicial poderá ser encontrada em https://argos.openaire.eu/splash/, também acessível através do Catálogo de Serviços do OpenAIRE e EOSC.
++
Sobre – Informa sobre o âmbito e principais funções da ferramenta (como funciona, Roadmap, FAQs, quais os contribuidores).
+Recursos - Fornece informação útil sobre a utilização do Argos e inclui material de divulgação (Media Kit, Guia do Utilizador, Co-branding).
+Contactos – Um formulário de contacto que permite a comunicação com a equipa do Argos.
+Sign in – Entrar na aplicação como utilizador.
+
Estão disponíveis diferentes opções de login, desde meios de comunicação social a canais de investigação e comunicação académica.
Atenção! Não é necessária uma conta de utilizador.
Espaço dedicado e que poderá ser customizado de acordo com o perfil pessoal do utilizador.
+ |
+ Definições do Meu Perfil - Exibe a página de perfil que contém detalhes tais como: nome, e-mail, dados da conta Zenodo, etc. +PGDs associados - Coleção dos PGDs do utilizador. +Log out - Termina a sessão e redireciona para a página de login. + |
+
+
O menu principal está localizado no lado esquerdo do ecrã.
+Dependendo da forma como os utilizadores vêem a ferramenta, ou seja, se já efetuaram o login ou não, o menu principal altera-se para incluir características que estão apenas disponíveis no painel dos respetivos utilizadores.
+
|
+
+ + |
+
+
|
+
+ + |
+
+ + |
+|
Início - Direciona o utilizador para a página inicial/painel. | +
+ + |
+Início - Direciona o utilizador para a página inicial/painel. | +
PGDs públicos – Conjunto de PGDs que estão disponíveis publicamente no Argos. | +
+ + |
+Os meus PGDs - Inclui todos os PGDs dos quais o utilizador é proprietário ou colaborador. | +
Datasets públicos – Conjunto de Datasets que estão disponíveis publicamente no Argos. | +
+ + |
+Os meus Datasets - Inclui todos os Datasets dos quais o utilizador é proprietário ou colaborador. | +
Co-Branding - Página para visualizar o software e aprender como contribuir para a aplicação. | +
+ + |
+PGDs públicos - Conjunto de PGDs que estão disponíveis publicamente no Argos. | +
Suporte - Formulário de contacto que permite a comunicação com a equipa do Argos. | +
+ + |
+Datasets públicos - Conjunto de Datasets que estão disponíveis publicamente no Argos. | +
Enviar comentários - Formulário de feedback para contribuir com sugestões e opiniões sobre a utilização de Argos. | +
+ + |
+Sobre - Informa sobre o âmbito e principais funcionalidades da ferramenta. | +
Sobre - Informa sobre o âmbito e principais funcionalidades da ferramenta. | +
+ + |
+Condições do Serviço - Providencia o status legal para a utilização do Argos. | +
Condições do Serviço - Providencia o status legal para a utilização do Argos. | +
+ + |
+Glossário - Inclui os termos usados na ferramenta e explica os componentes básicos. | +
Glossário - Inclui os termos usados na ferramenta e explica os componentes básicos. | +
+ + |
+Guia do Utilizador - Guia para os utilizadores aprenderem a usar o Argos. | +
Guia do Utilizador - Guia para os utilizadores aprenderem a usar o Argos. | +
+ + |
+
+ Contacto de suporte - Formulário de contacto que permite a comunicação com a equipa do Argos. |
+
+
O “Início” é a informação que aparece depois de entrar no Argos a partir da página inicial.
+Inclui informação condensada baseada na função Argos e na sua utilização.
+
Início – Antes de iniciar a sessão
+ |
+
|
+
+ |
+
+ Atenção! Após iniciar a sessão no Argos, a página inicial torna-se num painel pessoal e, como tal, os números alteram-se de acordo com a atividade do utilizador. + |
+
+
Início - Após Iniciar a Sessão
+ |
+
|
+
+
+ |
+
|
+
+
Contém todos os PGDs e Datasets de que o utilizador é proprietário ou colaborador. Tanto os PGDs, como os Datasets, são classificados pela data da sua última modificação, o estado do documento (rascunho, finalizado, publicado) e a sua etiqueta (PGDs ou Datasets).
Quando a etiqueta é verde trata-se de um PGD, mostrando o papel da pessoa que vê o PGD, o estado do processo de escrita, a versão atual do PGD, o grant associado ao PGD, o número e nome dos Datasets que o PGD tem.
Exportar - Suporta o download dos outputs do PGD nos seguintes formatos: PDF, Document, XML, RDA JSON (pode ser importado para outras ferramentas de PGD compatíveis com a RDA).
+Adicionar Dataset - Permite adicionar mais Datasets aos PGDs existentes.
+Convidar - Fornece direitos de edição sobre o documento.
+Duplicar - Cria uma réplica exata do PGD.
+ |
+
Ver todas as Versões do PGD - Mostra o histórico das diferentes versões do PGD. +Eliminar - Remove permanentemente o PGD. + |
+
Quando a etiqueta é amarelo trata-se de um Dataset e mostra o papel da pessoa que visualiza o Dataset, o estado do processo de escrita, o grant associado ao PGD e o título do PGD do qual o Dataset faz parte.
Exportar - Suporta o download dos outputs do Dataset nos seguintes formatos: PDF, Document, XML, RDA JSON (pode ser importado para outras ferramentas de PGD compatíveis com a RDA).
+Convidar - Possibilidade de envio de e-mail ou pesquisa no Catálogo de Utilizadores do Argos, de modo a encontrar colegas/colaboradores. O convite enviado fornece direitos de edição sobre o documento.
+Copiar o Dataset - Cria uma cópia do Dataset.
+Eliminar - Remove permanentemente o Dataset.
+
Contém informação de PGDs que estão disponíveis em acesso aberto no Argos. Isto significa que os proprietários e membros do PGD estão a disponibilizar os seus PGDs e Datasets associados a todos os utilizadores (Argos e não Argos), que queiram consultá-los ou reutilizá-los no âmbito da licença atribuída.
Tanto os PGDs como os Datasets são organizados e apresentados pela data da sua última modificação e pela sua etiqueta (PGDs ou Datasets). Os utilizadores também podem procurar o PGD ou Dataset a partir da barra de pesquisa.
Quando a etiqueta é verde trata-se de um PGD e exibe o título do PGD, o seu estado, a sua versão, o grant associado, o número e o nome dos Datasets que o PGD contém.
+Exportar - Suporta o download dos outputs do PGD nos seguintes formatos: PDF, Document, XML, RDA JSON (pode ser importado para outras ferramentas de PGD compatíveis com a RDA).
+Duplicar - Cria uma cópia idêntica do PGD.
Quando a etiqueta é amarelo trata-se de um Dataset Público e mostra o título do Dataset, o seu estado, o grant associado ao PGD e o papel da pessoa que visualiza o Dataset, o estado do processo de escrita, o grant associado ao PGD e o título do PGD do qual o Dataset faz parte.
Exportar - Suporta o download dos outputs do Dataset nos seguintes formatos: PDF, Document, XML, RDA JSON (pode ser importado para outras ferramentas de PGD compatíveis com a RDA).
++ |
+ Copiar o Dataset - Cria uma cópia do Dataset. + |
+
+
Existem várias formas de criar um novo PGD no Argos.
Existem 4 etapas envolvidas na criação de um PGD:
+- Informação Geral;
+- Informação sobre o Financiamento;
+- Informação sobre a Licença;
+- Informação sobre os Datasets.
Título do PGD - Título do documento.
+Descrição - Breve descrição do contexto e objetivos do PGD.
+Idioma - Idioma do PGD.
+Visibilidade – Informação sobre como será disponibilizado o PGD no Argos. Ao selecionar “Público” o PGD é disponibilizado a todos os utilizadores, através da opção “PGDs Públicos”.
+Investigadores - As pessoas que produziram, processaram e analisaram os dados descritos no PGD.
+Organizações - Nomes das organizações que contribuem para a criação e a revisão dos PGDs.
+Contacto - Detalhe do proprietário do PGD.
+Organizações de Financiamento - Integra uma lista onde os utilizadores podem selecionar a organização através da qual a investigação é financiada. Caso o nome de uma organização financiadora não possa ser encontrado no Argos, os utilizadores podem criar um novo registo com o nome e detalhes da organização financiadora ("Inserir manualmente").
+Grants - Integra um menu pendente para selecionar o grant que está associado ao projeto de investigação da organização financiadora em questão. Caso o grant não seja encontrado no Argos, os utilizadores podem criar um novo registo com o número e nome do mesmo ("Inserir manualmente").
+Projeto - Este campo é para ser preenchido apenas por projetos onde múltiplos grants são aplicáveis. De outra forma, este campo não deverá ser preenchido, sendo mais tarde adicionada informação de forma automática pelos metadados do Argos.
Licença - Inclui uma lista de licenças a escolher e a atribuir aos PGDs.
+Informação sobre os Datasets – Permite selecionar o modelo para descrever os seus datasets. Poderá selecionar mais do que um modelo de dados.
+Guardar – Salva todas as alterações efetuadas ao PGD, permitindo continuar a trabalhar na mesma página.
+Guardar & Adicionar Dataset – Salva todas as alterações efetuadas ao PGD, sendo dado início ao Editor do Dataset para começar a descrever o primeiro conjunto de dados do PGD.
+Existem duas maneiras de criar Datasets:
+- Criar o primeiro Dataset do PGD;
+- Adicionar Datasets aos PGDs existentes.
+
No Argos, os Datasets estão ligados e associados a pelo menos um PGD. Um Dataset não pode existir como registo único.
Primeiro Dataset
+Uma vez criado o PGD, o utilizador poderá preencher a descrição dos seus dados no “Editor de Dataset”.
+
Adicionar Dataset - Adiciona mais Datasets a PGDs já existentes.
+São três os passos a seguir para adicionar um Dataset:
+Selecionar o PGD para o seu Dataset;
+Selecionar o modelo de dados respetivo;
+Editar o Dataset.
+Selecione um PGD já existente na lista.
++
Selecionar o modelo de dados para descrever o seu Dataset, de acordo com a organização que financia o seu grant.
+O “Editor de Dataset” apoia na descrição de informação de acordo com o modelo selecionado.
+Guardar Datasets - Existem várias formas de guardar Datasets no Argos. Todas têm a mesma finalidade, diferindo da ação de acompanhamento.
+Ignorar – Não guarda as alterações realizadas no Dataset.
+Guardar – Salva todas as alterações realizadas e permite continuar a trabalhar na mesma página.
+Concluir – Salva todas as alterações realizadas, encerrando a janela do editor e redirecionando para o “Início”.
++
Regista os PGDs e Datasets no Argos, após a sua edição e conclusão.
+Os utilizadores podem visualizar os PGDs e Datasets que criaram. Ao abrir um registo que tenham criado, são-lhes fornecidas funcionalidades adicionais que estão ligadas à conclusão do processo de escrita dos PGDs.
+São aplicáveis funcionalidades diferentes consoante o estado do PGD, ou seja, antes ou depois da conclusão do PGD.
+
Antes de concluir o PGD
Antes de concluir o PGD, este pode ainda ser editado, eliminado ou duplicado. Os utilizadores podem rever a informação que acrescentaram relativamente a grants, investigadores, descrição do PGD e Datasets e/ou modelos de dados utilizados.
+Podem ser adicionados novos Datasets em qualquer altura, a partir desta página.
+Os utilizadores podem exportar o PGD, começar a trabalhar numa nova versão e/ou convidar colegas a colaborar na conclusão do seu plano.
+
Convidar
Após concluir o PGD
Após a conclusão do PGD, este poderá ser tornado publicamente visível no Argos e depositado no Zenodo.
+Os utilizadores podem exportar o PGD finalizado, começar a trabalhar numa nova versão e/ou convidar colegas a colaborar na conclusão do plano.
+É possível reverter a conclusão do PGD.
++
Antes de concluir os Datasets
+Antes de concluir o Dataset, este pode ainda ser editado, eliminado ou duplicado.
+Os utilizadores podem aceder a todo o PGD do qual o Dataset faz parte, a partir dessa página, e rever a informação que acrescentaram relativamente ao grant, investigadores e descrição do Dataset.
+Os utilizadores podem exportar a descrição do Dataset e convidar os colegas a colaborar na sua conclusão.
++
Após concluir os Datasets
+
Após a conclusão do Dataset, este poderá ser exportado e partilhado com colegas para revisão.
+
+
+
Data Management Plan (DMP) is a collection of dataset descriptions, associated with an activity (“project” or “grant”). A DMP may be versioned, is exportable to various forms, currently machine readable (xml, json) and human readable (pdf/openxml) and can be assigned a DOI and published in Zenodo.
++
Dataset in Argos describes data according to a set of rules that is the dataset template.
++
Dataset Template is the set of rules that describe what Datasets contain and how they are handled. Dataset Templates are modified by Admins and contain attributes/fields, behavioral rules (e.g. toggling visibility of fields) and validation rules. Dataset Templates are linked to DMPs so that users are provided with specific formats of descriptions.
++
Project is a logical entity that defines the context where one or more Data Management Plans may be formed in.
++
Grant is a logical entity that defines the context where one or more Data Management Plans may be formed in.
++
Users are associated to DMPs and other entities (e.g. Datasets, Organizations) for authorization and may map to researchers.
++
Import - Import function supports upload of .json files that are produced according to RDA specifications for machine-actionable DMPs
++
+
+ +
+ Start New DMP is an easy way to start writing a DMP. It provides an editor that goes through the essential elements of a DMP and guides the process of its creation step by step. ++ From “Homepage” ++ + From Dashboard ++ or ++ + From “Add Dataset” ++ |
+
+
+ +
+ Add Dataset is an easy way to add new datasets to pre-existing DMPs. ++ From Dashboard ++ + From “My Datasets” ++ + From “My DMPs” ++ + From Dataset Editor ++ |
+
+
+
Repository - an electronic database or an information system where data are stored and maintained
++
Data set - a collection of data which are bind together under a specific format
++
Registry - a database of entities and descriptions
++
Service - a software of specific operations and tasks that interacts with other software and hardware
++
Researcher - an individual practicing research
++
Funding organization - an organisation that funds research programmes and/ or researchers’ activities
++
+
The homepage can be found under argos.openaire.eu, also accessible from the OpenAIRE Service catalogue and the EOSC.
++
+
+
About - informs about the scope and main functions of the tool (How it works, ROADMAP, FAQs, Contributors)
++
Resources - provides useful information about using Argos and includes dissemination material (Media Kit, User Guide, Co-branding)
++
Contact - a contact form that facilitates communication with Argos team
++
Sign in - enters the tool as a user
++
Different login options are available to choose from social media to research and scholarly communication channels.
++
+
Note! No user account is required.
++
+
A dedicated, customisable space of the user’s personal profile.
++ +
+ + |
+
+ My profile settings - displays the profile page which contains details such as name, email, zenodo account details etc. ++ Associated DMPs - a collection of users’ DMPs ++ Log out - terminates the session, and redirects to the login page. + |
+
+
+
+
The main menu is located on the left side of the screen. Depending on how users view the tool, i.e. whether they have logged in or not, the main menu changes to include features that are available only in individuals’ dashboards.
++ +
+ Main menu - not logged in ++ + + Home - gets you back to the homepage / dashboard ++ Public DMPs - a collection of DMPs publicly available in Argos ++ Public Datasets - a collection of Datasets publicly available in Argos ++ Co-Branding - a page to view the software and learn how to contribute ++ Support - a contact form that facilitates communication with Argos team ++ Send feedback - a feedback form to contribute thoughts and opinions about using Argos ++ About - informs about the scope and main functions of the tool ++ Terms of Service - provides the legal status for using of ARGOS ++ Glossary - includes the terminology used in the tool and explains basic components ++ User Guide - a guide for users to learn how to use Argos ++ |
+
+ Main menu - logged in ++ + + Home - gets you back to the homepage / dashboard ++ My DMPs - includes all DMPs which the user is either the owner or the collaborator of ++ My Datasets - includes all Datasets which the user is either the owner or the collaborator of ++ Public DMPs - a collection of DMPs publicly available in Argos ++ Public Datasets - a collection of Datasets publicly available in Argos ++ About - informs about the scope and main functions of the tool ++ Terms of Service - provides the legal status for using of ARGOS ++ Glossary - includes the terminology used in the tool and explains basic components ++ User Guide - a guide for users to learn how to use Argos ++ Contact support - a contact form that facilitates communication with Argos team ++ |
+
+
Dashboard is the console that appears after entering Argos from the Homepage and includes condensed information based on Argos function and their use.
++
Dashboard - Not logged in
++
+
+ +
+ + |
+
+ Latest Activity - displays publicly available DMPs and Datasets according to the date of their publication in Argos and their Label (DMPs or Datasets) + |
+
+ +
+ + |
+
+ Public Usage - shows the number of publicly available DMPs, Datasets, Grants and Organizations included in Argos ++ Note! When logged in to ARGOS the Homepage becomes a personal Dashboard, hence the numbers change to correspond to information provided by the individual’s activity. + |
+
+
Dashboard - Logged in
++
+
+
+ +
+ + |
+
+ Latest Activity - displays users’ DMPs and Datasets classified according to the date of their last modification, the status of the document (draft, finalized, published) and their label (DMPs or Datasets) + |
+
+ +
+ + |
+
+ Personal Usage - shows users activity in DMPs, Datasets, Grants and Organizations + |
+
+
+
Contains all DMPs and Datasets which the user is either the owner or the collaborator of. Both DMPs and Datasets on the user dashboard are classified by the date of their last modification, the status of the document (draft, finalized, published) and their label (DMPs or Datasets).
++
My DMPs
+Each DMP card is green and shows the role of the person viewing the DMP, the status of the writing process, the version of the current DMP, the grant associated with the DMP, the number and name of datasets that the DMP has.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Add Dataset - adds more Datasets to existing DMPs
++
Invite - provides people with edit rights on the document
++
Clone - creates an exact replica of the DMP
++ +
+ + |
+
+ New version - starts a new version of the DMP +All DMP Versions - shows the history of the different versions of the existing DMP +Delete - permanently removes DMPs ++ |
+
+
+
My Datasets
+Each Dataset card is yellow and shows the role of the person viewing the Dataset, the status of the writing process, the grant associated with the DMP and the tite of the DMP that the dataset is part of.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Invite - Sends email or searches the Argos Users Catalogue to find colleagues/ collaborators. Invitation sent provides people with edit rights on the document.
++
+ +
+ + |
+
+ Copy Dataset - creates a copy of the dataset +Delete - permanently removes Datasets + |
+
+
Contains DMPs outputs that are openly available in Argos. That means that DMP owners and members are making their DMP and/or Dataset outputs available to all Argos and non-Argos users who might want to consult or re-use them under the framework provided by the assigned DMP license.
+Both DMPs and Datasets on the user dashboard are classified by the date of their last modification and their label (DMPs or Datasets). Users can also search for the DMP or Dataset from the search bar.
++
Public DMPs
+Each Public DMP card is green and displays the title of the DMP, its status (published), the version of the DMP, the grant associated with it, the number and name of datasets that the DMP contains.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Clone - creates an exact replica of the DMP
+ +
+ + |
+
+ All DMP Versions - shows the history of the different versions of the existing DMP ++ |
+
+
+
Public Datasets
+Each Public Dataset card is yellow and displays the title of the dataset, the status of the dataset (published), the grant associated with the DMP and the title of the DMP that the dataset is part of.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++ +
+ + |
+
+ Copy Dataset - creates a copy of the dataset + |
+
+
There are many ways to create new DMPs in Argos.
++
Start new DMP - Start Wizard
++
+
There are four steps involved in creating a DMP: Main Info - Funding Info - License Info - Dataset Info
++
+
+
+
+
+
+
Title - title of the DMP
++
Description - brief description of what the DMP is about, it’s scope and objectives
++
Language - the language of the DMP
++
Visibility - how the DMP is displayed in Argos. By choosing Public, the DMP is automatically made available to all users from the “Public DMPs” collection.
++
Researchers - the people that have produced, processed, analysed the data described in the DMP
++
Organizations - the names of the organizations contributing to the creation and revision of the DMPs
++
Contact - the contact details of the DMP owner
++
+
+
+
+
Funding organizations - A drop-down menu where users may find the organisation that their research is funded by. In case that the name of a funding organisation can not be found in Argos, users may create a new record with the name and details of the funding organisation (“Insert it manually”).
++
Grants - A drop-down menu to select the grant that is associated with the research project of the given funding organisation. In case that the grant can not be found in Argos, users may create a new record with the number and name of the grant (“Insert it manually”).
++
Project - This field is to be completed only for projects where multiple grants apply. Otherwise, it is left blank and is later filled automatically by Argos metadata.
++
Note! There may be many projects associated with a grant number.
++
+
+
+
License - A list of licenses to choose from and assign to DMPs
++
+
+
+
+
Dataset Info - Select a template to describe your datasets. You may select more than one template.
++
Save DMPs
++
Discard - undo all changes made to the dataset
++
Save - keeps all changes made to the DMP and continues work on the same page
++
Save & Add Dataset - keeps all changes made to the DMP and the Dataset editor starts to describe the first dataset of the DMP
+ +There are two ways to create datasets: when creating the first dataset of the DMP and when adding datasets to existing DMPs. Add datasets are linked to and are associated with at least one DMP in Argos. A dataset can not exist as an orphan record.
++
First dataset
++
Once the DMP is created, the user can fill in the description for their data in the Dataset Editor.
++
Add dataset - Adds more Dataset to existing DMPs
+There are three steps involved in adding a Dataset: Select a DMP for your Dataset - Select Template - Edit Dataset
++
+
Selects an existing DMP from the drop-down menu
++
+
Selects the template of the Dataset that users are required to describe their datasets with by corresponding to their grant funding organisations.
++
+
A Dataset Editor to add information that describes management activities according to the selected template.
++
Save Datasets
+There are many ways to Save a DMP in Argos. They all serve the same function, but the difference lies in the follow up action.
++
+
+
Discard - undo all changes made to the dataset
++
Save - keeps all changes made and continues work on the same page
++
Save & Close - keeps all changes made, but the editor’s window closes and the user is redirected to their dashboard
++
Save & Add New - keeps all changes made and a new editor starts to describe a new dataset
+Records of DMPs and Datasets in Argos after editing and after finalization.
+Users can view the DMPs and Datasets they create from their dashboard. By opening a record they have created, they are provided with additional functionalities that are binded to the completion of the DMP writing process. Different functionalities apply according to the status of the DMP, i.e. before or after the DMP finalization.
++
+
DMPs before finalization
++
+
Before finalization, the DMP can be further edited, deleted or cloned. Users can review information that they have added regarding grant, researchers, DMP description and datasets used. New datasets can be added at any time from this page. Users can export the DMP, they can start working on a new version and/ or invite colleagues to collaborate on completing the DMP.
++
+
Invite
++
+
+
DMPs after finalization
++
+
After the DMP finalization, the DMP can be made publicly visible in Argos and deposited in Zenodo. Users can export the finalized DMP, they can start working on a new version and/ or invite colleagues to collaborate on completing the DMP. Finalization is possible to be reverted.
++
+
Datasets before finalization
+Argos offers different options before and after the Dataset finalization.
++
+
+
Before finalization, the Dataset can be further edited, deleted or cloned. Users can access the whole DMP that the dataset is part of from that page and review information that they have added regarding grant, researchers and Dataset description. Users can export the description of the dataset and invite colleagues to collaborate on its completion.
++
+
Datasets after finalization
++
+
After finalization, the Dataset can be exported and shared with colleagues for review.
++
+
+
+
+
+
+
Data Management Plan (DMP) is a collection of dataset descriptions, associated with an activity (“project” or “grant”). A DMP may be versioned, is exportable to various forms, currently machine readable (xml, json) and human readable (pdf/openxml) and can be assigned a DOI and published in Zenodo.
++
Dataset in Argos describes data according to a set of rules that is the dataset template.
++
Dataset Template is the set of rules that describe what Datasets contain and how they are handled. Dataset Templates are modified by Admins and contain attributes/fields, behavioral rules (e.g. toggling visibility of fields) and validation rules. Dataset Templates are linked to DMPs so that users are provided with specific formats of descriptions.
++
Project is a logical entity that defines the context where one or more Data Management Plans may be formed in.
++
Grant is a logical entity that defines the context where one or more Data Management Plans may be formed in.
++
Users are associated to DMPs and other entities (e.g. Datasets, Organizations) for authorization and may map to researchers.
++
Import - Import function supports upload of .json files that are produced according to RDA specifications for machine-actionable DMPs
++
+
+ +
+ Start New DMP is an easy way to start writing a DMP. It provides an editor that goes through the essential elements of a DMP and guides the process of its creation step by step. ++ From “Homepage” ++ + From Dashboard ++ or ++ + From “Add Dataset” ++ |
+
+
+ +
+ Add Dataset is an easy way to add new datasets to pre-existing DMPs. ++ From Dashboard ++ + From “My Datasets” ++ + From “My DMPs” ++ + From Dataset Editor ++ |
+
+
+
Repository - an electronic database or an information system where data are stored and maintained
++
Data set - a collection of data which are bind together under a specific format
++
Registry - a database of entities and descriptions
++
Service - a software of specific operations and tasks that interacts with other software and hardware
++
Researcher - an individual practicing research
++
Funding organization - an organisation that funds research programmes and/ or researchers’ activities
++
+
The homepage can be found under argos.openaire.eu, also accessible from the OpenAIRE Service catalogue and the EOSC.
++
+
+
About - informs about the scope and main functions of the tool (How it works, ROADMAP, FAQs, Contributors)
++
Resources - provides useful information about using Argos and includes dissemination material (Media Kit, User Guide, Co-branding)
++
Contact - a contact form that facilitates communication with Argos team
++
Sign in - enters the tool as a user
++
Different login options are available to choose from social media to research and scholarly communication channels.
++
+
Note! No user account is required.
++
+
A dedicated, customisable space of the user’s personal profile.
++ +
+ + |
+
+ My profile settings - displays the profile page which contains details such as name, email, zenodo account details etc. ++ Associated DMPs - a collection of users’ DMPs ++ Log out - terminates the session, and redirects to the login page. + |
+
+
+
+
The main menu is located on the left side of the screen. Depending on how users view the tool, i.e. whether they have logged in or not, the main menu changes to include features that are available only in individuals’ dashboards.
++ +
+ Main menu - not logged in ++ + + Home - gets you back to the homepage / dashboard ++ Public DMPs - a collection of DMPs publicly available in Argos ++ Public Datasets - a collection of Datasets publicly available in Argos ++ Co-Branding - a page to view the software and learn how to contribute ++ Support - a contact form that facilitates communication with Argos team ++ Send feedback - a feedback form to contribute thoughts and opinions about using Argos ++ About - informs about the scope and main functions of the tool ++ Terms of Service - provides the legal status for using of ARGOS ++ Glossary - includes the terminology used in the tool and explains basic components ++ User Guide - a guide for users to learn how to use Argos ++ |
+
+ Main menu - logged in ++ + + Home - gets you back to the homepage / dashboard ++ My DMPs - includes all DMPs which the user is either the owner or the collaborator of ++ My Datasets - includes all Datasets which the user is either the owner or the collaborator of ++ Public DMPs - a collection of DMPs publicly available in Argos ++ Public Datasets - a collection of Datasets publicly available in Argos ++ About - informs about the scope and main functions of the tool ++ Terms of Service - provides the legal status for using of ARGOS ++ Glossary - includes the terminology used in the tool and explains basic components ++ User Guide - a guide for users to learn how to use Argos ++ Contact support - a contact form that facilitates communication with Argos team ++ |
+
+
Dashboard is the console that appears after entering Argos from the Homepage and includes condensed information based on Argos function and their use.
++
Dashboard - Not logged in
++
+
+ +
+ + |
+
+ Latest Activity - displays publicly available DMPs and Datasets according to the date of their publication in Argos and their Label (DMPs or Datasets) + |
+
+ +
+ + |
+
+ Public Usage - shows the number of publicly available DMPs, Datasets, Grants and Organizations included in Argos ++ Note! When logged in to ARGOS the Homepage becomes a personal Dashboard, hence the numbers change to correspond to information provided by the individual’s activity. + |
+
+
Dashboard - Logged in
++
+
+
+ +
+ + |
+
+ Latest Activity - displays users’ DMPs and Datasets classified according to the date of their last modification, the status of the document (draft, finalized, published) and their label (DMPs or Datasets) + |
+
+ +
+ + |
+
+ Personal Usage - shows users activity in DMPs, Datasets, Grants and Organizations + |
+
+
+
Contains all DMPs and Datasets which the user is either the owner or the collaborator of. Both DMPs and Datasets on the user dashboard are classified by the date of their last modification, the status of the document (draft, finalized, published) and their label (DMPs or Datasets).
++
My DMPs
+Each DMP card is green and shows the role of the person viewing the DMP, the status of the writing process, the version of the current DMP, the grant associated with the DMP, the number and name of datasets that the DMP has.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Add Dataset - adds more Datasets to existing DMPs
++
Invite - provides people with edit rights on the document
++
Clone - creates an exact replica of the DMP
++ +
+ + |
+
+ New version - starts a new version of the DMP +All DMP Versions - shows the history of the different versions of the existing DMP +Delete - permanently removes DMPs ++ |
+
+
+
My Datasets
+Each Dataset card is yellow and shows the role of the person viewing the Dataset, the status of the writing process, the grant associated with the DMP and the tite of the DMP that the dataset is part of.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Invite - Sends email or searches the Argos Users Catalogue to find colleagues/ collaborators. Invitation sent provides people with edit rights on the document.
++
+ +
+ + |
+
+ Copy Dataset - creates a copy of the dataset +Delete - permanently removes Datasets + |
+
+
Contains DMPs outputs that are openly available in Argos. That means that DMP owners and members are making their DMP and/or Dataset outputs available to all Argos and non-Argos users who might want to consult or re-use them under the framework provided by the assigned DMP license.
+Both DMPs and Datasets on the user dashboard are classified by the date of their last modification and their label (DMPs or Datasets). Users can also search for the DMP or Dataset from the search bar.
++
Public DMPs
+Each Public DMP card is green and displays the title of the DMP, its status (published), the version of the DMP, the grant associated with it, the number and name of datasets that the DMP contains.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Clone - creates an exact replica of the DMP
+ +
+ + |
+
+ All DMP Versions - shows the history of the different versions of the existing DMP ++ |
+
+
+
Public Datasets
+Each Public Dataset card is yellow and displays the title of the dataset, the status of the dataset (published), the grant associated with the DMP and the title of the DMP that the dataset is part of.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++ +
+ + |
+
+ Copy Dataset - creates a copy of the dataset + |
+
+
There are many ways to create new DMPs in Argos.
++
Start new DMP - Start Wizard
++
+
There are four steps involved in creating a DMP: Main Info - Funding Info - License Info - Dataset Info
++
+
+
+
+
+
+
Title - title of the DMP
++
Description - brief description of what the DMP is about, it’s scope and objectives
++
Language - the language of the DMP
++
Visibility - how the DMP is displayed in Argos. By choosing Public, the DMP is automatically made available to all users from the “Public DMPs” collection.
++
Researchers - the people that have produced, processed, analysed the data described in the DMP
++
Organizations - the names of the organizations contributing to the creation and revision of the DMPs
++
Contact - the contact details of the DMP owner
++
+
+
+
+
Funding organizations - A drop-down menu where users may find the organisation that their research is funded by. In case that the name of a funding organisation can not be found in Argos, users may create a new record with the name and details of the funding organisation (“Insert it manually”).
++
Grants - A drop-down menu to select the grant that is associated with the research project of the given funding organisation. In case that the grant can not be found in Argos, users may create a new record with the number and name of the grant (“Insert it manually”).
++
Project - This field is to be completed only for projects where multiple grants apply. Otherwise, it is left blank and is later filled automatically by Argos metadata.
++
Note! There may be many projects associated with a grant number.
++
+
+
+
License - A list of licenses to choose from and assign to DMPs
++
+
+
+
+
Dataset Info - Select a template to describe your datasets. You may select more than one template.
++
Save DMPs
++
Discard - undo all changes made to the dataset
++
Save - keeps all changes made to the DMP and continues work on the same page
++
Save & Add Dataset - keeps all changes made to the DMP and the Dataset editor starts to describe the first dataset of the DMP
+ +There are two ways to create datasets: when creating the first dataset of the DMP and when adding datasets to existing DMPs. Add datasets are linked to and are associated with at least one DMP in Argos. A dataset can not exist as an orphan record.
++
First dataset
++
Once the DMP is created, the user can fill in the description for their data in the Dataset Editor.
++
Add dataset - Adds more Dataset to existing DMPs
+There are three steps involved in adding a Dataset: Select a DMP for your Dataset - Select Template - Edit Dataset
++
+
Selects an existing DMP from the drop-down menu
++
+
Selects the template of the Dataset that users are required to describe their datasets with by corresponding to their grant funding organisations.
++
+
A Dataset Editor to add information that describes management activities according to the selected template.
++
Save Datasets
+There are many ways to Save a DMP in Argos. They all serve the same function, but the difference lies in the follow up action.
++
+
+
Discard - undo all changes made to the dataset
++
Save - keeps all changes made and continues work on the same page
++
Save & Close - keeps all changes made, but the editor’s window closes and the user is redirected to their dashboard
++
Save & Add New - keeps all changes made and a new editor starts to describe a new dataset
+Records of DMPs and Datasets in Argos after editing and after finalization.
+Users can view the DMPs and Datasets they create from their dashboard. By opening a record they have created, they are provided with additional functionalities that are binded to the completion of the DMP writing process. Different functionalities apply according to the status of the DMP, i.e. before or after the DMP finalization.
++
+
DMPs before finalization
++
+
Before finalization, the DMP can be further edited, deleted or cloned. Users can review information that they have added regarding grant, researchers, DMP description and datasets used. New datasets can be added at any time from this page. Users can export the DMP, they can start working on a new version and/ or invite colleagues to collaborate on completing the DMP.
++
+
Invite
++
+
+
DMPs after finalization
++
+
After the DMP finalization, the DMP can be made publicly visible in Argos and deposited in Zenodo. Users can export the finalized DMP, they can start working on a new version and/ or invite colleagues to collaborate on completing the DMP. Finalization is possible to be reverted.
++
+
Datasets before finalization
+Argos offers different options before and after the Dataset finalization.
++
+
+
Before finalization, the Dataset can be further edited, deleted or cloned. Users can access the whole DMP that the dataset is part of from that page and review information that they have added regarding grant, researchers and Dataset description. Users can export the description of the dataset and invite colleagues to collaborate on its completion.
++
+
Datasets after finalization
++
+
After finalization, the Dataset can be exported and shared with colleagues for review.
++
+
+
+
+
+
+
Data Management Plan (DMP) is a collection of dataset descriptions, associated with an activity (“project” or “grant”). A DMP may be versioned, is exportable to various forms, currently machine readable (xml, json) and human readable (pdf/openxml) and can be assigned a DOI and published in Zenodo.
++
Dataset in Argos describes data according to a set of rules that is the dataset template.
++
Dataset Template is the set of rules that describe what Datasets contain and how they are handled. Dataset Templates are modified by Admins and contain attributes/fields, behavioral rules (e.g. toggling visibility of fields) and validation rules. Dataset Templates are linked to DMPs so that users are provided with specific formats of descriptions.
++
Project is a logical entity that defines the context where one or more Data Management Plans may be formed in.
++
Grant is a logical entity that defines the context where one or more Data Management Plans may be formed in.
++
Users are associated to DMPs and other entities (e.g. Datasets, Organizations) for authorization and may map to researchers.
++
Import - Import function supports upload of .json files that are produced according to RDA specifications for machine-actionable DMPs
++
+
+ +
+ Start New DMP is an easy way to start writing a DMP. It provides an editor that goes through the essential elements of a DMP and guides the process of its creation step by step. ++ From “Homepage” ++ + From Dashboard ++ or ++ + From “Add Dataset” ++ |
+
+
+ +
+ Add Dataset is an easy way to add new datasets to pre-existing DMPs. ++ From Dashboard ++ + From “My Datasets” ++ + From “My DMPs” ++ + From Dataset Editor ++ |
+
+
+
Repository - an electronic database or an information system where data are stored and maintained
++
Data set - a collection of data which are bind together under a specific format
++
Registry - a database of entities and descriptions
++
Service - a software of specific operations and tasks that interacts with other software and hardware
++
Researcher - an individual practicing research
++
Funding organization - an organisation that funds research programmes and/ or researchers’ activities
++
+
The homepage can be found under argos.openaire.eu, also accessible from the OpenAIRE Service catalogue and the EOSC.
++
+
+
About - informs about the scope and main functions of the tool (How it works, ROADMAP, FAQs, Contributors)
++
Resources - provides useful information about using Argos and includes dissemination material (Media Kit, User Guide, Co-branding)
++
Contact - a contact form that facilitates communication with Argos team
++
Sign in - enters the tool as a user
++
Different login options are available to choose from social media to research and scholarly communication channels.
++
+
Note! No user account is required.
++
+
A dedicated, customisable space of the user’s personal profile.
++ +
+ + |
+
+ My profile settings - displays the profile page which contains details such as name, email, zenodo account details etc. ++ Associated DMPs - a collection of users’ DMPs ++ Log out - terminates the session, and redirects to the login page. + |
+
+
+
+
The main menu is located on the left side of the screen. Depending on how users view the tool, i.e. whether they have logged in or not, the main menu changes to include features that are available only in individuals’ dashboards.
++ +
+ Main menu - not logged in ++ + + Home - gets you back to the homepage / dashboard ++ Public DMPs - a collection of DMPs publicly available in Argos ++ Public Datasets - a collection of Datasets publicly available in Argos ++ Co-Branding - a page to view the software and learn how to contribute ++ Support - a contact form that facilitates communication with Argos team ++ Send feedback - a feedback form to contribute thoughts and opinions about using Argos ++ About - informs about the scope and main functions of the tool ++ Terms of Service - provides the legal status for using of ARGOS ++ Glossary - includes the terminology used in the tool and explains basic components ++ User Guide - a guide for users to learn how to use Argos ++ |
+
+ Main menu - logged in ++ + + Home - gets you back to the homepage / dashboard ++ My DMPs - includes all DMPs which the user is either the owner or the collaborator of ++ My Datasets - includes all Datasets which the user is either the owner or the collaborator of ++ Public DMPs - a collection of DMPs publicly available in Argos ++ Public Datasets - a collection of Datasets publicly available in Argos ++ About - informs about the scope and main functions of the tool ++ Terms of Service - provides the legal status for using of ARGOS ++ Glossary - includes the terminology used in the tool and explains basic components ++ User Guide - a guide for users to learn how to use Argos ++ Contact support - a contact form that facilitates communication with Argos team ++ |
+
+
Dashboard is the console that appears after entering Argos from the Homepage and includes condensed information based on Argos function and their use.
++
Dashboard - Not logged in
++
+
+ +
+ + |
+
+ Latest Activity - displays publicly available DMPs and Datasets according to the date of their publication in Argos and their Label (DMPs or Datasets) + |
+
+ +
+ + |
+
+ Public Usage - shows the number of publicly available DMPs, Datasets, Grants and Organizations included in Argos ++ Note! When logged in to ARGOS the Homepage becomes a personal Dashboard, hence the numbers change to correspond to information provided by the individual’s activity. + |
+
+
Dashboard - Logged in
++
+
+
+ +
+ + |
+
+ Latest Activity - displays users’ DMPs and Datasets classified according to the date of their last modification, the status of the document (draft, finalized, published) and their label (DMPs or Datasets) + |
+
+ +
+ + |
+
+ Personal Usage - shows users activity in DMPs, Datasets, Grants and Organizations + |
+
+
+
Contains all DMPs and Datasets which the user is either the owner or the collaborator of. Both DMPs and Datasets on the user dashboard are classified by the date of their last modification, the status of the document (draft, finalized, published) and their label (DMPs or Datasets).
++
My DMPs
+Each DMP card is green and shows the role of the person viewing the DMP, the status of the writing process, the version of the current DMP, the grant associated with the DMP, the number and name of datasets that the DMP has.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Add Dataset - adds more Datasets to existing DMPs
++
Invite - provides people with edit rights on the document
++
Clone - creates an exact replica of the DMP
++ +
+ + |
+
+ New version - starts a new version of the DMP +All DMP Versions - shows the history of the different versions of the existing DMP +Delete - permanently removes DMPs ++ |
+
+
+
My Datasets
+Each Dataset card is yellow and shows the role of the person viewing the Dataset, the status of the writing process, the grant associated with the DMP and the tite of the DMP that the dataset is part of.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Invite - Sends email or searches the Argos Users Catalogue to find colleagues/ collaborators. Invitation sent provides people with edit rights on the document.
++
+ +
+ + |
+
+ Copy Dataset - creates a copy of the dataset +Delete - permanently removes Datasets + |
+
+
Contains DMPs outputs that are openly available in Argos. That means that DMP owners and members are making their DMP and/or Dataset outputs available to all Argos and non-Argos users who might want to consult or re-use them under the framework provided by the assigned DMP license.
+Both DMPs and Datasets on the user dashboard are classified by the date of their last modification and their label (DMPs or Datasets). Users can also search for the DMP or Dataset from the search bar.
++
Public DMPs
+Each Public DMP card is green and displays the title of the DMP, its status (published), the version of the DMP, the grant associated with it, the number and name of datasets that the DMP contains.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++
Clone - creates an exact replica of the DMP
+ +
+ + |
+
+ All DMP Versions - shows the history of the different versions of the existing DMP ++ |
+
+
+
Public Datasets
+Each Public Dataset card is yellow and displays the title of the dataset, the status of the dataset (published), the grant associated with the DMP and the title of the DMP that the dataset is part of.
++
+
+
Export - supports download of the DMP outputs in the following formats: PDF, Document, XML, RDA JSON (can be imported to other RDA compliant DMP tools)
++ +
+ + |
+
+ Copy Dataset - creates a copy of the dataset + |
+
+
There are many ways to create new DMPs in Argos.
++
Start new DMP - Start Wizard
++
+
There are four steps involved in creating a DMP: Main Info - Funding Info - License Info - Dataset Info
++
+
+
+
+
+
+
Title - title of the DMP
++
Description - brief description of what the DMP is about, it’s scope and objectives
++
Language - the language of the DMP
++
Visibility - how the DMP is displayed in Argos. By choosing Public, the DMP is automatically made available to all users from the “Public DMPs” collection.
++
Researchers - the people that have produced, processed, analysed the data described in the DMP
++
Organizations - the names of the organizations contributing to the creation and revision of the DMPs
++
Contact - the contact details of the DMP owner
++
+
+
+
+
Funding organizations - A drop-down menu where users may find the organisation that their research is funded by. In case that the name of a funding organisation can not be found in Argos, users may create a new record with the name and details of the funding organisation (“Insert it manually”).
++
Grants - A drop-down menu to select the grant that is associated with the research project of the given funding organisation. In case that the grant can not be found in Argos, users may create a new record with the number and name of the grant (“Insert it manually”).
++
Project - This field is to be completed only for projects where multiple grants apply. Otherwise, it is left blank and is later filled automatically by Argos metadata.
++
Note! There may be many projects associated with a grant number.
++
+
+
+
License - A list of licenses to choose from and assign to DMPs
++
+
+
+
+
Dataset Info - Select a template to describe your datasets. You may select more than one template.
++
Save DMPs
++
Discard - undo all changes made to the dataset
++
Save - keeps all changes made to the DMP and continues work on the same page
++
Save & Add Dataset - keeps all changes made to the DMP and the Dataset editor starts to describe the first dataset of the DMP
+ +There are two ways to create datasets: when creating the first dataset of the DMP and when adding datasets to existing DMPs. Add datasets are linked to and are associated with at least one DMP in Argos. A dataset can not exist as an orphan record.
++
First dataset
++
Once the DMP is created, the user can fill in the description for their data in the Dataset Editor.
++
Add dataset - Adds more Dataset to existing DMPs
+There are three steps involved in adding a Dataset: Select a DMP for your Dataset - Select Template - Edit Dataset
++
+
Selects an existing DMP from the drop-down menu
++
+
Selects the template of the Dataset that users are required to describe their datasets with by corresponding to their grant funding organisations.
++
+
A Dataset Editor to add information that describes management activities according to the selected template.
++
Save Datasets
+There are many ways to Save a DMP in Argos. They all serve the same function, but the difference lies in the follow up action.
++
+
+
Discard - undo all changes made to the dataset
++
Save - keeps all changes made and continues work on the same page
++
Save & Close - keeps all changes made, but the editor’s window closes and the user is redirected to their dashboard
++
Save & Add New - keeps all changes made and a new editor starts to describe a new dataset
+Records of DMPs and Datasets in Argos after editing and after finalization.
+Users can view the DMPs and Datasets they create from their dashboard. By opening a record they have created, they are provided with additional functionalities that are binded to the completion of the DMP writing process. Different functionalities apply according to the status of the DMP, i.e. before or after the DMP finalization.
++
+
DMPs before finalization
++
+
Before finalization, the DMP can be further edited, deleted or cloned. Users can review information that they have added regarding grant, researchers, DMP description and datasets used. New datasets can be added at any time from this page. Users can export the DMP, they can start working on a new version and/ or invite colleagues to collaborate on completing the DMP.
++
+
Invite
++
+
+
DMPs after finalization
++
+
After the DMP finalization, the DMP can be made publicly visible in Argos and deposited in Zenodo. Users can export the finalized DMP, they can start working on a new version and/ or invite colleagues to collaborate on completing the DMP. Finalization is possible to be reverted.
++
+
Datasets before finalization
+Argos offers different options before and after the Dataset finalization.
++
+
+
Before finalization, the Dataset can be further edited, deleted or cloned. Users can access the whole DMP that the dataset is part of from that page and review information that they have added regarding grant, researchers and Dataset description. Users can export the description of the dataset and invite colleagues to collaborate on its completion.
++
+
Datasets after finalization
++
+
After finalization, the Dataset can be exported and shared with colleagues for review.
++
+
+
+
+
+ |
+
+
+
+ This is preheader text. Some clients will show this text as a preview.
+
+
|
+ + |
+ |
+
+
+
+ This is preheader text. Some clients will show this text as a preview.
+
+
|
+ + |
+ |
+
+
+
+ This is preheader text. Some clients will show this text as a preview.
+
+
|
+ + |
+ |
+
+
+
+ This is preheader text. Some clients will show this text as a preview.
+
+
|
+ + |
+ |
+
+
+
+ This is preheader text. Some clients will show this text as a preview.
+
+
|
+ + |
+ |
+
+
+
+ This is preheader text. Some clients will show this text as a preview.
+
+
|
+ + |
+ |
+
+
+
+ This is preheader text. Some clients will show this text as a preview.
+
+
|
+ + |
+ |
+
+
+
+ This is preheader text. Some clients will show this text as a preview.
+
+
|
+ + |
+ |
+
+
+
+ This is preheader text. Some clients will show this text as a preview.
+
+
|
+ + |
{ + + /** + * Every query that supports building from a lookup object should implement this interface + * @param lookup The object containing all the lookup options + * @return The query built from all the set options + */ + Q fromLookup(L lookup); + +} diff --git a/dmp-migration-tool/core/src/main/java/eu/eudat/service/DescriptionTemplateTypeService.java b/dmp-migration-tool/core/src/main/java/eu/eudat/service/DescriptionTemplateTypeService.java new file mode 100644 index 000000000..3f8ebef88 --- /dev/null +++ b/dmp-migration-tool/core/src/main/java/eu/eudat/service/DescriptionTemplateTypeService.java @@ -0,0 +1,101 @@ +package eu.eudat.service; + +import eu.eudat.commons.enums.DescriptionTemplateTypeStatus; +import eu.eudat.data.DescriptionTemplateTypeEntity; +import eu.eudat.model.DescriptionTemplateType; +import eu.eudat.model.builder.DescriptionTemplateTypeBuilder; +import eu.eudat.query.DescriptionTemplateTypeQuery; +import eu.eudat.query.lookup.DescriptionTemplateTypeLookup; +import gr.cite.tools.data.builder.BuilderFactory; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Service; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.TransactionDefinition; +import org.springframework.transaction.TransactionStatus; +import org.springframework.transaction.support.DefaultTransactionDefinition; + +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; +import java.util.List; +import java.util.UUID; + +@Service +public class DescriptionTemplateTypeService { + + private final ApplicationContext applicationContext; + + private final BuilderFactory builderFactory; + + private final PlatformTransactionManager transactionManager; + + @PersistenceContext + private EntityManager entityManager; + + public DescriptionTemplateTypeService(ApplicationContext applicationContext, BuilderFactory builderFactory, PlatformTransactionManager platformTransactionManager) { + this.applicationContext = applicationContext; + this.builderFactory = builderFactory; + this.transactionManager = platformTransactionManager; + } + + public ListgetAll(DescriptionTemplateTypeLookup lookup) { + DescriptionTemplateTypeQuery query = applicationContext.getBean(DescriptionTemplateTypeQuery.class); + return builderFactory + .builder(DescriptionTemplateTypeBuilder.class) + .build(lookup.getProject(), query.fromLookup(lookup).collect()); + } + + public DescriptionTemplateType getById(UUID id) { + DescriptionTemplateTypeQuery query = applicationContext.getBean(DescriptionTemplateTypeQuery.class); + return builderFactory + .builder(DescriptionTemplateTypeBuilder.class) + .build(null, query.ids(id).first()); + } + + public DescriptionTemplateType create(DescriptionTemplateType payload) { + DescriptionTemplateTypeEntity created = new DescriptionTemplateTypeEntity(); + created.setId(UUID.randomUUID()); + created.setName(payload.getName()); + created.setStatus(DescriptionTemplateTypeStatus.SAVED.getValue()); + + DefaultTransactionDefinition definition = new DefaultTransactionDefinition(); + definition.setName(UUID.randomUUID().toString()); + definition.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED); + definition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); + TransactionStatus status = null; + try { + status = transactionManager.getTransaction(definition); + entityManager.persist(created); + + entityManager.flush(); + transactionManager.commit(status); + } catch (Exception ex) { + if (status != null) + transactionManager.rollback(status); + throw ex; + } + + DescriptionTemplateTypeQuery query = applicationContext.getBean(DescriptionTemplateTypeQuery.class); + return builderFactory + .builder(DescriptionTemplateTypeBuilder.class) + .build(null, query.ids(created.getId()).first()); + } + + public DescriptionTemplateType update(DescriptionTemplateType payload) { + DescriptionTemplateTypeEntity entity = entityManager.find(DescriptionTemplateTypeEntity.class, payload.getId()); + entity.setName(payload.getName()); + entity.setStatus(payload.getStatus()); + entityManager.merge(entity); + entityManager.flush(); + return builderFactory.builder(DescriptionTemplateTypeBuilder.class).build(null, entity); + } + + public boolean delete (UUID id) { + DescriptionTemplateTypeEntity entity = entityManager.find(DescriptionTemplateTypeEntity.class, id); + if (entity == null) return false; + entity.setStatus(DescriptionTemplateTypeStatus.DELETED.getValue()); + entityManager.merge(entity); + entityManager.flush(); + return true; + } + +} diff --git a/dmp-migration-tool/data/pom.xml b/dmp-migration-tool/data/pom.xml index 6c162868f..59d45c51d 100644 --- a/dmp-migration-tool/data/pom.xml +++ b/dmp-migration-tool/data/pom.xml @@ -15,6 +15,13 @@ + + + +eu.eudat +core +1.0.0-SNAPSHOT +dmp-backend queryable diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/converters/DateToUTCConverter.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/converters/DateToUTCConverter.java new file mode 100644 index 000000000..3a9207eb2 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/converters/DateToUTCConverter.java @@ -0,0 +1,49 @@ +package eu.eudat.data.converters; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.format.datetime.DateFormatter; + +import jakarta.persistence.AttributeConverter; +import jakarta.persistence.Converter; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.TimeZone; + +/** + * Created by ikalyvas on 9/25/2018. + */ +@Converter +public class DateToUTCConverter implements AttributeConverter{ + private static final Logger logger = LoggerFactory.getLogger(DateToUTCConverter.class); + + @Override + public Date convertToDatabaseColumn(Date attribute) { + if(attribute == null) return null; + DateFormat formatterIST = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + formatterIST.setTimeZone(TimeZone.getTimeZone("UTC")); + try { + String date = formatterIST.format(attribute); + return formatterIST.parse(date); + } catch (ParseException e) { + logger.error(e.getMessage(), e); + } + return null; + } + + @Override + public Date convertToEntityAttribute(Date dbData) { + if(dbData == null) return null; + DateFormat formatterIST = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + formatterIST.setTimeZone(TimeZone.getTimeZone("UTC")); + try { + String date = formatterIST.format(dbData); + return formatterIST.parse(date); + } catch (ParseException e) { + logger.error(e.getMessage(), e); + } + return null; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/DatabaseAccess.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/DatabaseAccess.java new file mode 100644 index 000000000..c3b5603a4 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/DatabaseAccess.java @@ -0,0 +1,22 @@ +package eu.eudat.data.dao; + +import eu.eudat.data.dao.databaselayer.service.DatabaseService; +import eu.eudat.queryable.queryableentity.DataEntity; + + +public class DatabaseAccess { + + public DatabaseAccess(DatabaseService databaseService) { + this.databaseService = databaseService; + } + + private DatabaseService databaseService; + + public DatabaseService getDatabaseService() { + return databaseService; + } + + public void setDatabaseService(DatabaseService databaseService) { + this.databaseService = databaseService; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/DatabaseAccessLayer.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/DatabaseAccessLayer.java new file mode 100644 index 000000000..dd6f524db --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/DatabaseAccessLayer.java @@ -0,0 +1,21 @@ +package eu.eudat.data.dao; + + +import eu.eudat.queryable.QueryableList; +import eu.eudat.queryable.queryableentity.DataEntity; + +import java.util.concurrent.CompletableFuture; + +public interface DatabaseAccessLayer { + T createOrUpdate(T item); + + CompletableFuture createOrUpdateAsync(T item); + + T find(I id); + + T find(I id, String hint); + + void delete(T item); + + QueryableList asQueryable(); +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/Criteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/Criteria.java new file mode 100644 index 000000000..42b693035 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/Criteria.java @@ -0,0 +1,18 @@ +package eu.eudat.data.dao.criteria; + +import io.swagger.annotations.ApiModelProperty; + +public abstract class Criteria { + @ApiModelProperty(value = "like", name = "like", dataType = "String", allowEmptyValue = true, example = "\"\"") + private String like; + + public String getLike() { + return like; + } + + public void setLike(String like) { + this.like = like; + } + + +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataManagementPlanBlueprintCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataManagementPlanBlueprintCriteria.java new file mode 100644 index 000000000..f2348d016 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataManagementPlanBlueprintCriteria.java @@ -0,0 +1,16 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.DMPProfile; + +public class DataManagementPlanBlueprintCriteria extends Criteria { + + private Integer status; + + public Integer getStatus() { + return status; + } + public void setStatus(Integer status) { + this.status = status; + } + +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataManagementPlanCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataManagementPlanCriteria.java new file mode 100644 index 000000000..6b8de9a48 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataManagementPlanCriteria.java @@ -0,0 +1,126 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.DMP; +import eu.eudat.data.entities.Grant; + +import java.util.Date; +import java.util.List; +import java.util.UUID; + +public class DataManagementPlanCriteria extends Criteria { + private Date periodStart; + private Date periodEnd; + private List grants; + private boolean allVersions; + private List groupIds; + private Integer status; + private List organisations; + private Integer role; + private List collaborators; + private List datasetTemplates; + private boolean isPublic; + private boolean onlyPublic; + private Short grantStatus; + private boolean hasDoi; + + public Date getPeriodStart() { + return periodStart; + } + public void setPeriodStart(Date periodStart) { + this.periodStart = periodStart; + } + + public Date getPeriodEnd() { + return periodEnd; + } + public void setPeriodEnd(Date periodEnd) { + this.periodEnd = periodEnd; + } + + public List getGrants() { + return grants; + } + public void setGrants(List grants) { + this.grants = grants; + } + + public boolean getAllVersions() { + return allVersions; + } + public void setAllVersions(boolean allVersions) { + this.allVersions = allVersions; + } + + public List getGroupIds() { + return groupIds; + } + public void setGroupIds(List groupIds) { + this.groupIds = groupIds; + } + + public Integer getStatus() { + return status; + } + public void setStatus(Integer status) { + this.status = status; + } + + public List getOrganisations() { + return organisations; + } + public void setOrganisations(List organisations) { + this.organisations = organisations; + } + + public Integer getRole() { + return role; + } + public void setRole(Integer role) { + this.role = role; + } + + public List getCollaborators() { + return collaborators; + } + public void setCollaborators(List collaborators) { + this.collaborators = collaborators; + } + + public List getDatasetTemplates() { + return datasetTemplates; + } + public void setDatasetTemplates(List datasetTemplates) { + this.datasetTemplates = datasetTemplates; + } + + public boolean getIsPublic() { + return isPublic; + } + public void setIsPublic(boolean isPublic) { + this.isPublic = isPublic; + } + + public boolean isOnlyPublic() { + return onlyPublic; + } + + public void setOnlyPublic(boolean onlyPublic) { + this.onlyPublic = onlyPublic; + } + + public Short getGrantStatus() { + return grantStatus; + } + + public void setGrantStatus(Short grantStatus) { + this.grantStatus = grantStatus; + } + + public boolean hasDoi() { + return hasDoi; + } + + public void setHasDoi(boolean hasDoi) { + this.hasDoi = hasDoi; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataManagementPlanProfileCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataManagementPlanProfileCriteria.java new file mode 100644 index 000000000..a601fcd6b --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataManagementPlanProfileCriteria.java @@ -0,0 +1,9 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.DMPProfile; + +/** + * Created by ikalyvas on 3/21/2018. + */ +public class DataManagementPlanProfileCriteria extends Criteria { +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataManagementPlanPublicCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataManagementPlanPublicCriteria.java new file mode 100644 index 000000000..cc96186fc --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataManagementPlanPublicCriteria.java @@ -0,0 +1,66 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.DMP; +import eu.eudat.types.grant.GrantStateType; + +import java.util.List; +import java.util.UUID; + +public class DataManagementPlanPublicCriteria extends Criteria { + private GrantStateType grantStatus; + private List grants; + public List datasetProfile; + private List dmpOrganisations; + private Integer role; + private boolean allVersions; + private List groupIds; + + public GrantStateType getGrantStatus() { + return grantStatus; + } + public void setGrantStatus(GrantStateType grantStatus) { + this.grantStatus = grantStatus; + } + + public List getGrants() { + return grants; + } + public void setGrants(List grants) { + this.grants = grants; + } + + public List getDatasetProfile() { + return datasetProfile; + } + public void setDatasetProfile(List datasetProfile) { + this.datasetProfile = datasetProfile; + } + + public List getDmpOrganisations() { + return dmpOrganisations; + } + public void setDmpOrganisations(List dmpOrganisations) { + this.dmpOrganisations = dmpOrganisations; + } + + public Integer getRole() { + return role; + } + public void setRole(Integer role) { + this.role = role; + } + + public boolean getAllVersions() { + return allVersions; + } + public void setAllVersions(boolean allVersions) { + this.allVersions = allVersions; + } + + public List getGroupIds() { + return groupIds; + } + public void setGroupIds(List groupIds) { + this.groupIds = groupIds; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataRepositoryCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataRepositoryCriteria.java new file mode 100644 index 000000000..ecd577308 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DataRepositoryCriteria.java @@ -0,0 +1,17 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.DataRepository; + +import java.util.UUID; + +public class DataRepositoryCriteria extends Criteria { + + private UUID creationUserId; + + public UUID getCreationUserId() { + return creationUserId; + } + public void setCreationUserId(UUID creationUserId) { + this.creationUserId = creationUserId; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetCriteria.java new file mode 100644 index 000000000..d730d0127 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetCriteria.java @@ -0,0 +1,144 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.Dataset; +import eu.eudat.elastic.entities.Tag; +import eu.eudat.types.grant.GrantStateType; + +import java.util.Date; +import java.util.List; +import java.util.UUID; + + +public class DatasetCriteria extends Criteria { + private Integer status; + private Date periodStart; + private Date periodEnd; + private List dmpIds; + private List tags; + private boolean allVersions; + private UUID profileDatasetId; + private List organisations; + private Integer role; + private List grants; + private List collaborators; + private List datasetTemplates; + private List groupIds; + private Boolean isPublic; + private Short grantStatus; + private boolean hasDoi; + + public boolean getAllVersions() { + return allVersions; + } + public void setAllVersions(boolean allVersions) { + this.allVersions = allVersions; + } + + public Integer getStatus() { + return status; + } + public void setStatus(Integer status) { + this.status = status; + } + + public Date getPeriodStart() { + return periodStart; + } + public void setPeriodStart(Date periodStart) { + this.periodStart = periodStart; + } + + public Date getPeriodEnd() { + return periodEnd; + } + public void setPeriodEnd(Date periodEnd) { + this.periodEnd = periodEnd; + } + + public List getDmpIds() { + return dmpIds; + } + public void setDmpIds(List dmpIds) { + this.dmpIds = dmpIds; + } + + public List getTags() { + return tags; + } + public void setTags(List tags) { + this.tags = tags; + } + + public UUID getProfileDatasetId() { + return profileDatasetId; + } + public void setProfileDatasetId(UUID profileDatasetId) { + this.profileDatasetId = profileDatasetId; + } + + public List getOrganisations() { + return organisations; + } + public void setOrganisations(List organisations) { + this.organisations = organisations; + } + + public Integer getRole() { + return role; + } + public void setRole(Integer role) { + this.role = role; + } + + public List getGrants() { + return grants; + } + public void setGrants(List grants) { + this.grants = grants; + } + + public List getCollaborators() { + return collaborators; + } + public void setCollaborators(List collaborators) { + this.collaborators = collaborators; + } + + public List getDatasetTemplates() { + return datasetTemplates; + } + public void setDatasetTemplates(List datasetTemplates) { + this.datasetTemplates = datasetTemplates; + } + + public List getGroupIds() { + return groupIds; + } + public void setGroupIds(List groupIds) { + this.groupIds = groupIds; + } + + public Boolean getIsPublic() { + return isPublic; + } + + public void setIsPublic(Boolean isPublic) { + this.isPublic = isPublic; + } + + public Short getGrantStatus() { + return grantStatus; + } + + public void setGrantStatus(Short grantStatus) { + this.grantStatus = grantStatus; + } + + public boolean hasDoi() { + return hasDoi; + } + + public void setHasDoi(boolean hasDoi) { + this.hasDoi = hasDoi; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetProfileCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetProfileCriteria.java new file mode 100644 index 000000000..c859cb2c8 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetProfileCriteria.java @@ -0,0 +1,101 @@ +package eu.eudat.data.dao.criteria; + + +import eu.eudat.data.entities.DescriptionTemplate; + +import java.util.Date; +import java.util.List; +import java.util.UUID; + +public class DatasetProfileCriteria extends Criteria { + + public enum DatasetProfileFilter { + DMPs((short) 0), Datasets((short) 1); + + private short value; + private DatasetProfileFilter(short value) { + this.value = value; + } + public short getValue() { return value; } + + public static DatasetProfileFilter fromInteger(short value) { + switch (value) { + case 0: + return DMPs; + case 1: + return Datasets; + default: + throw new RuntimeException("Unsupported DescriptionTemplate filter"); + } + } + } + + private boolean allVersions; + private List groupIds; + private Short filter; + private UUID userId; + private boolean finalized; + private Integer status; + private Integer role; + private List ids; + private Date periodStart; + + public boolean getAllVersions() { return allVersions; } + public void setAllVersions(boolean allVersions) { this.allVersions = allVersions; } + + public List getGroupIds() { return groupIds; } + public void setGroupIds(List groupIds) { this.groupIds = groupIds; } + + public Short getFilter() { + return filter; + } + public void setFilter(Short filter) { + this.filter = filter; + } + + public UUID getUserId() { + return userId; + } + public void setUserId(UUID userId) { + this.userId = userId; + } + + public boolean getFinalized() { + return finalized; + } + public void setFinalized(boolean finalized) { + this.finalized = finalized; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Integer getRole() { + return role; + } + + public void setRole(Integer role) { + this.role = role; + } + + public List getIds() { + return ids; + } + + public void setIds(List ids) { + this.ids = ids; + } + + public Date getPeriodStart() { + return periodStart; + } + + public void setPeriodStart(Date periodStart) { + this.periodStart = periodStart; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetProfileWizardCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetProfileWizardCriteria.java new file mode 100644 index 000000000..9e1d5d9e2 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetProfileWizardCriteria.java @@ -0,0 +1,18 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.DescriptionTemplate; + +import java.util.UUID; + + +public class DatasetProfileWizardCriteria extends Criteria { + private UUID id; + + public UUID getId() { + return id; + } + + public void setId(UUID id) { + this.id = id; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetPublicCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetPublicCriteria.java new file mode 100644 index 000000000..9554ed5b4 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetPublicCriteria.java @@ -0,0 +1,70 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.Dataset; +import eu.eudat.elastic.entities.Tag; +import eu.eudat.types.grant.GrantStateType; + +import java.util.List; +import java.util.UUID; + +/** + * Created by ikalyvas on 10/2/2018. + */ +public class DatasetPublicCriteria extends Criteria { + private GrantStateType grantStatus; + private List grants; + private List datasetProfile; + private List dmpOrganisations; + private List tags; + private List dmpIds; + private Integer role; + + public GrantStateType getGrantStatus() { + return grantStatus; + } + public void setGrantStatus(GrantStateType grantStatus) { + this.grantStatus = grantStatus; + } + + public List getGrants() { + return grants; + } + public void setGrants(List grants) { + this.grants = grants; + } + + public List getDatasetProfile() { + return datasetProfile; + } + public void setDatasetProfile(List datasetProfile) { + this.datasetProfile = datasetProfile; + } + + public List getDmpOrganisations() { + return dmpOrganisations; + } + public void setDmpOrganisations(List dmpOrganisations) { + this.dmpOrganisations = dmpOrganisations; + } + + public List getTags() { + return tags; + } + public void setTags(List tags) { + this.tags = tags; + } + + public List getDmpIds() { + return dmpIds; + } + public void setDmpIds(List dmpIds) { + this.dmpIds = dmpIds; + } + + public Integer getRole() { + return role; + } + public void setRole(Integer role) { + this.role = role; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetWizardUserDmpCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetWizardUserDmpCriteria.java new file mode 100644 index 000000000..c5cbfc984 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DatasetWizardUserDmpCriteria.java @@ -0,0 +1,17 @@ +package eu.eudat.data.dao.criteria; + + +import eu.eudat.data.entities.DMP; +import eu.eudat.data.entities.UserInfo; + +public class DatasetWizardUserDmpCriteria extends Criteria { + private UserInfo userInfo; + + public UserInfo getUserInfo() { + return userInfo; + } + + public void setUserInfo(UserInfo userInfo) { + this.userInfo = userInfo; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DynamicFieldsCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DynamicFieldsCriteria.java new file mode 100644 index 000000000..1367e8068 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/DynamicFieldsCriteria.java @@ -0,0 +1,51 @@ +package eu.eudat.data.dao.criteria; + +import java.util.List; + +/** + * Created by ikalyvas on 3/26/2018. + */ +public class DynamicFieldsCriteria extends Criteria { + public static class DynamicFieldDependencyCriteria { + private String property; + private String value; + + public DynamicFieldDependencyCriteria() { + } + + public String getProperty() { + return property; + } + + public void setProperty(String property) { + this.property = property; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } + + private String id; + private List dynamicFields; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public List getDynamicFields() { + return dynamicFields; + } + + public void setDynamicFields(List dynamicFields) { + this.dynamicFields = dynamicFields; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/EmailConfirmationCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/EmailConfirmationCriteria.java new file mode 100644 index 000000000..1436752b9 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/EmailConfirmationCriteria.java @@ -0,0 +1,6 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.EmailConfirmation; + +public class EmailConfirmationCriteria extends Criteria { +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/ExternalDatasetCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/ExternalDatasetCriteria.java new file mode 100644 index 000000000..a5a6275e8 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/ExternalDatasetCriteria.java @@ -0,0 +1,15 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.ExternalDataset; +import java.util.UUID; + +public class ExternalDatasetCriteria extends Criteria { + private UUID creationUserId; + + public UUID getCreationUserId() { + return creationUserId; + } + public void setCreationUserId(UUID creationUserId) { + this.creationUserId = creationUserId; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/FunderCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/FunderCriteria.java new file mode 100644 index 000000000..b67983aa0 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/FunderCriteria.java @@ -0,0 +1,34 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.Funder; + +import java.util.Date; + +public class FunderCriteria extends Criteria { + private String reference; + private String exactReference; + private Date periodStart; + + public String getReference() { + return reference; + } + public void setReference(String reference) { + this.reference = reference; + } + + public String getExactReference() { + return exactReference; + } + + public void setExactReference(String exactReference) { + this.exactReference = exactReference; + } + + public Date getPeriodStart() { + return periodStart; + } + + public void setPeriodStart(Date periodStart) { + this.periodStart = periodStart; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/GrantCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/GrantCriteria.java new file mode 100644 index 000000000..1cfd88be7 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/GrantCriteria.java @@ -0,0 +1,83 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.Grant; +import eu.eudat.types.grant.GrantStateType; + +import java.util.Date; + +public class GrantCriteria extends Criteria { + private Date periodStart; + private Date periodEnd; + private String reference; + private Integer grantStateType; + private boolean isPublic; + private String funderId; + private String funderReference; + private String exactReference; + private boolean isActive; + + public Date getPeriodStart() { + return periodStart; + } + public void setPeriodStart(Date periodStart) { + this.periodStart = periodStart; + } + + public Date getPeriodEnd() { + return periodEnd; + } + public void setPeriodEnd(Date periodEnd) { + this.periodEnd = periodEnd; + } + + public String getReference() { + return reference; + } + public void setReference(String reference) { + this.reference = reference; + } + + public Integer getGrantStateType() { + return grantStateType; + } + public void setGrantStateType(Integer grantStateType) { + this.grantStateType = grantStateType; + } + + public boolean isPublic() { + return isPublic; + } + public void setPublic(boolean aPublic) { + isPublic = aPublic; + } + + public String getFunderId() { + return funderId; + } + public void setFunderId(String funderId) { + this.funderId = funderId; + } + + public String getFunderReference() { + return funderReference; + } + public void setFunderReference(String funderReference) { + this.funderReference = funderReference; + } + + public String getExactReference() { + return exactReference; + } + + public void setExactReference(String exactReference) { + this.exactReference = exactReference; + } + + public boolean isActive() { + return isActive; + } + + public void setActive(boolean active) { + isActive = active; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/InvitationCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/InvitationCriteria.java new file mode 100644 index 000000000..50cdeb6a1 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/InvitationCriteria.java @@ -0,0 +1,6 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.Invitation; + +public class InvitationCriteria extends Criteria { +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/LockCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/LockCriteria.java new file mode 100644 index 000000000..55b8e48e5 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/LockCriteria.java @@ -0,0 +1,38 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.Lock; +import eu.eudat.data.entities.UserInfo; + +import java.util.Date; +import java.util.UUID; + +public class LockCriteria extends Criteria { + + private UUID target; + private UserInfo lockedBy; + private Date touchedAt; + + public UUID getTarget() { + return target; + } + + public void setTarget(UUID target) { + this.target = target; + } + + public UserInfo getLockedBy() { + return lockedBy; + } + + public void setLockedBy(UserInfo lockedBy) { + this.lockedBy = lockedBy; + } + + public Date getTouchedAt() { + return touchedAt; + } + + public void setTouchedAt(Date touchedAt) { + this.touchedAt = touchedAt; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/NotificationCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/NotificationCriteria.java new file mode 100644 index 000000000..1cd361014 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/NotificationCriteria.java @@ -0,0 +1,26 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.enumeration.notification.ActiveStatus; +import eu.eudat.data.enumeration.notification.NotifyState; + +public class NotificationCriteria { + + private ActiveStatus isActive; + private NotifyState notifyState; + + public ActiveStatus getIsActive() { + return isActive; + } + + public void setIsActive(ActiveStatus isActive) { + this.isActive = isActive; + } + + public NotifyState getNotifyState() { + return notifyState; + } + + public void setNotifyState(NotifyState notifyState) { + this.notifyState = notifyState; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/OrganisationCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/OrganisationCriteria.java new file mode 100644 index 000000000..30e437df0 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/OrganisationCriteria.java @@ -0,0 +1,31 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.Organisation; + +public class OrganisationCriteria extends Criteria { + private String labelLike; + private Boolean isPublic; + private boolean isActive; + + public String getLabelLike() { + return labelLike; + } + public void setLabelLike(String labelLike) { + this.labelLike = labelLike; + } + + public Boolean getPublic() { + return isPublic; + } + public void setPublic(Boolean aPublic) { + isPublic = aPublic; + } + + public boolean isActive() { + return isActive; + } + + public void setActive(boolean active) { + isActive = active; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/ProjectCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/ProjectCriteria.java new file mode 100644 index 000000000..a9d266ea6 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/ProjectCriteria.java @@ -0,0 +1,34 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.Project; + +import java.util.Date; + +public class ProjectCriteria extends Criteria { + private String reference; + private String exactReference; + private Date periodStart; + + public String getReference() { + return reference; + } + public void setReference(String reference) { + this.reference = reference; + } + + public String getExactReference() { + return exactReference; + } + + public void setExactReference(String exactReference) { + this.exactReference = exactReference; + } + + public Date getPeriodStart() { + return periodStart; + } + + public void setPeriodStart(Date periodStart) { + this.periodStart = periodStart; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/RegistryCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/RegistryCriteria.java new file mode 100644 index 000000000..186f5e281 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/RegistryCriteria.java @@ -0,0 +1,17 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.Registry; + +import java.util.UUID; + +public class RegistryCriteria extends Criteria { + + private UUID creationUserId; + + public UUID getCreationUserId() { + return creationUserId; + } + public void setCreationUserId(UUID creationUserId) { + this.creationUserId = creationUserId; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/RequestItem.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/RequestItem.java new file mode 100644 index 000000000..85bc7522c --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/RequestItem.java @@ -0,0 +1,16 @@ +package eu.eudat.data.dao.criteria; + +/** + * Created by ikalyvas on 3/26/2018. + */ +public class RequestItem { + T criteria; + + public T getCriteria() { + return criteria; + } + + public void setCriteria(T criteria) { + this.criteria = criteria; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/ResearcherCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/ResearcherCriteria.java new file mode 100644 index 000000000..21cb1e5d2 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/ResearcherCriteria.java @@ -0,0 +1,35 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.Researcher; + +import java.util.Date; + +public class ResearcherCriteria extends Criteria { + private String name; + private String reference; + private Date periodStart; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getReference() { + return reference; + } + + public void setReference(String reference) { + this.reference = reference; + } + + public Date getPeriodStart() { + return periodStart; + } + + public void setPeriodStart(Date periodStart) { + this.periodStart = periodStart; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/ServiceCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/ServiceCriteria.java new file mode 100644 index 000000000..715511fb3 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/ServiceCriteria.java @@ -0,0 +1,17 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.Service; + +import java.util.UUID; + +public class ServiceCriteria extends Criteria { + + private UUID creationUserId; + + public UUID getCreationUserId() { + return creationUserId; + } + public void setCreationUserId(UUID creationUserId) { + this.creationUserId = creationUserId; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/UserInfoCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/UserInfoCriteria.java new file mode 100644 index 000000000..3d21d809e --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/UserInfoCriteria.java @@ -0,0 +1,33 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.UserInfo; + +import java.util.List; + + +public class UserInfoCriteria extends Criteria { + private String email; + private List appRoles; + private String collaboratorLike; + + public List getAppRoles() { + return appRoles; + } + public void setAppRoles(List appRoles) { + this.appRoles = appRoles; + } + + public String getEmail() { + return email; + } + public void setEmail(String email) { + this.email = email; + } + + public String getCollaboratorLike() { + return collaboratorLike; + } + public void setCollaboratorLike(String collaboratorLike) { + this.collaboratorLike = collaboratorLike; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/UserRoleCriteria.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/UserRoleCriteria.java new file mode 100644 index 000000000..10654c0a6 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/criteria/UserRoleCriteria.java @@ -0,0 +1,20 @@ +package eu.eudat.data.dao.criteria; + +import eu.eudat.data.entities.UserRole; + +import java.util.List; + +/** + * Created by ikalyvas on 2/1/2018. + */ +public class UserRoleCriteria extends Criteria { + private List appRoles; + + public List getAppRoles() { + return appRoles; + } + + public void setAppRoles(List appRoles) { + this.appRoles = appRoles; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/databaselayer/context/DatabaseContext.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/databaselayer/context/DatabaseContext.java new file mode 100644 index 000000000..6857e4ffd --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/databaselayer/context/DatabaseContext.java @@ -0,0 +1,50 @@ +package eu.eudat.data.dao.databaselayer.context; + +import eu.eudat.queryable.QueryableList; +import eu.eudat.queryable.jpa.hibernatequeryablelist.QueryableHibernateList; +import eu.eudat.queryable.queryableentity.DataEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +import jakarta.persistence.EntityManager; +import jakarta.persistence.EntityManagerFactory; +import jakarta.persistence.PersistenceContext; + + +@Repository("databaseCtx") +public class DatabaseContext { + + @PersistenceContext + private EntityManager entityManager; + + @Autowired + public DatabaseContext(EntityManagerFactory entityManagerFactory) { + this.entityManager = entityManagerFactory.createEntityManager(); + } + + public QueryableList getQueryable(Class type) { + return new QueryableHibernateList<>(this.entityManager, type).setEntity(type); + } + + @Transactional + public T createOrUpdate(T item, Class type) { + EntityManager entityManager = this.entityManager; + if (item.getKeys() != null) { + T oldItem = entityManager.find(type, item.getKeys()); + if (oldItem != null) { + oldItem.update(item); + entityManager.merge(oldItem); + return oldItem; + } else { + entityManager.persist(item); + } + } else entityManager.persist(item); + return item; + } + + public void delete(T item) { + this.entityManager.remove(item); + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/databaselayer/service/DatabaseService.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/databaselayer/service/DatabaseService.java new file mode 100644 index 000000000..6ef82d736 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/databaselayer/service/DatabaseService.java @@ -0,0 +1,41 @@ +package eu.eudat.data.dao.databaselayer.service; + + +import eu.eudat.data.dao.databaselayer.context.DatabaseContext; +import eu.eudat.queryable.QueryableList; +import eu.eudat.queryable.queryableentity.DataEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import jakarta.transaction.Transactional; +import java.util.Set; + + +@Service("databaseService") +public class DatabaseService { + + private DatabaseContext databaseCtx; + + @Autowired + public DatabaseService(DatabaseContext databaseCtx) { + this.databaseCtx = databaseCtx; + } + + public QueryableList getQueryable(Class tClass) { + return this.databaseCtx.getQueryable(tClass); + } + + public QueryableList getQueryable(Set hints, Class tClass) { + return this.databaseCtx.getQueryable(tClass); + } + + @Transactional + public T createOrUpdate(T item, Class tClass) { + return this.databaseCtx.createOrUpdate(item, tClass); + } + + public void delete(T item) { + this.databaseCtx.delete(item); + } + +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/ContentDao.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/ContentDao.java new file mode 100644 index 000000000..438f9b3c5 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/ContentDao.java @@ -0,0 +1,12 @@ +package eu.eudat.data.dao.entities; + +import eu.eudat.data.dao.DatabaseAccessLayer; +import eu.eudat.data.entities.Content; + +import java.util.UUID; + +/** + * Created by ikalyvas on 3/16/2018. + */ +public interface ContentDao extends DatabaseAccessLayer { +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/ContentDaoImpl.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/ContentDaoImpl.java new file mode 100644 index 000000000..1d3f559d5 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/ContentDaoImpl.java @@ -0,0 +1,55 @@ +package eu.eudat.data.dao.entities; + +import eu.eudat.data.dao.DatabaseAccess; +import eu.eudat.data.dao.databaselayer.service.DatabaseService; +import eu.eudat.data.entities.Content; +import eu.eudat.queryable.QueryableList; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.UUID; +import java.util.concurrent.CompletableFuture; + +/** + * Created by ikalyvas on 3/16/2018. + */ +@Service("contentDao") +public class ContentDaoImpl extends DatabaseAccess implements ContentDao { + + @Autowired + public ContentDaoImpl(DatabaseService databaseService) { + super(databaseService); + } + + @Override + public Content createOrUpdate(Content item) { + return this.getDatabaseService().createOrUpdate(item, Content.class); + } + + @Override + @Async + public CompletableFuture createOrUpdateAsync(Content item) { + return CompletableFuture.supplyAsync(() -> this.createOrUpdate(item)); + } + + @Override + public Content find(UUID id) { + return this.getDatabaseService().getQueryable(Content.class).where((builder, root) -> builder.equal(root.get("id"), id)).getSingle(); + } + + @Override + public Content find(UUID id, String hint) { + throw new UnsupportedOperationException(); + } + + @Override + public void delete(Content item) { + this.getDatabaseService().delete(item); + } + + @Override + public QueryableList asQueryable() { + return this.getDatabaseService().getQueryable(Content.class); + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DMPDao.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DMPDao.java new file mode 100644 index 000000000..3073e1857 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DMPDao.java @@ -0,0 +1,22 @@ +package eu.eudat.data.dao.entities; + +import eu.eudat.data.dao.DatabaseAccessLayer; +import eu.eudat.data.dao.criteria.DataManagementPlanCriteria; +import eu.eudat.data.dao.criteria.DatasetWizardUserDmpCriteria; +import eu.eudat.data.entities.DMP; +import eu.eudat.data.entities.UserDMP; +import eu.eudat.data.entities.UserInfo; +import eu.eudat.queryable.QueryableList; + +import java.util.List; +import java.util.UUID; + +public interface DMPDao extends DatabaseAccessLayer { + + QueryableList getWithCriteria(DataManagementPlanCriteria criteria); + + QueryableList getUserDmps(DatasetWizardUserDmpCriteria datasetWizardAutocompleteRequest, UserInfo userInfo); + + QueryableList getAuthenticated(QueryableList query, UUID principalId, List roles); + +} \ No newline at end of file diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java new file mode 100644 index 000000000..ab9c07b93 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java @@ -0,0 +1,149 @@ +package eu.eudat.data.dao.entities; + +import eu.eudat.data.dao.DatabaseAccess; +import eu.eudat.data.dao.criteria.DataManagementPlanCriteria; +import eu.eudat.data.dao.criteria.DatasetWizardUserDmpCriteria; +import eu.eudat.data.dao.databaselayer.service.DatabaseService; +import eu.eudat.data.entities.DMP; +import eu.eudat.data.entities.UserInfo; +import eu.eudat.queryable.QueryableList; +import eu.eudat.queryable.types.FieldSelectionType; +import eu.eudat.queryable.types.SelectionField; +import eu.eudat.types.grant.GrantStateType; +import jakarta.persistence.criteria.Join; +import jakarta.persistence.criteria.JoinType; +import jakarta.transaction.Transactional; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; + +@Component("dMPDao") +public class DMPDaoImpl extends DatabaseAccess implements DMPDao { + + @Autowired + public DMPDaoImpl(DatabaseService databaseService) { + super(databaseService); + } + + @Override + public QueryableList getWithCriteria(DataManagementPlanCriteria criteria) { + QueryableList query = getDatabaseService().getQueryable(DMP.getHints(), DMP.class); + if (criteria.getLike() != null && !criteria.getLike().isEmpty()) + query.where((builder, root) -> builder.or( + builder.like(builder.upper(root.get("label")), "%" + criteria.getLike().toUpperCase() + "%"), + builder.like(builder.upper(root.get("description")), "%" + criteria.getLike().toUpperCase() + "%"))); + if (criteria.getPeriodEnd() != null) + query.where((builder, root) -> builder.lessThan(root.get("created"), criteria.getPeriodEnd())); + if (criteria.getPeriodStart() != null) + query.where((builder, root) -> builder.greaterThan(root.get("created"), criteria.getPeriodStart())); + if (criteria.getGrants() != null && !criteria.getGrants().isEmpty()) + query.where(((builder, root) -> root.get("grant").in(criteria.getGrants()))); + if (!criteria.getAllVersions()) + query.initSubQuery(String.class).where((builder, root) -> builder.equal(root.get("version"), + query.subQueryMax((builder1, externalRoot, nestedRoot) -> builder1.and( + builder1.equal(externalRoot.get("groupId"), nestedRoot.get("groupId")), + builder1.notEqual(nestedRoot.get("status"), DMP.DMPStatus.DELETED.getValue())), Arrays.asList(new SelectionField(FieldSelectionType.FIELD, "version")), Integer.class))); + if (criteria.getGroupIds() != null && !criteria.getGroupIds().isEmpty()) + query.where((builder, root) -> root.get("groupId").in(criteria.getGroupIds())); + if (criteria.getStatus() != null) { + if (criteria.getStatus() == DMP.DMPStatus.FINALISED.getValue()) { + query.where((builder, root) -> builder.equal(root.get("status"), DMP.DMPStatus.FINALISED.getValue())); + } else if (criteria.getStatus() == DMP.DMPStatus.ACTIVE.getValue()) { + query.where((builder, root) -> builder.equal(root.get("status"), DMP.DMPStatus.ACTIVE.getValue())); + } + } + if (criteria.getIsPublic()) { + query.where(((builder, root) -> builder.equal(root.get("isPublic"), criteria.getIsPublic()))); + } + /*if (criteria.getRole() != null) { + if (criteria.getRole().equals(UserDMP.UserDMPRoles.OWNER.getValue())) { + query.where((builder, root) -> builder.equal(root.join("users", JoinType.LEFT).get("role"), UserDMP.UserDMPRoles.OWNER.getValue())); + } else if (criteria.getRole().equals(UserDMP.UserDMPRoles.USER.getValue())) { + query.where((builder, root) -> builder.equal(root.join("users", JoinType.LEFT).get("role"), UserDMP.UserDMPRoles.USER.getValue())); + } + }*/ + if (criteria.getOrganisations() != null && !criteria.getOrganisations().isEmpty()) { + query.where((builder, root) -> root.join("organisations").get("reference").in(criteria.getOrganisations())); + } + if (criteria.getCollaborators() != null && !criteria.getCollaborators().isEmpty()) { + query.where((builder, root) -> root.join("users", JoinType.LEFT).join("user", JoinType.LEFT).get("id").in(criteria.getCollaborators())); + } + if (criteria.getDatasetTemplates() != null && !criteria.getDatasetTemplates().isEmpty()) { + query.where((builder, root) -> root.join("associatedDmps", JoinType.LEFT).get("id").in(criteria.getDatasetTemplates())); + } + if (criteria.getGrantStatus() != null) { + if (criteria.getGrantStatus().equals(GrantStateType.FINISHED.getValue().shortValue())) + query.where((builder, root) -> builder.lessThan(root.get("grant").get("enddate"), new Date())); + if (criteria.getGrantStatus().equals(GrantStateType.ONGOING.getValue().shortValue())) + query.where((builder, root) -> + builder.or(builder.greaterThan(root.get("grant").get("enddate"), new Date()) + , builder.isNull(root.get("grant").get("enddate")))); + } + + if (criteria.hasDoi()) { + query.where((builder, root) -> builder.not(builder.isNull(root.join("dois").get("id")))); + } + query.where((builder, root) -> builder.notEqual(root.get("status"), DMP.DMPStatus.DELETED.getValue())); + return query; + } + + public QueryableList getAuthenticated(QueryableList query, UUID principal, List roles) { + if (roles != null && !roles.isEmpty()) { + query.where((builder, root) -> { + Join userJoin = root.join("users", JoinType.LEFT); + return builder.and(builder.equal(userJoin.join("user", JoinType.LEFT).get("id"), principal), userJoin.get("role").in(roles)); + }); + } else { + query.where((builder, root) -> builder.equal(root.join("users", JoinType.LEFT).join("user", JoinType.LEFT).get("id"), principal)); + } + + return query; + } + + @Override + @Transactional + public DMP createOrUpdate(DMP item) { + return this.getDatabaseService().createOrUpdate(item, DMP.class); + } + + @Override + public DMP find(UUID id) { + return getDatabaseService().getQueryable(DMP.class).where((builder, root) -> builder.equal((root.get("id")), id)).getSingle(); + } + + @Override + public QueryableList getUserDmps(DatasetWizardUserDmpCriteria datasetWizardUserDmpCriteria, UserInfo userInfo) { + QueryableList query = getDatabaseService().getQueryable(DMP.class).where((builder, root) -> builder.or(builder.equal(root.get("creator"), userInfo), builder.isMember(userInfo, root.get("users")))); + if (datasetWizardUserDmpCriteria.getLike() != null && !datasetWizardUserDmpCriteria.getLike().isEmpty()) { + query.where((builder, root) -> builder.like(root.get("label"), "%" + datasetWizardUserDmpCriteria.getLike() + "%")); + } + return query; + } + + @Override + public void delete(DMP item) { + this.getDatabaseService().delete(item); + } + + @Override + public QueryableList asQueryable() { + return this.getDatabaseService().getQueryable(DMP.class); + } + + @Async + @Override + public CompletableFuture createOrUpdateAsync(DMP item) { + return CompletableFuture.supplyAsync(() -> this.createOrUpdate(item)); + } + + @Override + public DMP find(UUID id, String hint) { + throw new UnsupportedOperationException(); + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DMPProfileDao.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DMPProfileDao.java new file mode 100644 index 000000000..36fc58752 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DMPProfileDao.java @@ -0,0 +1,21 @@ +package eu.eudat.data.dao.entities; + +import eu.eudat.data.dao.DatabaseAccessLayer; +import eu.eudat.data.dao.criteria.DataManagementPlanBlueprintCriteria; +import eu.eudat.data.dao.criteria.DataManagementPlanProfileCriteria; +import eu.eudat.data.entities.DMP; +import eu.eudat.data.entities.DMPProfile; +import eu.eudat.queryable.QueryableList; + +import java.util.UUID; + +/** + * Created by ikalyvas on 3/21/2018. + */ +public interface DMPProfileDao extends DatabaseAccessLayer { + + QueryableList getWithCriteria(DataManagementPlanProfileCriteria criteria); + + QueryableList getWithCriteriaBlueprint(DataManagementPlanBlueprintCriteria criteria); + +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DMPProfileDaoImpl.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DMPProfileDaoImpl.java new file mode 100644 index 000000000..7033473c2 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DMPProfileDaoImpl.java @@ -0,0 +1,85 @@ +package eu.eudat.data.dao.entities; + +import eu.eudat.data.dao.DatabaseAccess; +import eu.eudat.data.dao.criteria.DataManagementPlanBlueprintCriteria; +import eu.eudat.data.dao.criteria.DataManagementPlanProfileCriteria; +import eu.eudat.data.dao.databaselayer.service.DatabaseService; +import eu.eudat.data.entities.DMPProfile; +import eu.eudat.queryable.QueryableList; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.UUID; +import java.util.concurrent.CompletableFuture; + +/** + * Created by ikalyvas on 3/21/2018. + */ +@Service("dmpProfileDao") +public class DMPProfileDaoImpl extends DatabaseAccess implements DMPProfileDao { + + @Autowired + public DMPProfileDaoImpl(DatabaseService databaseService) { + super(databaseService); + } + + @Async + @Override + public CompletableFuture createOrUpdateAsync(DMPProfile item) { + return CompletableFuture.supplyAsync(() -> this.createOrUpdate(item)); + } + + @Override + public DMPProfile createOrUpdate(DMPProfile item) { + return this.getDatabaseService().createOrUpdate(item, DMPProfile.class); + } + + + @Override + public DMPProfile find(UUID id) { + return getDatabaseService().getQueryable(DMPProfile.class).where((builder, root) -> builder.equal((root.get("id")), id)).getSingle(); + } + + @Override + public DMPProfile find(UUID id, String hint) { + return getDatabaseService().getQueryable(DMPProfile.class).where((builder, root) -> builder.equal((root.get("id")), id)).getSingle(); + } + + @Override + public void delete(DMPProfile item) { + this.getDatabaseService().delete(item); + } + + + @Override + public QueryableList asQueryable() { + return this.getDatabaseService().getQueryable(DMPProfile.class); + } + + + @Override + public QueryableList getWithCriteria(DataManagementPlanProfileCriteria criteria) { + QueryableList query = getDatabaseService().getQueryable(DMPProfile.class); + if (criteria.getLike() != null && !criteria.getLike().isEmpty()) + query.where((builder, root) -> builder.like(builder.upper(root.get("label")), "%" + criteria.getLike().toUpperCase() + "%")); + query.where(((builder, root) -> builder.notEqual(root.get("status"), DMPProfile.Status.DELETED.getValue()))); + return query; + } + + @Override + public QueryableList getWithCriteriaBlueprint(DataManagementPlanBlueprintCriteria criteria){ + QueryableList query = getDatabaseService().getQueryable(DMPProfile.class); + if (criteria.getLike() != null && !criteria.getLike().isEmpty()) + query.where((builder, root) -> builder.like(builder.upper(root.get("label")), "%" + criteria.getLike().toUpperCase() + "%")); + if (criteria.getStatus() != null) { + if (criteria.getStatus() == DMPProfile.Status.FINALIZED.getValue()) { + query.where((builder, root) -> builder.equal(root.get("status"), DMPProfile.Status.FINALIZED.getValue())); + } else if (criteria.getStatus() == DMPProfile.Status.SAVED.getValue()) { + query.where((builder, root) -> builder.equal(root.get("status"), DMPProfile.Status.SAVED.getValue())); + } + } + query.where(((builder, root) -> builder.notEqual(root.get("status"), DMPProfile.Status.DELETED.getValue()))); + return query; + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DataRepositoryDao.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DataRepositoryDao.java new file mode 100644 index 000000000..68b64022b --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DataRepositoryDao.java @@ -0,0 +1,12 @@ +package eu.eudat.data.dao.entities; + +import eu.eudat.data.dao.DatabaseAccessLayer; +import eu.eudat.data.dao.criteria.DataRepositoryCriteria; +import eu.eudat.data.entities.DataRepository; +import eu.eudat.queryable.QueryableList; + +import java.util.UUID; + +public interface DataRepositoryDao extends DatabaseAccessLayer { + QueryableList getWithCriteria(DataRepositoryCriteria criteria); +} \ No newline at end of file diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DataRepositoryDaoImpl.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DataRepositoryDaoImpl.java new file mode 100644 index 000000000..4658b44f6 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DataRepositoryDaoImpl.java @@ -0,0 +1,65 @@ +package eu.eudat.data.dao.entities; + +import eu.eudat.data.dao.DatabaseAccess; +import eu.eudat.data.dao.criteria.DataRepositoryCriteria; +import eu.eudat.data.dao.databaselayer.service.DatabaseService; +import eu.eudat.data.entities.DataRepository; +import eu.eudat.queryable.QueryableList; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; + +import java.util.UUID; +import java.util.concurrent.CompletableFuture; + +@Component("dataRepositoryDao") +public class DataRepositoryDaoImpl extends DatabaseAccess implements DataRepositoryDao { + + @Autowired + public DataRepositoryDaoImpl(DatabaseService databaseService) { + super(databaseService); + } + + @Override + public QueryableList getWithCriteria(DataRepositoryCriteria criteria) { + QueryableList query = this.getDatabaseService().getQueryable(DataRepository.class); + if (criteria.getLike() != null) + query.where((builder, root) -> builder.or( + builder.like(builder.upper(root.get("reference")), "%" + criteria.getLike().toUpperCase() + "%"), + builder.equal(builder.upper(root.get("label")), criteria.getLike().toUpperCase()))); + if (criteria.getCreationUserId() != null) + query.where((builder, root) -> builder.equal(root.get("creationUser").get("id"), criteria.getCreationUserId())); + return query; + } + + @Override + public DataRepository find(UUID id) { + return this.getDatabaseService().getQueryable(DataRepository.class).where((builder, root) -> builder.equal(root.get("id"), id)).getSingle(); + } + + @Override + public DataRepository createOrUpdate(DataRepository item) { + return getDatabaseService().createOrUpdate(item, DataRepository.class); + } + + @Override + @Async + public CompletableFuture createOrUpdateAsync(DataRepository item) { + return CompletableFuture.supplyAsync(() -> this.createOrUpdate(item)); + } + + @Override + public DataRepository find(UUID id, String hint) { + throw new UnsupportedOperationException(); + } + + @Override + public void delete(DataRepository item) { + this.getDatabaseService().delete(item); + } + + @Override + public QueryableList asQueryable() { + return this.getDatabaseService().getQueryable(DataRepository.class); + } +} diff --git a/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DatasetDao.java b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DatasetDao.java new file mode 100644 index 000000000..126958e11 --- /dev/null +++ b/dmp-migration-tool/data/src/main/java/eu/eudat/data/dao/entities/DatasetDao.java @@ -0,0 +1,22 @@ +package eu.eudat.data.dao.entities; + +import eu.eudat.data.dao.DatabaseAccessLayer; +import eu.eudat.data.dao.criteria.DatasetCriteria; +import eu.eudat.data.entities.Dataset; +import eu.eudat.data.entities.UserInfo; +import eu.eudat.queryable.QueryableList; + +import java.util.List; +import java.util.UUID; + +public interface DatasetDao extends DatabaseAccessLayer { + + QueryableList getWithCriteria(DatasetCriteria criteria); + + QueryableList filterFromElastic(DatasetCriteria criteria, List ids); + + QueryableList getAuthenticated(QueryableList query, UserInfo principal, List