Default Style Sheet for GATE Extractor Output

This section lists the default XML style sheet that the mdsys.gatenlp_extractor implementation uses to convert the annotation set (encoded in XML) into RDF/XML.

(This extractor is explained in Working with General Architecture for Text Engineering (GATE).)

<?xml version="1.0"?>
  <xsl:stylesheet version="2.0"
                   xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
     <xsl:output encoding="utf-8" indent="yes"/>
     <xsl:param name="docbase">http://xmlns.oracle.com/rdfctx/</xsl:param>
     <xsl:param name="docident">0</xsl:param>
     <xsl:param name="classpfx">
       <xsl:value-of select="$docbase"/>
       <xsl:text>class/</xsl:text>
     </xsl:param>
     <xsl:template match="/">
        <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
                 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
                 xmlns:owl="http://www.w3.org/2002/07/owl#"
                 xmlns:prop="http://xmlns.oracle.com/rdfctx/property/">
        <xsl:for-each select="AnnotationSet/Annotation">
          <rdf:Description>
            <xsl:attribute name="rdf:about">
              <xsl:value-of select="$docbase"/>
              <xsl:text>docref/</xsl:text>
              <xsl:value-of select="$docident"/>
              <xsl:text>/</xsl:text>
              <xsl:value-of select="@Id"/>
            </xsl:attribute>
            <xsl:for-each select="./Feature">
              <xsl:choose>
                <xsl:when test="./Name[text()='majorType']">
                  <rdf:type>
                    <xsl:attribute name="rdf:resource">
                       <xsl:value-of select="$classpfx"/>
                       <xsl:text>major/</xsl:text>
                       <xsl:value-of select="translate(./Value/text(),
                                                       ' ', '#')"/>
                    </xsl:attribute>
                  </rdf:type>
                </xsl:when>
                <xsl:when test="./Name[text()='minorType']">
                  <xsl:element name="prop:hasMinorType">
                    <xsl:attribute name="rdf:resource">
                       <xsl:value-of select="$docbase"/>
                       <xsl:text>minorType/</xsl:text>
                       <xsl:value-of select="translate(./Value/text(),
                                                       ' ', '#')"/>
                    </xsl:attribute>
                  </xsl:element>
                </xsl:when>
                <xsl:when test="./Name[text()='kind']">
                  <xsl:element name="prop:hasKind">
                    <xsl:attribute name="rdf:resource">
                       <xsl:value-of select="$docbase"/>
                       <xsl:text>kind/</xsl:text>
                       <xsl:value-of select="translate(./Value/text(),
                                                       ' ', '#')"/>
                    </xsl:attribute>
                  </xsl:element>
                </xsl:when>
                <xsl:when test="./Name[text()='locType']">
                  <xsl:element name="prop:hasLocType">
                    <xsl:attribute name="rdf:resource">
                       <xsl:value-of select="$docbase"/>
                       <xsl:text>locType/</xsl:text>
                       <xsl:value-of select="translate(./Value/text(),
                                                       ' ', '#')"/>
                    </xsl:attribute>
                  </xsl:element>
                </xsl:when>
                <xsl:when test="./Name[text()='entityValue']">
                  <xsl:element name="prop:hasEntityValue">
                    <xsl:attribute name="rdf:datatype">
                      <xsl:text>
                         http://www.w3.org/2001/XMLSchema#string
                      </xsl:text>
                    </xsl:attribute>
                    <xsl:value-of select="./Value/text()"/>
                  </xsl:element>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:element name="prop:has{translate(
                                        substring(./Name/text(),1,1),
                                        'abcdefghijklmnopqrstuvwxyz',
                                        'ABCDEFGHIJKLMNOPQRSTUVWXYZ')}{
                                      substring(./Name/text(),2)}">
                     <xsl:attribute name="rdf:datatype">
                        <xsl:text>
                          http://www.w3.org/2001/XMLSchema#string
                        </xsl:text>
                     </xsl:attribute>
                    <xsl:value-of select="./Value/text()"/>
                  </xsl:element>
                </xsl:otherwise>
              </xsl:choose>
            </xsl:for-each>
          </rdf:Description>
        </xsl:for-each>
        </rdf:RDF>
      </xsl:template>
   </xsl:stylesheet>