-
Notifications
You must be signed in to change notification settings - Fork 2
/
tokenize-idnos.xql
29 lines (25 loc) · 1.1 KB
/
tokenize-idnos.xql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
xquery version "3.0";
(:Convert TEI exported from Zotero to Syriaca TEI bibl records:)
declare default element namespace "http://www.tei-c.org/ns/1.0";
declare namespace tei = "http://www.tei-c.org/ns/1.0";
declare namespace syriaca = "http://syriaca.org";
declare namespace functx = "http://www.functx.com";
declare function syriaca:update-attribute($input-node as node()*,$attribute as xs:string,$attribute-value as xs:string)
as node()*
{
for $node in $input-node
return
element {xs:QName(name($node))} {
$node/@*[name()!=$attribute],
attribute {xs:QName($attribute)} {$attribute-value},
$node/node()}
};
let $bibls := collection("/db/apps/srophe-data/data/bibl/tei/")/TEI/text/body/biblStruct
for $idno in $bibls/*/idno[@type='callNumber' and matches(.,'\d+\s')]
let $tokenized := tokenize($idno/text(), ' ')
let $idnos-all :=
for $num in $tokenized
return <idno type="URI">http://www.worldcat.org/oclc/{$num}</idno>
return
(update insert $idnos-all following $idno,
update delete $idno)