MediaWiki:SMWToRDF.xsl

From TDWG Terms Wiki
Revision as of 12:33, 18 February 2014 by EamonnOTuama (Talk | contribs)

Jump to: navigation, search

<?xml version="1.0" encoding="UTF-8"?>


<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:swivt="http://semantic-mediawiki.org/swivt/1.0#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:property="http://terms.gbif.org/wiki/Special:URIResolver/Property-3A" version="1.0">


<xsl:output indent="yes" />

<xsl:variable name="terms" select=" rdf:RDF/swivt:Subject" />


<xsl:template match="/"> <rdf:RDF xmlns:vs="http://www.w3.org/2003/06/sw-vocab-status/ns#" xmlns:vann="http://purl.org/vocab/vann/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://rs.tdwg.org/dwc/terms/" xmlns:dwcattributes="http://rs.tdwg.org/dwc/terms/attributes/">


<rdf:Description> <xsl:attribute name="rdf:value"> <xsl:value-of select="$terms[1]/dc:identifier/@rdf:resource" /></xsl:attribute> </rdf:Description>

<dcterms:title> <xsl:attribute name="xml:lang"> <xsl:text>en</xsl:text></xsl:attribute> <xsl:value-of select="$terms[1]/rdfs:label"/> </dcterms:title>

<dcterms:description> <xsl:value-of select="$terms[1]/dcterms:description" /> </dcterms:description>

<dc:publisher> <xsl:value-of select="$terms[1]/dc:publisher" /> </dc:publisher>

<dcterms:bibliographicCitation> <xsl:value-of select="$terms[1]/dcterms:bibliographicCitation" /> </dcterms:bibliographicCitation>


<xsl:for-each select="$terms[1]/dcterms:contributor"> <dcterms:contributor> <xsl:value-of select="."/> </dcterms:contributor> </xsl:for-each>


<xsl:for-each select="$terms[position() != 1]">


<rdf:Description> <xsl:attribute name="rdf:value"> <xsl:value-of select="@rdf:about" /></xsl:attribute>


<xsl:for-each select="skos:prefLabel"> <xsl:variable name="langLabel"><xsl:value-of select="."/></xsl:variable> <xsl:variable name="cleanLabel"><xsl:value-of select="substring-after($langLabel,':')"/></xsl:variable> <xsl:variable name="language"><xsl:value-of select="substring-before($langLabel,':')"/></xsl:variable> <xsl:if test="$language ='en'"> <rdfs:label> <xsl:attribute name="xml:lang"> <xsl:value-of select="$language" /></xsl:attribute> <xsl:value-of select="$cleanLabel" /> </rdfs:label> </xsl:if> </xsl:for-each>

<xsl:for-each select="skos:definition"> <xsl:variable name="langDefinition"><xsl:value-of select="."/></xsl:variable> <xsl:variable name="cleanDefinition"><xsl:value-of select="substring-after($langDefinition,':')"/></xsl:variable> <xsl:variable name="language"><xsl:value-of select="substring-before($langDefinition,':')"/></xsl:variable> <xsl:if test="$language ='en'"> <rdfs:comment> <xsl:attribute name="xml:lang"> <xsl:value-of select="$language" /></xsl:attribute> <xsl:value-of select="$cleanDefinition" /> </rdfs:comment> </xsl:if> </xsl:for-each>



<rdfs:isDefinedBy> <xsl:attribute name="rdf:resource"> <xsl:value-of select="rdfs:isDefinedBy[2]/@rdf:resource" /></xsl:attribute> </rdfs:isDefinedBy>

<dcterms:issued> <xsl:value-of select="dcterms:issued" /> </dcterms:issued> <dcterms:modified> <xsl:value-of select="dcterms:modified" /> </dcterms:modified>

<rdf:type> <xsl:attribute name="rdf:resource"> <xsl:value-of select="property:concept_type" /></xsl:attribute> </rdf:type>

<vs:term_status>

         						<xsl:value-of select="vs:term_status"/>
     					</vs:term_status>


<skos:closeMatch> <xsl:value-of select="skos:closeMatch/@rdf:resource" /> </skos:closeMatch>


</rdf:Description>


</xsl:for-each> </rdf:RDF> </xsl:template>

</xsl:stylesheet>