[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Full Bible (Old Testament) concordance in XSLT 2.0 (Wa
Here's the code of my full Concordance solution. At the moment it will process any word longer than three characters with frequency count in the document not exceeding a given frequency count parameter. The first step is to produce a word-frequency list, sorted alphabetically. It is used by the next step of the solution to efficiently determine the frequency of any word in order to decide whether this word should be processed. Here a modification of the FXSL binSearch() function -- binRetrieve() is used. It not only determines if a given value is in a sorted list of values, but returns the hit from the list. In this way we find the word as fast as possible and get the frequency as a sibling attribute. The code below should be quite self-explaining: testConcordance2.xsl ================= <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:f="http://fxsl.sf.net/" exclude-result-prefixes="f xs" > <xsl:import href="../f/func-binRetrieve.xsl"/> <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:template match="/"> <xsl:variable name="vOccurences" as="element()*"> <xsl:perform-sort select= "f:allWords(/tstmt/bookcoll/book /chapter/(.|div) /v/text(), f:wordFreq(/tstmt/bookcoll/book /chapter/(.|div) /v/text() ), 1280 )"> <xsl:sort select="@str"/> </xsl:perform-sort> </xsl:variable> <concordance> <xsl:for-each-group select="$vOccurences/@str" group-by="."> <xsl:sort select="current-grouping-key()"/> <w t="{current-grouping-key()}"> <xsl:for-each select="current-group()"> <xsl:sequence select= "concat(../@b,'+',../@c,'+',../@v, if(position()ne last()) then ',' else () )"/> </xsl:for-each> </w> </xsl:for-each-group> </concordance> </xsl:template> <xsl:function name="f:allWords" as="element()*"> <xsl:param name="pNodes" as="node()*"/> <xsl:param name="pUniqWrdFreq" as="item()*"/> <xsl:param name="pmaxFreq" as="xs:integer"/> <xsl:sequence select= "for $vNode in $pNodes, $w in tokenize(string($vNode), '[\s.?!,;:\-\+()]+') [. and string-length(.) gt 3 and f:binRetrieve($pUniqWrdFreq/@t, string(.) ) /../@f/xs:integer(.) le $pmaxFreq ] return f:wordInfo($vNode, $w)" /> </xsl:function> <xsl:function name="f:wordInfo" as="element()"> <xsl:param name="pNode" as="node()"/> <xsl:param name="pWord" as="xs:string"/> <w str="{lower-case($pWord)}" b="{substring($pNode/ancestor::book[1]/bktshort,1,3)}" c="{count($pNode/ancestor::chapter[1] /preceding-sibling::chapter)+1}" v="{count($pNode/ancestor-or-self::v[1]/preceding-sibling::v)+1}"/> </xsl:function> <xsl:function name="f:wordFreq" as="element()*"> <xsl:param name="pNodes" as="node()*"/> <xsl:for-each-group group-by="." select= "for $vNode in $pNodes, $w in tokenize(string($vNode), '[\s.?!,;:\-\+()]+')[.] return lower-case($w)" > <xsl:sort select="current-grouping-key()" /> <w t="{current-grouping-key()}" f="{count(current-group())}"/> </xsl:for-each-group> </xsl:function> </xsl:stylesheet> When this transformation is applied on the xml-ised text of the Old Testament (ommitted for brevity), the result produced had these time/space details: Max-Word-Freq. Time (ms) Memory (Saxon8.6) Memory (Win Task Manager) ================================================================ 1280 91828 499MB 579MB This was run using Saxon 8.6 on my 3GHz, 2GB Pentium IV PC. The code above is 95 lines long and this itself should speak enough about the suitability and power of the XSLT 2.0 programming language for string processing. We all need to thank Michael Kay for the incredible performance boost achieved in Saxon 8.6. What takes 1 1/2 (one and a half) minute with Saxon 8.6 takes many hours (killed it after 1.5 hours) with the previous version of Saxon. For completeness, here's the code of the FXSL binRetrieve() function: func-binRetrieve.xsl =============== <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:f="http://fxsl.sf.net/" exclude-result-prefixes="f xs" > <xsl:import href="../f/func-apply.xsl"/> <xsl:function name="f:binRetrieve" as="item()?"> <xsl:param name="pSeq" as="item()+"/> <xsl:param name="pVal" as="item()"/> <xsl:sequence select="f:binRetrieve($pSeq,$pVal,1,count($pSeq))"/> </xsl:function> <xsl:function name="f:binRetrieve" as="item()?"> <xsl:param name="pEq" as="element()?"/> <xsl:param name="pLt" as="element()?"/> <xsl:param name="pSeq" as="item()+"/> <xsl:param name="pVal" as="item()"/> <xsl:param name="pStart" as="item()"/> <xsl:param name="pEnd" as="item()"/> <xsl:sequence select= "if($pStart gt $pEnd) then () else if(empty(($pEq, $pLt)[2])) then f:binRetrieve($pSeq, $pVal, $pStart, $pEnd) else for $mid in ($pStart + $pEnd) idiv 2, $sVal in $pSeq[$mid] return if(f:apply($pEq,$sVal,$pVal) = true()) then $pSeq[$mid] else if(f:apply($pLt,$sVal,$pVal) = true()) then f:binRetrieve($pEq,$pLt,$pSeq,$pVal,$mid+1,$pEnd) else f:binRetrieve($pEq,$pLt,$pSeq,$pVal,$pStart,$mid - 1) " /> </xsl:function> <xsl:function name="f:binRetrieve" as="item()?"> <xsl:param name="pSeq" as="item()+"/> <xsl:param name="pVal" as="item()"/> <xsl:param name="pStart" as="item()"/> <xsl:param name="pEnd" as="item()"/> <xsl:sequence select= "if($pStart gt $pEnd) then () else for $mid in ($pStart + $pEnd) idiv 2, $sVal in $pSeq[$mid] return if($sVal eq $pVal) then $pSeq[$mid] else if($sVal lt $pVal) then f:binRetrieve($pSeq, $pVal, $mid+1, $pEnd) else f:binRetrieve($pSeq, $pVal, $pStart, $mid - 1) "/> </xsl:function> </xsl:stylesheet> And finally, the first screen of the generated concordance :o) : <concordance> <w t="abase">Job+40+11, Isa+31+4, Eze+21+26, Dan+4+37</w> <w t="abated">Gen+8+3, Gen+8+8, Gen+8+11, Lev+27+18, Deu+34+7, Jud+8+3</w> <w t="abhor">Lev+26+11, Lev+26+15, Lev+26+30, Lev+26+44, Deu+7+26, Deu+23+7, Deu+23+7, 1 S+27+12, Job+9+31, Job+30+10, Job+42+6, Psa+5+6, Psa+119+3, Pro+24+24, Jer+14+21, Amo+5+10, Amo+6+8, Mic+3+9</w> <w t="abhorred">Exo+5+21, Lev+20+23, Lev+26+43, Deu+32+19, 1 S+2+17, 2 S+16+21, 1 K+11+25, Job+19+19, Psa+22+24, Psa+78+59, Psa+89+38, Psa+106+40, Pro+22+14, Lam+2+7, Eze+16+25, Zec+11+8</w> <w t="abhorrest">Isa+7+16</w> <w t="abhorreth">Job+33+20, Psa+10+3, Psa+36+4, Psa+107+18, Isa+49+7</w> <w t="abhorring">Isa+66+24</w> <w t="abide">Gen+19+2, Gen+24+55, Gen+29+19, Gen+44+33, Exo+16+29, Lev+8+35, Lev+19+13, Num+22+5, Num+31+19, Num+31+23, Num+35+25, Deu+3+19, Jos+18+5, Jos+18+5, Rut+2+8, 1 S+1+22, 1 S+5+7, 1 S+19+2, 1 S+30+21, 2 S+11+11, 2 S+15+19, 2 S+16+18, 1 K+8+13, 2 C+25+19, 2 C+32+10, Job+24+13, Job+38+40, Job+39+9, Psa+15+1, Psa+61+4, Psa+61+7, Psa+91+1, Pro+7+11, Pro+19+23, Ecc+8+15, Jer+10+10, Jer+42+10, Jer+49+18, Jer+49+33, Jer+50+40, Hos+3+3, Hos+3+4, Hos+11+6, Joe+2+11, Mic+5+4, Nah+1+6, Mal+3+2</w> <w t="abideth">Num+31+23, 2 S+16+3, Job+39+28, Psa+49+12, Psa+55+19, Psa+119+2, Psa+125+1, Pro+15+31, Ecc+1+4, Jer+21+9</w> <w t="abiding">Num+24+2, Jud+16+9, Jud+16+12, 1 S+26+19, 1 C+29+15</w> <w t="ability">Lev+27+8, Ezr+2+69, Neh+5+8, Dan+1+4</w> <w t="abjects">Psa+35+15</w> <w t="able">Gen+13+6, Gen+15+5, Gen+33+14, Exo+10+5, Exo+18+18, Exo+18+21, Exo+18+23, Exo+18+25, Exo+40+35, Lev+5+7, Lev+5+11, Lev+12+8, Lev+14+22, Lev+14+31, Lev+14+32, Lev+25+26, Lev+25+28, Lev+25+49, Num+1+3, Num+1+20, Num+1+22, Num+1+24, Num+1+26, Num+1+28, Num+1+30, Num+1+32, Num+1+34, Num+1+36, Num+1+38, Num+1+40, Num+1+42, Num+1+45, Num+11+14, Num+13+30, Num+13+31, Num+14+16, Num+22+11, Num+22+37, Num+26+2, Deu+1+9, Deu+7+24, Deu+9+28, Deu+11+25, Deu+14+24, Deu+16+17, Jos+1+5, Jos+14+12, Jos+23+9, Jud+8+3, 1 S+6+20, 1 S+17+9, 1 S+17+33, 1 K+3+9, 1 K+9+21, 2 K+3+21, 2 K+18+23, 2 K+18+29, 1 C+5+18, 1 C+9+13, 1 C+26+8, 1 C+29+14, 2 C+2+6, 2 C+7+7, 2 C+20+6, 2 C+20+37, 2 C+25+5, 2 C+25+9, 2 C+32+13, 2 C+32+14, 2 C+32+15, Ezr+10+13, Neh+4+10, Job+41+10, Psa+18+38, Psa+21+11, Psa+36+12, Psa+40+12, Pro+27+4, Ecc+8+17, Isa+36+8, Isa+36+14, Isa+47+11, Isa+47+12, Jer+10+10, Jer+11+11, Jer+49+10, Lam+1+14, Eze+7+19, Eze+33+12, Eze+46+5, Eze+46+11, Dan+2+26, Dan+3+17, Dan+4+18, Dan+4+18, Dan+4+37, Dan+6+20, Amo+7+10, Zep+1+18</w> <w t="abode">Gen+29+14, Gen+49+24, Exo+24+16, Exo+40+35, Num+9+17, Num+9+18, Num+9+20, Num+9+21, Num+9+22, Num+11+35, Num+20+1, Num+22+8, Num+25+1, Deu+1+46, Deu+1+46, Deu+3+29, Deu+9+9, Jos+2+22, Jos+5+8, Jos+8+9, Jud+5+17, Jud+5+17, Jud+11+17, Jud+19+4, Jud+20+47, Jud+21+2, 1 S+1+23, 1 S+7+2, 1 S+13+16, 1 S+22+6, 1 S+23+14, 1 S+23+18, 1 S+23+25, 1 S+25+13, 1 S+26+3, 1 S+30+10, 2 S+1+1, 2 S+11+12, 2 S+15+8, 1 K+17+19, 2 K+19+27, Ezr+8+15, Ezr+8+32, Isa+37+28, Jer+38+28</w> <w t="abodest">Jud+5+16</w> <w t="abolish">Isa+2+18</w> <w t="abolished">Isa+51+6, Eze+6+6</w> <w t="abominable">Lev+7+21, Lev+11+43, Lev+18+30, Lev+19+7, Lev+20+25, Deu+14+3, 1 C+21+6, 2 C+15+8, Job+15+16, Psa+14+1, Psa+53+1, Isa+14+19, Isa+65+4, Jer+16+18, Jer+44+4, Eze+4+14, Eze+8+10, Eze+16+52, Mic+6+10, Nah+3+6</w> <w t="abominably">1 K+21+26</w> <w t="abomination">Gen+43+32, Gen+46+34, Exo+8+26, Exo+8+26, Lev+7+18, Lev+11+10, Lev+11+11, Lev+11+11, Lev+11+12, Lev+11+13, Lev+11+13, Lev+11+20, Lev+11+23, Lev+11+41, Lev+11+42, Lev+18+22, Lev+20+13, Deu+7+25, Deu+7+26, Deu+12+31, Deu+13+14, Deu+17+1, Deu+17+4, Deu+18+12, Deu+22+5, Deu+23+18, Deu+24+4, Deu+25+16, Deu+27+15, 1 S+13+4, 1 K+11+5, 1 K+11+7, 1 K+11+7, 2 K+23+13, 2 K+23+13, 2 K+23+13, Psa+88+8, Pro+3+32, Pro+6+16, Pro+8+7, Pro+11+1, Pro+11+20, Pro+12+22, Pro+13+19, Pro+15+8, Pro+15+9, Pro+15+26, Pro+16+5, Pro+16+12, Pro+17+15, Pro+20+10, Pro+20+23, Pro+21+27, Pro+24+9, Pro+28+9, Pro+29+27, Pro+29+27, Isa+1+13, Isa+41+24, Isa+44+19, Isa+66+17, Jer+2+7, Jer+6+15, Jer+8+12, Jer+32+35, Eze+16+50, Eze+18+12, Eze+22+11, Eze+33+26, Dan+11+31, Dan+12+11, Mal+2+11</w> <w t="abominations">Lev+18+26, Lev+18+27, Lev+18+29, Deu+18+9, Deu+18+12, Deu+20+18, Deu+29+17, Deu+32+16, 1 K+14+24, 2 K+16+3, 2 K+21+2, 2 K+21+11, 2 K+23+24, 2 C+28+3, 2 C+33+2, 2 C+34+33, 2 C+36+8, 2 C+36+14, Ezr+9+1, Ezr+9+11, Ezr+9+14, Pro+26+25, Isa+66+3, Jer+4+1, Jer+7+10, Jer+7+30, Jer+13+27, Jer+32+34, Jer+44+22, Eze+5+9, Eze+5+11, Eze+6+9, Eze+6+11, Eze+7+3, Eze+7+4, Eze+7+8, Eze+7+9, Eze+7+20, Eze+8+6, Eze+8+6, Eze+8+9, Eze+8+13, Eze+8+15, Eze+8+17, Eze+9+4, Eze+11+18, Eze+11+21, Eze+12+16, Eze+14+6, Eze+16+2, Eze+16+22, Eze+16+36, Eze+16+43, Eze+16+47, Eze+16+51, Eze+16+51, Eze+16+58, Eze+18+13, Eze+18+24, Eze+20+4, Eze+20+7, Eze+20+8, Eze+20+30, Eze+22+2, Eze+23+36, Eze+33+29, Eze+36+31, Eze+43+8, Eze+44+6, Eze+44+7, Eze+44+13, Dan+9+27, Hos+9+10, Zec+9+7</w> <w t="abound">Pro+28+20</w> <w t="aboundeth">Pro+29+22</w> <w t="abounding">Pro+8+24</w> <w t="about">Gen+23+17, Gen+35+5, Gen+37+7, Gen+38+24, Gen+39+11, Gen+41+25, Gen+41+28, Gen+41+42, Gen+41+48, Gen+42+24, Gen+46+34, Exo+7+24, Exo+9+18, Exo+12+37, Exo+13+18, Exo+16+13, Exo+19+12, Exo+19+23, Exo+25+11, Exo+25+24, Exo+25+25, Exo+25+25, Exo+27+17, Exo+28+32, Exo+28+33, Exo+28+33, Exo+28+34, Exo+29+16, Exo+29+20, Exo+30+3, Exo+30+3, Exo+32+28, Exo+37+2, Exo+37+11, Exo+37+12, Exo+37+12, Exo+37+26, Exo+37+26, Exo+38+16, Exo+38+20, Exo+38+31, Exo+38+31, Exo+39+23, Exo+39+25, Exo+39+26, Exo+40+8, Exo+40+33, Lev+1+5, Lev+1+11, Lev+3+2, Lev+3+8, Lev+3+13, Lev+6+5, Lev+7+2, Lev+8+15, Lev+8+19, Lev+8+24, Lev+9+12, Lev+9+18, Lev+14+41, Lev+16+18, Lev+25+31, Lev+25+44, Num+1+50, Num+1+53, Num+2+2, Num+3+26, Num+3+37, Num+4+4, Num+4+14, Num+4+26, Num+4+32, Num+11+8, Num+11+24, Num+11+31, Num+11+32, Num+16+24, Num+16+34, Num+16+49, Num+22+4, Num+32+33, Num+34+12, Num+35+2, Num+35+4, Deu+6+14, Deu+12+10, Deu+13+7, Deu+17+14, Deu+21+2, Deu+25+19, Deu+31+21, Deu+32+10, Jos+2+5, Jos+3+4, Jos+6+3, Jos+6+11, Jos+6+15, Jos+7+3, Jos+7+4, Jos+7+5, Jos+8+12, Jos+10+13, Jos+11+6, Jos+15+12, Jos+16+6, Jos+18+20, Jos+19+8, Jos+21+11, Jos+21+42, Jos+21+44, Jos+23+1, Jud+2+12, Jud+2+14, Jud+3+29, Jud+7+21, Jud+8+10, Jud+8+26, Jud+9+49, Jud+16+27, Jud+17+2, Jud+19+22, Jud+20+5, Jud+20+29, Jud+20+31, Jud+20+39, Jud+20+43, Rut+1+4, Rut+1+19, Rut+2+17, 1 S+1+20, 1 S+4+2, 1 S+4+20, 1 S+5+8, 1 S+5+8, 1 S+5+9, 1 S+5+10, 1 S+9+13, 1 S+9+16, 1 S+9+22, 1 S+9+26, 1 S+13+15, 1 S+14+2, 1 S+14+14, 1 S+14+21, 1 S+15+12, 1 S+15+27, 1 S+17+42, 1 S+20+12, 1 S+21+5, 1 S+22+2, 1 S+22+6, 1 S+22+7, 1 S+22+17, 1 S+23+13, 1 S+23+26, 1 S+25+13, 1 S+25+38, 1 S+26+5, 1 S+26+7, 1 S+31+9, 2 S+3+12, 2 S+4+5, 2 S+5+9, 2 S+7+1, 2 S+14+20, 2 S+18+15, 2 S+20+26, 2 S+22+6, 2 S+22+12, 2 S+24+6, 1 K+2+5, 1 K+2+15, 1 K+3+1, 1 K+4+24, 1 K+4+31, 1 K+5+3, 1 K+6+5, 1 K+6+5, 1 K+6+5, 1 K+6+6, 1 K+6+29, 1 K+7+12, 1 K+7+15, 1 K+7+18, 1 K+7+20, 1 K+7+23, 1 K+7+23, 1 K+7+24, 1 K+7+24, 1 K+7+36, 1 K+8+14, 1 K+18+32, 1 K+18+35, 1 K+19+2, 1 K+20+6, 1 K+22+6, 1 K+22+36, 2 K+1+8, 2 K+3+25, 2 K+6+14, 2 K+6+17, 2 K+7+1, 2 K+7+18, 2 K+8+21, 2 K+11+7, 2 K+11+8, 2 K+11+11, 2 K+17+15, 2 K+23+5, 2 K+25+1, 2 K+25+4, 2 K+25+10, 2 K+25+17, 1 C+4+33, 1 C+6+55, 1 C+9+27, 1 C+10+9, 1 C+11+8, 1 C+11+8, 1 C+15+22, 1 C+18+17, 1 C+22+9, 1 C+28+12, 2 C+2+9, 2 C+4+2, 2 C+4+3, 2 C+4+3, 2 C+13+13, 2 C+14+7, 2 C+14+14, 2 C+15+15, 2 C+17+9, 2 C+17+10, 2 C+18+31, 2 C+18+34, 2 C+20+30, 2 C+23+2, 2 C+23+7, 2 C+23+10, 2 C+26+6, 2 C+33+14, 2 C+34+6, Ezr+1+6, Ezr+10+15, Neh+5+17, Neh+6+16, Neh+12+28, Neh+12+29, Neh+13+21, Job+1+5, Job+1+10, Job+1+10, Job+1+10, Job+8+17, Job+10+8, Job+11+18, Job+16+13, Job+19+12, Job+20+23, Job+22+10, Job+29+5, Job+30+18, Job+37+12, Job+40+22, Job+41+14, Psa+3+6, Psa+7+7, Psa+17+9, Psa+18+5, Psa+18+11, Psa+27+6, Psa+32+7, Psa+32+10, Psa+34+7, Psa+40+12, Psa+44+13, Psa+48+12, Psa+48+12, Psa+49+5, Psa+50+3, Psa+55+10, Psa+59+6, Psa+59+14, Psa+73+6, Psa+76+11, Psa+78+28, Psa+79+3, Psa+79+4, Psa+88+17, Psa+88+17, Psa+89+7, Psa+89+8, Psa+97+2, Psa+97+3, Psa+109+3, Psa+118+10, Psa+118+11, Psa+118+11, Psa+118+12, Psa+125+2, Psa+125+2, Psa+128+3, Psa+139+11, Psa+140+9, Psa+142+7, Pro+1+9, Pro+3+3, Pro+6+21, Pro+20+19, Ecc+1+6, Ecc+1+6, Ecc+2+20, Ecc+12+5, Son+3+2, Son+3+3, Son+3+7, Son+5+7, Son+7+2, Isa+3+18, Isa+15+8, Isa+23+16, Isa+26+20, Isa+28+27, Isa+29+3, Isa+42+25, Isa+49+18, Isa+50+11, Isa+60+4, Jer+1+15, Jer+2+36, Jer+4+17, Jer+6+3, Jer+12+9, Jer+14+18, Jer+17+26, Jer+21+14, Jer+25+9, Jer+31+22, Jer+31+39, Jer+32+44, Jer+33+13, Jer+41+14, Jer+46+5, Jer+46+14, Jer+48+17, Jer+48+39, Jer+49+5, Jer+50+14, Jer+50+15, Jer+50+29, Jer+50+32, Jer+51+2, Jer+52+4, Jer+52+7, Jer+52+14, Jer+52+22, Jer+52+23, Lam+1+17, Lam+2+3, Lam+2+22, Lam+3+7, Eze+1+4, Eze+1+18, Eze+1+27, Eze+1+27, Eze+1+28, Eze+4+2, Eze+5+2, Eze+5+5, Eze+5+6, Eze+5+7, Eze+5+7, Eze+5+12, Eze+5+14, Eze+5+15, Eze+6+5, Eze+6+13, Eze+8+10, Eze+8+16, Eze+10+12, Eze+11+12, Eze+12+14, Eze+16+10, Eze+16+37, Eze+16+57, Eze+16+57, Eze+23+24, Eze+27+11, Eze+27+11, Eze+28+24, Eze+28+26, Eze+31+4, Eze+32+22, Eze+32+23, Eze+32+24, Eze+32+25, Eze+32+26, Eze+34+26, Eze+36+4, Eze+36+7, Eze+36+36, Eze+37+2, Eze+40+5, Eze+40+14, Eze+40+16, Eze+40+16, Eze+40+17, Eze+40+25, Eze+40+29, Eze+40+30, Eze+40+33, Eze+40+36, Eze+40+43, Eze+41+5, Eze+41+6, Eze+41+7, Eze+41+7, Eze+41+7, Eze+41+8, Eze+41+10, Eze+41+11, Eze+41+12, Eze+41+16, Eze+41+16, Eze+41+17, Eze+41+19, Eze+42+15, Eze+42+16, Eze+42+17, Eze+42+19, Eze+42+20, Eze+43+12, Eze+43+13, Eze+43+17, Eze+43+17, Eze+43+20, Eze+45+1, Eze+45+2, Eze+45+2, Eze+46+23, Eze+46+23, Eze+46+23, Eze+47+2, Eze+48+35, Dan+5+7, Dan+5+16, Dan+5+29, Dan+5+31, Dan+9+16, Dan+9+21, Hos+7+2, Hos+11+12, Joe+3+11, Joe+3+12, Amo+3+11, Jon+2+3, Jon+2+5, Jon+2+5, Jon+2+5, Jon+2+6, Nah+3+8, Hab+1+4, Zec+2+5, Zec+7+7, Zec+9+8, Zec+12+2, Zec+12+6, Zec+14+14</w> <w t="above">Gen+1+7, Gen+1+20, Gen+3+14, Gen+3+14, Gen+6+16, Gen+7+17, Gen+27+39, Gen+28+13, Gen+48+22, Gen+49+25, Gen+49+26, Exo+18+11, Exo+19+5, Exo+20+4, Exo+25+21, Exo+25+22, Exo+26+14, Exo+26+24, Exo+28+27, Exo+28+28, Exo+29+13, Exo+29+22, Exo+30+14, Exo+36+19, Exo+39+20, Exo+39+21, Exo+40+19, Exo+40+20, Lev+3+4, Lev+3+10, Lev+3+15, Lev+4+9, Lev+7+4, Lev+8+16, Lev+8+25, Lev+9+10, Lev+9+19, Lev+11+21, Lev+27+7, Num+3+49, Num+4+25, Num+12+3, Num+16+3, Deu+4+39, Deu+5+8, Deu+7+6, Deu+7+14, Deu+10+15, Deu+14+2, Deu+17+20, Deu+25+3, Deu+26+19, Deu+28+1, Deu+28+13, Deu+28+43, Deu+30+5, Jos+2+11, Jos+3+13, Jos+3+16, Jud+5+24, Jud+5+24, 1 S+2+29, 2 S+22+17, 2 S+22+49, 1 K+7+3, 1 K+7+11, 1 K+7+20, 1 K+7+25, 1 K+7+29, 1 K+7+31, 1 K+8+7, 1 K+8+23, 1 K+14+9, 1 K+14+22, 1 K+16+30, 2 K+21+11, 2 K+25+28, 1 C+5+2, 1 C+16+25, 1 C+23+27, 1 C+27+6, 1 C+29+3, 1 C+29+11, 2 C+2+5, 2 C+4+4, 2 C+5+8, 2 C+11+21, 2 C+24+20, 2 C+25+5, 2 C+34+4, Neh+3+28, Neh+7+2, Neh+8+5, Neh+9+5, Neh+12+37, Neh+12+39, Neh+12+39, Neh+12+39, Est+2+17, Est+3+1, Est+5+11, Job+3+4, Job+18+16, Job+28+18, Job+31+2, Job+31+28, Psa+8+1, Psa+10+5, Psa+18+16, Psa+18+48, Psa+27+6, Psa+45+7, Psa+50+4, Psa+57+5, Psa+57+5, Psa+57+11, Psa+57+11, Psa+78+23, Psa+95+3, Psa+96+4, Psa+97+9, Psa+97+9, Psa+99+2, Psa+103+11, Psa+104+6, Psa+108+4, Psa+108+5, Psa+108+5, Psa+113+4, Psa+113+4, Psa+119+7, Psa+119+7, Psa+135+5, Psa+136+6, Psa+137+6, Psa+138+2, Psa+144+7, Psa+148+4, Psa+148+13, Pro+8+28, Pro+15+24, Pro+31+10, Ecc+2+7, Ecc+3+19, Isa+2+2, Isa+7+11, Isa+14+13, Isa+14+14, Isa+45+8, Jer+4+28, Jer+15+8, Jer+17+9, Jer+31+37, Jer+35+4, Jer+52+32, Lam+1+13, Eze+1+22, Eze+1+26, Eze+1+26, Eze+10+1, Eze+10+19, Eze+11+22, Eze+16+43, Eze+29+15, Eze+31+5, Eze+37+8, Eze+41+17, Eze+41+20, Dan+6+3, Dan+11+5, Dan+11+36, Dan+11+37, Amo+2+9, Mic+4+1, Nah+3+16</w> <w t="abroad">Gen+10+18, Gen+11+4, Gen+11+8, Gen+11+9, Gen+15+5, Gen+19+17, Gen+28+14, Exo+5+12, Exo+9+29, Exo+9+33, Exo+12+46, Exo+21+19, Exo+40+19, Lev+13+7, Lev+13+12, Lev+13+22, Lev+13+27, Lev+14+8, Lev+18+9, Num+11+32, Deu+23+10, Deu+23+12, Deu+23+13, Deu+24+11, Deu+24+11, Deu+32+11, Jud+12+9, Jud+12+9, 1 S+9+26, 1 S+30+16, 2 S+22+43, 1 K+2+42, 2 K+4+3, 1 C+13+2, 1 C+14+13, 2 C+26+8, 2 C+26+15, 2 C+29+16, 2 C+31+5, Neh+1+8, Est+1+17, Est+3+8, Job+4+11, Job+15+23, Job+40+11, Psa+41+6, Psa+77+17, Pro+5+16, Isa+24+1, Isa+28+25, Isa+44+24, Jer+6+11, Lam+1+20, Eze+34+21, Zec+1+17, Zec+2+6</w> <w t="absent">Gen+31+49</w> <w t="abundance">Deu+28+47, Deu+33+19, 1 S+1+16, 2 S+12+30, 1 K+1+19, 1 K+1+25, 1 K+10+10, 1 K+10+27, 1 K+18+41, 1 C+22+3, 1 C+22+3, 1 C+22+4, 1 C+22+14, 1 C+22+15, 1 C+29+2, 1 C+29+21, 2 C+1+15, 2 C+2+9, 2 C+4+18, 2 C+9+1, 2 C+9+9, 2 C+9+27, 2 C+11+23, 2 C+14+15, 2 C+15+9, 2 C+17+5, 2 C+18+1, 2 C+18+2, 2 C+20+25, 2 C+24+11, 2 C+29+35, 2 C+31+5, 2 C+32+5, 2 C+32+29, Neh+9+25, Est+1+7, Job+22+11, Job+36+31, Job+38+34, Psa+37+11, Psa+52+7, Psa+72+7, Psa+105+30, Ecc+5+10, Ecc+5+12, Isa+7+22, Isa+15+7, Isa+47+9, Isa+60+5, Isa+66+11, Jer+33+6, Eze+16+49, Eze+26+10, Zec+14+14</w> <w t="abundant">Exo+34+6, Isa+56+12, Jer+51+13</w> Cheers, Dimitre Novatchev --------------------------------------- To avoid situations in which you might make mistakes may be the biggest mistake of all.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|