Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
DSpace Entities WG
deep dive into how DSpace-CRIS manages Authors and Author Profiles
https://wiki.duraspace.org/display/D...
Data model
How data model works related with authors?
Which tables are created / modified?
Where the data is stored?
Are l...
Data model: How data model works related with authors?
https://wiki.duraspace.org/display/DSPACECRIS/Integration+with+the+...
Data model: Which tables are created / modified?
https://wiki.duraspace.org/display/DSPACECRIS/Introduction#Introduct
ion-...
Data model: Where the data is stored?
• https://wiki.duraspace.org/display/DSPACECRIS/Introduction#Introdu
ction-Logicalan...
Data model: Are logical relationships transported to DB tables
relationships?
https://wiki.duraspace.org/display/DSPACECRI...
Data model: Do DSpace-CRIS entities use the same permissions
management layer than DSpace?
https://www.slideshare.net/4Sci...
Data model: Entities behaviour is the same for all dspace-cris
entities? That means, all entities have same possibilities ...
Data API
How data can be exposed?
How can we access information?
DSpace-CRIS provides CRUD (Create, Read, Update and Delet...
Data API: How data can be exposed?
• This is mostly a question about future plan.
• Currently data are exposed on the UI a...
Data API: Does DSpace-CRIS logs entities
operations?
• Audit-log: The DSpace-CRIS architecture, the use of the application...
Data API: Any user with permissions can access
any public entity via REST API endpoints?
• It will be. Right now SOAP webs...
Front end
How is data displayed on a web page?
How do you see interface migration to DSpace 7 (based on Angular)? Does it ...
Currently features to be maintained with the
switch to angular
https://doi.org/10.5281/zenodo.824979
• SEO and crawler fri...
Front end: How do you see interface migration to DSpace 7 (based on
Angular)? Does it make sense keep interface configurat...
Upcoming SlideShare
Loading in …5
×

DSpace-CRIS technical answers for the Entities Working Group

702 views

Published on

presented to the DSpace Entities Working Group meeting on 27th Oct 2017

Published in: Software
  • Be the first to comment

DSpace-CRIS technical answers for the Entities Working Group

  1. 1. DSpace Entities WG deep dive into how DSpace-CRIS manages Authors and Author Profiles https://wiki.duraspace.org/display/DSPACECRIS WG meeting 27.10.2017 https://wiki.duraspace.org/display/DSPACE/DSpace+Entities+Working+Group
  2. 2. Data model How data model works related with authors? Which tables are created / modified? Where the data is stored? Are logical relationships transported to DB tables relationships? Do DSpace-CRIS entities use the same permissions management layer than DSpace? Entities behaviour is the same for all dspace-cris entities? That means, all entities have same possibilities in term of actions? DSpace Entities WG meeting 27.10.2017 – Andrea Bollini https://www.4science.it/en
  3. 3. Data model: How data model works related with authors? https://wiki.duraspace.org/display/DSPACECRIS/Integration+with+the+basic+DSpace+data +model https://wiki.duraspace.org/display/DSPACECRIS/The+researcher+UI • The entity is named researcher page - rp (sometimes we call it researcher profile) • The entity is linked to DSpace Items using the authority framework: a ChoiceAuthority with VariantSupport exists to link the two concepts. • The inverse relationship (RP  Item) is discovered at runtime using querying SOLR (DSpace-CRIS Components) • The data structure is configured in the database (via UI or excel file) for both attributes and relations. The only attributes that are expected to exist are fullname, variants and ORCID related attributes (the latest prefixed with system-) • Each RP has a unique stable identifier CRIS-ID (i.e. rp00001) separated from the database ID and the UUID that is used as authority key in the item metadata DSpace Entities WG meeting 27.10.2017 – Andrea Bollini https://www.4science.it/en
  4. 4. Data model: Which tables are created / modified? https://wiki.duraspace.org/display/DSPACECRIS/Introduction#Introduct ion-Logicalandphysicaldatamodel • No standard DSpace tables are modified, all the changes happen in additional tables • The additional tables are prefixed with cris_ or jdyna_ (expect few exception related to functionalities that could live in standard dspace – dedup, doi, imp) • jdyna_ is the common layer to provide support for a dynamically configured data model (entities, attributes, relations) DSpace Entities WG meeting 27.10.2017 – Andrea Bollini https://www.4science.it/en
  5. 5. Data model: Where the data is stored? • https://wiki.duraspace.org/display/DSPACECRIS/Introduction#Introdu ction-Logicalandphysicaldatamodel • https://wiki.duraspace.org/pages/viewpage.action?pageId=78153687 #Browse&Search-Searchconfiguration • In the database, using Hibernate (from the start 2009) – works on Oracle and PostgreSQL • For searching and network visualization, data are replicated in SOLR (same strategy used by DSpace for the Items search, OAI) DSpace Entities WG meeting 27.10.2017 – Andrea Bollini https://www.4science.it/en
  6. 6. Data model: Are logical relationships transported to DB tables relationships? https://wiki.duraspace.org/display/DSPACECRIS/Introduction#Introduction- Logicalandphysicaldatamodel • Yes within the cris tables. All the entity attributes have strong types (string, date, number) and relationships are track with foreign keys to the relevant table (rp – orgunit, rp – project, etc) • When a custom entity is defined (a Dynamic Object – do) it get a profile (cris_do_tp) “journal”, “award”, “equipment”, etc. The profile defines the attributes so that different custom entities can have different attributes. Relationships between DOs have light integrity constraints (i.e. foreign key to the cris_do table where you will find both journal than prize and the JAVA API layer is responsible to link the right DO). DSpace Entities WG meeting 27.10.2017 – Andrea Bollini https://www.4science.it/en
  7. 7. Data model: Do DSpace-CRIS entities use the same permissions management layer than DSpace? https://www.slideshare.net/4Science/dspacecris-technical-level-introduction (24-25) • No. Every CRIS object have a status flag active / inactive. • The public page can be accessed by non-administrators or object owner only for active objects • Inactive objects are always usable as authority (limited information are visible – by default the “name”) • The content of the public page is configurable and subject to permission management • public / restricted to the owner / administrators / limited to epersons and/or groups specified at the single instance (i.e. some data of a project can be viewed by the group X, the same data for a different project can be seen by group Y) • Security of functionalities is enforced programmatically in the controller: public, administrators or owner. DSpace Entities WG meeting 27.10.2017 – Andrea Bollini https://www.4science.it/en
  8. 8. Data model: Entities behaviour is the same for all dspace-cris entities? That means, all entities have same possibilities in term of actions? Yes, thanks to the data model flexibility. Currently additional features apply only to the RP • the ORCID integration • the ability to edit and create* RP that is not limited to sys adminstrators * DSpace-CRIS also allows the creation of every kind of entity by everyone as part of a DSpace Item submission. This functionality can be also used to provide workflow and support for decentralized creation of CRIS entities like projects, orgunits, etc. independently from “publication” (item) https://wiki.duraspace.org/display/DSPACECRIS/How+to+collect+data+about +CRIS+entities DSpace Entities WG meeting 27.10.2017 – Andrea Bollini https://www.4science.it/en
  9. 9. Data API How data can be exposed? How can we access information? DSpace-CRIS provides CRUD (Create, Read, Update and Delete) operations on all entities? Does DSpace-CRIS logs entities operations? Any user with permissions can access any public entity via REST API endpoints? DSpace Entities WG meeting 27.10.2017 – Andrea Bollini https://www.4science.it/en
  10. 10. Data API: How data can be exposed? • This is mostly a question about future plan. • Currently data are exposed on the UI and can be consumed • Export in Excel https://wiki.duraspace.org/display/DSPACECRIS/XLS+Import+and+Export+tool • Export in XML (not really efficient and not anymore used as far as we know) • Via SOAP (we want to remove it in favor of REST) • OAI-PMH (this is available in a side branch but will be merged in the next weeks) • DSpace-CRIS 7 will use HAL REST API to allow CRUD operation over all the entities other than the implementation of all the existent functionalities (network, inverse relations, notifications, stats, metrics) on Angular DSpace Entities WG meeting 27.10.2017 – Andrea Bollini https://www.4science.it/en
  11. 11. Data API: Does DSpace-CRIS logs entities operations? • Audit-log: The DSpace-CRIS architecture, the use of the application service design pattern http://www.corej2eepatterns.com/ApplicationService.htm centralizing all the persistent operations, making very easy and convenient to implement generic behavior using AOP as done for the transaction management • Usage statistics: usage events about all the entities are logged to the statistics core in a way compatible with that of DSpace. We add some fields to the solr docs to allow cross join between search and statistics core to allow aggregation https://wiki.duraspace.org/display/DSPACECRIS/Statistics DSpace Entities WG meeting 27.10.2017 – Andrea Bollini https://www.4science.it/en
  12. 12. Data API: Any user with permissions can access any public entity via REST API endpoints? • It will be. Right now SOAP webservices exist to expose the main entities (rp, orgunit, project, items) with filtering capabilities on the returned instances. • All the metadata are returned, it is possible to exclude hidden values DSpace Entities WG meeting 27.10.2017 – Andrea Bollini https://www.4science.it/en
  13. 13. Front end How is data displayed on a web page? How do you see interface migration to DSpace 7 (based on Angular)? Does it make sense keep interface configuration on database? How forms are built? How do you predict (in DSpace 7) to have forms move to Json settings? How can a user relate or link an author with one resource? Can a user perform entity searches? DSpace Entities WG meeting 27.10.2017 – Andrea Bollini https://www.4science.it/en
  14. 14. Currently features to be maintained with the switch to angular https://doi.org/10.5281/zenodo.824979 • SEO and crawler friendly: microformat & signposting • Default representation of the configured data model in section (tabs) and subsections (boxes) • Ability to override the default layout at different levels: single section, sub- sections or field • Ability to plugin rich components dynamically generated not limited to show entity attributes (inverse relations, metrics, more like this, contextual news, etc) • Usage statistics for both cris objects and related contents • Global search with faceting, explore section and browsing capabilities • Ability to use any external identifier to address the cris page https://dspace- cris.4science.it/cris/rp/details.htm?lt=orcid&lv=0000-0002-0615-7688 DSpace Entities WG meeting 27.10.2017 – Andrea Bollini https://www.4science.it/en
  15. 15. Front end: How do you see interface migration to DSpace 7 (based on Angular)? Does it make sense keep interface configuration on database? • It is convenient to maintain the logical grouping of fields (tabs / boxes) in the database (or at least a common layer) as this could be reused in several interface • UI • Report: Excel / xml export • REST: as “profile” or “projection” • More detailed information like positioning, labels, etc. can be moved to any convenient location keeping in mind the need to support easy customization and to avoid code forking DSpace Entities WG meeting 27.10.2017 – Andrea Bollini https://www.4science.it/en

×