diff --git a/itinerar.xsl b/itinerar.xsl index 285bfecb19fdc449a1c443788ace77c80d83f0da..e8f7a7c3920e51b09341b20e2ec9cd4f5350abd7 100644 --- a/itinerar.xsl +++ b/itinerar.xsl @@ -28,7 +28,7 @@ <xsl:variable name="gndurl" select="(document('../Register/register-place/register-place-a.xml')|document('../Register/register-place/register-place-b.xml')|document('../Register/register-place/register-place-c.xml')|document('../Register/register-place/register-place-d.xml')|document('../Register/register-place/register-place-e.xml')|document('../Register/register-place/register-place-f.xml')|document('../Register/register-place/register-place-g.xml')|document('../Register/register-place/register-place-h.xml')|document('../Register/register-place/register-place-i.xml')|document('../Register/register-place/register-place-j.xml')|document('../Register/register-place/register-place-k.xml')|document('../Register/register-place/register-place-l.xml')|document('../Register/register-place/register-place-m.xml')|document('../Register/register-place/register-place-n.xml')|document('../Register/register-place/register-place-o.xml')|document('../Register/register-place/register-place-p.xml')|document('../Register/register-place/register-place-qr.xml')|document('../Register/register-place/register-place-s.xml')|document('../Register/register-place/register-place-t.xml')|document('../Register/register-place/register-place-u.xml')|document('../Register/register-place/register-place-v.xml')|document('../Register/register-place/register-place-w.xml')|document('../Register/register-place/register-place-xyz.xml'))//tei:place[@xml:id eq $placeid]/tei:idno[@type = 'URI'][contains(., 'd-nb.info')][1]"/> <xsl:variable name="gndrdfurl" select="concat($gndurl, '/about/lds.rdf')"/> <xsl:choose> - <xsl:when test="(document('../Register/register-place/register-place-a.xml')|document('../Register/register-place/register-place-b.xml')|document('../Register/register-place/register-place-c.xml')|document('../Register/register-place/register-place-d.xml')|document('../Register/register-place/register-place-e.xml')|document('../Register/register-place/register-place-f.xml')|document('../Register/register-place/register-place-g.xml')|document('../Register/register-place/register-place-h.xml')|document('../Register/register-place/register-place-i.xml')|document('../Register/register-place/register-place-j.xml')|document('../Register/register-place/register-place-k.xml')|document('../Register/register-place/register-place-l.xml')|document('../Register/register-place/register-place-m.xml')|document('../Register/register-place/register-place-n.xml')|document('../Register/register-place/register-place-o.xml')|document('../Register/register-place/register-place-p.xml')|document('../Register/register-place/register-place-qr.xml')|document('../Register/register-place/register-place-s.xml')|document('../Register/register-place/register-place-t.xml')|document('../Register/register-place/register-place-u.xml')|document('../Register/register-place/register-place-v.xml')|document('../Register/register-place/register-place-w.xml')|document('../Register/register-place/register-place-xyz.xml'))//tei:place[@xml:id eq $placeid]/tei:idno[@type = 'URI'][contains(., 'geonames')] and not(document(concat($geonamesuri, 'about.rdf'))//gn:featureClass[contains(@rdf:resource, 'www.geonames.org/ontology#A')]) and not(document(concat($geonamesuri, 'about.rdf'))//gn:featureClass[contains(@rdf:resource, 'www.geonames.org/ontology#L')])"> + <xsl:when test="(document('../Register/register-place/register-place-a.xml')|document('../Register/register-place/register-place-b.xml')|document('../Register/register-place/register-place-c.xml')|document('../Register/register-place/register-place-d.xml')|document('../Register/register-place/register-place-e.xml')|document('../Register/register-place/register-place-f.xml')|document('../Register/register-place/register-place-g.xml')|document('../Register/register-place/register-place-h.xml')|document('../Register/register-place/register-place-i.xml')|document('../Register/register-place/register-place-j.xml')|document('../Register/register-place/register-place-k.xml')|document('../Register/register-place/register-place-l.xml')|document('../Register/register-place/register-place-m.xml')|document('../Register/register-place/register-place-n.xml')|document('../Register/register-place/register-place-o.xml')|document('../Register/register-place/register-place-p.xml')|document('../Register/register-place/register-place-qr.xml')|document('../Register/register-place/register-place-s.xml')|document('../Register/register-place/register-place-t.xml')|document('../Register/register-place/register-place-u.xml')|document('../Register/register-place/register-place-v.xml')|document('../Register/register-place/register-place-w.xml')|document('../Register/register-place/register-place-xyz.xml'))//tei:place[@xml:id eq $placeid]/tei:idno[@type = 'URI'][contains(., 'geonames')] and not(document(concat($geonamesuri, 'about.rdf'))//gn:featureClass[matches(@rdf:resource, 'www.geonames.org/ontology#A|www.geonames.org/ontology#H|www.geonames.org/ontology#L')])"> <xsl:call-template name="insertData"> <xsl:with-param name="coordType">gn</xsl:with-param> <xsl:with-param name="geonamesuri" select="$geonamesuri"/> @@ -45,10 +45,11 @@ </xsl:call-template> </xsl:when> <xsl:otherwise> - <xsl:variable name="wdurl" select="document($gndrdfurl)//owl:sameAs[contains(./@rdf:resource, 'wikidata')]/@rdf:resource"/> + <xsl:variable name="wdurl" select="concat('https://www.wikidata.org/wiki/Special:EntityData/Q',substring-after(document($gndrdfurl)//owl:sameAs[contains(./@rdf:resource, 'wikidata')]/@rdf:resource,'/Q'),'.rdf')"/> + <xsl:choose> - <xsl:when test="ends-with($wdurl,'.rdf') and doc-available($wdurl)"> - <xsl:if test="document($wdurl)//ps:P625 and count(document($wdurl)//ps:P31[@rdf:resource = ('http://www.wikidata.org/entity/Q5107', 'http://www.wikidata.org/entity/Q82794', 'http://www.wikidata.org/entity/Q6256', 'http://www.wikidata.org/entity/Q3024240', 'http://www.wikidata.org/entity/Q182547', 'http://www.wikidata.org/entity/Q107390', 'http://www.wikidata.org/entity/Q4022', 'http://www.wikidata.org/entity/Q208500')]) = 0"> + <xsl:when test="doc-available($wdurl)"> + <xsl:if test="document($wdurl)//ps:P625 and count(document($wdurl)//ps:P31[@rdf:resource = ('http://www.wikidata.org/entity/Q5107', 'http://www.wikidata.org/entity/Q82794', 'http://www.wikidata.org/entity/Q6256', 'http://www.wikidata.org/entity/Q3024240', 'http://www.wikidata.org/entity/Q182547', 'http://www.wikidata.org/entity/Q107390', 'http://www.wikidata.org/entity/Q4022', 'http://www.wikidata.org/entity/Q208500', 'http://www.wikidata.org/entity/Q1620908')]) = 0"> <xsl:call-template name="insertData"> <xsl:with-param name="coordType">ps</xsl:with-param> <xsl:with-param name="wdurl" select="$wdurl"/> @@ -113,20 +114,23 @@ <xsl:variable name="wpurl" select="document($gndrdfurl)//foaf:page[contains(./@rdf:resource, 'wikipedia')]/@rdf:resource"/> <xsl:variable name="wdurl" select="concat('https://www.wikidata.org/wiki/Special:EntityData/Q',substring-after(document($gndrdfurl)//owl:sameAs[contains(./@rdf:resource, 'wikidata')]/@rdf:resource,'/Q'),'.rdf')"/> <xsl:choose> - <xsl:when test="document($wdurl)//ps:P625 and count(document($wdurl)//ps:P31[@rdf:resource = ('http://www.wikidata.org/entity/Q5107', 'http://www.wikidata.org/entity/Q82794', 'http://www.wikidata.org/entity/Q6256', 'http://www.wikidata.org/entity/Q3024240', 'http://www.wikidata.org/entity/Q182547', 'http://www.wikidata.org/entity/Q107390')]) = 0"> + <xsl:when test="doc-available($wdurl) and document($wdurl)//ps:P625 and count(document($wdurl)//ps:P31[@rdf:resource = ('http://www.wikidata.org/entity/Q5107', 'http://www.wikidata.org/entity/Q82794', 'http://www.wikidata.org/entity/Q6256', 'http://www.wikidata.org/entity/Q3024240', 'http://www.wikidata.org/entity/Q182547', 'http://www.wikidata.org/entity/Q107390')]) = 0"> <xsl:call-template name="insertData"> <xsl:with-param name="coordType">ps</xsl:with-param> <xsl:with-param name="wdurl" select="$wdurl"/> <xsl:with-param name="filename" select="$filename"/> </xsl:call-template> </xsl:when> - <xsl:when test="doc-available($wpurl)"> - <xsl:if test="document($wdurl)//ps:P625 and count(document($wdurl)//ps:P31[@rdf:resource = ('http://www.wikidata.org/entity/Q5107', 'http://www.wikidata.org/entity/Q82794', 'http://www.wikidata.org/entity/Q6256', 'http://www.wikidata.org/entity/Q3024240', 'http://www.wikidata.org/entity/Q182547', 'http://www.wikidata.org/entity/Q107390')]) = 0"> + <xsl:when test="unparsed-text-available($wpurl)"> + <xsl:if test="contains(unparsed-text($wpurl),'www.wikidata.org/wiki')"> + <xsl:variable name="wdurl" select="concat('https://www.wikidata.org/wiki/Special:EntityData/Q',substring-before(substring-after(unparsed-text($wpurl),'https://www.wikidata.org/wiki/Special:EntityPage/Q'),'"'),'.rdf')"/> + <xsl:if test="document($wdurl)//ps:P625 and count(document($wdurl)//ps:P31[@rdf:resource = ('http://www.wikidata.org/entity/Q5107', 'http://www.wikidata.org/entity/Q82794', 'http://www.wikidata.org/entity/Q6256', 'http://www.wikidata.org/entity/Q3024240', 'http://www.wikidata.org/entity/Q182547', 'http://www.wikidata.org/entity/Q107390')]) = 0"> <xsl:call-template name="insertData"> <xsl:with-param name="coordType">ps</xsl:with-param> <xsl:with-param name="wdurl" select="$wdurl"/> <xsl:with-param name="filename" select="$filename"/> </xsl:call-template> + </xsl:if> </xsl:if> </xsl:when> </xsl:choose> @@ -367,4 +371,4 @@ </description> </xsl:template> -</xsl:stylesheet> +</xsl:stylesheet> \ No newline at end of file