From adfe5c4143a0fb678194cee6a1f3c9b0eba0adf9 Mon Sep 17 00:00:00 2001 From: Mau Zsofia Abraham Date: Thu, 28 Nov 2024 14:55:51 +0100 Subject: [PATCH 1/4] Adapt to new person list structure --- vicav.xqm | 48 ++++++++++++++++++++--------------------- xslt/features_01.xslt | 2 +- xslt/sampletext_01.xslt | 2 +- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/vicav.xqm b/vicav.xqm index bd9b820..44bd9c3 100644 --- a/vicav.xqm +++ b/vicav.xqm @@ -572,7 +572,7 @@ declare function vicav:explore-query( return "'" || $p || "'" let $person_q := if (not(empty($ps))) then - '(./tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person/text() = ['|| string-join($ps, ',') ||'])' + '(./tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person/text() = ['|| string-join($ps, ',') ||'])' else '' let $words_q := for $w in tokenize($word, ',') @@ -593,8 +593,8 @@ declare function vicav:explore-query( let $age_q := if (not(empty($age_bounds)) and ($age_bounds[2] != "100" or $age_bounds[1] != "0")) then vicav:and(( - '(number(./tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/@age) > ' || min($age_bounds) || ')', - ' (number(./tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/@age) < ' || max($age_bounds) || ')' + '(number(./tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/@age) > ' || min($age_bounds) || ')', + ' (number(./tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/@age) < ' || max($age_bounds) || ')' )) else '' @@ -604,7 +604,7 @@ declare function vicav:explore-query( else () let $sex_q := if (not(empty($sex_qqs))) then - ' (./tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person/@sex = [' || string-join($sex_qqs, ',') || '])' + ' (./tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person/@sex = [' || string-join($sex_qqs, ',') || '])' else '' let $loc_qs := tokenize($location, ',') @@ -661,9 +661,9 @@ declare function vicav:explore-data( let $ress := for $item in $results let $city := $item/tei:teiHeader/tei:profileDesc/tei:settingDesc/tei:place/tei:settlement/tei:name[@xml:lang="en"]/text() - let $informant := $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/text() - let $age := $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/@age - let $sex := $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/@sex + let $informant := $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/text() + let $age := $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/@age + let $sex := $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/@sex return {$item} @@ -1106,9 +1106,9 @@ declare function vicav:_get_compare( for $i in $item-in-region return {$i}{ if ($resourcetype = "samples") then $i/../../../tei:div[@type="dvTranslations"]/tei:p/tei:s[@n = $i/@n] @@ -1843,10 +1843,10 @@ declare function vicav:_get_sample_markers() { let $loc := if ($item/tei:teiHeader/tei:profileDesc/tei:settingDesc/tei:place/tei:location/tei:geo/text()) then replace($item/tei:teiHeader/tei:profileDesc/tei:settingDesc/tei:place/tei:location/tei:geo/text(), '(\d+(\.|,)\s*\d+,\s*\d+(\.|,)\s*\d+).*', '$1') else $item/tei:text/tei:body/tei:div[@type="positioning"]//tei:geo/text() - let $alt := if ($item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person) - then $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/text() || '/' || - $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/@sex || '/' || - $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/@age + let $alt := if ($item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person) + then $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/text() || '/' || + $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/@sex || '/' || + $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/@age else $item/tei:text/tei:body/tei:head/tei:name[1] let $locName := if ($item/tei:teiHeader/tei:profileDesc/tei:settingDesc/tei:place/tei:settlement) then @@ -1912,7 +1912,7 @@ declare function vicav:get_sample_persons($type as xs:string*) { let $type := if ($type = () or $type = '') then 'samples' else $type - let $persons := collection('vicav_' || $type || vicav:get_project_db())/descendant::tei:TEI/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person + let $persons := collection('vicav_' || $type || vicav:get_project_db())/descendant::tei:TEI/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person let $out := for $person in $persons order by $person/text() @@ -2016,10 +2016,10 @@ declare function vicav:_get_feature_markers() { let $loc := if ($item/tei:teiHeader/tei:profileDesc/tei:settingDesc/tei:place/tei:location/tei:geo/text()) then replace($item/tei:teiHeader/tei:profileDesc/tei:settingDesc/tei:place/tei:location/tei:geo/text(), '(\d+(\.|,)\s*\d+,\s*\d+(\.|,)\s*\d+).*', '$1') else $item/tei:text/tei:body/tei:div[@type="positioning"]//tei:geo/text() - let $alt := if ($item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person) - then $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/text() || '/' || - $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/@sex || '/' || - $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/@age + let $alt := if ($item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person) + then $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/text() || '/' || + $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/@sex || '/' || + $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/@age else $item/tei:text/tei:body/tei:head/tei:name[1] let $locName := if ($item/tei:teiHeader/tei:profileDesc/tei:settingDesc/tei:place/tei:settlement) then @@ -2070,7 +2070,7 @@ declare function vicav:_get_all_data_markers() { let $loc := if ($item/tei:teiHeader/tei:profileDesc/tei:settingDesc/tei:place/tei:location/tei:geo/text()) then replace($item/tei:teiHeader/tei:profileDesc/tei:settingDesc/tei:place/tei:location/tei:geo/text(), '(\d+(\.|,)\s*\d+,\s*\d+(\.|,)\s*\d+).*', '$1') else $item/tei:text/tei:body/tei:div[@type="positioning"]//tei:geo/text() - let $alt := if ($item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person) then $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/text() || '/' || $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/@sex || '/' || $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/@age else $locName + let $alt := if ($item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person) then $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/text() || '/' || $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/@sex || '/' || $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/@age else $locName return if ($item/@xml:id and $loc) then @@ -2113,12 +2113,12 @@ declare function vicav:data_list_region($type as xs:string, $region as xs:string concat($cat, ': ', count($cat-items)) }, for $item in $cat-items - order by $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/text() + order by $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/text() return element p { element a { attribute href { '#' }, attribute {$typestring} {$item/@xml:id}, - text {$item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/text()}, + text {$item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/text()}, text { string-join((' (Revision: ', replace($item/tei:teiHeader/tei:revisionDesc/tei:change[1]/@when, 'T.*', ''), ')')) } }, element br {} } @@ -2127,7 +2127,7 @@ declare function vicav:data_list_region($type as xs:string, $region as xs:string (: Handle single type data list :) else for $item in $city-items - order by $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/text() + order by $item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/text() let $typestring := switch($type) case 'lingfeatures' return 'data-featurelist' @@ -2139,7 +2139,7 @@ declare function vicav:data_list_region($type as xs:string, $region as xs:string element a { attribute href { '#' }, attribute {$typestring} {$item/@xml:id}, - text {$item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:person[1]/text()}, + text {$item/tei:teiHeader/tei:profileDesc/tei:particDesc/tei:listPerson/tei:person[1]/text()}, text { string-join((' (Revision: ', replace($item/tei:teiHeader/tei:revisionDesc/tei:change[1]/@when, 'T.*', ''), ')')) } }, element br {} } diff --git a/xslt/features_01.xslt b/xslt/features_01.xslt index 6d9bd44..0ac0699 100644 --- a/xslt/features_01.xslt +++ b/xslt/features_01.xslt @@ -52,7 +52,7 @@

By (revision: )

-