Dear Mark,
Firstly thank you very much for your detailed answer. 
I did my tests with the same item and same metadata in 3 methods
1 - Manual submission
2 - csv import
3 - post via REST

When I use method 1 and 2, place field in metadatavalue table got updated 
in incrementing integers in correct order. This explains alaw's method to 
reorder metadata values. 

But when I use method 3 (REST) the place field is not updated. It is null 
for all metadata values of the item. 
We use version 6.3
I want to understand if this problem has ever been spotted before, solved 
in later releases, and the specific code section if I can do a fix.

What is your advice?
Best regards.

On Monday, April 12, 2021 at 4:47:41 PM UTC+3 [email protected] wrote:

> On Sat, Apr 10, 2021 at 02:05:26AM -0700, [email protected] wrote:
> > Dear alaw, thank you very much for your comment. 
> > My tests show that the sorting of different values for a specific tag is 
> > completely random. I suspect that the sorting is based on a guid value.
> > I use REST to insert dspace items. I have a sample item with 9 authors. 
> > Every time I run the insert script with postman runner, the order of the 
> > authors changes. I tried adding delays between author value inserts, but 
> > the randomness still continue. So I believe that it is not based on 
> insert 
> > datetime. 
> > 
> > Does anybody have any idea on which part of the code is this behavior 
> > related?
>
> I haven't looked for specific places in the code.
>
> Metadata value entries (in the 'metadatavalue' database table) have a
> 'place' column which can be used to order multiple values of a given
> metadata field of a given object. So, you could look for code which
> is aware of the 'place' column.
>
> If it has not been thought that the order of values is significant in
> a specific field, that field may not be sorted by DSpace, either in
> DSpace code or in database queries. So values might have appropriate
> 'place' values stored but not used.
>
> If an RDBMS query does not request sorting, the values may be returned
> in whatever order is convenient for the RDBMS, and that order may
> change over time as the RDBMS reorganizes its data pages.
>
> You mention that you are using REST to insert these Items. The REST
> code adds metadata values to the Item one at a time.
> (ItemsResource.addItemMetadata) This calls
> 'DSpaceObjectServiceImpl.addMetadata', which eventually makes an
> internal call to 'addMetadata(Context context, T dso, MetadataField
> metadataField, String lang, List<String> values, List<String>
> authorities, List<Integer> confidences)'. This method sets the
> 'place' of each new value to the number of values stored for that
> field, so the 'place' values in the database should be correct for
> order of entry.
>
> But the code which retrieves these values for you may not be using
> 'place' to sort them. And there is no guaranteed order of retrieval
> unless a SORT clause is included in the database query. So, I would
> examine the code that formats an Item's metadata for display in
> whichever UI you are using.
>
> > On Friday, April 9, 2021 at 7:26:08 PM UTC+3 alaw wrote:
> > 
> > > In my experience, multiple values for the same field are listed in the 
> > > order they were submitted. You can change that order by exporting the 
> > > metadata for that item and changing it in the CSV.
> > >
> > > On Thursday, April 8, 2021 at 9:52:12 AM UTC-4 [email protected] 
> wrote:
> > >
> > >> Hi,
> > >> When multiple values are entered in the same metadata tag, what is 
> the 
> > >> sorting method?
> > >> For example I input three authors to tag dc.contributor.author like 
> below:
> > >> A,name1
> > >> B,name2
> > >> C,name3
> > >>
> > >> In which order they are shown in both simple item view or full item 
> view 
> > >> seems random. How can I figure it out? Or does anybody have any idea?
> > >> Best regards, 
> > >>
> > >
> > 
> > -- 
> > All messages to this mailing list should adhere to the Code of Conduct: 
> https://duraspace.org/about/policies/code-of-conduct/
> > --- 
> > You received this message because you are subscribed to the Google 
> Groups "DSpace Community" group.
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to [email protected].
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/dspace-community/73ef6355-856a-4261-87ca-54f25aa668dcn%40googlegroups.com
> .
>
>
> -- 
> Mark H. Wood
> Lead Technology Analyst
>
> University Library
> Indiana University - Purdue University Indianapolis
> 755 W. Michigan Street
> Indianapolis, IN 46202
> 317-274-0749 <(317)%20274-0749>
> www.ulib.iupui.edu
>

-- 
All messages to this mailing list should adhere to the Code of Conduct: 
https://duraspace.org/about/policies/code-of-conduct/
--- 
You received this message because you are subscribed to the Google Groups 
"DSpace Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dspace-community/daa87cd6-e128-4453-bca9-2a69068e3d24n%40googlegroups.com.

Reply via email to