Uploaded image for project: 'DSpace'
  1. DSpace
  2. DS-4184

[Configurable Entities] Refactor "relationship" and "relation" metadata schemas

    XMLWordPrintable

    Details

    • Attachments:
      1
    • Comments:
      6
    • Documentation Status:
      Needed

      Description

      The new "relationship" and "relation" metadata schemas for Configurable Entities are confusing and have a lot of dependencies on one another. We may want to find a way to combine them (or make them clearer).

      The "relationship" schema has one element:  "relationship.type".  But, strangely, this "relationship.type" doesn't store a type of relationship. Instead it's a type of Item (e.g. relationship.type = Journal). 

      The "relation" schema stores various relations that exist between specific items. For example "relation.isVolumeOfJournal" would store the Volume UUID(s) for a Journal object.  But, strangely, this relationship name seems backwards.  Volumes should have "isVolumeOfJournal" relationships (pointing to their Journal), while Journals should have "isJournalOfVolume" (or "hasVolume") relationships (pointing to their Volumes).

      Example Journal object:  https://dspace7-entities.atmire.com/rest/#https://dspace7-entities.atmire.com/rest/api/core/items/a23eae5a-7857-4ef9-8e52-989436ad2955

      Example Volume object: https://dspace7-entities.atmire.com/rest/#https://dspace7-entities.atmire.com/rest/api/core/items/343d3263-2733-4367-9dc4-216a01b4a461 

      In summary, there are several questions here:

      1. Should we consider combining these concepts into a single internal schema (perhaps named "dspace")?  This would allow something like "dspace.item.type" (instead of "relationship.type") and "dspace.relation.[name]" (instead of relation.[name]).
      2. Should we switch around the relationship names for all Entities? Currently they seem to be backwards (as described above).  Metadata should describe the object that it appears on.  So, describing a Journal as having an "isVolumeOfJournal" relationship sounds like the Journal is claiming to be a Volume (which doesn't make sense).

       

      Once relation types are finalized, we should also update the RelationshipTypeRestRepositoryIT.getAllRelationshipTypesEndpointTest() method as per this discussion: https://github.com/DSpace/DSpace/pull/2376#discussion_r279388098  

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned
              Reporter:
              tdonohue Tim Donohue
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated: