Skip to content
Snippets Groups Projects
Commit 62e9eeac authored by David Maus's avatar David Maus
Browse files

foaf:Person für OPAC Personennormdaten

parent ac9df7db
No related branches found
No related tags found
No related merge requests found
<xsl:transform version="1.0"
exclude-result-prefixes="rdf pica skos"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:pica="info:srw/schema/5/picaXML-v1.0"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:skos="http://www.w3.org/2004/02/skos/core#"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="pica:record[starts-with(pica:datafield[@tag = '002@']/pica:subfield[@code = '0'], 'Tp')]">
<foaf:Person rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}">
<xsl:apply-templates/>
<xsl:call-template name="foaf:name">
<xsl:with-param name="nameField" select="pica:datafield[@tag = '028A']"/>
</xsl:call-template>
</foaf:Person>
</xsl:template>
<xsl:template match="pica:record">
<xsl:variable name="recordType" select="substring(pica:datafield[@tag = '002@']/pica:subfield[@code = '0'], 2, 1)"/>
<rdf:RDF>
<skos:Concept rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}">
<xsl:choose>
<xsl:when test="$recordType = 's'">
<skos:prefLabel>
<xsl:value-of select="translate(pica:datafield[@tag = '041A']/pica:subfield[@code = 'a'], '@', '')"/>
</skos:prefLabel>
</xsl:when>
</xsl:choose>
</skos:Concept>
</rdf:RDF>
<skos:Concept rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}"/>
</xsl:template>
<xsl:template match="pica:datafield[@tag = '003U']">
<owl:sameAs rdf:resource="{pica:subfield[@code = 'a']}"/>
</xsl:template>
<xsl:template name="foaf:name">
<xsl:param name="nameField"/>
<xsl:variable name="nameValue">
<xsl:choose>
<xsl:when test="$nameField/pica:subfield[@code = 'P']">
<xsl:value-of select="$nameField/pica:subfield[@code = 'P']"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$nameField/pica:subfield[@code = 'd']"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="$nameField/pica:subfield[@code = 'a']"/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="$nameField/pica:subfield[@code = 'l']">
<xsl:value-of select="concat(' &lt;', $nameField/pica:subfield[@code = 'l'], '&gt;')"/>
</xsl:if>
</xsl:variable>
<skos:prefLabel><xsl:value-of select="$nameValue"/></skos:prefLabel>
<foaf:name><xsl:value-of select="$nameValue"/></foaf:name>
</xsl:template>
<xsl:template match="text()"/>
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment