<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.pl-c
        {mso-style-name:pl-c;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">OK &#8211; I&#8217;ve submitted a pull request:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><a href="https://github.com/eprints/eprints/pull/371">https://github.com/eprints/eprints/pull/371</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Can anyone confirm that this works OK for multi-lingual repositories &#8211; creating a new subject with both English and French names?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">$new_subject_obj = EPrints::DataObj::Subject::create(<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:36.0pt"><span style="color:#1F497D">$repository,<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="color:#1F497D">&quot;new_subject_id&quot;,<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="color:#1F497D">[<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:36.0pt;text-indent:36.0pt"><span style="color:#1F497D">{&quot;name&quot;=&gt;&quot;New subject name&quot;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lang=&gt;&quot;en&quot;},<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:36.0pt;text-indent:36.0pt"><span style="color:#1F497D">{&quot;name&quot;=&gt;&quot;Nouveau nom du sujet&quot;,&nbsp;&nbsp;&nbsp;&nbsp; lang=&gt;&quot;fr&quot;}<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:36.0pt"><span style="color:#1F497D">],<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="color:#1F497D">[&quot;ROOT&quot;],<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="color:#1F497D">0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">On a related note, there seems to be quite a few other bad pod blocks in the DataObjs&#8230;
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Cheers,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">John<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="mso-fareast-language:EN-GB">From:</span></b><span lang="EN-US" style="mso-fareast-language:EN-GB"> eprints-tech-bounces@ecs.soton.ac.uk [mailto:eprints-tech-bounces@ecs.soton.ac.uk]
<b>On Behalf Of </b>Alan.Stiles<br>
<b>Sent:</b> 07 January 2016 12:15<br>
<b>To:</b> eprints-tech@ecs.soton.ac.uk<br>
<b>Subject:</b> [EP-tech] Re: Subject trees<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks John,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">That would be the same documentation that I&#8217;ve skipped over a dozen times trying to trace the function&#8230; maybe I should change the comments to a more contrasting colour&#8230;&nbsp; and also using the right syntax helps
 (EP::DO::Subject::create rather than EP::DO::Subject-&gt;create) <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Point of note though, the $name parameter appears to actually be an array of hashes with a slightly different format from the comment &#8211; the line below is the one that finally worked!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">$new_subject_obj = EPrints::DataObj::Subject::create($repository,&quot;new_subject_id&quot;,[{&quot;name&quot;=&gt;&quot;New Subject Name&quot;,lang=&gt;&quot;en&quot;}],[&quot;ROOT&quot;],0);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks for your help!&nbsp; (still not sure about whether create_child has a bug or I do though, in case anyone wants to dig deeper?)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Alan<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="mso-fareast-language:EN-GB">From:</span></b><span lang="EN-US" style="mso-fareast-language:EN-GB">
<a href="mailto:eprints-tech-bounces@ecs.soton.ac.uk">eprints-tech-bounces@ecs.soton.ac.uk</a> [<a href="mailto:eprints-tech-bounces@ecs.soton.ac.uk">mailto:eprints-tech-bounces@ecs.soton.ac.uk</a>]
<b>On Behalf Of </b>John Salter<br>
<b>Sent:</b> 07 January 2016 10:58<br>
<b>To:</b> 'eprints-tech@ecs.soton.ac.uk' &lt;<a href="mailto:eprints-tech@ecs.soton.ac.uk">eprints-tech@ecs.soton.ac.uk</a>&gt;<br>
<b>Subject:</b> [EP-tech] Re: Subject trees<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Aahhhhh, this is a good&#8217;un&#8230;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">In ~/perl_lib/EPrints/DataObj/Subject.pm, lines 278-291&#8230; I&#8217;ll recreate them here:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">######################################################################<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"># =pod<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">#<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"># =item $subject = EPrints::DataObj::Subject::create( $session, $id, $name, $parents, $depositable )<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">#<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"># Creates a new subject in the database. $id is the ID of the subject,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"># $name is a multilang data structure with the name of the subject in<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"># one or more languages. eg. { en=&gt;&quot;Trousers&quot;, en-us=&gt;&quot;Pants}. $parents<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"># is a reference to an array containing the ID's of one or more other<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"># subjects (don't make loops!). If $depositable is true then eprints may<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"># belong to this subject.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">#<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"># =cut<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">######################################################################<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">As you can see &#8211; a nice block of documentation&#8230; but unfortunately, each line starts with a &#8216;#&#8217; &#8211; so the pod doesn&#8217;t get parsed as a pod &#8211; and you don&#8217;t get to see what&#8217;s going on! (this is still the case in
<a href="https://github.com/eprints/eprints/blob/3.3/perl_lib/EPrints/DataObj/Subject.pm">
https://github.com/eprints/eprints/blob/3.3/perl_lib/EPrints/DataObj/Subject.pm</a> - I&#8217;ll patch it!).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Cheers,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">John<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="mso-fareast-language:EN-GB">From:</span></b><span lang="EN-US" style="mso-fareast-language:EN-GB">
<a href="mailto:eprints-tech-bounces@ecs.soton.ac.uk">eprints-tech-bounces@ecs.soton.ac.uk</a> [<a href="mailto:eprints-tech-bounces@ecs.soton.ac.uk">mailto:eprints-tech-bounces@ecs.soton.ac.uk</a>]
<b>On Behalf Of </b>Alan.Stiles<br>
<b>Sent:</b> 07 January 2016 10:10<br>
<b>To:</b> <a href="mailto:eprints-tech@ecs.soton.ac.uk">eprints-tech@ecs.soton.ac.uk</a><br>
<b>Subject:</b> [EP-tech] Re: Subject trees<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">What documentation are you looking at John?&nbsp; Think I&#8217;m fighting with the parameters on &#8216;create&#8217;.&nbsp; When I try the following code:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">#!/usr/bin/perl -w -I/opt/eprints3/perl_lib<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">use strict;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">use EPrints;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">my $ep = EPrints-&gt;new();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">my $repository = $ep-&gt;repository( &quot;repoid&quot; );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">my $tech_item = EPrints::DataObj::Subject-&gt;create($repository, &quot;new_item_id&quot;,[{&quot;name&quot;=&gt;&quot;New Item Description&quot;}],[&quot;parentid&quot;],1);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I get an error message<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Can't use string (&quot;EPrints::DataObj::Subject&quot;) as a HASH ref while &quot;strict refs&quot; in use at /opt/eprints3/perl_lib/EPrints/DataObj.pm line 968.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Within &#8216;create_child&#8217; it uses $self-&gt;{subjectid} as the value for parentid, but from debugging it looks like the value is actually in $self-&gt;{data}-&gt;{subjectid}&nbsp; not sure if this is me not understanding something
 about eprints&nbsp; structure or a possible bug?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">The subjects don&#8217;t seem to need commit() to add them (at least via create_child &#8211; I had it in the code originally but it didn&#8217;t seem to make a difference) and reindexing the subject dataset hasn&#8217;t done anything.&nbsp;
 Thanks for the ideas though.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Alan<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="mso-fareast-language:EN-GB">From:</span></b><span lang="EN-US" style="mso-fareast-language:EN-GB">
<a href="mailto:eprints-tech-bounces@ecs.soton.ac.uk">eprints-tech-bounces@ecs.soton.ac.uk</a> [<a href="mailto:eprints-tech-bounces@ecs.soton.ac.uk">mailto:eprints-tech-bounces@ecs.soton.ac.uk</a>]
<b>On Behalf Of </b>John Salter<br>
<b>Sent:</b> 06 January 2016 21:20<br>
<b>To:</b> 'eprints-tech@ecs.soton.ac.uk' &lt;<a href="mailto:eprints-tech@ecs.soton.ac.uk">eprints-tech@ecs.soton.ac.uk</a>&gt;<br>
<b>Subject:</b> [EP-tech] Re: Subject trees<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">No experience &#8211; but looking at the documentation, you could possibly achieve what you need with the &#8216;create&#8217; method instead?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Other thoughts are:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">- does anything change when you commit() the new subject?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">- does reindexing the subjects change anything?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Cheers,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">John<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="mso-fareast-language:EN-GB">From:</span></b><span lang="EN-US" style="mso-fareast-language:EN-GB">
<a href="mailto:eprints-tech-bounces@ecs.soton.ac.uk">eprints-tech-bounces@ecs.soton.ac.uk</a> [<a href="mailto:eprints-tech-bounces@ecs.soton.ac.uk">mailto:eprints-tech-bounces@ecs.soton.ac.uk</a>]
<b>On Behalf Of </b>Alan.Stiles<br>
<b>Sent:</b> 06 January 2016 17:35<br>
<b>To:</b> <a href="mailto:eprints-tech@ecs.soton.ac.uk">eprints-tech@ecs.soton.ac.uk</a><br>
<b>Subject:</b> [EP-tech] Subject trees<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Hi all,<o:p></o:p></p>
<p class="MsoNormal">Anyone have any experience with updating the subject tree via the API?&nbsp;&nbsp; (using 3.3.10 but current github module for EPrints::DataObj::Subject looks similar)<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">I&#8217;m trying to add a new top level entry with the following code snippet&#8230;<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my $rootsubj = EPrints::DataObj::Subject-&gt;new($repository,&quot;ROOT&quot;);<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit unless defined($rootsubj);<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my $newsubj = $rootsubj-&gt;create_child(&quot;newid&quot;,[{name=&gt;&quot;New Top Level Subject&quot;}],0);<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">It creates the subject, but orphaned rather than linked to the ROOT object as I&#8217;d expect&#8230;<o:p></o:p></p>
<p class="MsoNormal">Any clues?<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="color:#44546A;mso-fareast-language:EN-GB">Alan Stiles<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#44546A;mso-fareast-language:EN-GB">Digital Repository Developer<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#44546A;mso-fareast-language:EN-GB">Library Services, The Open University<o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif;mso-fareast-language:EN-GB">-- The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England &amp; Wales and a charity registered in Scotland
 (SC 038302). The Open University is authorised and regulated by the Financial Conduct Authority.
<o:p></o:p></span></p>
</div>
</body>
</html>