diff --git a/modules/wdt.xqm b/modules/wdt.xqm index 5a5af9b28..9ce160bc6 100644 --- a/modules/wdt.xqm +++ b/modules/wdt.xqm @@ -1008,13 +1008,16 @@ declare function wdt:backlinks($item as item()*) as map(*) { }, 'filter-by-person' : function($personID as xs:string) as document-node()* { let $docsAuthor := - (: currently, can't use core:getOrCreateColl() because of performance loss :) - crud:data-collection('letters')//tei:*[contains(@key, $personID)][ancestor::tei:correspAction][not(ancestor-or-self::tei:note)]/root() | - crud:data-collection('writings')//tei:author[@key = $personID][ancestor::tei:fileDesc]/root() | - crud:data-collection('news')//tei:author[@key = $personID][ancestor::tei:fileDesc]/root() | - crud:data-collection('thematicCommentaries')//tei:author[@key = $personID][ancestor::tei:fileDesc]/root() | - crud:data-collection('documents')//tei:author[@key = $personID][ancestor::tei:fileDesc]/root() | - crud:data-collection('works')//mei:persName[@codedval = $personID][@role=('cmp', 'lbt', 'lyr', 'aut', 'trl')][ancestor::mei:fileDesc]/root() + if(wdt:personsPlus($personID)?check()) (: see https://github.com/Edirom/WeGA-WebApp/issues/466 :) + then + (: currently, can't use core:getOrCreateColl() because of performance loss :) + crud:data-collection('letters')//tei:*[contains(@key, $personID)][ancestor::tei:correspAction][not(ancestor-or-self::tei:note)]/root() | + crud:data-collection('writings')//tei:author[@key = $personID][ancestor::tei:fileDesc]/root() | + crud:data-collection('news')//tei:author[@key = $personID][ancestor::tei:fileDesc]/root() | + crud:data-collection('thematicCommentaries')//tei:author[@key = $personID][ancestor::tei:fileDesc]/root() | + crud:data-collection('documents')//tei:author[@key = $personID][ancestor::tei:fileDesc]/root() | + crud:data-collection('works')//mei:persName[@codedval = $personID][@role=('cmp', 'lbt', 'lyr', 'aut', 'trl')][ancestor::mei:fileDesc]/root() + else () let $docsMentioned := crud:data-collection('letters')//tei:*[contains(@key,$personID)][not(ancestor::tei:publicationStmt)]/root() | crud:data-collection('diaries')//tei:*[contains(@key,$personID)]/root() |