XSLT stylesheet: Generalising over time relations
For the extraction of generalisations another script is used, the XSLT implementation is the following, using a baseline parameter to avoid the inclusion of singular relations.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" version="1.0" encoding="utf-8" omit-xml-declaration="yes" indent="yes"/> <!-- gen_lex_times.xsl by Thorsten Trippel Department of Linguistics and Literary Studies, Bielefeld University March 2003 XSL Stylesheet for transforming a set list of time related annotation entities and grouping them. A basline is taken as a global parameter. ... Tested with saxon, xalan,sablotron and xsltproc ; call from commandline (Linux/Unix) with; DOS-systems in the appropriate way. Xalan: Call with java -cp /usr/share/java/xalan2.jar org.apache.xalan.xslt.Process -in XMLFILE -xsl gen_lex_times.xsl -param baseline 3 Saxon: call with java -cp /usr/share/java/saxon.jar com.icl.saxon.StyleSheet XMLFILE gen_lex_times.xsl baseline=3 XSLTPROC: xsltproc -param baseline 3 gen_lex_times.xsl XMLFILE Sablotron sabcmd gen_lex_times.xsl XMLFILE \$baseline=3 Requires XSLT 1.0 --> <xsl:param name="baseline"/> <xsl:key name="wordsandrelations" match="relationpair" use="concat(baseelement/text(),'_', compelement/text(),'_',relation/@rel)"/> <xsl:template match="//struct_rel"> <xsl:element name="lexicon"> <xsl:for-each select="relationpair[ baseelement and generate-id()=generate-id( key('wordsandrelations',concat(baseelement,'_', compelement,'_',relation/@rel))[1])]"> <xsl:if test="count(key('wordsandrelations', concat(baseelement/text(),'_', compelement/text(),'_',relation/@rel))) > $baseline"> <xsl:element name="lexentry"> <xsl:attribute name="number_of_relations"> <xsl:value-of select="count(key('wordsandrelations', concat(baseelement/text(),'_', compelement/text(),'_',relation/@rel)))"/> </xsl:attribute> <xsl:attribute name="relation"> <xsl:value-of select="relation/@rel"/> </xsl:attribute> <xsl:element name="baseelement"> <xsl:value-of select="baseelement"/> </xsl:element> <xsl:element name="compelement"> <xsl:value-of select="compelement"/> </xsl:element> <xsl:element name="baselayer"> <xsl:value-of select="baselayerid"/> </xsl:element> <xsl:element name="complayer"> <xsl:value-of select="complayer"/> </xsl:element> </xsl:element> </xsl:if> </xsl:for-each> </xsl:element> </xsl:template> </xsl:stylesheet>