15
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

DSpace-CRIS technical answers for the Entities Working Group

Embed Size (px)

Citation preview

Page 1: DSpace-CRIS technical answers for the Entities Working Group

DSpace Entities WGdeep 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

Page 2: DSpace-CRIS technical answers for the Entities Working Group

Data modelHow 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

Page 3: DSpace-CRIS technical answers for the Entities Working Group

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 ChoiceAuthoritywith 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

Page 4: DSpace-CRIS technical answers for the Entities Working Group

Data model: Which tables are created / modified?

https://wiki.duraspace.org/display/DSPACECRIS/Introduction#Introduction-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

Page 5: DSpace-CRIS technical answers for the Entities Working Group

Data model: Where the data is stored?

• https://wiki.duraspace.org/display/DSPACECRIS/Introduction#Introduction-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

Page 6: DSpace-CRIS technical answers for the Entities Working Group

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

Page 7: DSpace-CRIS technical answers for the Entities Working Group

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

Page 8: DSpace-CRIS technical answers for the Entities Working Group

Data model: Entities behaviour is the same for all dspace-crisentities? 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

Page 9: DSpace-CRIS technical answers for the Entities Working Group

Data APIHow 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

Page 10: DSpace-CRIS technical answers for the Entities Working Group

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

Page 11: DSpace-CRIS technical answers for the Entities Working Group

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.htmcentralizing 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

Page 12: DSpace-CRIS technical answers for the Entities Working Group

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

Page 13: DSpace-CRIS technical answers for the Entities Working Group

Front endHow 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

Page 14: DSpace-CRIS technical answers for the Entities Working Group

Currently features to be maintained with the switch to angularhttps://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

Page 15: DSpace-CRIS technical answers for the Entities Working Group

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