EU MDR + EuroVoc Codelist load to CouchDb (NKOD)
CONSTRUCT { ?concept a <http://www.w3.org/2004/02/skos/core#Concept> ; <http://www.w3.org/2004/02/skos/core#prefLabel> ?label . } WHERE { ?concept a <http://www.w3.org/2004/02/skos/core#Concept> ; <http://www.w3.org/2004/02/skos/core#prefLabel> ?label . }
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xpath-default-namespace="http://www.iana.org/assignments"> <xsl:output method="text" version="1.0" encoding="UTF-8" indent="no"/> <xsl:template match="/">@prefix dcterms: <http://purl.org/dc/terms/> . <xsl:apply-templates /> </xsl:template> <xsl:template match="record"> <xsl:variable name="mt"> <xsl:value-of select="concat(../@id,'/', replace(name,'([^ ]+).*','$1'))"/> </xsl:variable> <xsl:variable name="mtIRI"> <xsl:value-of select="concat('http://www.iana.org/assignments/media-types/',$mt)"/> </xsl:variable> <xsl:call-template name="OUTPUT_TYPE_TRIPLE"> <xsl:with-param name="subject" select="$mtIRI"/> <xsl:with-param name="type">dcterms:MediaTypeOrExtent</xsl:with-param> </xsl:call-template> <xsl:call-template name="OUTPUT_DATA_TRIPLE"> <xsl:with-param name="subject" select="$mtIRI"/> <xsl:with-param name="predicate">dcterms:title</xsl:with-param> <xsl:with-param name="data" select="$mt"/> <xsl:with-param name="triplequote">false</xsl:with-param> </xsl:call-template> </xsl:template> <xsl:template name="OUTPUT_OBJECT_TRIPLE"> <xsl:param name="subject"/> <xsl:param name="predicate"/> <xsl:param name="object"/> <xsl:if test="$object"> <xsl:text><</xsl:text> <xsl:value-of select="$subject"/> <xsl:text>> </xsl:text> <xsl:value-of select="$predicate"/> <xsl:text> <</xsl:text> <xsl:value-of select="$object"/> <xsl:text>> . </xsl:text> </xsl:if> </xsl:template> <xsl:template name="OUTPUT_OBJECT_CURIE_TRIPLE"> <xsl:param name="subject"/> <xsl:param name="predicate"/> <xsl:param name="object"/> <xsl:if test="$object"> <xsl:value-of select="$subject"/> <xsl:text> </xsl:text> <xsl:value-of select="$predicate"/> <xsl:text> </xsl:text> <xsl:value-of select="$object"/> <xsl:text> . </xsl:text> </xsl:if> </xsl:template> <xsl:template name="OUTPUT_TYPE_TRIPLE"> <xsl:param name="subject"/> <xsl:param name="type"/> <xsl:text><</xsl:text> <xsl:value-of select="$subject"/> <xsl:text>> a </xsl:text> <xsl:value-of select="$type"/> <xsl:text> . </xsl:text> </xsl:template> <xsl:template name="OUTPUT_TYPE_CURIE_TRIPLE"> <xsl:param name="subject"/> <xsl:param name="type"/> <xsl:value-of select="$subject"/> <xsl:text> a </xsl:text> <xsl:value-of select="$type"/> <xsl:text> . </xsl:text> </xsl:template> <xsl:template name="OUTPUT_SAME_AS_TRIPLE"> <xsl:param name="subject"/> <xsl:param name="object"/> <xsl:text><</xsl:text> <xsl:value-of select="$subject"/> <xsl:text>> owl:sameAs </xsl:text> <xsl:text><</xsl:text> <xsl:value-of select="$object"/> <xsl:text>> . </xsl:text> </xsl:template> <xsl:template name="OUTPUT_DATA_TRIPLE"> <xsl:param name="subject"/> <xsl:param name="predicate"/> <xsl:param name="data"/> <xsl:param name="type"/> <xsl:param name="lang"/> <xsl:param name="triplequote"/> <xsl:for-each select="$data"> <xsl:variable name="data-item" select="replace(replace(replace(., '\\', '\\\\'), '"', '\\"'),'\n', ' ')"/> <xsl:if test="string-length($data-item) > 0"> <xsl:text><</xsl:text> <xsl:value-of select="$subject"/> <xsl:text>> </xsl:text> <xsl:value-of select="$predicate"/> <xsl:if test="$triplequote=true()"> <xsl:text> """</xsl:text> </xsl:if> <xsl:if test="$triplequote=false()"> <xsl:text> "</xsl:text> </xsl:if> <xsl:value-of select="$data-item"/> <xsl:if test="$triplequote=true()"> <xsl:text>"""</xsl:text> </xsl:if> <xsl:if test="$triplequote=false()"> <xsl:text>"</xsl:text> </xsl:if> <xsl:choose> <xsl:when test="$lang"> <xsl:text>@</xsl:text> <xsl:value-of select="$lang"/> </xsl:when> <xsl:otherwise> <xsl:if test="$type"> <xsl:text>^^</xsl:text> <xsl:value-of select="$type"/> </xsl:if> </xsl:otherwise> </xsl:choose> <xsl:text> . </xsl:text> </xsl:if> </xsl:for-each> </xsl:template> <xsl:template name="OUTPUT_DATA_CURIE_TRIPLE"> <xsl:param name="subject"/> <xsl:param name="predicate"/> <xsl:param name="data"/> <xsl:param name="type"/> <xsl:param name="lang"/> <xsl:param name="triplequote"/> <xsl:for-each select="$data"> <xsl:variable name="data-item" select="replace(replace(replace(., '\\', '\\\\'), '"', '\\"'),'\n', ' ')"/> <xsl:if test="string-length($data-item) > 0"> <xsl:value-of select="$subject"/> <xsl:text> </xsl:text> <xsl:value-of select="$predicate"/> <xsl:if test="$triplequote=true()"> <xsl:text> """</xsl:text> </xsl:if> <xsl:if test="$triplequote=false()"> <xsl:text> "</xsl:text> </xsl:if> <xsl:value-of select="$data-item"/> <xsl:if test="$triplequote=true()"> <xsl:text>"""</xsl:text> </xsl:if> <xsl:if test="$triplequote=false()"> <xsl:text>"</xsl:text> </xsl:if> <xsl:choose> <xsl:when test="$lang"> <xsl:text>@</xsl:text> <xsl:value-of select="$lang"/> </xsl:when> <xsl:otherwise> <xsl:if test="$type"> <xsl:text>^^</xsl:text> <xsl:value-of select="$type"/> </xsl:if> </xsl:otherwise> </xsl:choose> <xsl:text> . </xsl:text> </xsl:if> </xsl:for-each> </xsl:template> <xsl:template name="OUTPUT_BOOL_CURIE_TRIPLE"> <xsl:param name="subject"/> <xsl:param name="predicate"/> <xsl:param name="data"/> <xsl:for-each select="$data"> <xsl:variable name="data-item" select="replace(replace(replace(., '\\', '\\\\'), '"', '\\"'),'\n', ' ')"/> <xsl:if test="string-length($data-item) > 0"> <xsl:value-of select="$subject"/> <xsl:text> </xsl:text> <xsl:value-of select="$predicate"/> <xsl:text> </xsl:text> <xsl:value-of select="$data-item"/> <xsl:text> . </xsl:text> </xsl:if> </xsl:for-each> </xsl:template> <xsl:template match="text()|@*"/> </xsl:stylesheet>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#> PREFIX schema: <http://schema.org/> CONSTRUCT { ?concept a skos:Concept; skos:prefLabel ?label . } WHERE { ?concept a ?type; schema:name ?label . VALUES ?type { <https://linked.cuzk.cz/ontology/ruian/TypPrvku/SP> <https://linked.cuzk.cz/ontology/ruian/TypPrvku/OB> <https://linked.cuzk.cz/ontology/ruian/TypPrvku/MP> <https://linked.cuzk.cz/ontology/ruian/TypPrvku/MC> <https://linked.cuzk.cz/ontology/ruian/TypPrvku/KU> <https://linked.cuzk.cz/ontology/ruian/TypPrvku/CO> <https://linked.cuzk.cz/ontology/ruian/TypPrvku/UL> <https://linked.cuzk.cz/ontology/ruian/TypPrvku/PU> <https://linked.cuzk.cz/ontology/ruian/TypPrvku/OK> #<https://linked.cuzk.cz/ontology/ruian/TypPrvku/SO> #<https://linked.cuzk.cz/ontology/ruian/TypPrvku/AD> #<https://linked.cuzk.cz/ontology/ruian/TypPrvku/PA> <https://linked.cuzk.cz/ontology/ruian/TypPrvku/ZJ> <https://linked.cuzk.cz/ontology/ruian/TypPrvku/VC> <https://linked.cuzk.cz/ontology/ruian/TypPrvku/KR> <https://linked.cuzk.cz/ontology/ruian/TypPrvku/RS> <https://linked.cuzk.cz/ontology/ruian/TypPrvku/ST> <https://linked.cuzk.cz/ontology/ruian/TypPrvku/OP> } }