Changeset 4830 for CMDI-Interoperability


Ignore:
Timestamp:
03/27/14 15:21:43 (10 years ago)
Author:
Menzo Windhouwer
Message:

M xsl/CMDRecord2RDF.xsl
M xsl/Component2RDF.xsl

  • added some missing xsl:
  • fixed Dublin Core mappings
  • RDF/XML can now be loaded into a triple store
Location:
CMDI-Interoperability/CMD2RDF/trunk/xsl
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CMDI-Interoperability/CMD2RDF/trunk/xsl/CMDRecord2RDF.xsl

    r3821 r4830  
    1313    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    1414    xmlns:cmd="http://www.clarin.eu/cmd/"
    15     xmlns:cmdm="http://www.clarin.eu/cmd/general.rdf"
     15    xmlns:cmdm="http://www.clarin.eu/cmd/general.rdf#"
    1616    xmlns:ore="http://www.openarchives.org/ore/terms/"
    1717    xmlns:oa="http://www.w3.org/ns/oa#"
    1818    xmlns:dcterms="http://purl.org/dc/terms/"
     19    xmlns:dc="http://purl.org/dc/elements/1.1/"
    1920>
    2021   
     
    3233            <!-- The CMDI is seen as OA Annotation of a (set of) resource(s) -->
    3334            <oa:Annotation rdf:about="{$base}">
    34                 <xsl:apply-templates select="cmd:Header"/>
    3535                <xsl:apply-templates select="cmd:Resources" mode="resources"/>
    3636                <oa:hasBody>
     
    5050                    </ore:describes>
    5151                </ore:ResourceMap>
    52                 <!-- outliers of the resource map -->
    53                 <xsl:apply-templates select="cmd:Resources" mode="other"/>
    5452            </xsl:if>
     53            <xsl:apply-templates select="cmd:Header"/>
     54            <xsl:apply-templates select="cmd:Resources" mode="other"/>
    5555        </rdf:RDF>
    5656    </xsl:template>
    5757   
    5858    <xsl:template match="cmd:MdCreator">
    59         <dcterms:creator>
    60             <xsl:value-of select="."/>
    61         </dcterms:creator>
     59        <rdf:Description rdf:about="{concat('#',generate-id(/cmd:CMD/cmd:Components/*))}">
     60            <dc:creator>
     61                <xsl:value-of select="."/>
     62            </dc:creator>
     63        </rdf:Description>
    6264    </xsl:template>
    6365
    6466    <xsl:template match="cmd:MdCreationDate">
    65         <dcterms:created>
    66             <xsl:value-of select="."/>
    67         </dcterms:created>
     67        <rdf:Description rdf:about="{concat('#',generate-id(/cmd:CMD/cmd:Components/*))}">
     68            <dc:created>
     69                <xsl:value-of select="."/>
     70            </dc:created>
     71        </rdf:Description>
    6872    </xsl:template>
    6973   
    7074    <xsl:template match="cmd:MdSelfLink">
    71         <dcterms:identifier>
    72             <xsl:value-of select="."/>
    73         </dcterms:identifier>
     75        <rdf:Description rdf:about="{concat('#',generate-id(/cmd:CMD/cmd:Components/*))}">
     76            <dc:identifier>
     77                <xsl:value-of select="."/>
     78            </dc:identifier>
     79        </rdf:Description>
    7480    </xsl:template>
    7581   
     
    8389   
    8490    <xsl:template match="text()" mode="resources"/>
    85     <xsl:template match="cmd:ResourceProxy[ResourceType!='Resource']" mode="resources"/>
    86     <xsl:template match="cmd:ResourceProxy[ResourceType='Resource']" mode="resources">
     91    <xsl:template match="cmd:ResourceProxy[cmd:ResourceType!='Resource']" mode="resources"/>
     92    <xsl:template match="cmd:ResourceProxy[cmd:ResourceType='Resource']" mode="resources">
    8793        <oa:hasTarget>
    8894            <cmdm:Resource rdf:about="{cmd:ResourceRef}">
     
    97103   
    98104    <xsl:template match="text()" mode="metadata"/>
    99     <xsl:template match="cmd:ResourceProxy[ResourceType!='Metadata']" mode="metadata"/>
    100     <xsl:template match="cmd:ResourceProxy[ResourceType='Metadata']" mode="metadata">
     105    <xsl:template match="cmd:ResourceProxy[cmd:ResourceType!='Metadata']" mode="metadata"/>
     106    <xsl:template match="cmd:ResourceProxy[cmd:ResourceType='Metadata']" mode="metadata">
    101107        <ore:aggregates rdf:resource="{cmd:ResourceRef}"/>
    102108        <!--
     
    108114
    109115    <xsl:template match="text()" mode="other"/>
    110     <xsl:template match="cmd:ResourceProxy[ResourceType=('Resource','Metadata')]" mode="other"/>
    111     <xsl:template match="cmd:ResourceProxy[not(ResourceType=('Resource','Metadata'))]" mode="other">
     116    <xsl:template match="cmd:ResourceProxy[cmd:ResourceType=('Resource','Metadata')]" mode="other"/>
     117    <xsl:template match="cmd:ResourceProxy[not(cmd:ResourceType=('Resource','Metadata'))]" mode="other">
    112118        <xsl:element name="cmdm:has{cmd:ResourceType}">
    113119            <xsl:attribute name="rdf:resource" select="cmd:ResourceRef"/>
     
    174180                    <xsl:attribute name="rdf:about" select="concat('#',generate-id(.))"/>
    175181                    <xsl:for-each select="tokenize(@ref,'\s+')">
    176                         <xsl:variable name="res"/>
    177                         <cmdm:describesResource rdf:resource="/cmd:CMD/cmd:Resources/cmd:ResourceProxyList/cmd:ResourceProxy[@id=$ref]/ResourceRef"/>
     182                        <xsl:variable name="res" select="."/>
     183                        <cmdm:describesResource rdf:resource="{$instance/ancestor::cmd:CMD/cmd:Resources/cmd:ResourceProxyList/cmd:ResourceProxy[@id=$res]/cmd:ResourceRef}"/>
    178184                    </xsl:for-each>
    179185                    <!-- switch back from the instance to the profile -->
  • CMDI-Interoperability/CMD2RDF/trunk/xsl/Component2RDF.xsl

    r3816 r4830  
    114114        </rdf:Property>
    115115        <!-- if there is an value enumeration also have a hasElementEntity property -->
    116         <if test="exists(ValueScheme/enumeration)">
     116        <xsl:if test="exists(ValueScheme/enumeration)">
    117117            <rdf:Class rdf:about="{$id}Entity">
    118118                <rdf:subClassOf rdf:resource="&cmdm;Entity"/>
     
    125125                <rdfs:range rdf:resource="{$id}Entity"/>
    126126            </rdf:Property>
    127         </if>
     127        </xsl:if>
    128128        <!-- continue with the attributes and values -->
    129129        <xsl:apply-templates>
Note: See TracChangeset for help on using the changeset viewer.