From 099a0eb0a6c6f4cab200f01d48eb6ae8ad1f477a Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Mon, 9 May 2016 10:59:06 -0400 Subject: [PATCH] Improved author indexing - Added missing author_sort values to XSLT indexing. - Added DC:contributor support to VuDL indexing. --- import/xsl/doaj.xsl | 6 ++++++ import/xsl/dspace.xsl | 6 ++++++ import/xsl/gsdl.xsl | 6 ++++++ import/xsl/ndltd.xsl | 6 ++++++ import/xsl/nlm_ojs.xsl | 12 +++++++++--- import/xsl/ojs.xsl | 6 ++++++ import/xsl/vudl_FOXML.xsl | 16 ++++++++++++++++ 7 files changed, 55 insertions(+), 3 deletions(-) diff --git a/import/xsl/doaj.xsl b/import/xsl/doaj.xsl index a77177fde69..611bf64f45a 100644 --- a/import/xsl/doaj.xsl +++ b/import/xsl/doaj.xsl @@ -68,6 +68,12 @@ <field name="author"> <xsl:value-of select="normalize-space()"/> </field> + <!-- use first author value for sorting --> + <xsl:if test="position()=1"> + <field name="author_sort"> + <xsl:value-of select="normalize-space()"/> + </field> + </xsl:if> </xsl:if> </xsl:for-each> </xsl:if> diff --git a/import/xsl/dspace.xsl b/import/xsl/dspace.xsl index 6dcbd734b2e..81ff3284850 100644 --- a/import/xsl/dspace.xsl +++ b/import/xsl/dspace.xsl @@ -100,6 +100,12 @@ <field name="author"> <xsl:value-of select="normalize-space()"/> </field> + <!-- use first author value for sorting --> + <xsl:if test="position()=1"> + <field name="author_sort"> + <xsl:value-of select="normalize-space()"/> + </field> + </xsl:if> </xsl:if> </xsl:for-each> </xsl:if> diff --git a/import/xsl/gsdl.xsl b/import/xsl/gsdl.xsl index 33f231fe91e..497532680d1 100644 --- a/import/xsl/gsdl.xsl +++ b/import/xsl/gsdl.xsl @@ -84,6 +84,12 @@ <field name="author"> <xsl:value-of select="normalize-space()"/> </field> + <!-- use first author value for sorting --> + <xsl:if test="position()=1"> + <field name="author_sort"> + <xsl:value-of select="normalize-space()"/> + </field> + </xsl:if> </xsl:if> </xsl:for-each> </xsl:if> diff --git a/import/xsl/ndltd.xsl b/import/xsl/ndltd.xsl index fbffa8938d8..00759d962ae 100644 --- a/import/xsl/ndltd.xsl +++ b/import/xsl/ndltd.xsl @@ -161,6 +161,12 @@ <field name="author"> <xsl:value-of select="normalize-space()"/> </field> + <!-- use first author value for sorting --> + <xsl:if test="position()=1"> + <field name="author_sort"> + <xsl:value-of select="normalize-space()"/> + </field> + </xsl:if> </xsl:if> </xsl:for-each> </xsl:if> diff --git a/import/xsl/nlm_ojs.xsl b/import/xsl/nlm_ojs.xsl index 2f2e130ee20..a535a03b312 100644 --- a/import/xsl/nlm_ojs.xsl +++ b/import/xsl/nlm_ojs.xsl @@ -134,11 +134,17 @@ <!-- AUTHOR --> <xsl:for-each select="//nlm:contrib[@contrib-type='author']/nlm:name"> - <xsl:if test="normalize-space()"> - <field name="author"> - <xsl:value-of select="nlm:surname[normalize-space()]" />, <xsl:value-of select="nlm:given-names[normalize-space()]" /> + <xsl:if test="normalize-space()"> + <field name="author"> + <xsl:value-of select="nlm:surname[normalize-space()]" />, <xsl:value-of select="nlm:given-names[normalize-space()]" /> + </field> + <!-- use first author value for sorting --> + <xsl:if test="position()=1"> + <field name="author_sort"> + <xsl:value-of select="normalize-space()"/> </field> </xsl:if> + </xsl:if> </xsl:for-each> <!-- TITLE --> diff --git a/import/xsl/ojs.xsl b/import/xsl/ojs.xsl index 3d8a138b349..b9cf6eaa5e3 100644 --- a/import/xsl/ojs.xsl +++ b/import/xsl/ojs.xsl @@ -62,6 +62,12 @@ <field name="author"> <xsl:value-of select="normalize-space()"/> </field> + <!-- use first author value for sorting --> + <xsl:if test="position()=1"> + <field name="author_sort"> + <xsl:value-of select="normalize-space()"/> + </field> + </xsl:if> </xsl:if> </xsl:for-each> </xsl:if> diff --git a/import/xsl/vudl_FOXML.xsl b/import/xsl/vudl_FOXML.xsl index b8684694570..9f6434b0f69 100644 --- a/import/xsl/vudl_FOXML.xsl +++ b/import/xsl/vudl_FOXML.xsl @@ -389,6 +389,22 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA <field name="author"> <xsl:value-of select="normalize-space()"/> </field> + <!-- use first author value for sorting --> + <xsl:if test="position()=1"> + <field name="author_sort"> + <xsl:value-of select="normalize-space()"/> + </field> + </xsl:if> + </xsl:if> + </xsl:for-each> + </xsl:if> + + <xsl:if test="$DC//dc:contributor"> + <xsl:for-each select="$DC//dc:contributor"> + <xsl:if test="normalize-space()"> + <field name="author2"> + <xsl:value-of select="normalize-space()"/> + </field> </xsl:if> </xsl:for-each> </xsl:if> -- GitLab