Skip to content

Instantly share code, notes, and snippets.

@pastokes
Last active April 4, 2020 19:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pastokes/e80dcd50c86be4351288 to your computer and use it in GitHub Desktop.
Save pastokes/e80dcd50c86be4351288 to your computer and use it in GitHub Desktop.
Partial implementation of model discussed at TEI conference. See further http://tei2015.huma-num.fr/en/papers/#acc-41 and http://www.exondomesday.ac.uk
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2">
<ns uri="http://www.tei-c.org/ns/1.0" prefix="tei"/>
<ns uri="http://exondomesday.ac.uk" prefix="exon"/>
<!--<pattern id="checkText">
<rule context="page[@textFollows]">
<assert test="@textFollows = preceding::page[1]/@id">Text on page <value-of select="@id"/> does not follow (expected <value-of
select="@textFollows"/>, found <value-of select="preceding::page[1]/@id"/>).</assert>
</rule>
</pattern>-->
<!-- Check consistency of codicological description -->
<pattern id="checkSingleton">
<rule context="exon:folio">
<assert test="(@single='true' and not(@conjoins)) or (@single='false' and @conjoins)">Folio <value-of select="@xml:id"/> has
singleton/conjoint inconsistency.</assert>
<let name="conjoins" value="@conjoins"/>
<assert test="not(@conjoins) or (../exon:folio[@xml:id=$conjoins])">Folio <value-of select="@xml:id"/> has no matching conjoint folio
(<value-of select="@conjoins"/>)</assert>
</rule>
</pattern>
<pattern id="checkHairFlesh">
<rule context="exon:folio">
<let name="conjoins" value="@conjoins"/>
<assert test="@hair='hf' or @hair='fh'">Hair value of <value-of select="@xml:id"/> must be 'hf' or 'fh'.</assert>
<assert test="@single='true' or (@hair != ../exon:folio[@xml:id=$conjoins]/@hair)">Bifolium <value-of select="@xml:id"/>–<value-of
select="$conjoins"/> has inconsistent <value-of select="@hair"/> sides.</assert>
</rule>
</pattern>
<!-- Check consistency of ruling. The Rules allows for individual bifolia within a gathering to be ruled separately, unless the ruling is specified at Gathering level. -->
<!-- I'm sure this could be simplified using abstract rules, and some of them are probably redundant as well. -->
<pattern id="checkRuling">
<rule context="exon:folio[@single='false']">
<let name="conjoins" value="@conjoins"/>
<assert test="(@ruled != 'before') or (@ruled = ../exon:folio[@xml:id=$conjoins]/@ruled)">One leaf of bifolium <value-of select="@xml:id"
/>–<value-of select="$conjoins"/> is ruled before folding but the other is not.</assert>
</rule>
</pattern>
<!-- Check consistency of text -->
<pattern id="checkSurfaceGroups">
<rule context="tei:surfaceGrp[@type='folio']">
<assert test="count(tei:surface[@type='page']) = 2">Folio <value-of select="@xml:id"/> has <value-of
select="count(tei:surface[@type='page'])"/> pages.</assert>
<report test="descendant::tei:surfaceGrp">Folio <value-of select="@xml:id"/> contains further surface groups of type <value-of
select="descendant::tei:surfaceGrp/@type"/>.</report>
<!-- Check that the folio does correspond to something valid -->
<let name="corresp" value="@corresp"/>
<assert test="not(@corresp) or (//exon:folio[@xml:id= substring-after($corresp, '#')])">Folio <value-of select="@xml:id"/> has
invalid@corresp pointer (<value-of select="@corresp"/>).</assert>
<let name="corresp" value="@corresp"/>
<!-- Check that no two surfaceGrps correspond to the same exon:folio -->
<assert test="count(//tei:surfaceGrp[@type='folio' and @corresp=$corresp])=1">Folios <value-of
select="//tei:surfaceGrp[@type='folio' and @corresp=$corresp]/@xml:id"/> correspond to the same exon:folio <value-of
select="$corresp"/>.</assert>
<!-- Check that conjoint folis are indeed conjoint -->
<let name="conjoint" value="//exon:folio[@xml:id= substring-after($corresp, '#')]/@conjoins"/>
<assert
test="(//exon:folio[@xml:id= substring-after($corresp, '#')]/@single='true') or (../tei:surfaceGrp[@type='folio' and @corresp=concat('#',$conjoint)])"
>Folios <value-of select="$corresp"/> and <value-of select="$conjoint"/> should be conjoint.</assert>
</rule>
<rule context="tei:surfaceGrp[@type='bifolium']">
<assert test="count(tei:surfaceGrp[@type='folio']) = 2">Bifolium <value-of select="@xml:id"/> has <value-of
select="count(tei:surfaceGrp[@type='folio'])"/> folios.</assert>
</rule>
<rule context="tei:surfaceGrp[@type='singleton']">
<assert test="count(tei:surfaceGrp[@type='folio']) = 1">Singleton <value-of select="@xml:id"/> has <value-of
select="count(tei:surfaceGrp[@type='folio'])"/> folios.</assert>
</rule>
</pattern>
</schema>
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="codicology-tei.sch" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:exon="http://exondomesday.ac.uk">
<teiHeader>
<fileDesc>
<titleStmt>
<title>Exon Codicology Proof of Concept</title>
</titleStmt>
<publicationStmt>
<p>Proof-of-concept for Exon codicology model.</p>
</publicationStmt>
<sourceDesc>
<msDesc>
<msIdentifier>
<msName>The Manuscript</msName>
</msIdentifier>
<physDesc>
<objectDesc>
<supportDesc>
<collation>
<exon:quire n="1" xml:id="q1">
<exon:folio xml:id="1a1" n="1" conjoins="2b1" single="false" ruled="before" hair="hf"/>
<exon:folio xml:id="1b1" n="2" single="true" ruled="unruled" hair="fh"/>
<exon:folio xml:id="2a1" n="3" single="true" ruled="after" hair="hf"/>
<exon:folio xml:id="2b1" n="4" conjoins="1a1" single="false" ruled="before" hair="fh"/>
</exon:quire>
<exon:quire n="2">
<exon:folio xml:id="3a1" n="1" conjoins="4b1" single="false" ruled="before" hair="hf"/>
<exon:folio xml:id="3b1" n="2" conjoins="4a1" single="false" ruled="unruled" hair="fh"/>
<exon:folio xml:id="4a1" n="3" conjoins="3b1" single="false" ruled="after" hair="hf"/>
<exon:folio xml:id="4a1*" n="3*" single="true" ruled="" hair="hf"/>
<exon:folio xml:id="4b1" n="4" conjoins="3a1" single="false" ruled="before" hair="fh"/>
</exon:quire>
</collation>
</supportDesc>
</objectDesc>
</physDesc>
</msDesc>
</sourceDesc>
<profileDesc>
<listTranspose resp="PAS">
<transpose>
<ptr target="#1b1"/>
<ptr target="#2a1"/>
<ptr target="#3b1"/>
<ptr target="#2b1"/>
<ptr target="#1b1"/>
<ptr target="#4a1*"/>
<ptr target="#3a1"/>
<ptr target="#4b1"/>
<ptr target="#4a1"/>
</transpose>
</listTranspose>
</profileDesc>
</fileDesc>
</teiHeader>
<sourceDoc>
<surfaceGrp type="quire" corresp="#q1">
<surfaceGrp type="bifolium">
<surfaceGrp type="folio" corresp="#1a1">
<surface type="page">
<zone xml:id="p1" next="#p2">In hundreto festesfelt sunt .xi. hidae &amp; dimidia uirga. De his habent barones regis in dominio
.iiii. hidas &amp; .i. uirgam. Inde habet hunfridus de insula .ii. hidas. Ricardus estormit .i. hidam. Otre .i. hidam. Aldret .i.
uirgam. &amp; pro .vii. hidis dimidia uirga minus habuit rex .xii. solidos. &amp; .ii. denarios. Illi etiam qui collegerunt
geldum reddiderunt modo denarium .i. qui remanserat. § In hundreto dolesfelt sunt .lxvii. hidae &amp; dimidia. 7 dimidia. uirga.
Inde habent barones in dominio .xxxv. hidas. &amp; .i. uirgam &amp; dimidiam. Eduuardus uicecomes .vii. hidas. Osbernus. Gifart
.xiv. hidas. 7 .i. uirgam. Abbatissa uuiltone .iii. hidas. Matias de Mauritania .ii. hidas &amp; dimidiam. Codulfus .v. hidas
7.dimidiam. 7.dimidiam uirgam. Abbas uuintoniensis .i. hidam. Rotbertus mariscalcus .i. hidam &amp; .iii. uirgas &amp; dimidiam.
&amp; pro .xxxii. hidis. &amp; .i. uirga. &amp; .i. agro. reddite sunt regi .ix. librae &amp; .xiii. solidi &amp; .vii. denarii.
sed de illis denariis qui debuerunt reddi in primo termino non fuerunt redditi .x. solidi usque ad extremum terminum.</zone>
</surface>
<surface type="page">
<zone xml:id="p2" prev="#p1" next="">§ In hundreto canenge sunt .lxx. hidae. Inde. Osmundus. episcopus habet in dominio .x. hidas.
&amp; pro .lx. hidis sunt reddite regi .xviii. librae . § In hundreto uueruesdone sunt .lxx. &amp; .viii. hidae De his habent
barones in dominio .xxi. hidas 7 dimidiam. &amp; dimidiam uirgam. Abbatissa rummesei .xi. hidas. Arnulfus de hesdinc .vi. hidas
&amp; .i. uirgam. Bristricus .iii. hidas &amp; dimidiam &amp; dimidiam uirgam. herueius uuiltone .iii. uirgas &amp; .i. agrum.
&amp; pro .lvi. hidis &amp; .i. uirga &amp; dimidia sunt reddite regi .xvi. librae &amp; .xviii. solidi &amp; .iii.
denarii.</zone>
</surface>
</surfaceGrp>
<surfaceGrp type="singleton">
<surfaceGrp type="folio" corresp="#1b1">
<surface type="page">
<zone xml:id="p3" next="">§ In hundreto cicimethorne sunt .c. lxix. hidae &amp; dimidia. Inde habent barones in dominio .lxx.
&amp; .vi. hidas &amp; dimidiam. &amp; dimidiam. uirgam. Abbas malmesberiensis .lxvi. hidas &amp; dimidiam Bristricus .vii.
hidas. Rotbertus nepos gloecestre .iii. hidas &amp; dimidiam. uirgam. de quibus retinuit geldum. &amp; pro .lxxxxiii. hidis.
dimidia. uirga minus sunt reddite regi in constitutis terminis .xxvii. librae &amp; .iii. solidi &amp; .iii. denarii. &amp;
suƥer eos qui collegerunt geldum recuƥerauerunt Walterus &amp; focii eius .v. solidos &amp; .iii. denarios. exceptis .{viii}.
solidis &amp; .ix. denariis quos inuenerunt. episcopus &amp; socii eius.</zone>
</surface>
<surface type="page">
<zone xml:id="p4" prev="#g1p1z2">§ In hundreto Aluuartberie sunt .lxv. hidae &amp; .i. uirga &amp; dimidia. Inde habent barones
in dominio .xxix. hidas. &amp; dimidiam. &amp; .i. uirgam .iii. agras minus. AbbasGlastingeberie .v. hidas &amp; .i. uirgam
&amp; dimidiam. Eduuardus uicecomes .i. hidam. Vluricus .i. hidam. Godescalcus .ii. hidas &amp; dimidiam uirgam. Aldredus .i.
hidam &amp; dimidiam uirgam. Saricus .i. hidam &amp; dimidiam uirgam. Gaufridus episcopus .i. hidam &amp; dimidiam. Eduuardus
.ii. hidas quas rex accepit de eo. Suauinc .i. uirgam. Vluietus dimidiam hidam. Comes moritonii .iii. hidas. Eduuardus
presbiter .iii. hidas. Ediua .ii. hidas. Walerannus .ii. hidas &amp; .i. uirgam &amp;. dimidiam. Cola .i. hidam. Goscelinus
.i. uirgam. Gode- man .i. uirgam. Nigellus dimidiam uirgam. Eded .i. hidam. dimidiam uirgam minus. Osbernus .i. hidam. &amp;
pro .xxxv. hidis &amp; dimidia. &amp; dimidia uirga sunt reddite regi .x. librae &amp; .xiiii. solidi.</zone>
</surface>
</surfaceGrp>
</surfaceGrp>
<surfaceGrp type="singleton">
<surfaceGrp type="folio" corresp="#2a1">
<surface type="page">
<zone xml:id="p5" next="">§ In hundreto brencesberge sunt. c. &amp; .viii. hidae. &amp;. dimidia. Ex his habent barones in
dominio .xxxvi. hidas. &amp; .iii. uirgas &amp;. dimidiam .iii. agros minus. .Osbernus. gifart .ix. hidas. Walchelinus
episcopus .iii. hidas. &amp; dimidiam. Abbatissa uuiltone .x. hidas &amp; .iii. uirgas. Walerannus .v. hidas. Comes moritonii
.iiii. hidas &amp; .i. uirgam &amp; .iii. agros. Suenus .ii. hidas &amp;. dimidiam. Rotbertus dispensator .i. hidam &amp;
.iii. uirgas &amp;. dimidiam. &amp; pro .lxxi. hidis &amp; .i. uirga &amp;. dimidia. sunt reddite regi .xxi. librae &amp;
.viii. solidi &amp; .vi. denarii Sed de his denariis non fuerunt redditi .xii. denarios usque modo.</zone>
</surface>
<surface type="page">
<zone xml:id="p6" prev="#g1p1l2">Odo. debet .l. &amp; .ii. solidos &amp; .vi. denarios. Serlo de burceio debet .xxv. solidos
&amp; .vi. denarios. Homo Wadardi debet .vi. solidos. Osbernus est fideiussor eius. homo alueredi debet .iii. solidos &amp;
.ix. denarios &amp; turstinus est fideiussor. </zone>
</surface>
</surfaceGrp>
</surfaceGrp>
<surfaceGrp type="folio" corresp="#2b1">
<surface type="page">
<zone xml:id="p7" next="">§ In hondreto. de Ferstesfelt. sunt .xi. hidae. 7 dimidia. virga. de his habent barones regis. in dominio
.iiii. hidas. 7 i. uirgam. de hoc dominio. habet honfredus. de insula .ii. hidas. Ricardus. estormit .i. hidam. Otre .i. hidam.
Aldret .i. uirgam. &amp; pro vii. hidis dimidia. uirga. minus. habuit rex .xli. solidos. 7 .ii. denarios. Collectores huius
Gildi. retinuerunt .i. denarium.</zone>
</surface>
<surface type="page">
<zone xml:id="p8" prev="#g1p1l2">§ In hundreto de calna sunt .lxxxx. 7 .i. hidae {Barones .xxvi. hidas 7 dimidiam. 7 duas partes
{.i.) uirgae} de his habet Rex de terra reginae edit .x. hidas in dominio. Eduuardus uicecomes .v. hidas. Abbatissa de Wiltonia
.i. hidam Ricardus puinant .ii. hidas 7 dimidia. Aluerdus de ispania .iii. hidas 7 dimidiam. 7 .i. uirgam. Vxor Edrici .i. hidam.
7 .i. uirgam. Gunfridus maledoctus .ii. hidas. 7 .vii. acros. Nigellus presbiter .i. hidam. 7 pro .l. hidis 7 .iii. uirgis 7
.iii. acris. sunt reddite regi .xv. librae. 7. v. solidi. &amp; {:} in hundreto de cepeham receƥerunt collectores geldi .xxi.
solidos. pro .iii. hidis 7 dimidia. De hundreto de calna qus retinuerunt.</zone>
</surface>
</surfaceGrp>
</surfaceGrp>
</surfaceGrp>
<surfaceGrp type="quire" corresp="#q2">
<surfaceGrp type="bifolium">
<surfaceGrp type="folio" corresp="#3a1">
<surface type="page">
<zone xml:id="p9" next="#p2">§ In hondreto. de Chalenga. sunt .lxx. hidae. Inde habet Osmundus episcopus .x. hidas. in dominio. 7
pro .lx. hidis reddite sunt regi .xviii. librae</zone>
</surface>
<surface type="page">
<zone xml:id="p10" prev="#p1" next="">§ In hondreto. de stophalde sunt .lxxxxiiii. hidae. 7 .i. uirga. De his hnt barones. regis xl
i. [---]. hidas. {7 .iii. uirgas 7 dimidiam} in dominio. Inde habet Abbatissa. de Wintonia .x. hidas. 7 dimidiam. honfridus
.iiii. hidas. Eduuardus uicecomes .iiii. hidas. &amp; de his tenent ad gablam .iii. tegni .i. hidam. 7 dimidiam. virgam. qui
prius tenuerunt eas. Estrit .i. hidam. 7 dimidiam. Alueredus .viii. hidas. 7 dimidiam. Durandus gloecestre .vii. hidas. 7
dimidiam. Comes Moritoniae .vii. hidas. 7 pro .li. hidis. 7 .i. uirga. sunt reddite regi .xv. librae. 7 .vii. solidi. 7 .vii.
denarii.</zone>
</surface>
</surfaceGrp>
<surfaceGrp type="singleton">
<surfaceGrp type="stub">
<surface type="stub">
<zone/>
</surface>
<surface type="stub">
<zone>[Traces of writing</zone>
</surface>
</surfaceGrp>
<surfaceGrp type="bifolium">
<surfaceGrp type="folio" corresp="#3b1">
<surface type="page">
<zone xml:id="p11" next="">§ In hundreto de denelau. sunt .xxviii. hidae. Inde habent barones in dominio .iiii. hidas. de his
habet Hermanus in dominio .ii. hidas. Rogerus .ii. hidas. 7 pro .xxiiii. hidis redditae sunt regi .vii. librae. 7 iiii
solidi.</zone>
</surface>
<surface type="page">
<zone xml:id="p12" prev="#g1p1l2">§ In hundreto de blachegraua sunt. c. 7 .lxv. hidae {ϛ 7 dimidia uirga.} De his habent
Barones regis .lxxi. hidas. 7 dimidia uirga [---] Episcopus Wintoniensis .xv. hidas. Aldredus frater odonis .viii. hidas De
terra Alberici comitis .xxiiii. hidas. Gislebtus de breteuilla .viii. hidas. Milo crispinus .vi. hidas. Alueredus de
merleberga .iii. hidas. Wadard .i. hidas. Odinus camerarius .vi. hidas Aluericus paruus dimidiam hidam. Wluricus .i. uirgam
Alnotus dimidiam uirgam. Raginaldus canutus de terra milonis dimidiam hidam Alduuinus 7 frater eius dimidiam hidam 7
dimidiam uirgam quam tenent de alueredo. Wluricus .i. uirg.am.7 pro .lxxxxi. hidis 7 .iii. uirgis 7 dimidia redditae sunt
regi .xxvii. librae 7 .x. solidi 7 .vi. denarii.</zone>
</surface>
</surfaceGrp>
<surfaceGrp type="folio" corresp="#4a1">
<surface type="page">
<zone xml:id="p13" next="">§ [---] In sancto eduuardo erant die obitus. Edwardi. regis .c. &amp; .iiii. domus. in dominicatu
regis qui reddebant geldum. De his. c. &amp; .iiii. sunt modo lx.vi. stantes in uir tute. &amp; .xxxviii. sunt penitus
destructae. a tempore. hugonis uicecomitis usque nunc.</zone>
</surface>
<surface type="page">
<zone xml:id="p14" prev="#g1p1l2">§ In dorecestra erant. c.lxxii. domus ea die qua rex. Edwardus. fuit. uiuus. &amp;. mortuus.
&amp; reddiderunt gildum tempore. Edwardi regis. pro .x. hidis. scilicet .i. marcam. argenti. ad opus huscarlorum. &amp; ad
omne seruitium regis. defenderunt se pro .x. hidis. Exceptis consuetudinibus quae ƥertinent ad firmam noctis. &amp; de his.
c .lxxii. domus. sunt adhuc. lxxx. , {, viii.} stantes. &amp;. c. sunt penitus destructae. a tempore hugonis uicecomitis
usque nunc. Et ibi erant .ii. monetarii tempore. Edwardi regis quorum quisque reddebat .i. marcam argenti regi &amp; .xx.
solidos. quando moneta uertebatur.</zone>
</surface>
</surfaceGrp>
</surfaceGrp>
<surfaceGrp type="folio" corresp="#4a1*">
<surface type="page"><zone>[Empty stub]</zone></surface>
<surface type="page"><zone>[Empty stub]</zone></surface>
</surfaceGrp>
</surfaceGrp>
<surfaceGrp type="folio" corresp="#4b1">
<surface type="page">
<zone xml:id="p15" next="">§ In brideporta erant. c. &amp; xx domus ea die qua rex. Edwardus. fuit. uiuus. &amp;. mortuus. &amp; red
diderunt gildum tempore. Edwardi regis. pro .v. hidis. scilic&amp; dimidiam marcam argenti ad opus huscarlorum. &amp; ad omne
seruitium regis defenderunt se pro .v. hidis. exceptis consuetudinibus quae ƥertinent ad firmam noctis. &amp; de his. c. &amp;
.xx. domibus sunt adhuc. c. stantes. &amp; .xx. ex his. {domibus} {ita sunt adnichilate quod} c. homines qui intus manent non
habent unde reddent nullum geldum. Et .xx. sunt {domus} penitus destructae. a tempore hugonis uicecomitis usque nunc. Et ibi fuit
.i. monetarius tempore Edwardi regis qui reddebat .i. marcam argenti regi &amp; .xx. solidos. quando moneta uertebatur.</zone>
</surface>
<surface type="page">
<zone xml:id="p16" prev="#g1p1l2">§ In Warham erant. c. &amp; xl.iii. domus ea die qua rex. Edwardus. fuit. uiuus. &amp;. mortuus.
in dominicatu regis quae reddebant geldum. De his. c xl .iii. domibus sunt adhuc .lxx. stantes. &amp; .lxxiii. sunt penitus
destructae. a tempore hugonis uice-comitis usque nunc. De parte Abbatis sancti Wandregisili sunt .xl. v. stantes &amp; .xvii.
destructae. Et de partibus aliorum baronum regis sunt .xx. domus stantes. &amp; .lx. penitus destructe. haec uilla reddidit
geldum tempore regis. Edwardi. pro .x. hidis. scilicet .i. marcam argenti ad opus huscarlorum &amp; ad omne seruitium regis
defendit se pro .x. hidis. exceptis consuetudinibus quae ƥertinent ad firmam noctis. Et ibi erant .ii. monetarii. tempore regis.
Edwardi. quorum quisque redde bat .i. marcam argenti regi. &amp; .xx. solidos. quando moneta uertebatur.</zone>
</surface>
</surfaceGrp>
</surfaceGrp>
</surfaceGrp>
</sourceDoc>
</TEI>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment