<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.tei-c.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jensopetersen</id>
	<title>TEIWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tei-c.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jensopetersen"/>
	<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Special:Contributions/Jensopetersen"/>
	<updated>2026-04-21T17:15:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Milestone-chunk.xquery&amp;diff=14362</id>
		<title>Milestone-chunk.xquery</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Milestone-chunk.xquery&amp;diff=14362"/>
		<updated>2015-06-24T09:52:34Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: modifying original script to include xml attributes and empty elements like handShift&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Authorship ==&lt;br /&gt;
{| &lt;br /&gt;
| ''Author''&lt;br /&gt;
| David Sewell, University of Virginia, [mailto:dsewell@virginia.edu dsewell@virginia.edu]&lt;br /&gt;
|- &lt;br /&gt;
| ''Last revised''&lt;br /&gt;
| 2007-05-02&lt;br /&gt;
|-&lt;br /&gt;
| ''Previous version''&lt;br /&gt;
| none&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
This is an XQuery 1.0 function that will return all of the content between two milestone elements such as '''pb'''&lt;br /&gt;
while preserving the hierarchical structure of the containing elements. For example, given content like this in a TEI document:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;TEI&amp;gt;&lt;br /&gt;
  &amp;lt;text&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;div1 type=&amp;quot;chapter&amp;quot; n=&amp;quot;1&amp;quot;&amp;gt; &amp;lt;!-- lots of div2s --&amp;gt;&lt;br /&gt;
        &amp;lt;div2 xml:id=&amp;quot;doc100&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;An example&amp;lt;pb n=&amp;quot;3&amp;quot;/&amp;gt;of a &amp;lt;i&amp;gt;very&amp;lt;/i&amp;gt; short page&amp;lt;pb n=&amp;quot;4&amp;quot;/&amp;gt;here.&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div2&amp;gt; &amp;lt;!-- followed by lots of other stuff --&amp;gt;&lt;br /&gt;
      &amp;lt;/div1&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/TEI&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the function would produce the following XML fragment as output when asked to return content between '''pb/@n=3''' and '''pb/@n=4'''&lt;br /&gt;
with the '''text''' element as the ancestor:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;text&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;div1 type=&amp;quot;chapter&amp;quot; n=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div2 xml:id=&amp;quot;doc100&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;&amp;lt;pb n=&amp;quot;3&amp;quot;/&amp;gt;of a &amp;lt;i&amp;gt;very&amp;lt;/i&amp;gt; short page&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div2&amp;gt;&lt;br /&gt;
      &amp;lt;/div1&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In other words, the full hierarchical structure of the ancestor elements, including their attributes, is preserved, but only the nodal content between the milestons is included.&lt;br /&gt;
&lt;br /&gt;
== Required Input ==&lt;br /&gt;
&lt;br /&gt;
The function signature is&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
local:milestone-chunk(&lt;br /&gt;
  $ms1 as element(),&lt;br /&gt;
  $ms2 as element(),&lt;br /&gt;
  $node as node()*&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''$node''' is an element known to be a common ancestor of the two milestones. For example, it could be '''TEI/text''', or '''TEI/text/body''', or even '''TEI/text/body/div1[3]''' if the milestone parameters are both descendants of that div1.&lt;br /&gt;
&lt;br /&gt;
'''$ms1''' is the first milestone element; '''$ms2''' is the second milestone element.&lt;br /&gt;
&lt;br /&gt;
For example, the output in &amp;quot;Summary&amp;quot; above might have been produced by the call&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  let $input := doc(&amp;quot;mydoc.xml&amp;quot;)/tei:TEI/tei:text&lt;br /&gt;
  return local:milestone-chunk($input//pb[@n=&amp;quot;3&amp;quot;], $input//pb[@n=&amp;quot;4&amp;quot;], $input)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If '''$input''' had been &lt;br /&gt;
   doc(&amp;quot;mydoc.xml&amp;quot;)/tei:TEI/tei:text/tei:body&lt;br /&gt;
then the output would have started at the '''body''' element, etc.&lt;br /&gt;
&lt;br /&gt;
'''$ms1''' and '''$ms2''' do not need to be adjacent milestones. You can, for example, return content between '''pb/@n=4''' and '''pb/@n=7'''. Nor do the milestones need to be of the same type; you can return content between the '''pb''' for page 4 and an arbitrary anchor or pointer element later in the document.&lt;br /&gt;
&lt;br /&gt;
== Expected Output ==&lt;br /&gt;
&lt;br /&gt;
As indicated in the example in &amp;quot;Summary&amp;quot; above, the output should be a single XML element reflecting the structure of the input ancestor element and its descendants, but otherwise containing only the nodal content between the two milestone elements in the original input.&lt;br /&gt;
&lt;br /&gt;
== Known Restrictions or Problems ==&lt;br /&gt;
The output will contain a copy of the first milestone element, but not of the second (closing) one. This is a consequence of the need to use pseudo-milestones for the second milestone in some cases; see next paragraph. &lt;br /&gt;
&lt;br /&gt;
When using this function to generate content between TEI '''pb''' elements, an obvious problem is that the final page will not have a final '''pb''' milestone. In this case, use a pseudo-milestone such as the last node in the input element. For example, using the sample document in &amp;quot;Summary&amp;quot; above, the content of page 4 (&amp;quot;here.&amp;quot;) would be output via the call&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  let $input := doc(&amp;quot;mydoc.xml&amp;quot;)/tei:TEI/tei:text&lt;br /&gt;
  local:milestone-chunk($input//pb[@n=&amp;quot;4&amp;quot;], ($input//node())[last()], $input)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use this function to recurse over all the '''pb''' elements in a document, you will need to use a strategy like this when '''$ms1''' has no following '''pb''' element.&lt;br /&gt;
&lt;br /&gt;
The function will not gracefully handle invalid input, but will probably throw run-time errors. You should be sure that the parameters passed to it reflect actual milestone elements with a common ancestor.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
declare function local:milestone-chunk(&lt;br /&gt;
  $ms1 as element(),&lt;br /&gt;
  $ms2 as element(),&lt;br /&gt;
  $node as node()*&lt;br /&gt;
) as node()*&lt;br /&gt;
{&lt;br /&gt;
  typeswitch ($node)&lt;br /&gt;
    case element() return&lt;br /&gt;
      if ($node is $ms1) then $node&lt;br /&gt;
      else if ( some $n in $node/descendant::* satisfies ($n is $ms1 or $n is $ms2) )&lt;br /&gt;
      then&lt;br /&gt;
        element { name($node) }&lt;br /&gt;
                { for $i in ( $node/node() | $node/@* )&lt;br /&gt;
                  return local:milestone-chunk($ms1, $ms2, $i) }&lt;br /&gt;
      else if ( $node &amp;gt;&amp;gt; $ms1 and $node &amp;lt;&amp;lt; $ms2 ) then $node&lt;br /&gt;
      else ()&lt;br /&gt;
    case attribute() return $node (: will never match attributes outside non-returned elements :)&lt;br /&gt;
    default return &lt;br /&gt;
      if ( $node &amp;gt;&amp;gt; $ms1 and $node &amp;lt;&amp;lt; $ms2 ) then $node&lt;br /&gt;
      else ()&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Implementation in eXist ==&lt;br /&gt;
A string-based function to return fragments between two nodes is implemented in [[eXist]] (as a function called [http://exist-db.org/exist/apps/fundocs/view.html?uri=http://exist-db.org/xquery/util&amp;amp;location=java:org.exist.xquery.functions.util.UtilModule&amp;amp;details=true#get-fragment-between.4  util:get-fragment-between()]) by Josef Willenborg, Max Planck Institute for the History of Science [mailto:jwillenborg@mpiwg-berlin.mpg.de jwillenborg@mpiwg-berlin.mpg.de]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
util:get-fragment-between($beginning-node as node()?, $ending-node as node()?, $make-fragment as xs:boolean?) xs:string&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns an xml fragment or a sequence of nodes between two elements (normally milestone elements). The $beginning-node represents the first node/milestone element, $ending-node, the second one. The third argument, $make-fragment, is a boolean value for the path completion. If it is set to true() the result sequence is wrapped into a parent element node. &lt;br /&gt;
&lt;br /&gt;
Example call of the function for getting the fragment between two TEI page break element nodes: &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
let $fragment := util:get-fragment-between(//pb[1], //pb[2], true())&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extended version which keeps the namespace declaration ==&lt;br /&gt;
A short explanation of the problem [http://sourceforge.net/mailarchive/forum.php?thread_name=CAKKtb%2Buzzd0RYJHfcvpz6z6ogUwBcbXhPDkk%2Bahq3YAaF0u_ig%40mail.gmail.com&amp;amp;forum_name=exist-open]&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
declare function local:milestone-chunk-ns(&lt;br /&gt;
  $ms1 as element(),&lt;br /&gt;
  $ms2 as element(),&lt;br /&gt;
  $node as node()*&lt;br /&gt;
) as node()*&lt;br /&gt;
{&lt;br /&gt;
  typeswitch ($node)&lt;br /&gt;
    case element() return&lt;br /&gt;
      if ($node is $ms1) then $node&lt;br /&gt;
      else if ( some $n in $node/descendant::* satisfies ($n is $ms1 or $n is $ms2) )&lt;br /&gt;
      then&lt;br /&gt;
        (: element { name($node) } :)&lt;br /&gt;
           element {QName (namespace-uri($node), name($node))}&lt;br /&gt;
                { for $i in ( $node/node() | $node/@* )&lt;br /&gt;
                  return local:milestone-chunk-ns($ms1, $ms2, $i) }&lt;br /&gt;
      else if ( $node &amp;gt;&amp;gt; $ms1 and $node &amp;lt;&amp;lt; $ms2 ) then $node&lt;br /&gt;
      else ()&lt;br /&gt;
    case attribute() return $node (: will never match attributes outside non-returned elements :)&lt;br /&gt;
    default return &lt;br /&gt;
      if ( $node &amp;gt;&amp;gt; $ms1 and $node &amp;lt;&amp;lt; $ms2 ) then $node&lt;br /&gt;
      else ()&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extended version which maintains xml attributes in scope and listed preceding empty elements ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
xquery version &amp;quot;1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
declare namespace tei=&amp;quot;http://www.tei-c.org/ns/1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
declare function local:get-common-ancestor($element as element(), $start-node as node(), $end-node as node())&lt;br /&gt;
as element()&lt;br /&gt;
{&lt;br /&gt;
    let $element :=&lt;br /&gt;
        ($element//*[. is $start-node]/ancestor::* intersect $element//*[. is $end-node]/ancestor::*)[last()]&lt;br /&gt;
    return&lt;br /&gt;
        $element&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
declare function local:get-fragment(&lt;br /&gt;
    $node as node()*,&lt;br /&gt;
    $start-node as element(),&lt;br /&gt;
    $end-node as element(),&lt;br /&gt;
    $include-start-and-end-nodes as xs:boolean,&lt;br /&gt;
    $empty-ancestor-elements-to-include as xs:string+&lt;br /&gt;
) as node()*&lt;br /&gt;
{&lt;br /&gt;
    typeswitch ($node)&lt;br /&gt;
    case element() return&lt;br /&gt;
        if ($node is $start-node or $node is $end-node)&lt;br /&gt;
        then&lt;br /&gt;
            if ($include-start-and-end-nodes)&lt;br /&gt;
            then $node&lt;br /&gt;
            else ()&lt;br /&gt;
        else&lt;br /&gt;
            if (some $node in $node/descendant::* satisfies ($node is $start-node or $node is $end-node))&lt;br /&gt;
            then&lt;br /&gt;
                element {node-name($node)}&lt;br /&gt;
                {&lt;br /&gt;
                (:the xml attributes that govern their descendants are carried over to the fragment; &lt;br /&gt;
                if the fragment has several layers before it reaches text nodes, this information is duplicated, but this does no harm:)&lt;br /&gt;
                if ($node/@xml:base)&lt;br /&gt;
                then attribute{'xml:base'}{$node/@xml:base}&lt;br /&gt;
                else &lt;br /&gt;
                    if ($node/ancestor::*/@xml:base)&lt;br /&gt;
                    then attribute{'xml:base'}{$node/ancestor::*/@xml:base[1]}&lt;br /&gt;
                    else (),&lt;br /&gt;
                if ($node/@xml:space)&lt;br /&gt;
                then attribute{'xml:space'}{$node/@xml:space}&lt;br /&gt;
                else&lt;br /&gt;
                    if ($node/ancestor::*/@xml:space)&lt;br /&gt;
                    then attribute{'xml:space'}{$node/ancestor::*/@xml:space[1]}&lt;br /&gt;
                    else (),&lt;br /&gt;
                if ($node/@xml:lang)&lt;br /&gt;
                then attribute{'xml:lang'}{$node/@xml:lang}&lt;br /&gt;
                else&lt;br /&gt;
                    if ($node/ancestor::*/@xml:lang)&lt;br /&gt;
                    then attribute{'xml:lang'}{$node/ancestor::*/@xml:lang[1]}&lt;br /&gt;
                    else ()&lt;br /&gt;
                ,&lt;br /&gt;
                (:carry over the nearest of preceding empty elements that have significance for the fragment; though amy element could be included here, the idea is to allow empty elements such as handShift to be carried over:)&lt;br /&gt;
                for $empty-ancestor-element-to-include in $empty-ancestor-elements-to-include&lt;br /&gt;
                return&lt;br /&gt;
                    $node/preceding::*[local-name(.) = $empty-ancestor-element-to-include][1]&lt;br /&gt;
                ,&lt;br /&gt;
                (:recurse:)&lt;br /&gt;
                for $node in $node/node()&lt;br /&gt;
                return local:get-fragment($node, $start-node, $end-node, $include-start-and-end-nodes, $empty-ancestor-elements-to-include) }&lt;br /&gt;
        else&lt;br /&gt;
        (:if an element follows the start-node or precedes the end-note, carry it over:)&lt;br /&gt;
        if ($node &amp;gt;&amp;gt; $start-node and $node &amp;lt;&amp;lt; $end-node)&lt;br /&gt;
        then $node&lt;br /&gt;
        else ()&lt;br /&gt;
    default return&lt;br /&gt;
        (:if a text, comment or PI node follows the start-node or precedes the end-node, carry it over:)&lt;br /&gt;
        if ($node &amp;gt;&amp;gt; $start-node and $node &amp;lt;&amp;lt; $end-node)&lt;br /&gt;
        then $node&lt;br /&gt;
        else ()&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
declare function local:get-fragment-from-doc(&lt;br /&gt;
    $node as node()*,&lt;br /&gt;
    $start-node as element(),&lt;br /&gt;
    $end-node as element(),&lt;br /&gt;
    $wrap-in-first-common-ancestor-only as xs:boolean,&lt;br /&gt;
    $include-start-and-end-nodes as xs:boolean,&lt;br /&gt;
    $empty-ancestor-elements-to-include as xs:string+&lt;br /&gt;
) as node()*&lt;br /&gt;
{&lt;br /&gt;
    if ($node instance of element())&lt;br /&gt;
    then&lt;br /&gt;
        let $node :=&lt;br /&gt;
            if ($wrap-in-first-common-ancestor-only)&lt;br /&gt;
            then local:get-common-ancestor($node, $start-node, $end-node)&lt;br /&gt;
            else $node&lt;br /&gt;
            return&lt;br /&gt;
                local:get-fragment($node, $start-node, $end-node, $include-start-and-end-nodes, $empty-ancestor-elements-to-include)&lt;br /&gt;
    else &lt;br /&gt;
        if ($node instance of document-node())&lt;br /&gt;
        then local:get-fragment-from-doc($node/element(), $start-node, $end-node, $wrap-in-first-common-ancestor-only, $include-start-and-end-nodes, $empty-ancestor-elements-to-include)&lt;br /&gt;
        else ()&lt;br /&gt;
        &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
let $input := doc('/db/eebo/A00283.xml')&lt;br /&gt;
&lt;br /&gt;
return&lt;br /&gt;
    local:get-fragment-from-doc($input, $input//tei:pb[@n=&amp;quot;7&amp;quot;], $input//tei:pb[@n=&amp;quot;8&amp;quot;], true(), true(), ('handShift'))&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:XQuery]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Milestone-chunk.xquery&amp;diff=14361</id>
		<title>Milestone-chunk.xquery</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Milestone-chunk.xquery&amp;diff=14361"/>
		<updated>2015-06-23T10:33:09Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Implementation in eXist */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Authorship ==&lt;br /&gt;
{| &lt;br /&gt;
| ''Author''&lt;br /&gt;
| David Sewell, University of Virginia, [mailto:dsewell@virginia.edu dsewell@virginia.edu]&lt;br /&gt;
|- &lt;br /&gt;
| ''Last revised''&lt;br /&gt;
| 2007-05-02&lt;br /&gt;
|-&lt;br /&gt;
| ''Previous version''&lt;br /&gt;
| none&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
This is an XQuery 1.0 function that will return all of the content between two milestone elements such as '''pb'''&lt;br /&gt;
while preserving the hierarchical structure of the containing elements. For example, given content like this in a TEI document:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;TEI&amp;gt;&lt;br /&gt;
  &amp;lt;text&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;div1 type=&amp;quot;chapter&amp;quot; n=&amp;quot;1&amp;quot;&amp;gt; &amp;lt;!-- lots of div2s --&amp;gt;&lt;br /&gt;
        &amp;lt;div2 xml:id=&amp;quot;doc100&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;An example&amp;lt;pb n=&amp;quot;3&amp;quot;/&amp;gt;of a &amp;lt;i&amp;gt;very&amp;lt;/i&amp;gt; short page&amp;lt;pb n=&amp;quot;4&amp;quot;/&amp;gt;here.&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div2&amp;gt; &amp;lt;!-- followed by lots of other stuff --&amp;gt;&lt;br /&gt;
      &amp;lt;/div1&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/TEI&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the function would produce the following XML fragment as output when asked to return content between '''pb/@n=3''' and '''pb/@n=4'''&lt;br /&gt;
with the '''text''' element as the ancestor:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;text&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;div1 type=&amp;quot;chapter&amp;quot; n=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div2 xml:id=&amp;quot;doc100&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;&amp;lt;pb n=&amp;quot;3&amp;quot;/&amp;gt;of a &amp;lt;i&amp;gt;very&amp;lt;/i&amp;gt; short page&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div2&amp;gt;&lt;br /&gt;
      &amp;lt;/div1&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In other words, the full hierarchical structure of the ancestor elements, including their attributes, is preserved, but only the nodal content between the milestons is included.&lt;br /&gt;
&lt;br /&gt;
== Required Input ==&lt;br /&gt;
&lt;br /&gt;
The function signature is&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
local:milestone-chunk(&lt;br /&gt;
  $ms1 as element(),&lt;br /&gt;
  $ms2 as element(),&lt;br /&gt;
  $node as node()*&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''$node''' is an element known to be a common ancestor of the two milestones. For example, it could be '''TEI/text''', or '''TEI/text/body''', or even '''TEI/text/body/div1[3]''' if the milestone parameters are both descendants of that div1.&lt;br /&gt;
&lt;br /&gt;
'''$ms1''' is the first milestone element; '''$ms2''' is the second milestone element.&lt;br /&gt;
&lt;br /&gt;
For example, the output in &amp;quot;Summary&amp;quot; above might have been produced by the call&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  let $input := doc(&amp;quot;mydoc.xml&amp;quot;)/tei:TEI/tei:text&lt;br /&gt;
  return local:milestone-chunk($input//pb[@n=&amp;quot;3&amp;quot;], $input//pb[@n=&amp;quot;4&amp;quot;], $input)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If '''$input''' had been &lt;br /&gt;
   doc(&amp;quot;mydoc.xml&amp;quot;)/tei:TEI/tei:text/tei:body&lt;br /&gt;
then the output would have started at the '''body''' element, etc.&lt;br /&gt;
&lt;br /&gt;
'''$ms1''' and '''$ms2''' do not need to be adjacent milestones. You can, for example, return content between '''pb/@n=4''' and '''pb/@n=7'''. Nor do the milestones need to be of the same type; you can return content between the '''pb''' for page 4 and an arbitrary anchor or pointer element later in the document.&lt;br /&gt;
&lt;br /&gt;
== Expected Output ==&lt;br /&gt;
&lt;br /&gt;
As indicated in the example in &amp;quot;Summary&amp;quot; above, the output should be a single XML element reflecting the structure of the input ancestor element and its descendants, but otherwise containing only the nodal content between the two milestone elements in the original input.&lt;br /&gt;
&lt;br /&gt;
== Known Restrictions or Problems ==&lt;br /&gt;
The output will contain a copy of the first milestone element, but not of the second (closing) one. This is a consequence of the need to use pseudo-milestones for the second milestone in some cases; see next paragraph. &lt;br /&gt;
&lt;br /&gt;
When using this function to generate content between TEI '''pb''' elements, an obvious problem is that the final page will not have a final '''pb''' milestone. In this case, use a pseudo-milestone such as the last node in the input element. For example, using the sample document in &amp;quot;Summary&amp;quot; above, the content of page 4 (&amp;quot;here.&amp;quot;) would be output via the call&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  let $input := doc(&amp;quot;mydoc.xml&amp;quot;)/tei:TEI/tei:text&lt;br /&gt;
  local:milestone-chunk($input//pb[@n=&amp;quot;4&amp;quot;], ($input//node())[last()], $input)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use this function to recurse over all the '''pb''' elements in a document, you will need to use a strategy like this when '''$ms1''' has no following '''pb''' element.&lt;br /&gt;
&lt;br /&gt;
The function will not gracefully handle invalid input, but will probably throw run-time errors. You should be sure that the parameters passed to it reflect actual milestone elements with a common ancestor.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
declare function local:milestone-chunk(&lt;br /&gt;
  $ms1 as element(),&lt;br /&gt;
  $ms2 as element(),&lt;br /&gt;
  $node as node()*&lt;br /&gt;
) as node()*&lt;br /&gt;
{&lt;br /&gt;
  typeswitch ($node)&lt;br /&gt;
    case element() return&lt;br /&gt;
      if ($node is $ms1) then $node&lt;br /&gt;
      else if ( some $n in $node/descendant::* satisfies ($n is $ms1 or $n is $ms2) )&lt;br /&gt;
      then&lt;br /&gt;
        element { name($node) }&lt;br /&gt;
                { for $i in ( $node/node() | $node/@* )&lt;br /&gt;
                  return local:milestone-chunk($ms1, $ms2, $i) }&lt;br /&gt;
      else if ( $node &amp;gt;&amp;gt; $ms1 and $node &amp;lt;&amp;lt; $ms2 ) then $node&lt;br /&gt;
      else ()&lt;br /&gt;
    case attribute() return $node (: will never match attributes outside non-returned elements :)&lt;br /&gt;
    default return &lt;br /&gt;
      if ( $node &amp;gt;&amp;gt; $ms1 and $node &amp;lt;&amp;lt; $ms2 ) then $node&lt;br /&gt;
      else ()&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Implementation in eXist ==&lt;br /&gt;
A string-based function to return fragments between two nodes is implemented in [[eXist]] (as a function called [http://exist-db.org/exist/apps/fundocs/view.html?uri=http://exist-db.org/xquery/util&amp;amp;location=java:org.exist.xquery.functions.util.UtilModule&amp;amp;details=true#get-fragment-between.4  util:get-fragment-between()]) by Josef Willenborg, Max Planck Institute for the History of Science [mailto:jwillenborg@mpiwg-berlin.mpg.de jwillenborg@mpiwg-berlin.mpg.de]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
util:get-fragment-between($beginning-node as node()?, $ending-node as node()?, $make-fragment as xs:boolean?) xs:string&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns an xml fragment or a sequence of nodes between two elements (normally milestone elements). The $beginning-node represents the first node/milestone element, $ending-node, the second one. The third argument, $make-fragment, is a boolean value for the path completion. If it is set to true() the result sequence is wrapped into a parent element node. &lt;br /&gt;
&lt;br /&gt;
Example call of the function for getting the fragment between two TEI page break element nodes: &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
let $fragment := util:get-fragment-between(//pb[1], //pb[2], true())&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extended version which keeps the namespace declaration ==&lt;br /&gt;
A short explanation of the problem [http://sourceforge.net/mailarchive/forum.php?thread_name=CAKKtb%2Buzzd0RYJHfcvpz6z6ogUwBcbXhPDkk%2Bahq3YAaF0u_ig%40mail.gmail.com&amp;amp;forum_name=exist-open]&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
declare function local:milestone-chunk-ns(&lt;br /&gt;
  $ms1 as element(),&lt;br /&gt;
  $ms2 as element(),&lt;br /&gt;
  $node as node()*&lt;br /&gt;
) as node()*&lt;br /&gt;
{&lt;br /&gt;
  typeswitch ($node)&lt;br /&gt;
    case element() return&lt;br /&gt;
      if ($node is $ms1) then $node&lt;br /&gt;
      else if ( some $n in $node/descendant::* satisfies ($n is $ms1 or $n is $ms2) )&lt;br /&gt;
      then&lt;br /&gt;
        (: element { name($node) } :)&lt;br /&gt;
           element {QName (namespace-uri($node), name($node))}&lt;br /&gt;
                { for $i in ( $node/node() | $node/@* )&lt;br /&gt;
                  return local:milestone-chunk-ns($ms1, $ms2, $i) }&lt;br /&gt;
      else if ( $node &amp;gt;&amp;gt; $ms1 and $node &amp;lt;&amp;lt; $ms2 ) then $node&lt;br /&gt;
      else ()&lt;br /&gt;
    case attribute() return $node (: will never match attributes outside non-returned elements :)&lt;br /&gt;
    default return &lt;br /&gt;
      if ( $node &amp;gt;&amp;gt; $ms1 and $node &amp;lt;&amp;lt; $ms2 ) then $node&lt;br /&gt;
      else ()&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:XQuery]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Milestone-chunk.xquery&amp;diff=14360</id>
		<title>Milestone-chunk.xquery</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Milestone-chunk.xquery&amp;diff=14360"/>
		<updated>2015-06-23T10:29:55Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Implementation in eXist */ The string-based nature of the eXist function must be made clear. It is not an implementation of milestone-chunk.xquery.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Authorship ==&lt;br /&gt;
{| &lt;br /&gt;
| ''Author''&lt;br /&gt;
| David Sewell, University of Virginia, [mailto:dsewell@virginia.edu dsewell@virginia.edu]&lt;br /&gt;
|- &lt;br /&gt;
| ''Last revised''&lt;br /&gt;
| 2007-05-02&lt;br /&gt;
|-&lt;br /&gt;
| ''Previous version''&lt;br /&gt;
| none&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
This is an XQuery 1.0 function that will return all of the content between two milestone elements such as '''pb'''&lt;br /&gt;
while preserving the hierarchical structure of the containing elements. For example, given content like this in a TEI document:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;TEI&amp;gt;&lt;br /&gt;
  &amp;lt;text&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;div1 type=&amp;quot;chapter&amp;quot; n=&amp;quot;1&amp;quot;&amp;gt; &amp;lt;!-- lots of div2s --&amp;gt;&lt;br /&gt;
        &amp;lt;div2 xml:id=&amp;quot;doc100&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;An example&amp;lt;pb n=&amp;quot;3&amp;quot;/&amp;gt;of a &amp;lt;i&amp;gt;very&amp;lt;/i&amp;gt; short page&amp;lt;pb n=&amp;quot;4&amp;quot;/&amp;gt;here.&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div2&amp;gt; &amp;lt;!-- followed by lots of other stuff --&amp;gt;&lt;br /&gt;
      &amp;lt;/div1&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/TEI&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the function would produce the following XML fragment as output when asked to return content between '''pb/@n=3''' and '''pb/@n=4'''&lt;br /&gt;
with the '''text''' element as the ancestor:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;text&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
      &amp;lt;div1 type=&amp;quot;chapter&amp;quot; n=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div2 xml:id=&amp;quot;doc100&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;p&amp;gt;&amp;lt;pb n=&amp;quot;3&amp;quot;/&amp;gt;of a &amp;lt;i&amp;gt;very&amp;lt;/i&amp;gt; short page&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div2&amp;gt;&lt;br /&gt;
      &amp;lt;/div1&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In other words, the full hierarchical structure of the ancestor elements, including their attributes, is preserved, but only the nodal content between the milestons is included.&lt;br /&gt;
&lt;br /&gt;
== Required Input ==&lt;br /&gt;
&lt;br /&gt;
The function signature is&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
local:milestone-chunk(&lt;br /&gt;
  $ms1 as element(),&lt;br /&gt;
  $ms2 as element(),&lt;br /&gt;
  $node as node()*&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''$node''' is an element known to be a common ancestor of the two milestones. For example, it could be '''TEI/text''', or '''TEI/text/body''', or even '''TEI/text/body/div1[3]''' if the milestone parameters are both descendants of that div1.&lt;br /&gt;
&lt;br /&gt;
'''$ms1''' is the first milestone element; '''$ms2''' is the second milestone element.&lt;br /&gt;
&lt;br /&gt;
For example, the output in &amp;quot;Summary&amp;quot; above might have been produced by the call&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  let $input := doc(&amp;quot;mydoc.xml&amp;quot;)/tei:TEI/tei:text&lt;br /&gt;
  return local:milestone-chunk($input//pb[@n=&amp;quot;3&amp;quot;], $input//pb[@n=&amp;quot;4&amp;quot;], $input)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If '''$input''' had been &lt;br /&gt;
   doc(&amp;quot;mydoc.xml&amp;quot;)/tei:TEI/tei:text/tei:body&lt;br /&gt;
then the output would have started at the '''body''' element, etc.&lt;br /&gt;
&lt;br /&gt;
'''$ms1''' and '''$ms2''' do not need to be adjacent milestones. You can, for example, return content between '''pb/@n=4''' and '''pb/@n=7'''. Nor do the milestones need to be of the same type; you can return content between the '''pb''' for page 4 and an arbitrary anchor or pointer element later in the document.&lt;br /&gt;
&lt;br /&gt;
== Expected Output ==&lt;br /&gt;
&lt;br /&gt;
As indicated in the example in &amp;quot;Summary&amp;quot; above, the output should be a single XML element reflecting the structure of the input ancestor element and its descendants, but otherwise containing only the nodal content between the two milestone elements in the original input.&lt;br /&gt;
&lt;br /&gt;
== Known Restrictions or Problems ==&lt;br /&gt;
The output will contain a copy of the first milestone element, but not of the second (closing) one. This is a consequence of the need to use pseudo-milestones for the second milestone in some cases; see next paragraph. &lt;br /&gt;
&lt;br /&gt;
When using this function to generate content between TEI '''pb''' elements, an obvious problem is that the final page will not have a final '''pb''' milestone. In this case, use a pseudo-milestone such as the last node in the input element. For example, using the sample document in &amp;quot;Summary&amp;quot; above, the content of page 4 (&amp;quot;here.&amp;quot;) would be output via the call&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  let $input := doc(&amp;quot;mydoc.xml&amp;quot;)/tei:TEI/tei:text&lt;br /&gt;
  local:milestone-chunk($input//pb[@n=&amp;quot;4&amp;quot;], ($input//node())[last()], $input)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use this function to recurse over all the '''pb''' elements in a document, you will need to use a strategy like this when '''$ms1''' has no following '''pb''' element.&lt;br /&gt;
&lt;br /&gt;
The function will not gracefully handle invalid input, but will probably throw run-time errors. You should be sure that the parameters passed to it reflect actual milestone elements with a common ancestor.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
declare function local:milestone-chunk(&lt;br /&gt;
  $ms1 as element(),&lt;br /&gt;
  $ms2 as element(),&lt;br /&gt;
  $node as node()*&lt;br /&gt;
) as node()*&lt;br /&gt;
{&lt;br /&gt;
  typeswitch ($node)&lt;br /&gt;
    case element() return&lt;br /&gt;
      if ($node is $ms1) then $node&lt;br /&gt;
      else if ( some $n in $node/descendant::* satisfies ($n is $ms1 or $n is $ms2) )&lt;br /&gt;
      then&lt;br /&gt;
        element { name($node) }&lt;br /&gt;
                { for $i in ( $node/node() | $node/@* )&lt;br /&gt;
                  return local:milestone-chunk($ms1, $ms2, $i) }&lt;br /&gt;
      else if ( $node &amp;gt;&amp;gt; $ms1 and $node &amp;lt;&amp;lt; $ms2 ) then $node&lt;br /&gt;
      else ()&lt;br /&gt;
    case attribute() return $node (: will never match attributes outside non-returned elements :)&lt;br /&gt;
    default return &lt;br /&gt;
      if ( $node &amp;gt;&amp;gt; $ms1 and $node &amp;lt;&amp;lt; $ms2 ) then $node&lt;br /&gt;
      else ()&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Implementation in eXist ==&lt;br /&gt;
A string-based function to return fragments between two nodes is implemented in [[eXist]] (as a function called [http://exist-db.org/exist/apps/fundocs/view.html?uri=http://exist-db.org/xquery/util&amp;amp;location=java:org.exist.xquery.functions.util.UtilModule&amp;amp;details=true#get-fragment-between.4]) by Josef Willenborg, Max Planck Institute for the History of Science [mailto:jwillenborg@mpiwg-berlin.mpg.de jwillenborg@mpiwg-berlin.mpg.de]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
util:get-fragment-between($beginning-node as node()?, $ending-node as node()?, $make-fragment as xs:boolean?) xs:string&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns an xml fragment or a sequence of nodes between two elements (normally milestone elements). The $beginning-node represents the first node/milestone element, $ending-node, the second one. The third argument, $make-fragment, is a boolean value for the path completion. If it is set to true() the result sequence is wrapped into a parent element node. &lt;br /&gt;
&lt;br /&gt;
Example call of the function for getting the fragment between two TEI page break element nodes: &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
let $fragment := util:get-fragment-between(//pb[1], //pb[2], true())&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extended version which keeps the namespace declaration ==&lt;br /&gt;
A short explanation of the problem [http://sourceforge.net/mailarchive/forum.php?thread_name=CAKKtb%2Buzzd0RYJHfcvpz6z6ogUwBcbXhPDkk%2Bahq3YAaF0u_ig%40mail.gmail.com&amp;amp;forum_name=exist-open]&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
declare function local:milestone-chunk-ns(&lt;br /&gt;
  $ms1 as element(),&lt;br /&gt;
  $ms2 as element(),&lt;br /&gt;
  $node as node()*&lt;br /&gt;
) as node()*&lt;br /&gt;
{&lt;br /&gt;
  typeswitch ($node)&lt;br /&gt;
    case element() return&lt;br /&gt;
      if ($node is $ms1) then $node&lt;br /&gt;
      else if ( some $n in $node/descendant::* satisfies ($n is $ms1 or $n is $ms2) )&lt;br /&gt;
      then&lt;br /&gt;
        (: element { name($node) } :)&lt;br /&gt;
           element {QName (namespace-uri($node), name($node))}&lt;br /&gt;
                { for $i in ( $node/node() | $node/@* )&lt;br /&gt;
                  return local:milestone-chunk-ns($ms1, $ms2, $i) }&lt;br /&gt;
      else if ( $node &amp;gt;&amp;gt; $ms1 and $node &amp;lt;&amp;lt; $ms2 ) then $node&lt;br /&gt;
      else ()&lt;br /&gt;
    case attribute() return $node (: will never match attributes outside non-returned elements :)&lt;br /&gt;
    default return &lt;br /&gt;
      if ( $node &amp;gt;&amp;gt; $ms1 and $node &amp;lt;&amp;lt; $ms2 ) then $node&lt;br /&gt;
      else ()&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:XQuery]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Critical_Apparatus_Workgroup&amp;diff=14118</id>
		<title>Critical Apparatus Workgroup</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Critical_Apparatus_Workgroup&amp;diff=14118"/>
		<updated>2014-12-11T13:43:12Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* “Critical Apparatus” vs. “Textual Variance” vs. “Textual Variants” */ added plural -s&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/TC.html Critical Apparatus] workgroup is part of the TEI special interest group on manuscript [[SIG:MSS]].&lt;br /&gt;
&lt;br /&gt;
Participants to the preliminary workgroup:&lt;br /&gt;
&lt;br /&gt;
* Marjorie Burghart (MB)&lt;br /&gt;
* James Cummings (JC)&lt;br /&gt;
* Fotis Jannidis (FJ)&lt;br /&gt;
* Gregor Middell (GM)&lt;br /&gt;
* Dan O'Donnell (DOD)&lt;br /&gt;
* Matija Ogrin (MO)&lt;br /&gt;
* Espen Ore (EO)&lt;br /&gt;
* Elena Pierazzo (EP)&lt;br /&gt;
* Roberto Rosselli del Turco (RDT)&lt;br /&gt;
* Chris Wittern (CW)&lt;br /&gt;
&lt;br /&gt;
Comments below from others:&lt;br /&gt;
* Pascale Sutter (PS)&lt;br /&gt;
* [[User:Stuartyeates|Stuart Yeates]] (SAY)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== “Critical Apparatus” vs. “Textual Variance” vs. “Textual Variants”== &lt;br /&gt;
&lt;br /&gt;
The very name of the chapter, &amp;quot;Critical apparatus&amp;quot;, is felt by some to be be a problem: the '''critical apparatus''' is just inherited from the printed world and one of the possible physical embodiments of '''textual variance'''. EP therefore proposes to use this new name, moving from &amp;quot;critical apparatus&amp;quot; to textual variance.&lt;br /&gt;
&lt;br /&gt;
MB argues that, oddly, &amp;quot;textual variance&amp;quot; feels more restrictive to her than &amp;quot;critical apparatus&amp;quot;: it is a notion linked with Cerquiglini's work, which does not correspond to '''every''' branch of textual criticism. On the other hand, strictly speaking, the &amp;quot;critical apparatus&amp;quot; is not limited to registering the variants of the several witnesses of a text. It also includes various kinds of notes (identification of the sources of the text, historical notes, etc.). Even texts with a single witness may have a critical apparatus. Maybe the problem with the name has its origins in the choice of giving the name &amp;quot;critical apparatus&amp;quot; to a part of the guidelines dedicated solely to the registration of textual variants. &lt;br /&gt;
&lt;br /&gt;
FJ argues that for German ears the concept of textual variance is not closely connected to a specific scholar.&lt;br /&gt;
&lt;br /&gt;
MB proposes to use '''textual variants''' instead, since it focuses more on actual elements in the edition, when &amp;quot;variance&amp;quot; is nothing concrete but a phenomenon. &lt;br /&gt;
&lt;br /&gt;
Side remarks by MB: this vocabulary question might prove sticky in the end. The &amp;lt;app&amp;gt; elements is named &amp;lt;app&amp;gt; because it is considered &amp;quot;an apparatus entry&amp;quot;, so unless we end up recommending to change the elements names, the phrase &amp;quot;critical apparatus&amp;quot; will still be used in the module, at least to explain the tag names?&lt;br /&gt;
&lt;br /&gt;
RDT argues that while backward compatibility is clearly a bonus, as MB states &amp;lt;app&amp;gt; stands for 'apparatus entry': we shouldn't be afraid to change its function, for instance making it a container instead of a phrase level element. RDT stresses that he is proposing this by way of example, and to stress that our focus is on variants: these might then be organised in &amp;lt;app&amp;gt;s for traditional CA display, and/or in other, new ways for electronic display. Note that this might mean no traditional critical apparatus in a digital edition.&lt;br /&gt;
&lt;br /&gt;
MB: It is characteristic of a print-based approach to encoding that the &amp;lt;app&amp;gt; element was considered as encoding an apparatus entry (hence the &amp;lt;app&amp;gt; name), when what it really encodes is a locus where different witnesses have variant readings (whch would probably have justified a name along the lines of &amp;lt;locus&amp;gt; or whatnot).   &lt;br /&gt;
&lt;br /&gt;
JC: Thinks this points to a slight divergent nature at the heart of the current critical apparatus recommendations.  That of encoding an apparatus at the site of textual variance and encoding a structured view of a note entirely separate from the edited version of texts. (In mass digitization of critical editions, for example, one might have an &amp;lt;app&amp;gt; in a set of notes at the bottom of the page which are not encoded at the site of variance, or indeed necessarily connected with it.)  It is this striving to both be able to encode all sorts of various legacy forms of apparatus as well as simultaneously catering for those who are recording the structure by which they will generate an apparatus in producing some output.  So JC would argue that the first of these are apparatus and the second of these is a site/locus of textual variance.&lt;br /&gt;
&lt;br /&gt;
SAY: Prefers either '''textual variants''' or '''textual variance''' over '''Critical Apparatus''' simply because I believe their meaning is clearer to a larger proportion of English speaking people. Clear meanings help us inter-operate with other groups and standards by making our standard easier to read by third parties.&lt;br /&gt;
&lt;br /&gt;
MO: argues that we should retain '''Critical Apparatus''' because it is a core philological term. In every branch of the Humanities, the terminology is among those core elements that are most resistant to changes, because old terms are deeply rooted in the practice and in the epistemological system of the disciplines. The most common way how terminology is changed in the Humanities is that old terms gradually accept new layers of meaning -- new semantics. Let us think, e.g., of 'digital edition'. The term 'edition' absorbed new meanings, and continues to be a good, functional term. This applies also to the dilemma of 'Critical Apparatus' vs. 'Textual Variants'. In the TEI community, we should also use the same fundamental terminology as is used in other, more traditional areas of philology, and show the advantage of our conception of the same term.&lt;br /&gt;
&lt;br /&gt;
== Issues == &lt;br /&gt;
&lt;br /&gt;
Preliminary notice: most of the issues raised here are connected with the parallel segmentation method, not because it is the more flawed, but because it is the more used by the members of this group. While location-referenced and double-end-point-attachment might be useful for mass conversion of printed material (for the former) and/or when using a piece of software handling the encoding (for the latter), the parallel segmentation method seems to be the easiest and more powerful way to encode the critical apparatus &amp;quot;by hand&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Also, one might point out that most of the issues raised here might be solved with standoff encoding. But this is extremely cumbersome to handle without the aid of a software, and it does not correspond to the way most people work. &lt;br /&gt;
&lt;br /&gt;
=== Specific phenomena ===&lt;br /&gt;
&lt;br /&gt;
==== Transpositions ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: with the parallel segmentation method, it is often cumbersome to render transpositions.&lt;br /&gt;
&lt;br /&gt;
Additionally it is not possible to mark them up explicitly. [http://juxtasoftware.org/ Juxta] for example works around that by storing transposition data in a custom XML format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;moves&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1855 MS&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;9679&amp;quot; end1=&amp;quot;10462&amp;quot; doc2=&amp;quot;1881 1st Ed.&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;9872&amp;quot; end2=&amp;quot;10467&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1855 MS&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;9679&amp;quot; end1=&amp;quot;10483&amp;quot; doc2=&amp;quot;1870 2nd Ed.&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;7781&amp;quot; end2=&amp;quot;8376&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1855 MS&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;9679&amp;quot; end1=&amp;quot;10504&amp;quot; doc2=&amp;quot;1870 Proof&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;8458&amp;quot; end2=&amp;quot;9056&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1855 MS&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;9886&amp;quot; end1=&amp;quot;10525&amp;quot; doc2=&amp;quot;1870 1st Ed.&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;8546&amp;quot; end2=&amp;quot;9141&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1870 Proof&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;1640&amp;quot; end1=&amp;quot;1850&amp;quot; doc2=&amp;quot;1881 1st Ed.&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;2961&amp;quot; end2=&amp;quot;3070&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/moves&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neither is this TEI-compliant, nor is the offset/range-based addressing (@start1/@start2 and @end1/@end2) proper XML markup. A standardized encoding would be helpful.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/fuszgtpnn2ywf6bh&lt;br /&gt;
&lt;br /&gt;
==== Handling of punctuation ====&lt;br /&gt;
&lt;br /&gt;
Seems to be a common problem in textual criticism/ apparatus creation, but lacks guidelines/ encoding examples:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/es6byhxpsbgkrxzo&lt;br /&gt;
&lt;br /&gt;
==== Representing omissions in an apparatus ====&lt;br /&gt;
&lt;br /&gt;
What's the proper way to represent missing lines/ paragraphs/ verses?&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/parztmwmlx5mqsof&lt;br /&gt;
* http://tei.markmail.org/thread/4sheu6nji3dvnf64&lt;br /&gt;
&lt;br /&gt;
=== Markup-related ===&lt;br /&gt;
&lt;br /&gt;
==== Inclusion of structural markup in the apparatus ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: the &amp;lt;app&amp;gt; element is phrase-level, when it really should be allowed to include paragraphs, and even &amp;amp;lt;div&amp;amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
Use case: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;I'm encoding a 19th c. edition of a medieval text, and one of the witness has omissions of several paragraphs. Of course, the TEI schema &lt;br /&gt;
won't let me put &amp;amp;lt;p&amp;amp;gt; elements inside an &amp;lt;app&amp;gt;/&amp;lt;lem&amp;gt; element...&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- I use the parallel segmentation method&amp;lt;br/&amp;gt;&lt;br /&gt;
- It is important to me to keep a methodical link between the encoded &lt;br /&gt;
apparatus and the notes numbers in the original edition (the &lt;br /&gt;
@n of each &amp;lt;app&amp;gt; tag bears the number of the footnote in the original &lt;br /&gt;
edition)&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is the [http://baluze.univ-avignon.fr/scan/t1/%285%29.jpg scan of a page from this edition], please consider footnote number 9. &lt;br /&gt;
The note contains: &amp;quot;9. Eodem anno, rex Francie… dampnificati, paragraphes omis par Bal.&amp;quot;, meaning that the ''Bal.'' witness has an omission where other witnesses have two long paragraphs, the first one beginning on the previous page (see the [http://baluze.univ-avignon.fr/scan/t1/%284%29.jpg previous page scanned]). &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/tbzi2yj5xd4dto34&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another use case:&lt;br /&gt;
&lt;br /&gt;
We have several witnesses of a poem, and in our base text, we have 8 stanzas, in another version only 6 stanzas and in some other 7? We are not allowed to have an &amp;lt;lg&amp;gt; and not even an &amp;lt;l&amp;gt; element within the &amp;lt;app&amp;gt; entry. So, we must put it the other way round, which may be somewhat awkward, like this:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;l&amp;gt;&lt;br /&gt;
    &amp;lt;app&amp;gt;&lt;br /&gt;
    &amp;lt;rdg wit=&amp;quot;#A&amp;quot;&amp;gt; [the text of the verse line here] &amp;lt;/rdg&amp;gt;&lt;br /&gt;
    &amp;lt;rdg wit=&amp;quot;#B&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;rdg wit=&amp;quot;#C&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/app&amp;gt;&lt;br /&gt;
    &amp;lt;/l&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We should then repeat this for every &amp;lt;l&amp;gt; , while it would be more practical to &amp;quot;say&amp;quot; this only once for entire stanza (with an &amp;lt;lg&amp;gt; within a &amp;lt;rdg&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
* Source: http://marjorie.burghart.online.fr/?q=en/content/tei-critical-apparatus-cheatsheet#comment-15&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More use cases from TEI-L:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/jyezaqfycaldtdcv&lt;br /&gt;
* http://tei.markmail.org/thread/fbyuxyabbxq4rwbr&lt;br /&gt;
* http://tei.markmail.org/thread/vrwkl7kkruulyjzh&lt;br /&gt;
* http://tei.markmail.org/thread/x5agpwzn4hiwwwcx&lt;br /&gt;
&lt;br /&gt;
==== Encoding variants in structural markup ====&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/ap62n37uf6rbfds4&lt;br /&gt;
* http://tei.markmail.org/thread/hbmnsn3v4aqjabt3&lt;br /&gt;
&lt;br /&gt;
==== Conflicts between individual readings and the semantics of structural markup that surrounds it ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: with the parallel segmentation method, witnesses with different forms of lineation pose a problem.&lt;br /&gt;
&lt;br /&gt;
=== Workflow-related ===&lt;br /&gt;
&lt;br /&gt;
==== Scalability ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: the parallel segmentation method is difficult to handle when adding hundreds of conflicting witnesses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;&lt;br /&gt;
Scaling is generally a problem with methods of indicating textual variance, but in parallel segmentation this is exacerbated because as the number of witnesses increase, the likelihood of needing to reformulate the reading boundaries, never mind the difficulty in reading or understanding such encodings. This may be a problem not only when looking at a single text with many witnesses, where variation in structure may be extremely difficult to represent where conflicts occur which disrupt this very basic structure (for example, imagine a set of witnesses where some have lines in linegroups, some just lines, some paragraphs, some paragraphs in divisions, but all with the same underlying text). But also where parallel segmentation is being used to record divergent interpretations of these individual witnesses by many editors (for distributed co-operative editions generated from many editorial views of a text). A plausible recommendation is to use a form of stand-off apparatus for such editions rather than parallel segmentation. And while some of the current methods can be used in a stand-off method, they should be updated to reflect current P5 usage of URI-based pointers.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Refactoring ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: with the the parallel segmentation method, it is cumbersome to add a new reading that necessitates changing where the borders of readings are drawn.&lt;br /&gt;
&lt;br /&gt;
==== Complexity ====&lt;br /&gt;
&lt;br /&gt;
Manually crafting an apparatus is error-prone:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/yuxqotf5aynxznq5&lt;br /&gt;
&lt;br /&gt;
==== Feasibility of double-endpoint-attached method ====&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/fsj7gvojds4mwcm5&lt;br /&gt;
* http://tei.markmail.org/thread/flwcnf4fxm4u7ebj&lt;br /&gt;
&lt;br /&gt;
=== Model vs. Representation ===&lt;br /&gt;
&lt;br /&gt;
==== Showing a lemma different from the content of the &amp;lt;lem&amp;gt; or chosen reading in an apparatus note ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: depending on the desired output of your digital edition, you may need to show in the apparatus entry a lemma text different from the content of the &amp;lt;lem&amp;gt; or desired &amp;lt;rdg&amp;gt;. This is typically the case for long omissions, when one does not display the full text that is omitted by one or more witnesses, but only the beginning and end of the omitted span of text.&lt;br /&gt;
&lt;br /&gt;
Use case: &lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;Let's consider again the example used in a previous use case: &lt;br /&gt;
Here is the [http://baluze.univ-avignon.fr/scan/t1/%285%29.jpg scan of a page from this edition], please consider footnote number 9. &lt;br /&gt;
The note contains: &amp;quot;9. Eodem anno, rex Francie… dampnificati, paragraphes omis par Bal.&amp;quot;, meaning that the ''Bal.'' witness has an omission where other witnesses have two long paragraphs, the first one beginning on the previous page (see the [http://baluze.univ-avignon.fr/scan/t1/%284%29.jpg previous page scanned]). &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
You certainly do not want to generate a footnote with these two full paragraphs to tell the reader that one witness omits them, but on the other hand you want to be able to represent the source according to its various witnesses, so location-referenced is not in order. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible workaround: add a new possible child to &amp;lt;add&amp;gt;, indicating how the content of the &amp;lt;lem&amp;gt; should be dislayed; something like: &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;app&amp;gt;&lt;br /&gt;
    &amp;lt;lemDisplay&amp;gt;Eodem anno, rex Francie… dampnificati&amp;lt;/lemDisplay&amp;gt;&lt;br /&gt;
    &amp;lt;lem&amp;gt;[several lines or paragraphs]&amp;lt;/lem&amp;gt;&lt;br /&gt;
    &amp;lt;rdg wit=&amp;quot;#V&amp;quot;&amp;gt;&amp;lt;/rdg&amp;gt;&lt;br /&gt;
    &amp;lt;/app&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Representing &amp;quot;verbose&amp;quot; apparatus ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: when you want to represent an apparatus entry written in a rather verbose way (in a print-to-digital edition). The same is true if you want to be able to generate a verbose apparatus note in a &amp;quot;born digital&amp;quot; edition. &lt;br /&gt;
&lt;br /&gt;
Use cases: &lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;You're encoding an existing edition, and want to represent the source it edits, while keeping intact the text / apparatus of the existing edition. Some apparatus entries are easy to represent with the &amp;lt;app&amp;gt; / &amp;lt;lem&amp;gt; / &amp;lt;rdg&amp;gt; elements, some others add editorial comments to the listing of the variants, and are quite difficult to represent. BTW, the same goes when you are encoding a born-digital edition for which you want to be able to generate an alternative print output corresponding to the traditional standards of a collection. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A - When I have a footnote giving two &amp;lt;i&amp;gt;lectiones&amp;lt;/i&amp;gt; from the same manuscript, one before correction and the other after: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b class=&amp;quot;moz-txt-star&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Text&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;: ad lectorem Venetum (b) .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b class=&amp;quot;moz-txt-star&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Note&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;: b) &amp;lt;i&amp;gt;ms.&amp;lt;/i&amp;gt;, lectionem venerum &amp;lt;i class=&amp;quot;moz-txt-slash&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;corrigé postérieurement en&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/i&amp;gt; lectorem Venetum&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If I encode it like this, with two separate rdg for the same&lt;br /&gt;
witness, each with a different @type (for instance, &amp;quot;anteCorr&amp;quot; and&lt;br /&gt;
&amp;quot;postCorr&amp;quot;), it gives an accurate account of the state of the witness, BUT it is an&lt;br /&gt;
interpretation of the original note in the critical apparatus, i.e. if&lt;br /&gt;
I do this I delete some text added by the original editor. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;app n=&amp;quot;b&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;lem&amp;amp;gt;lectorem Venetum&amp;amp;lt;/lem&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;rdg wit=&amp;quot;#ms.2&amp;quot; type=&amp;quot;anteCorr&amp;quot;&amp;amp;gt;lectionem venerum&amp;amp;lt;/rdg&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;rdg wit=&amp;quot;#ms.2&amp;quot; type=&amp;quot;postCorr&amp;quot;&amp;amp;gt;lectorem Venetum&amp;amp;lt;/rdg&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;/app&amp;amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;&lt;br /&gt;
Let's consider this other note. There is some text added verbosely within the apparatus note by the editor. &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;MsoNormal&amp;quot; style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;Text&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;: Hiis diebus civitas&lt;br /&gt;
Pergamensis(b) tenebat exersitum&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b style=&amp;quot;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;Note&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;: b) se, &amp;lt;i&amp;gt;mis indûment avant&amp;lt;/i&amp;gt; tenebat &amp;lt;i&amp;gt;par le ms&amp;lt;/i&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;MsoNormal&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;Should I encode it as: &amp;lt;br&amp;gt;&lt;br /&gt;
... Pergamensis &amp;amp;lt;app&lt;br /&gt;
n=&amp;quot;b&amp;quot;&amp;amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;lem/&amp;amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;rdg&lt;br /&gt;
type=&amp;quot;addition&amp;quot; wit=&amp;quot;#ms&amp;quot;&amp;amp;gt;&amp;amp;lt;sic&amp;amp;gt;se&amp;amp;lt;/sic&amp;amp;gt;&amp;amp;lt;/rdg&amp;amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;/app&amp;amp;gt;&amp;lt;/span&amp;gt;... &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one represents this note strictly with the &amp;lt;app&amp;gt; / &amp;lt;rdg&amp;gt;, it leads to the suppression of remarks by the original editor. Adding a note in the rdg to preserve the editor's comments could work here, but it's not always the case&amp;lt;br/&amp;gt;&lt;br /&gt;
Like: &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;... Pergamensis &amp;amp;lt;app&lt;br /&gt;
n=&amp;quot;b&amp;quot;&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;lem/&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;rdg&lt;br /&gt;
type=&amp;quot;addition&amp;quot; wit=&amp;quot;#ms&amp;quot;&amp;amp;gt;&amp;amp;lt;sic&amp;amp;gt;se&amp;amp;lt;/sic&amp;amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;&amp;amp;lt;note&amp;amp;gt;&amp;amp;lt;hi&lt;br /&gt;
rend=&amp;quot;italics&amp;quot;&amp;amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;mis&lt;br /&gt;
indûment avant&amp;lt;/span&amp;gt;&amp;amp;lt;/hi&amp;amp;gt; tenebat.&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;&amp;amp;lt;/note&amp;amp;gt;&amp;amp;lt;/rdg&amp;amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/app&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;MsoNormal&amp;quot; style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;'''Text'''&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;: …reliqui demum meos socios (d)&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Note'''&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;: d) domum&lt;br /&gt;
meam solito, &amp;lt;i&amp;gt;Bal.;&amp;lt;/i&amp;gt; dni &amp;lt;i&amp;gt;ou&amp;lt;/i&amp;gt; dm, &amp;lt;i&amp;gt;ms.; en note&amp;lt;/i&amp;gt; meam solita.&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we have 2 witnesses (Bal. et ms.), the latter with a) an uncertain&lt;br /&gt;
lectio (&amp;quot;dni&amp;quot; or &amp;quot;dm&amp;quot;) and b) a part of the lectio which is written as&lt;br /&gt;
a note (&amp;quot;meam solita&amp;quot;). This is tricky to encode. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/ib3bsrpirepp4ibc&lt;br /&gt;
* http://tei.markmail.org/thread/diubpw5adw6ntcas&lt;br /&gt;
&lt;br /&gt;
==== Representation of suggestions by the editor: ''lege'' ''dele'' etc. ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: Sometimes, the editor provides working suggestions through apparatus notes such as ''lege(ndum)'' (&amp;quot;read&amp;quot;), ''dele(ndum)'' (&amp;quot;delete)&amp;quot; etc. They do not belong in the textual variants ''per se'', and are not attached to witnesses, although they do belong in the critical apparatus.&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/vfw25psb5vgdiftw&lt;br /&gt;
&lt;br /&gt;
==== Collations of differing granularity ====&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/bonflsyb2d3ebtp2&lt;br /&gt;
* http://tei.markmail.org/thread/gqyymzd4a4xvhch7&lt;br /&gt;
&lt;br /&gt;
== An encoding proposal from the perspective of computer-aided collation tools == &lt;br /&gt;
&lt;br /&gt;
Gregor Middell gave an overview of textual variance from a software developer's perspective for the workgroup on a [[Textual_Variance|separate page]]. The models described there are used in tools like [http://collatex.sourceforge.net/ CollateX], [http://www.juxtasoftware.org/ Juxta] and [http://code.google.com/p/multiversiondocs/ nmerge].&lt;br /&gt;
&lt;br /&gt;
Collecting ideas from the mailinglist by James Cummings, Dan O'Donnell and Marjorie Burghart as well as following the [[Textual_Variance|“Gothenburg model” of textual variance]], a first take at separating the [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller model from the representation] of textual variance could be structured as follows.&lt;br /&gt;
&lt;br /&gt;
=== Modelling input data: Make the units of a collation addressable in the witnesses ===&lt;br /&gt;
&lt;br /&gt;
The Gothenburg model assumes a [[Textual_Variance#Tokenizer|preprocessing step]] by which the witnesses get split up into '''tokens''' of desired granularity. This granularity becomes the minimal unit of collation and can defined as pages, paragraphs, verses, lines, words, characters or any other unit that makes sense in the context of a particular tradition under investigation. To model collation results on top of tokenized witnesses, those tokens have to be addressable.&lt;br /&gt;
&lt;br /&gt;
The TEI defines an [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SAXP array of pointing mechanisms], which can be used to address anything from a whole XML document via URIs down to arbitrary content of those documents via sophisticated XPointer schemes. Projects would be free to choose among those mechanisms as long as each token is made available for later reference.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;p xml:base=&amp;quot;http://edition.org/witness_1&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;w&amp;gt;The&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;cat&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;ate&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;the&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;food&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;quickly&amp;lt;/w&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;p xml:base=&amp;quot;http://edition.org/witness_2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;w&amp;gt;Quickly&amp;lt;/w&amp;gt;, &amp;lt;w&amp;gt;the&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;cat&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;ate&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;the&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;food&amp;lt;/w&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here tokens on the word-level could be addressed via the [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SATSXP xpath1() XPointer scheme]:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;nowiki&amp;gt;http://edition.org/witness_1#xpath1(/p[1]/w[1])&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# &amp;lt;nowiki&amp;gt;http://edition.org/witness_1#xpath1(/p[1]/w[2])&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# ...&lt;br /&gt;
&lt;br /&gt;
A less verbose scheme would rely on each container element of a token being identified via a (possibly autogenerated) &amp;lt;code&amp;gt;xml:id&amp;lt;/code&amp;gt; attribute, like in the following verse-level tokenization.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;lg xml:base=&amp;quot;urn:goethe:faust2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;l xml:id=&amp;quot;l_1&amp;quot;&amp;gt;Die Sonne sinkt, die letzten Schiffe&amp;lt;/l&amp;gt;&lt;br /&gt;
  &amp;lt;l xml:id=&amp;quot;l_2&amp;quot;&amp;gt;Sie ziehen munter hafenein.&amp;lt;/l&amp;gt;&lt;br /&gt;
  &amp;lt;l xml:id=&amp;quot;l_3&amp;quot;&amp;gt;Ein großer Kahn ist im Begriffe&amp;lt;/l&amp;gt;&lt;br /&gt;
  &amp;lt;l xml:id=&amp;quot;l_4&amp;quot;&amp;gt;Auf dem Canale hier zu sein.&amp;lt;/l&amp;gt;&lt;br /&gt;
&amp;lt;/lg&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;nowiki&amp;gt;urn:goethe:faust2#l_1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# &amp;lt;nowiki&amp;gt;urn:goethe:faust2#l_2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# ...&lt;br /&gt;
&lt;br /&gt;
One can even think of reference schemes, which are as independent of existing markup as possible. By introducing &amp;amp;lt;anchor/&amp;gt; milestone elements at token boundaries and using the [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SATSRN range() XPointer scheme] the tokenization of arbitrary TEI documents can be accomplished, because &amp;amp;lt;anchor/&amp;gt; is part of [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/ref-model.global.html model.global].&lt;br /&gt;
&lt;br /&gt;
=== Modelling collated data: Encode the alignment/linking between tokens ===&lt;br /&gt;
&lt;br /&gt;
After tokens in the different witnesses have been made addressable, collation data can be modelled on top of that as [[Textual_Variance#Aligner|alignments of tokens]]. An '''alignment''' can be expressed as a set of tokens from different witnesses or, in accordance with the [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html corresponding guidelines chapter] as a link between two or more tokens.&lt;br /&gt;
&lt;br /&gt;
Taking the first example from above, a collation of the two given witnesses could be expressed as&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;linkGrp type=&amp;quot;collation&amp;quot; xml:base=&amp;quot;http://edition.org/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[1]) witness_2#xpath1(/p[1]/w[2])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[2]) witness_2#xpath1(/p[1]/w[3])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[3]) witness_2#xpath1(/p[1]/w[4])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[4]) witness_2#xpath1(/p[1]/w[5])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[5]) witness_2#xpath1(/p[1]/w[6])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[6]) witness_2#xpath1(/p[1]/w[1])&amp;quot; type=&amp;quot;transposition&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/linkGrp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each link in this example corresponds to a row in an alignment table as depicted in the Gothenburg model description. Omitted/ added tokens are expressed implictly by not linking to tokens in other witnesses, this is to say: Whether a set of tokens has been added to a witness or has been omitted from it, is a matter of interpreting collation data as expressed above from the perspective of one witness or another and with regard to the way, this witness aligns with others.&lt;br /&gt;
&lt;br /&gt;
One advantage of encoding collation data in such a set-oriented way is its '''scalability''':&lt;br /&gt;
&lt;br /&gt;
# Gradually adding witnesses to the collation may amount to adding alignments to the existing ones or modifying/augmenting the latter, depending on whether the collation is done pairwise (e. g. in relation to a base text) or via multiple alignment (e. g. without a prechosen base).&lt;br /&gt;
# Guiding a collation tool in producing ever more precise aligments in consecutive runs can be achieved by [[Textual_Variance#Analyzer|declaring alignments]] (for example transpositions), feeding those into the collator, adjusting the resulting alignment set, feeding it back into the collator for another run and so forth. Being able to encode the initial/preliminary results of such an iterative process in a standardized way, makes it possible to run different collation tools on the same text tradition, ideally each being able to make use of former results by other tools and to contribute to the overall result.&lt;br /&gt;
&lt;br /&gt;
The major disadvantage of encoding collation data this way is its apparant lack of human readability and that it is hardly possible to edit it by hand, especially when the collated text tradition grows larger. This problem can only be solved via tool support.&lt;br /&gt;
&lt;br /&gt;
=== Encoding the interpretation/ representation: Derive an apparatus from the collation ===&lt;br /&gt;
&lt;br /&gt;
A TEI-encoded critical apparatus is one possible rendition of collation data, possibly enhanced with information yielded from interpreting the alignments. There are a couple of ways how we could encode the above collation as an apparatus.&lt;br /&gt;
&lt;br /&gt;
==== Apparatus pointing to the collated tokens (for easier post-processing) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; xml:base=&amp;quot;http://edition.org/witness_1&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; xml:base=&amp;quot;http://edition.org/witness_2&amp;quot; xml:id=&amp;quot;w2_1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[1])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/rdg&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; xml:base=&amp;quot;http://edition.org/witness_1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[1])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[2])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[3])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[4])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[5])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/rdg&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; xml:base=&amp;quot;http://edition.org/witness_2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[2])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[3])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[4])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[5])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[6])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/rdg&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; xml:base=&amp;quot;http://edition.org/witness_1&amp;quot; corresp=&amp;quot;#w2_1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[6])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/rdg&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; xml:base=&amp;quot;http://edition.org/witness_2&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Apparatus with embedded textual content (for readability) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; xml:id=&amp;quot;w2_1&amp;quot;&amp;gt;Quickly,&amp;lt;/rdg&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot;&amp;gt;The cat ate the food&amp;lt;/rdg&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot;&amp;gt;the cat ate the food.&amp;lt;/rdg&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; corresp=&amp;quot;#w2_1&amp;quot;&amp;gt;quickly.&amp;lt;/rdg&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some problems here:&lt;br /&gt;
&lt;br /&gt;
* @corresp vs. &amp;lt;link/&amp;gt; for transpositions over more than two witnesses&lt;br /&gt;
* How to derive the segment content from the original witness automatically, if the token content does not add up to it (e. g. because of punctuation being excluded from the tokens from the start)?&lt;br /&gt;
&lt;br /&gt;
== Bibliography ==&lt;br /&gt;
&lt;br /&gt;
* O'Donnell, Daniel Paul. [http://etjanst.hb.se/bhs/ith/1-8/dpo.pdf “The Ghost in the Machine: Revisiting an Old Model for the Dynamic Generation of Digital Editions.”] HumanIT 8.1 (2005): 51­71.&lt;br /&gt;
* Vetter, L. and McDonald, J. ‘Witnessing Dickinson’s Witnesses’, Literary and Linguistic Computing, 18.2: 2003, 151-165.&lt;br /&gt;
* [http://eprints.qut.edu.au/38436/ Schmidt, D., 2010. The inadequacy of embedded markup for cultural heritage texts. Literary and Linguistic Computing, 25(3), pp. 337-356.]&lt;br /&gt;
&lt;br /&gt;
[[Category:SIG:Manuscripts]]&lt;br /&gt;
[[Category:Critical Apparatus]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=XML_Whitespace&amp;diff=13648</id>
		<title>XML Whitespace</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=XML_Whitespace&amp;diff=13648"/>
		<updated>2014-08-07T20:48:32Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: presenting a way to normalize whitespace &amp;quot;in the TEI fashion&amp;quot; with XQuery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TEI has robust features for specifying space, gaps, line breaks, and related aspects of the space between text. But TEI is an XML vocabulary, and XML itself, and programs that read and process XML files, have their own ways to deal with what they call whitespace, that is, space, tab, carriage return and linefeed characters. Sometimes the standards, constraints, and conventions imposed by XML cause problems for TEI encodings and for programs that process TEI files.&lt;br /&gt;
&lt;br /&gt;
This article explains interactions between TEI and XML's treatment of whitespace and concludes with recommendations for both producers of TEI encodings and authors of programs that process TEI encodings.&lt;br /&gt;
&lt;br /&gt;
==Where XML Considers Whitespace to be Significant==&lt;br /&gt;
&lt;br /&gt;
In XML documents, some whitespace is significant, some is not. For example, inside the brackets that mark XML elements extra whitespace is not significant. For any program processing these as pieces of XML,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color:#C3E6FC; margin-left:1em&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;title type=&amp;quot;main&amp;quot;&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color:#C3E6FC; margin-left:1em&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;title&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;     type =   &amp;quot;main&amp;quot;   &amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
are the same. There is no significance to the extra space. By XML rules, no application that processes the data in this XML file (processing it as XML and not just as text) is allowed to treat these two representations differently. A person or computer editing this file is free to use either one, based merely on readability and aesthetics. The fact that there is whitespace between &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;title&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; is significant, but how much or of what kind (space characters, tabs, carriage returns, new lines) is not significant. The space between &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;=&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; is not significant.&lt;br /&gt;
&lt;br /&gt;
Whitespace can be significant, however, in the content of an element. For example,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color:#C3E6FC; margin-left:1em&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;name&amp;amp;gt;JoAnn&amp;amp;lt;/name&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color:#C3E6FC; margin-left:1em; line-height:1em&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;name&amp;amp;gt;Jo Ann&amp;amp;lt;/name&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
are different because of that space between &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;Jo&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;Ann&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;, and any program reading this element in an XML file is obliged to maintain the distinction.&lt;br /&gt;
&lt;br /&gt;
But things can get complicated. Consider this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:#C3E6FC; margin-left:1em&amp;quot;&amp;gt;&amp;amp;lt;persName&amp;amp;gt;    &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:#C3E6FC; margin-left:1em&amp;quot;&amp;gt;    &amp;amp;lt;forename&amp;amp;gt;Jo&amp;amp;lt;/forename&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:#C3E6FC; margin-left:1em&amp;quot;&amp;gt;    &amp;amp;lt;forename&amp;amp;gt;Ann&amp;amp;lt;/forename&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:#C3E6FC; margin-left:1em&amp;quot;&amp;gt;    &amp;amp;lt;surname&amp;amp;gt;Henry&amp;amp;lt;/forename&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:#C3E6FC; margin-left:1em&amp;quot;&amp;gt;&amp;amp;lt;/persName&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Should the carriage returns and new lines matter? Should it matter if that &lt;br /&gt;
open area before &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;surname&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; is a tab or is instead four space characters? Should it matter that there is extra space after &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;persName&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
== Normalize = Collapse + Trim ==&lt;br /&gt;
&lt;br /&gt;
Many applications, including web browsers and many programs that read XML files will, unless instructed otherwise, “collapse” XML whitespace, that is, they will replace any contiguous string of space characters (0x20), tabs (0x09), carriage returns (0x0D) and line feeds (0x0A) with just one space character. So&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;amp;lt;name&amp;amp;gt;Jo Ann&amp;amp;lt;/name&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;amp;lt;name&amp;amp;gt;Jo    Ann&amp;amp;lt;/name&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;amp;lt;name&amp;amp;gt;Jo&amp;lt;/span&amp;gt; &lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;    Ann&amp;amp;lt;/name&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
would all be treated as if there were just one space character between &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;Jo&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;Ann&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;. Moreover many applications will remove, or &amp;amp;ldquo;trim&amp;amp;rdquo;, leading and trailing XML whitespace. So these, too,&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;amp;lt;name&amp;amp;gt; Jo Ann&amp;amp;lt;/name &amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;amp;lt;name&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;    Jo Ann&amp;amp;lt;/name&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;amp;lt;name&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;    Jo   &amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;    Ann&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;amp;lt;/name&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
would be treated as if the XML had been simply &amp;lt;span style=&amp;quot;background-color:#C3E6FC&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;name&amp;amp;gt;Jo Ann&amp;amp;lt;/name&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sometimes, as in the XSLT function &amp;amp;ldquo;normalize-space()&amp;amp;rdquo;, the term &amp;amp;ldquo;normalize&amp;amp;rdquo; refers to the combination of collapsing XML whitespace and then trimming. Other times, as in XML Schema, &amp;amp;ldquo;collapse&amp;amp;rdquo; is the name of the combined operation. This article uses the XSLT terminology: normalizing is collapsing plus trimming.&lt;br /&gt;
&lt;br /&gt;
Normalizing XML whitespace is very common. It is so pervasive that it is easy to overlook that it is happening and even difficult to know which program processing an XML file is doing the normalizing—is it the XSLT processor, the XSL program, the web browser, the print routine, or some combination?&lt;br /&gt;
&lt;br /&gt;
== @xml:space ==&lt;br /&gt;
&lt;br /&gt;
[http://www.w3.org/TR/REC-xml/#sec-white-space The XML specification] defines an attribute, &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;xml:space&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;, that when set to &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;preserve&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; instructs applications to suspend default trimming, collapsing, and normalizing and instead keep all the spaces, tabs, carriage returns, and line feeds just as they are. If &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;xml:space&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; is set to &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;default&amp;lt;/span&amp;gt; or is simply left off, no such request is made; the application is free to do whatever its developer thinks best.&lt;br /&gt;
&lt;br /&gt;
The attribute &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;xml:space&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; is inherited by child elements. One could, for example, put &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;xml:space=&amp;quot;preserve&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; into a TEI &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;text&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; element but not in &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;teiHeader&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;, to indicate that the request applies to all of the text but to none of the header.&lt;br /&gt;
&lt;br /&gt;
TEI allows &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;xml:space&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; to be used [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/ref-att.global.html on any element]. But since TEI has so much rich functionality for encoding spaces, gaps, line breaks, and so on, the &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;xml:space&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; attribute is rarely used. Whatever could be accomplished by setting its value to &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;preserve&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; would be better accomplished by using native TEI elements. So the value is normally left as &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;default&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; by simply not including the attribute. Downstream processors are then left free to treat XML whitespace however the application developers want.&lt;br /&gt;
&lt;br /&gt;
== Default Whitespace Processing ==&lt;br /&gt;
When &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;xml:space&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; is left as &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;default&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;, '''nothing in XML or TEI specifies how consumers of a TEI XML file should treat whitespace.''' &lt;br /&gt;
&lt;br /&gt;
There are, however, unspecified conventions. TEI encodings generally assume that space will be normalized, that in this encoding &lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;p&amp;amp;gt;   &amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;    We hold these truths to be self-evident,  that all men are   &amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;    are created equal,  that they are endowed by their creator &amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;    with certain inalienable Rights,  that among these are Life,   &amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;    Liberty and the pursuit of Happiness.&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;/p&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
some downstream processor will collapse spaces, tabs, carriage returns, and line feeds and will trim the space just after the &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;p&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; and just before the &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;/p&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;, and that in this encoding, [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/ref-persName.html from the TEI 5 Guidelines], &lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;persName&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;    &amp;lt;forename&amp;gt;Edward&amp;lt;/forename&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;    &amp;lt;forename&amp;gt;George&amp;lt;/forename&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;    &amp;lt;surname type=&amp;quot;linked&amp;quot;&amp;gt;Bulwer-Lytton&amp;lt;/surname&amp;gt;, &amp;lt;roleName&amp;gt;Baron Lytton of&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;    &amp;lt;placeName&amp;gt;Knebworth&amp;lt;/placeName&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;    &amp;lt;/roleName&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;/persName&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the man's name is &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;Edward George Bulwer-Lytton, Baron Lytton of Knebworth&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;, and not &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;nbsp;Edward George Bulwer-Lytton, Baron Lytton of Knebworth&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; with space on the outsides, or &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;EdwardGeorgeBulwer-Lytton,BaronLyttonofKnebworth&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;, or some name with carriage returns in it.&lt;br /&gt;
&lt;br /&gt;
=== Collapsing ===&lt;br /&gt;
&lt;br /&gt;
A TEI encoder should assume that any string of whitespace characters will be collapsed into one space character. In theory, this can be circumvented by setting &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;xml:space='preserve'&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;, but not all downstream processors honor such requests. Web browsers, for example, do not. It is safer to use TEI's &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;space&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
Programmers of downstream applications should feel free to collapse whitespace but should also honor &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;xml:space='preserve'&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; unless they can be certain that doing so is unnecessary.&lt;br /&gt;
&lt;br /&gt;
=== Trimming ===&lt;br /&gt;
&lt;br /&gt;
Whether text in an element should or will be trimmed depends on whether it is the only text in the element or it has siblings that are themselves elements.&lt;br /&gt;
&lt;br /&gt;
==== Text-Only Elements ====&lt;br /&gt;
&lt;br /&gt;
Even when specifications may be unclear on the matter, XML culture, conventions, product features, programming habits, and general best practices are allied not only to collapse but to trim whitespace from elements that contain only text. Encoders and consumers of TEI data should accept this. Unless &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;@xml:space&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; has been set to &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;'preserve'&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;, consumers of TEI files should trim such space and encoders should assume such space will be trimmed.&lt;br /&gt;
&lt;br /&gt;
When this is done, these encodings &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;country&amp;amp;gt;Australia&amp;amp;lt;/country&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;country&amp;amp;gt;   Australia   &amp;amp;lt;/country&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;country&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;        Australia     &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;country&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will all produce the same result. If the processing software were extracting data for use in a database, the resulting field would be &amp;lt;tt&amp;gt;country:&amp;amp;nbsp;&amp;lt;span style=&amp;quot;border: 1px black solid&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot; &amp;gt;Australia&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; in all three cases. If an encoder wants leading and trailing space to be preserved, if, for example, &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;emph rend='underline'&amp;amp;gt; Yes! &amp;amp;lt;emph&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
is meant to underline the space before and after the word, then &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;xml:space='preserve'&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; must be included in the &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;emph&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; element '''and''' it must be ensured that downstream processors actually honor &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;xml:space='preserve'&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;. If the underlining is meant to extend for not one but several spaces, only heroic care by encoder and consumer will ensure that it does. Use of &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;space rend='underline'&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; will be more reliable.&lt;br /&gt;
&lt;br /&gt;
With both collapsing and trimming&amp;amp;mdash;that is, with normalizing&amp;amp;mdash;all of the following encodings would yield the same result.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;name&amp;amp;gt;Ralph Waldo Emerson&amp;amp;lt;/name&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;name&amp;amp;gt;   Ralph Waldo  Emerson   &amp;amp;lt;/name&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;name&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;        Ralph    &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;        Waldo    &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;       Emerson   &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;name&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mixed-Content Elements ====&lt;br /&gt;
&lt;br /&gt;
If an element contains not just text, but other elements, where and when space should be trimmed is more complicated. Consider the following encoding. &lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;The&amp;amp;nbsp;&amp;amp;lt;emph&amp;amp;gt;&amp;amp;nbsp;cat&amp;amp;nbsp;&amp;amp;lt;/emph&amp;amp;gt; ate&amp;amp;nbsp;&amp;amp;nbsp;the&amp;amp;nbsp;&amp;amp;lt;foreign&amp;amp;gt;grande&amp;amp;nbsp;croissant&amp;amp;lt;/foreign&amp;amp;gt;.&amp;amp;nbsp;I didn't!&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;  &amp;amp;lt;/p&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;p&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; element contains five child nodes.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;The&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|| A text node &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;emph&amp;amp;gt;&amp;amp;nbsp;cat&amp;amp;nbsp;&amp;amp;lt;/emph&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|| An &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;emph&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; element that itself contains one text node&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;nbsp;ate&amp;amp;nbsp;&amp;amp;nbsp;the&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|| A text node&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;foreign&amp;amp;gt;grande&amp;amp;nbsp;croissant&amp;amp;lt;/foreign&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|| A &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;foreign&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; element that itself contains one text node&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;.&amp;amp;nbsp;I&amp;amp;nbsp;didn't!&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|| A text node that includes a carriage return and then two spaces&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
By convention, it is presumed that this encodes a passage that could have been equivalently encoded one of these ways:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;p&amp;amp;gt;The&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;emph&amp;amp;gt;cat&amp;amp;lt;/emph&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;ate&amp;amp;nbsp;the&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;foreign&amp;amp;gt;croissant&amp;amp;lt;/foreign&amp;amp;gt;. &amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;I didn't!&amp;amp;lt;/p&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;p&amp;amp;gt;The&amp;amp;nbsp;&amp;amp;lt;emph&amp;amp;gt;cat&amp;amp;lt;/emph&amp;amp;gt;&amp;amp;nbsp;ate&amp;amp;nbsp;the &amp;amp;lt;foreign&amp;amp;gt;grande&amp;amp;nbsp;croissant&amp;amp;lt;/foreign&amp;amp;gt;.&amp;amp;nbsp;I&amp;amp;nbsp;didn't!&amp;amp;lt;/p&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The algorithm to normalize space in mixed content is: &lt;br /&gt;
* Collapse all white space, then &lt;br /&gt;
* trim: &lt;br /&gt;
** trim leading space on the first text node in an element and &lt;br /&gt;
** trim trailing space on the last text node in an element, &lt;br /&gt;
** trim both if a text node is both first and last, i.e., is the only text node in the element.&lt;br /&gt;
&lt;br /&gt;
Applying that algorithm to the above passage:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;The&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;The&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|| Because this is the first node in the &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;p&amp;amp;gt;&amp;lt;/span&amp;gt; element, leading space is trimmed and trailing space is collapsed but not trimmed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;emph&amp;amp;gt;&amp;amp;nbsp;cat&amp;amp;nbsp;&amp;amp;lt;/emph&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;cat&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|| Because the only thing inside the &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;emph&amp;amp;gt;&amp;lt;/span&amp;gt; element is a text node, the text there gets collapsed and trimmed. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;nbsp;ate&amp;amp;nbsp;&amp;amp;nbsp;the&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;nbsp;ate&amp;amp;nbsp;the&amp;amp;nbsp;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|| Space is collapsed but not trimmed on either side.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;foreign&amp;amp;gt;grande&amp;amp;nbsp;croissant&amp;amp;lt;/foreign&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;grande&amp;amp;nbsp;croissant&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|| Space in this text-only node is collapsed and trimmed, but no change results.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;.&amp;amp;nbsp;I&amp;amp;nbsp;didn't!&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;.&amp;amp;nbsp;I&amp;amp;nbsp;didn't!&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|| Because this is the last node in the &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;p&amp;amp;gt;&amp;lt;/span&amp;gt; element, trailing space is trimmed and leading space is collapsed but not trimmed.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
The result is as if the encoding had been&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;p&amp;amp;gt;The&amp;amp;nbsp;&amp;amp;lt;emph&amp;amp;gt;cat&amp;amp;lt;/emph&amp;amp;gt;&amp;amp;nbsp;ate&amp;amp;nbsp;the &amp;amp;lt;foreign&amp;amp;gt;grande&amp;amp;nbsp;croissant&amp;amp;lt;/foreign&amp;amp;gt;.&amp;amp;nbsp;I&amp;amp;nbsp;didn't!&amp;amp;lt;/p&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The normalization process would have corrupted the text had the encoder put spaces ''inside'' the &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;emph&amp;amp;gt;&amp;lt;/span&amp;gt;, like this:&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;p&amp;amp;gt;The&amp;amp;lt;emph&amp;amp;gt;&amp;amp;nbsp;cat&amp;amp;nbsp;&amp;amp;lt;/emph&amp;amp;gt;ate&amp;amp;nbsp;the &amp;amp;lt;foreign&amp;amp;gt;grande&amp;amp;nbsp;croissant&amp;amp;lt;/foreign&amp;amp;gt;.&amp;amp;nbsp;I&amp;amp;nbsp;didn't!&amp;amp;lt;/p&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The resulting text would be:&lt;br /&gt;
&lt;br /&gt;
   The&amp;lt;u&amp;gt;cat&amp;lt;/u&amp;gt;ate the ''grande croissant''. I didn't!&lt;br /&gt;
&lt;br /&gt;
'''An encoder should assume that an element that includes nothing but text ''will'' get trimmed.'''&lt;br /&gt;
&lt;br /&gt;
== Structured Elements and xsl:strip-space ==&lt;br /&gt;
&lt;br /&gt;
As mentioned above, normalization of whitespace is very common. Programmers implement it without asking encoders. And encoders presume some downstream application will effect it. This complex encoding of a person's name, [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/ref-persName.html taken from the TEI 5 Guidelines] and mentioned above,&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;persName&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;    &amp;lt;forename&amp;gt;Edward&amp;lt;/forename&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;    &amp;lt;forename&amp;gt;George&amp;lt;/forename&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;    &amp;lt;surname type=&amp;quot;linked&amp;quot;&amp;gt;Bulwer-Lytton&amp;lt;/surname&amp;gt;, &amp;lt;roleName&amp;gt;Baron Lytton of&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;    &amp;lt;placeName&amp;gt;Knebworth&amp;lt;/placeName&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;    &amp;lt;/roleName&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;/persName&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
presumes&amp;amp;mdash;though without saying so&amp;amp;mdash;that a downstream program will normalize space according to the algorithm above and produce the name &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;Edward George Bulwer-Lytton, Baron Lytton of Knebworth&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note here that the &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;persName&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; element contains both text and elements. Note the comma. And note that had the forenames been encoded without intervening whitespace, the result would have been &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;EdwardGeorge&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
A problem lurks. Part of defining an XML vocabulary such as TEI is specifying whether an element may contain text and elements or just elements. In TEI 5, &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;, for example, unlike &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;persName&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;, may only contain other elements. This&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;   &amp;amp;lt;street&amp;amp;gt;10 Downing Street&amp;amp;lt;/street&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;   &amp;amp;lt;settlement&amp;amp;gt;London&amp;amp;lt;/settlement&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;   &amp;amp;lt;postCode&amp;amp;gt;SW1A 2AA&amp;amp;lt;/postCode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
is valid TEI. But this&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;   &amp;amp;lt;street&amp;amp;gt;10 Downing Street&amp;amp;lt;/street&amp;amp;gt;,&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;   &amp;amp;lt;settlement&amp;amp;gt;London&amp;amp;lt;/settlement&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;   &amp;amp;lt;postCode&amp;amp;gt;SW1A 2AA&amp;amp;lt;/postCode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
is not, because of that comma after the &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;street&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; element. Free non-whitespace text is not allowed between the elements that comprise the &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; element. Though the term is sometimes used more loosely, &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt; would commonly be called a &amp;quot;structured element.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Elements that do not allow free non-whitespace text&amp;amp;mdash;structured elements, strictly speaking&amp;amp;mdash;mimic database records. When XML is used to move data between databases, such elements are the norm; indeed many XSLT programmers have never worked on anything but structured data. In a TEI file, structured data is more common in the header than in the text. A program extracting metadata from a TEI file will often be looking for structured data in the header, so that it can populate database fields, maybe like this:&lt;br /&gt;
&lt;br /&gt;
   street:      &amp;lt;span style=&amp;quot;border:1px solid black; line-height:1.5em&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;10 Downing Street&amp;lt;/span&amp;gt;    &amp;lt;/span&amp;gt;&lt;br /&gt;
   settlement:  &amp;lt;span style=&amp;quot;border:1px solid black; line-height:1.5em&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;London&amp;lt;/span&amp;gt;               &amp;lt;/span&amp;gt;&lt;br /&gt;
   postCode:    &amp;lt;span style=&amp;quot;border:1px solid black; line-height:1.5em&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;SW1A 2AA&amp;lt;/span&amp;gt;             &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Defining an element as a structured element specifies that space between child elements can be completely ignored. Thus these two encodings&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;   &amp;amp;lt;settlement type=&amp;quot;city&amp;quot;&amp;amp;gt;London&amp;amp;lt;/settlement&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;   &amp;amp;lt;postCode&amp;amp;gt;SW1A 2AA&amp;amp;lt;/postCode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;   &amp;amp;lt;settlement type=&amp;quot;city&amp;quot;&amp;amp;gt;London&amp;amp;lt;/settlement&amp;amp;gt;&amp;amp;lt;postCode&amp;amp;gt;SW1A 2AA&amp;amp;lt;/postCode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
are equivalent. They encode:&lt;br /&gt;
&lt;br /&gt;
   city:     &amp;lt;span style=&amp;quot;border:1px solid black; line-height:1.5em&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;London&amp;lt;/span&amp;gt;             &amp;lt;/span&amp;gt;&lt;br /&gt;
   postCode: &amp;lt;span style=&amp;quot;border:1px solid black; line-height:1.5em&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;SW1A 2AA&amp;lt;/span&amp;gt;          &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nothing in the encoding indicates that there should be a space, a comma, a new-line, or anything else between &amp;quot;London&amp;quot; and &amp;quot;SW1A 2AA&amp;quot;. What, if anything, will be there is left to the processing application. When rendering prose, the application might insert a comma; when printing a mailing label, it might insert a new-line. If might use different punctuation when mailing to different countries.&lt;br /&gt;
&lt;br /&gt;
To correctly process structured elements, XSL programmers insert an instruction, &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;xsl:strip-space&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;, at the beginning of their programs, followed by a list of the names of the structured elements. Among other things, this ensures that all whitespace between the children of structured elements will be removed. It will be as if such whitespace was collapsed and trimmed and made to completely disappear.&lt;br /&gt;
&lt;br /&gt;
This situation can produce a temptation best resisted. An encoder may want to request that space be inserted between the components of a structured element, that, for example, &lt;br /&gt;
&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;   &amp;amp;lt;settlement type=&amp;quot;city&amp;quot;&amp;amp;gt;London&amp;amp;lt;/settlement&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;   &amp;amp;lt;postCode&amp;amp;gt;SW1A 2AA&amp;amp;lt;/postCode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
should be taken to encode &amp;quot;London SW1A 2AA&amp;quot;. To implement this, the downstream processor could simply treat &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; as if it were not a structured element and was a mixed-content element instead. The encoder could then leave whitespace between the child elements and the regular normalization algorithm described above would collapse it and leave one space character.&lt;br /&gt;
&lt;br /&gt;
The temptation is all the more seductive because (1) XML verification will not signal an error, (2) demands on the programmers of downstream applications are reduced, and (3) it is easy to succumb unknowingly. In XSLT, the programmer intentionally or inadvertently leaves &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;xsl:strip-space&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; off, something the programmer is happy to do since gathering the list of structured elements was inconvenient anyway, and all seems to be well. &lt;br /&gt;
&lt;br /&gt;
But the better practice is indeed to burden the application with properly formatting structured elements. This burden is part of what it means for an element to be structured. If the project team agrees that whitespace in structured elements will be significant, the schema should be customized to make these elements mixed-content elements instead of structured elements. This ensures that future users of the XML files will be able to understand the files' contents. It also signals that &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;settlement&amp;amp;gt;New&amp;amp;lt;/settlement&amp;amp;gt;&amp;amp;lt;settlement&amp;amp;gt;York&amp;amp;lt;/settlement&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;settlement&amp;amp;gt;New&amp;amp;lt;/settlement&amp;amp;gt;&amp;amp;nbsp;&amp;amp;lt;settlement&amp;amp;gt;York&amp;amp;lt;/settlement&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
are different, which they would not be if the element were a structured one.&lt;br /&gt;
&lt;br /&gt;
== Recommendations ==&lt;br /&gt;
&lt;br /&gt;
* Programmers should, unless instructed otherwise by &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;@xml:space='preserve'&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;, implement code that normalizes space.&lt;br /&gt;
* Encoders should presume such normalization will be done but should include a note in &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;encodingDesc&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; announcing the presumption. If normalization is not desired as the default, this certainly should be announced in &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;&amp;amp;lt;encodingDesc&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Encoders should use &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;xml:space='preserve'&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; only with the utmost care. Whatever could be accomplished by using it is usually accomplished with less risk by using native TEI elements. &lt;br /&gt;
* Project teams should not intentionally or inadvertently use structured elements as if they were mixed-content elements. If this must be done, the schema should be customized to record the change.&lt;br /&gt;
&lt;br /&gt;
== XSLT Normalization Code ==&lt;br /&gt;
&lt;br /&gt;
To normalize mixed-content elements, XSLT's &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;normalize-space()&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; function cannot simply be used on all text nodes. The XSLT stylesheet must consider where a text node is among its siblings.&lt;br /&gt;
&lt;br /&gt;
The following XSLT 1.0 code implements the normalization algorithm described above. It works for both text-only and mixed-content elements. The code overrides the built-in template for the appropriate text nodes so may simply be added to XSLT stylesheets.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Normalize unpreserved white space. --&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;text()[not(ancestor::*[@xml:space][1]/@xml:space='preserve')]&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Retain one leading space if node isn't first, has non-space content, and has leading space.--&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:if test=&amp;quot;position()!=1 and normalize-space(substring(., 1, 1)) = '' and normalize-space()!=''&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:if&amp;gt;        &lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;normalize-space()&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Retain one trailing space if node isn't last, isn't first, and has trailing space &lt;br /&gt;
                                       or node isn't last, is first, has trailing space, and has any non-space content  &lt;br /&gt;
                                       or node is an only child, and has content but it's all space--&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:if test=&amp;quot;position()!=last() and position()!=1 and normalize-space(substring(., string-length())) = ''&lt;br /&gt;
                   or position()!=last() and position() =1 and normalize-space(substring(., string-length())) = '' and normalize-space()!=''&lt;br /&gt;
                   or last()=1 and string-length()!=0 and normalize-space()='' &amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color:#DBF0FD&amp;quot;&amp;gt;normalize-space(substring(., string-length())) = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; is just a way to test for whitespace.&lt;br /&gt;
&lt;br /&gt;
An alternative in XSLT 2.0 is the code below, which covers all uses of &amp;lt;tt&amp;gt;text()&amp;lt;/tt&amp;gt;. it is written in a slightly more verbose style than the XSLT 1.0 version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;text()&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:when&lt;br /&gt;
	  test=&amp;quot;ancestor::*[@xml:space][1]/@xml:space='preserve'&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Retain one leading space if node isn't first, has&lt;br /&gt;
	     non-space content, and has leading space.--&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:if test=&amp;quot;position()!=1 and          matches(.,'^\s') and          normalize-space()!=''&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;normalize-space(.)&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
          &amp;lt;!-- node is an only child, and has content but it's all space --&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:when test=&amp;quot;last()=1 and string-length()!=0 and      normalize-space()=''&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
          &amp;lt;!-- node isn't last, isn't first, and has trailing space --&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:when test=&amp;quot;position()!=1 and position()!=last() and matches(.,'\s$')&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
          &amp;lt;!-- node isn't last, is first, has trailing space, and has non-space content   --&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:when test=&amp;quot;position()=1 and matches(.,'\s$') and normalize-space()!=''&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== XQuery Normalization Code ==&lt;br /&gt;
&lt;br /&gt;
The corresponding XQuery code would run like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  (:&lt;br /&gt;
  The rules are:&lt;br /&gt;
  #1 Retain one leading space if the node isn't first, has non-space content, and has leading space.&lt;br /&gt;
  #2 Retain one trailing space if the node isn't last, isn't first, and has trailing space. &lt;br /&gt;
  #3 Retain one trailing space if the node isn't last, is first, has trailing space, and has non-space content.&lt;br /&gt;
  #4 Retain a single space if the node is an only child and only has space content.&lt;br /&gt;
  :)&lt;br /&gt;
  declare function local:tei-normalize-space($input)&lt;br /&gt;
  {&lt;br /&gt;
     element {node-name($input)}&lt;br /&gt;
       {$input/@*,&lt;br /&gt;
         for $child in $input/node()&lt;br /&gt;
         return&lt;br /&gt;
           if ($child instance of element())&lt;br /&gt;
           then local:tei-normalize-space($child)&lt;br /&gt;
           else&lt;br /&gt;
             if ($child instance of text())&lt;br /&gt;
             then&lt;br /&gt;
               (:#1 Retain one leading space if node isn't first, has non-space content, and has leading space:)&lt;br /&gt;
               if ($child/position() ne 1 and matches($child,'^\s') and normalize-space($child) ne '')&lt;br /&gt;
               then (' ', normalize-space($child))&lt;br /&gt;
               else&lt;br /&gt;
                 (:#4 retain one space, if the node is an only child, and has content but it's all space:)&lt;br /&gt;
                 if ($child/last() eq 1 and string-length($child) ne 0 and normalize-space($child) eq '')&lt;br /&gt;
                 (:NB: this overrules standard normalization:)&lt;br /&gt;
                 then ' '&lt;br /&gt;
                 else&lt;br /&gt;
                   (:#2 if the node isn't last, isn't first, and has trailing space, retain trailing space and collapse and trim the rest:)&lt;br /&gt;
                   if ($child/position() ne 1 and $child/position() ne last() and matches($child,'\s$'))&lt;br /&gt;
                   then (normalize-space($child), ' ')&lt;br /&gt;
                   else&lt;br /&gt;
                     (:#3 if the node isn't last, is first, has trailing space, and has non-space content, then keep trailing space:)&lt;br /&gt;
                     if ($child/position() eq 1 and matches($child,'\s$') and normalize-space($child) ne '')&lt;br /&gt;
                     then (normalize-space($child), ' ')&lt;br /&gt;
                     (:if the node is an only child, and has content which is not all space, then trim and collapse, that is, apply standard normalization:)&lt;br /&gt;
                     else normalize-space($child)&lt;br /&gt;
              (:output comments and pi's:)&lt;br /&gt;
              else $child&lt;br /&gt;
      }&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
*[http://www.w3.org/TR/REC-xml/#sec-white-space XML 1.0 (Fifth Edition W3C Recommendation 26 November 2008) 2.10 White Space Handling] The spec on @xml:space.&lt;br /&gt;
*[http://www.jenitennison.com/blog/node/41 Things that make me scream: xml:space=&amp;quot;preserve&amp;quot; in WordML] Frustrations of dealing with @xml:space.&lt;br /&gt;
*[http://lists.xml.org/archives/xml-dev/201207/msg00172.html What is @xml:space about?] A discussion of @xml:space on xml-dev.&lt;br /&gt;
*[http://msdn.microsoft.com/en-us/library/ms788746(v=vs.90).aspx Whitespace Processing in XAML] Another description of the algorithm for normalizing mixed-content elements.&lt;br /&gt;
&lt;br /&gt;
[[Category:XSLT]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
[[Category:Markup]]&lt;br /&gt;
[[Category:Recommended Practice]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=13529</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=13529"/>
		<updated>2014-07-01T12:06:51Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Sample implementations */ Added Syrica.org&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist-db.org eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery-30/ XQuery 3.0], [http://www.w3.org/TR/xpath-30/ XPath 3.0], [http://www.w3.org/TR/xslt20/ XSLT 2.0] (based on [http://www.saxonica.com/ Saxon]), XForms 1.1 (based on [http://www.betterForm.de betterForm], [http://www.orbeon.com Orbeon] or [http://www.agencexml.com/xsltforms XSLTForms]) XProc, JSON and JSONP.&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://exquery.github.io/exquery/exquery-restxq-specification/restxq-1.0-specification.html RESTXQ], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The 1.4 version added a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
&lt;br /&gt;
The [http://exist.sourceforge.net/download.html 2.0 version] completely redesigned the Security subsystem introducing Access Control Lists and multiple realm authentication, and also introduced a re-write of the WebDAV Server making it more widely compatible with clients. In addition hundreds of bugfixes and performance improvements have been made since the 1.4 release.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate, XSLT and XProc&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XML:DB API]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Security Access Control Lists on Documents and Collections&lt;br /&gt;
* Optional multi-realm integration with LDAP and Active Directory&lt;br /&gt;
* Integration with [[ApacheCocoon]]&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.oracle.com JRE] &amp;gt;= 6. Being a Java application it can be used on most operating systems, including Windows, Linux, Mac OS X, Solaris and FreeBSD and it can be deployed in several ways, as a standalone server application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library embedded in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/licenses/lgpl-2.1.html GNU LGPL 2.1] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the Digital.Humanities@Oxford Summer School in 2011; see the [http://digital.humanities.ox.ac.uk/dhoxss/2011/sessions.html#xmldb session description] with links to slides and sample material.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From the Package Manager, accessed through the eXist Dashboard, one can install the application Shakespeare's Works in TEI from the eXist Public Repository. All Shakespeare's plays from the [http://wordhoard.northwestern.edu/ WordHoard Shakespeare] can be queried with search results displayed in the hit list in KWIC format. See also the [https://github.com/wolfgangmm/ShakespeareDemo GitHub repo] for this application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A TEI module called Matumi is distributed as an eXist application. Matumi is still under development. It requires eXist version 1.5 and is installed from within eXist's Package Reposistory. After installation, it can be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
Matumi is not a full-blown TEI module yet, but it has some notable features, such as the ability to browse by filtering texts and core parts of the markup. It contains faceted search feeding off the markup, making possible &amp;quot;translingual&amp;quot; searches that utilise references added to name forms.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only.&lt;br /&gt;
&lt;br /&gt;
Installation will store a number of basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present orientation of the app.&lt;br /&gt;
&lt;br /&gt;
If you access through browsing, you can arrange the data by four criteria - books, entry title, subjects and names.&lt;br /&gt;
&lt;br /&gt;
If you access through search, in order to retrieve some sample results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/XQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As detailed above, eXist is itself written in the Java language. However, it enables complete applications to be created without writing any programming code, by just using only XQuery, XSLT, (X)HTML, CSS, XForms, XProc and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
[http://exist-db.org/exist/apps/doc/ eXist Documentation]&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support for the Open Source product is provided mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
Commercial support, consultancy and training is also available from the creators of eXist through [http://www.existsolutions.com eXist Solutions]. eXist Solutions directly support and further the development of eXist.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
In August 2011, a dedicated email list was created on using eXist with TEI resources. For information or to subscribe, go to the [https://lists.sourceforge.net/lists/listinfo/exist-teixml eXist-TEIXML] information page.&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://mapoflondon.uvic.ca/ The Map of Early Modern London] maps the streets, sites, and significant boundaries of late 16th-century and early 17th-century London. &lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The correspondence, diaries, writings and works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://syriaca.org/ Syrica.org] publishes online reference works concerning the culture, history, and literature of Syriac communities from antiquity to the present. Public repo at [https://github.com/srophe/srophe-eXist-app GitHub].&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
&amp;lt;!--* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]--&amp;gt;&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://sermones.net/thesaurus/ Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
&amp;lt;!--* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.--&amp;gt;&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ The Colonial Despatches of Vancouver Island and British Columbia 1846-1871] contains the original correspondence between the British Colonial Office and the colonies of Vancouver Island and British Columbia. &lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
Current stable release: eXist 2.0 revision 18252 - 2013-02-07&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download an installer for the current stable version (version 2.1, July 2013) from the [http://www.exist-db.org/exist/apps/homepage/index.html#subscriptions eXist Home Page]; clone or download the current trunk version from the [https://github.com/eXist-db/exist eXist GitHub Page].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=13528</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=13528"/>
		<updated>2014-07-01T12:02:07Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Sample implementations */ PHP again&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist-db.org eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery-30/ XQuery 3.0], [http://www.w3.org/TR/xpath-30/ XPath 3.0], [http://www.w3.org/TR/xslt20/ XSLT 2.0] (based on [http://www.saxonica.com/ Saxon]), XForms 1.1 (based on [http://www.betterForm.de betterForm], [http://www.orbeon.com Orbeon] or [http://www.agencexml.com/xsltforms XSLTForms]) XProc, JSON and JSONP.&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://exquery.github.io/exquery/exquery-restxq-specification/restxq-1.0-specification.html RESTXQ], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The 1.4 version added a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
&lt;br /&gt;
The [http://exist.sourceforge.net/download.html 2.0 version] completely redesigned the Security subsystem introducing Access Control Lists and multiple realm authentication, and also introduced a re-write of the WebDAV Server making it more widely compatible with clients. In addition hundreds of bugfixes and performance improvements have been made since the 1.4 release.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate, XSLT and XProc&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XML:DB API]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Security Access Control Lists on Documents and Collections&lt;br /&gt;
* Optional multi-realm integration with LDAP and Active Directory&lt;br /&gt;
* Integration with [[ApacheCocoon]]&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.oracle.com JRE] &amp;gt;= 6. Being a Java application it can be used on most operating systems, including Windows, Linux, Mac OS X, Solaris and FreeBSD and it can be deployed in several ways, as a standalone server application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library embedded in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/licenses/lgpl-2.1.html GNU LGPL 2.1] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the Digital.Humanities@Oxford Summer School in 2011; see the [http://digital.humanities.ox.ac.uk/dhoxss/2011/sessions.html#xmldb session description] with links to slides and sample material.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From the Package Manager, accessed through the eXist Dashboard, one can install the application Shakespeare's Works in TEI from the eXist Public Repository. All Shakespeare's plays from the [http://wordhoard.northwestern.edu/ WordHoard Shakespeare] can be queried with search results displayed in the hit list in KWIC format. See also the [https://github.com/wolfgangmm/ShakespeareDemo GitHub repo] for this application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A TEI module called Matumi is distributed as an eXist application. Matumi is still under development. It requires eXist version 1.5 and is installed from within eXist's Package Reposistory. After installation, it can be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
Matumi is not a full-blown TEI module yet, but it has some notable features, such as the ability to browse by filtering texts and core parts of the markup. It contains faceted search feeding off the markup, making possible &amp;quot;translingual&amp;quot; searches that utilise references added to name forms.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only.&lt;br /&gt;
&lt;br /&gt;
Installation will store a number of basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present orientation of the app.&lt;br /&gt;
&lt;br /&gt;
If you access through browsing, you can arrange the data by four criteria - books, entry title, subjects and names.&lt;br /&gt;
&lt;br /&gt;
If you access through search, in order to retrieve some sample results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/XQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As detailed above, eXist is itself written in the Java language. However, it enables complete applications to be created without writing any programming code, by just using only XQuery, XSLT, (X)HTML, CSS, XForms, XProc and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
[http://exist-db.org/exist/apps/doc/ eXist Documentation]&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support for the Open Source product is provided mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
Commercial support, consultancy and training is also available from the creators of eXist through [http://www.existsolutions.com eXist Solutions]. eXist Solutions directly support and further the development of eXist.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
In August 2011, a dedicated email list was created on using eXist with TEI resources. For information or to subscribe, go to the [https://lists.sourceforge.net/lists/listinfo/exist-teixml eXist-TEIXML] information page.&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://mapoflondon.uvic.ca/ The Map of Early Modern London] maps the streets, sites, and significant boundaries of late 16th-century and early 17th-century London. &lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The correspondence, diaries, writings and works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
&amp;lt;!--* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]--&amp;gt;&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://sermones.net/thesaurus/ Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
&amp;lt;!--* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.--&amp;gt;&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ The Colonial Despatches of Vancouver Island and British Columbia 1846-1871] contains the original correspondence between the British Colonial Office and the colonies of Vancouver Island and British Columbia. &lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
Current stable release: eXist 2.0 revision 18252 - 2013-02-07&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download an installer for the current stable version (version 2.1, July 2013) from the [http://www.exist-db.org/exist/apps/homepage/index.html#subscriptions eXist Home Page]; clone or download the current trunk version from the [https://github.com/eXist-db/exist eXist GitHub Page].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=13425</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=13425"/>
		<updated>2014-06-10T12:06:59Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Sample implementations */ Has paleographie ever used eXist? Clearly a PHP site.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist-db.org eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery-30/ XQuery 3.0], [http://www.w3.org/TR/xpath-30/ XPath 3.0], [http://www.w3.org/TR/xslt20/ XSLT 2.0] (based on [http://www.saxonica.com/ Saxon]), XForms 1.1 (based on [http://www.betterForm.de betterForm], [http://www.orbeon.com Orbeon] or [http://www.agencexml.com/xsltforms XSLTForms]) XProc, JSON and JSONP.&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://exquery.github.io/exquery/exquery-restxq-specification/restxq-1.0-specification.html RESTXQ], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The 1.4 version added a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
&lt;br /&gt;
The [http://exist.sourceforge.net/download.html 2.0 version] completely redesigned the Security subsystem introducing Access Control Lists and multiple realm authentication, and also introduced a re-write of the WebDAV Server making it more widely compatible with clients. In addition hundreds of bugfixes and performance improvements have been made since the 1.4 release.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate, XSLT and XProc&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XML:DB API]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Security Access Control Lists on Documents and Collections&lt;br /&gt;
* Optional multi-realm integration with LDAP and Active Directory&lt;br /&gt;
* Integration with [[ApacheCocoon]]&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.oracle.com JRE] &amp;gt;= 6. Being a Java application it can be used on most operating systems, including Windows, Linux, Mac OS X, Solaris and FreeBSD and it can be deployed in several ways, as a standalone server application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library embedded in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/licenses/lgpl-2.1.html GNU LGPL 2.1] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the Digital.Humanities@Oxford Summer School in 2011; see the [http://digital.humanities.ox.ac.uk/dhoxss/2011/sessions.html#xmldb session description] with links to slides and sample material.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From the Package Manager, accessed through the eXist Dashboard, one can install the application Shakespeare's Works in TEI from the eXist Public Repository. All Shakespeare's plays from the [http://wordhoard.northwestern.edu/ WordHoard Shakespeare] can be queried with search results displayed in the hit list in KWIC format. See also the [https://github.com/wolfgangmm/ShakespeareDemo GitHub repo] for this application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A TEI module called Matumi is distributed as an eXist application. Matumi is still under development. It requires eXist version 1.5 and is installed from within eXist's Package Reposistory. After installation, it can be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
Matumi is not a full-blown TEI module yet, but it has some notable features, such as the ability to browse by filtering texts and core parts of the markup. It contains faceted search feeding off the markup, making possible &amp;quot;translingual&amp;quot; searches that utilise references added to name forms.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only.&lt;br /&gt;
&lt;br /&gt;
Installation will store a number of basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present orientation of the app.&lt;br /&gt;
&lt;br /&gt;
If you access through browsing, you can arrange the data by four criteria - books, entry title, subjects and names.&lt;br /&gt;
&lt;br /&gt;
If you access through search, in order to retrieve some sample results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/XQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As detailed above, eXist is itself written in the Java language. However, it enables complete applications to be created without writing any programming code, by just using only XQuery, XSLT, (X)HTML, CSS, XForms, XProc and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
[http://exist-db.org/exist/apps/doc/ eXist Documentation]&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support for the Open Source product is provided mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
Commercial support, consultancy and training is also available from the creators of eXist through [http://www.existsolutions.com eXist Solutions]. eXist Solutions directly support and further the development of eXist.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
In August 2011, a dedicated email list was created on using eXist with TEI resources. For information or to subscribe, go to the [https://lists.sourceforge.net/lists/listinfo/exist-teixml eXist-TEIXML] information page.&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://mapoflondon.uvic.ca/ The Map of Early Modern London] maps the streets, sites, and significant boundaries of late 16th-century and early 17th-century London. &lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The correspondence, diaries, writings and works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://sermones.net/thesaurus/ Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
&amp;lt;!--* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.--&amp;gt;&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ The Colonial Despatches of Vancouver Island and British Columbia 1846-1871] contains the original correspondence between the British Colonial Office and the colonies of Vancouver Island and British Columbia. &lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
Current stable release: eXist 2.0 revision 18252 - 2013-02-07&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download an installer for the current stable version (version 2.1, July 2013) from the [http://www.exist-db.org/exist/apps/homepage/index.html#subscriptions eXist Home Page]; clone or download the current trunk version from the [https://github.com/eXist-db/exist eXist GitHub Page].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12632</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12632"/>
		<updated>2013-11-11T07:08:53Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist-db.org eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery-30/ XQuery 3.0], [http://www.w3.org/TR/xpath-30/ XPath 3.0], [http://www.w3.org/TR/xslt20/ XSLT 2.0] (based on [http://www.saxonica.com/ Saxon]), XForms 1.1 (based on [http://www.betterForm.de betterForm], [http://www.orbeon.com Orbeon] or [http://www.agencexml.com/xsltforms XSLTForms]) XProc, JSON and JSONP.&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://exquery.github.io/exquery/exquery-restxq-specification/restxq-1.0-specification.html RESTXQ], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The 1.4 version added a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
&lt;br /&gt;
The [http://exist.sourceforge.net/download.html 2.0 version] completely redesigned the Security subsystem introducing Access Control Lists and multiple realm authentication, and also introduced a re-write of the WebDAV Server making it more widely compatible with clients. In addition hundreds of bugfixes and performance improvements have been made since the 1.4 release.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate, XSLT and XProc&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XML:DB API]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Security Access Control Lists on Documents and Collections&lt;br /&gt;
* Optional multi-realm integration with LDAP and Active Directory&lt;br /&gt;
* Integration with [[ApacheCocoon]]&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.oracle.com JRE] &amp;gt;= 6. Being a Java application it can be used on most operating systems, including Windows, Linux, Mac OS X, Solaris and FreeBSD and it can be deployed in several ways, as a standalone server application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library embedded in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/licenses/lgpl-2.1.html GNU LGPL 2.1] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the Digital.Humanities@Oxford Summer School in 2011; see the [http://digital.humanities.ox.ac.uk/dhoxss/2011/sessions.html#xmldb session description] with links to slides and sample material.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From the Package Manager, accessed through the eXist Dashboard, one can install the application Shakespeare's Works in TEI from the eXist Public Repository. All Shakespeare's plays from the [http://wordhoard.northwestern.edu/ WordHoard Shakespeare] can be queried with search results displayed in the hit list in KWIC format. See also the [https://github.com/wolfgangmm/ShakespeareDemo GitHub repo] for this application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A TEI module called Matumi is distributed as an eXist application. Matumi is still under development. It requires eXist version 1.5 and is installed from within eXist's Package Reposistory. After installation, it can be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
Matumi is not a full-blown TEI module yet, but it has some notable features, such as the ability to browse by filtering texts and core parts of the markup. It contains faceted search feeding off the markup, making possible &amp;quot;translingual&amp;quot; searches that utilise references added to name forms.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only.&lt;br /&gt;
&lt;br /&gt;
Installation will store a number of basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present orientation of the app.&lt;br /&gt;
&lt;br /&gt;
If you access through browsing, you can arrange the data by four criteria - books, entry title, subjects and names.&lt;br /&gt;
&lt;br /&gt;
If you access through search, in order to retrieve some sample results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/XQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As detailed above, eXist is itself written in the Java language. However, it enables complete applications to be created without writing any programming code, by just using only XQuery, XSLT, (X)HTML, CSS, XForms, XProc and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
[http://exist-db.org/exist/apps/doc/ eXist Documentation]&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support for the Open Source product is provided mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
Commercial support, consultancy and training is also available from the creators of eXist through [http://www.existsolutions.com eXist Solutions]. eXist Solutions directly support and further the development of eXist.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
In August 2011, a dedicated email list was created on using eXist with TEI resources. For information or to subscribe, go to the [https://lists.sourceforge.net/lists/listinfo/exist-teixml eXist-TEIXML] information page.&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://mapoflondon.uvic.ca/ The Map of Early Modern London] maps the streets, sites, and significant boundaries of late 16th-century and early 17th-century London. &lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The correspondence, diaries, writings and works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ The Colonial Despatches of Vancouver Island and British Columbia 1846-1871] contains the original correspondence between the British Colonial Office and the colonies of Vancouver Island and British Columbia. &lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
Current stable release: eXist 2.0 revision 18252 - 2013-02-07&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download an installer for the current stable version (version 2.1, July 2013) from the [http://www.exist-db.org/exist/apps/homepage/index.html#subscriptions eXist Home Page]; clone or download the current trunk version from the [https://github.com/eXist-db/exist eXist GitHub Page].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12582</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12582"/>
		<updated>2013-11-10T16:19:50Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Support for TEI */ Added info about Shakespeare Demo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist.sourceforge.net/ eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery-30/ XQuery 3.0], [http://www.w3.org/TR/xpath-30/ XPath 3.0], [http://www.w3.org/TR/xslt20/ XSLT 2.0] (based on [http://www.saxonica.com/ Saxon]), XForms 1.1 (based on [http://www.betterForm.de betterForm], [http://www.orbeon.com Orbeon] or [http://www.agencexml.com/xsltforms XSLTForms]) XProc, JSON and JSONP.&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://exquery.github.io/exquery/exquery-restxq-specification/restxq-1.0-specification.html RESTXQ], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The 1.4 version added a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
&lt;br /&gt;
The [http://exist.sourceforge.net/download.html 2.0 version] completely redesigned the Security subsystem introducing Access Control Lists and multiple realm authentication, and also introduced a re-write of the WebDAV Server making it more widely compatible with clients. In addition hundreds of bugfixes and performance improvements have been made since the 1.4 release.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate, XSLT and XProc&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XML:DB API]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Security Access Control Lists on Documents and Collections&lt;br /&gt;
* Optional multi-realm integration with LDAP and Active Directory&lt;br /&gt;
* Integration with [[ApacheCocoon]]&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.oracle.com JRE] &amp;gt;= 6. Being a Java application it can be used on most operating systems, including Windows, Linux, Mac OS X, Solaris and FreeBSD and it can be deployed in several ways, as a standalone server application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library embedded in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/licenses/lgpl-2.1.html GNU LGPL 2.1] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the Digital.Humanities@Oxford Summer School in 2011; see the [http://digital.humanities.ox.ac.uk/dhoxss/2011/sessions.html#xmldb session description] with links to slides and sample material.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From the Package Manager, accessed through the eXist Dashboard, one can install the application Shakespeare's Works in TEI from the eXist Public Repository. All Shakespeare's plays from the [http://wordhoard.northwestern.edu/ WordHoard Shakespeare] can be queried with search results displayed in the hit list in KWIC format. See also the [https://github.com/wolfgangmm/ShakespeareDemo GitHub repo] for this application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A TEI module called Matumi is distributed as an eXist application. Matumi is still under development. It requires eXist version 1.5 and is installed from within eXist's Package Reposistory. After installation, it can be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
Matumi is not a full-blown TEI module yet, but it has some notable features, such as the ability to browse by filtering texts and core parts of the markup. It contains faceted search feeding off the markup, making possible &amp;quot;translingual&amp;quot; searches that utilise references added to name forms.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only.&lt;br /&gt;
&lt;br /&gt;
Installation will store a number of basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present orientation of the app.&lt;br /&gt;
&lt;br /&gt;
If you access through browsing, you can arrange the data by four criteria - books, entry title, subjects and names.&lt;br /&gt;
&lt;br /&gt;
If you access through search, in order to retrieve some sample results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/XQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As detailed above, eXist is itself written in the Java language. However, it enables complete applications to be created without writing any programming code, by just using only XQuery, XSLT, (X)HTML, CSS, XForms, XProc and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
[http://exist-db.org/exist/apps/doc/ eXist Documentation]&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support for the Open Source product is provided mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
Commercial support, consultancy and training is also available from the creators of eXist through [http://www.existsolutions.com eXist Solutions]. eXist Solutions directly support and further the development of eXist.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
In August 2011, a dedicated email list was created on using eXist with TEI resources. For information or to subscribe, go to the [https://lists.sourceforge.net/lists/listinfo/exist-teixml eXist-TEIXML] information page.&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://mapoflondon.uvic.ca/ The Map of Early Modern London] maps the streets, sites, and significant boundaries of late 16th-century and early 17th-century London. &lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The correspondence, diaries, writings and works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ The Colonial Despatches of Vancouver Island and British Columbia 1846-1871] contains the original correspondence between the British Colonial Office and the colonies of Vancouver Island and British Columbia. &lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
Current stable release: eXist 2.0 revision 18252 - 2013-02-07&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download an installer for the current stable version (version 2.1, July 2013) from the [http://www.exist-db.org/exist/apps/homepage/index.html#subscriptions eXist Home Page]; clone or download the current trunk version from the [https://github.com/eXist-db/exist eXist GitHub Page].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12581</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12581"/>
		<updated>2013-11-10T16:02:19Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* How to download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist.sourceforge.net/ eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery-30/ XQuery 3.0], [http://www.w3.org/TR/xpath-30/ XPath 3.0], [http://www.w3.org/TR/xslt20/ XSLT 2.0] (based on [http://www.saxonica.com/ Saxon]), XForms 1.1 (based on [http://www.betterForm.de betterForm], [http://www.orbeon.com Orbeon] or [http://www.agencexml.com/xsltforms XSLTForms]) XProc, JSON and JSONP.&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://exquery.github.io/exquery/exquery-restxq-specification/restxq-1.0-specification.html RESTXQ], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The 1.4 version added a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
&lt;br /&gt;
The [http://exist.sourceforge.net/download.html 2.0 version] completely redesigned the Security subsystem introducing Access Control Lists and multiple realm authentication, and also introduced a re-write of the WebDAV Server making it more widely compatible with clients. In addition hundreds of bugfixes and performance improvements have been made since the 1.4 release.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate, XSLT and XProc&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XML:DB API]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Security Access Control Lists on Documents and Collections&lt;br /&gt;
* Optional multi-realm integration with LDAP and Active Directory&lt;br /&gt;
* Integration with [[ApacheCocoon]]&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.oracle.com JRE] &amp;gt;= 6. Being a Java application it can be used on most operating systems, including Windows, Linux, Mac OS X, Solaris and FreeBSD and it can be deployed in several ways, as a standalone server application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library embedded in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/licenses/lgpl-2.1.html GNU LGPL 2.1] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the Digital.Humanities@Oxford Summer School in 2011; see the [http://digital.humanities.ox.ac.uk/DHSS2011/sessions.html#xmldb session description, slides, and sample materials].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A TEI module called Matumi is distributed as an eXist application. Matumi is still under development. It requires eXist version 1.5 and is installed from within eXist's Package Reposistory. After installation, it can be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
Matumi is not a full-blown TEI module yet, but it has some notable features, such as the ability to browse by filtering texts and core parts of the markup. It contains faceted search feeding off the markup, making possible &amp;quot;translingual&amp;quot; searches that utilise references added to name forms. &amp;lt;!--It contains an inline (WYMeditor-based) editor for marking up simple TEI structures and supplying them with key attributes. It has a general ATOM-based commenting function.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only.&lt;br /&gt;
&lt;br /&gt;
Installation will store a number of basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present orientation of the app.&lt;br /&gt;
&lt;br /&gt;
If you access through browsing, you can arrange the data by four criteria - books, entry title, subjects and names.&lt;br /&gt;
&lt;br /&gt;
If you access through search, in order to retrieve some sample results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/XQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As detailed above, eXist is itself written in the Java language. However, it enables complete applications to be created without writing any programming code, by just using only XQuery, XSLT, (X)HTML, CSS, XForms, XProc and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
[http://exist-db.org/exist/apps/doc/ eXist Documentation]&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support for the Open Source product is provided mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
Commercial support, consultancy and training is also available from the creators of eXist through [http://www.existsolutions.com eXist Solutions]. eXist Solutions directly support and further the development of eXist.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
In August 2011, a dedicated email list was created on using eXist with TEI resources. For information or to subscribe, go to the [https://lists.sourceforge.net/lists/listinfo/exist-teixml eXist-TEIXML] information page.&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://mapoflondon.uvic.ca/ The Map of Early Modern London] maps the streets, sites, and significant boundaries of late 16th-century and early 17th-century London. &lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The correspondence, diaries, writings and works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ The Colonial Despatches of Vancouver Island and British Columbia 1846-1871] contains the original correspondence between the British Colonial Office and the colonies of Vancouver Island and British Columbia. &lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
Current stable release: eXist 2.0 revision 18252 - 2013-02-07&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download an installer for the current stable version (version 2.1, July 2013) from the [http://www.exist-db.org/exist/apps/homepage/index.html#subscriptions eXist Home Page]; clone or download the current trunk version from the [https://github.com/eXist-db/exist eXist GitHub Page].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12579</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12579"/>
		<updated>2013-11-10T14:59:16Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Support for TEI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist.sourceforge.net/ eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery-30/ XQuery 3.0], [http://www.w3.org/TR/xpath-30/ XPath 3.0], [http://www.w3.org/TR/xslt20/ XSLT 2.0] (based on [http://www.saxonica.com/ Saxon]), XForms 1.1 (based on [http://www.betterForm.de betterForm], [http://www.orbeon.com Orbeon] or [http://www.agencexml.com/xsltforms XSLTForms]) XProc, JSON and JSONP.&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://exquery.github.io/exquery/exquery-restxq-specification/restxq-1.0-specification.html RESTXQ], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The 1.4 version added a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
&lt;br /&gt;
The [http://exist.sourceforge.net/download.html 2.0 version] completely redesigned the Security subsystem introducing Access Control Lists and multiple realm authentication, and also introduced a re-write of the WebDAV Server making it more widely compatible with clients. In addition hundreds of bugfixes and performance improvements have been made since the 1.4 release.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate, XSLT and XProc&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XML:DB API]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Security Access Control Lists on Documents and Collections&lt;br /&gt;
* Optional multi-realm integration with LDAP and Active Directory&lt;br /&gt;
* Integration with [[ApacheCocoon]]&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.oracle.com JRE] &amp;gt;= 6. Being a Java application it can be used on most operating systems, including Windows, Linux, Mac OS X, Solaris and FreeBSD and it can be deployed in several ways, as a standalone server application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library embedded in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/licenses/lgpl-2.1.html GNU LGPL 2.1] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the Digital.Humanities@Oxford Summer School in 2011; see the [http://digital.humanities.ox.ac.uk/DHSS2011/sessions.html#xmldb session description, slides, and sample materials].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A TEI module called Matumi is distributed as an eXist application. Matumi is still under development. It requires eXist version 1.5 and is installed from within eXist's Package Reposistory. After installation, it can be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
Matumi is not a full-blown TEI module yet, but it has some notable features, such as the ability to browse by filtering texts and core parts of the markup. It contains faceted search feeding off the markup, making possible &amp;quot;translingual&amp;quot; searches that utilise references added to name forms. &amp;lt;!--It contains an inline (WYMeditor-based) editor for marking up simple TEI structures and supplying them with key attributes. It has a general ATOM-based commenting function.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only.&lt;br /&gt;
&lt;br /&gt;
Installation will store a number of basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present orientation of the app.&lt;br /&gt;
&lt;br /&gt;
If you access through browsing, you can arrange the data by four criteria - books, entry title, subjects and names.&lt;br /&gt;
&lt;br /&gt;
If you access through search, in order to retrieve some sample results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/XQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As detailed above, eXist is itself written in the Java language. However, it enables complete applications to be created without writing any programming code, by just using only XQuery, XSLT, (X)HTML, CSS, XForms, XProc and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
[http://exist-db.org/exist/apps/doc/ eXist Documentation]&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support for the Open Source product is provided mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
Commercial support, consultancy and training is also available from the creators of eXist through [http://www.existsolutions.com eXist Solutions]. eXist Solutions directly support and further the development of eXist.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
In August 2011, a dedicated email list was created on using eXist with TEI resources. For information or to subscribe, go to the [https://lists.sourceforge.net/lists/listinfo/exist-teixml eXist-TEIXML] information page.&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://mapoflondon.uvic.ca/ The Map of Early Modern London] maps the streets, sites, and significant boundaries of late 16th-century and early 17th-century London. &lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The correspondence, diaries, writings and works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ The Colonial Despatches of Vancouver Island and British Columbia 1846-1871] contains the original correspondence between the British Colonial Office and the colonies of Vancouver Island and British Columbia. &lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
Current stable release: eXist 2.0 revision 18252 - 2013-02-07&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 2.1, July 2013) from the [http://www.exist-db.org/exist/apps/homepage/index.html#subscriptions eXist Home Page]; clone or download the current trunk version from [https://github.com/eXist-db/exist eXist GitHub Page].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12578</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12578"/>
		<updated>2013-11-10T14:57:51Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist.sourceforge.net/ eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery-30/ XQuery 3.0], [http://www.w3.org/TR/xpath-30/ XPath 3.0], [http://www.w3.org/TR/xslt20/ XSLT 2.0] (based on [http://www.saxonica.com/ Saxon]), XForms 1.1 (based on [http://www.betterForm.de betterForm], [http://www.orbeon.com Orbeon] or [http://www.agencexml.com/xsltforms XSLTForms]) XProc, JSON and JSONP.&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://exquery.github.io/exquery/exquery-restxq-specification/restxq-1.0-specification.html RESTXQ], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The 1.4 version added a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
&lt;br /&gt;
The [http://exist.sourceforge.net/download.html 2.0 version] completely redesigned the Security subsystem introducing Access Control Lists and multiple realm authentication, and also introduced a re-write of the WebDAV Server making it more widely compatible with clients. In addition hundreds of bugfixes and performance improvements have been made since the 1.4 release.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate, XSLT and XProc&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XML:DB API]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Security Access Control Lists on Documents and Collections&lt;br /&gt;
* Optional multi-realm integration with LDAP and Active Directory&lt;br /&gt;
* Integration with [[ApacheCocoon]]&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.oracle.com JRE] &amp;gt;= 6. Being a Java application it can be used on most operating systems, including Windows, Linux, Mac OS X, Solaris and FreeBSD and it can be deployed in several ways, as a standalone server application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library embedded in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/licenses/lgpl-2.1.html GNU LGPL 2.1] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the Digital.Humanities@Oxford Summer School in 2011; see the [http://digital.humanities.ox.ac.uk/DHSS2011/sessions.html#xmldb session description, slides, and sample materials].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A TEI module called Matumi is distributed as an eXist application. Matumi is still under development. It requires eXist version 1.5 and is installed from within eXist's Package Reposistory. After installation, it can be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
Matumi is not a full-blown TEI module yet, but it has some notable features, such as the ability to browse by filtering texts and core parts of the markup. It contains faceted search feeding off the markup, making possible &amp;quot;translingual&amp;quot; searches that utilise references added to name forms. &amp;lt;!--It contains an inline (WYMeditor-based) editor for marking up simple TEI structures and supplying them with key attributes. It has a general ATOM-based commenting function.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only.&lt;br /&gt;
&lt;br /&gt;
Installation will store a number of basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present orientation of the app.&lt;br /&gt;
&lt;br /&gt;
If you access through browsing, you can arrange the data by four criteria - books, entry title, subjects and names.&lt;br /&gt;
&lt;br /&gt;
If you access through search, in order to retrieve some sample results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/xQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As detailed above, eXist is itself written in the Java language. However, it enables complete applications to be created without writing any programming code, by just using only XQuery, XSLT, (X)HTML, CSS, XForms, XProc and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
[http://exist-db.org/exist/apps/doc/ eXist Documentation]&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support for the Open Source product is provided mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
Commercial support, consultancy and training is also available from the creators of eXist through [http://www.existsolutions.com eXist Solutions]. eXist Solutions directly support and further the development of eXist.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
In August 2011, a dedicated email list was created on using eXist with TEI resources. For information or to subscribe, go to the [https://lists.sourceforge.net/lists/listinfo/exist-teixml eXist-TEIXML] information page.&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://mapoflondon.uvic.ca/ The Map of Early Modern London] maps the streets, sites, and significant boundaries of late 16th-century and early 17th-century London. &lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The correspondence, diaries, writings and works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ The Colonial Despatches of Vancouver Island and British Columbia 1846-1871] contains the original correspondence between the British Colonial Office and the colonies of Vancouver Island and British Columbia. &lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
Current stable release: eXist 2.0 revision 18252 - 2013-02-07&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 2.1, July 2013) from the [http://www.exist-db.org/exist/apps/homepage/index.html#subscriptions eXist Home Page]; clone or download the current trunk version from [https://github.com/eXist-db/exist eXist GitHub Page].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12577</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12577"/>
		<updated>2013-11-10T14:55:28Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist.sourceforge.net/ eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery-30/ XQuery 3.0], [http://www.w3.org/TR/xpath-30/ XPath 3.0], [http://www.w3.org/TR/xslt20/ XSLT 2.0] (based on [http://www.saxonica.com/ Saxon]), XForms 1.1 (based on [http://www.betterForm.de betterForm], [http://www.orbeon.com Orbeon] or [http://www.agencexml.com/xsltforms XSLTForms]) XProc, JSON and JSONP.&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://exquery.github.io/exquery/exquery-restxq-specification/restxq-1.0-specification.html RESTXQ], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The 1.4 version added a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
&lt;br /&gt;
The [http://exist.sourceforge.net/download.html 2.0 version] completely redesigned the Security subsystem introducing Access Control Lists and multiple realm authentication, and also introduced a re-write of the WebDAV Server making it more widely compatible with clients. In addition hundreds of bugfixes and performance improvements have been made since the 1.4 release.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate, XSLT and XProc&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XML:DB API]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Security Access Control Lists on Documents and Collections&lt;br /&gt;
* Optional multi-realm integration with LDAP and Active Directory&lt;br /&gt;
* Integration with [[ApacheCocoon]]&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.oracle.com JRE] &amp;gt;= 6. Being a Java application it can be used on most operating systems, including Windows, Linux, Mac OS X, Solaris and FreeBSD and it can be deployed in several ways, as a standalone server application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library embedded in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/licenses/lgpl-2.1.html GNU LGPL 2.1] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the Digital.Humanities@Oxford Summer School in 2011; see the [http://digital.humanities.ox.ac.uk/DHSS2011/sessions.html#xmldb session description, slides, and sample materials].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A TEI module called Matumi is distributed as an eXist application. Matumi is still under development. It requires eXist version 1.5 and is installed from within eXist's Package Reposistory. After installation, it can be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
Matumi is not a full-blown TEI module yet, but it has some notable features, such as the ability to browse by filtering texts and core parts of the markup. It contains faceted search feeding off the markup, making possible &amp;quot;translingual&amp;quot; searches that utilise references added to name forms. &amp;lt;!--It contains an inline (WYMeditor-based) editor for marking up simple TEI structures and supplying them with key attributes. It has a general ATOM-based commenting function.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only.&lt;br /&gt;
&lt;br /&gt;
Installation will store a number of basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present orientation of the app.&lt;br /&gt;
&lt;br /&gt;
If you access through browsing, you can arrange the data by four criteria - books, entry title, subjects and names.&lt;br /&gt;
&lt;br /&gt;
If you access through search, in order to retrieve some sample results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/xQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As detailed above, eXist is itself written in the Java language. However, it enables complete applications to be created without writing any programming code, by just using only XQuery, XSLT, (X)HTML, CSS, XForms, XProc and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
exist-db.org/exist/apps/doc/&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support for the Open Source product is provided mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
Commercial support, consultancy and training is also available from the creators of eXist through [http://www.existsolutions.com eXist Solutions]. eXist Solutions directly support and further the development of eXist.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
In August 2011, a dedicated email list was created on using eXist with TEI resources. For information or to subscribe, go to the [https://lists.sourceforge.net/lists/listinfo/exist-teixml eXist-TEIXML] information page.&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://mapoflondon.uvic.ca/ The Map of Early Modern London] maps the streets, sites, and significant boundaries of late 16th-century and early 17th-century London. &lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The correspondence, diaries, writings and works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ The Colonial Despatches of Vancouver Island and British Columbia 1846-1871] contains the original correspondence between the British Colonial Office and the colonies of Vancouver Island and British Columbia. &lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
Current stable release: eXist 2.0 revision 18252 - 2013-02-07&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 2.1, July 2013) from the [http://www.exist-db.org/exist/apps/homepage/index.html#subscriptions eXist Home Page]; clone or download the current trunk version from [https://github.com/eXist-db/exist eXist GitHub Page].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12576</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12576"/>
		<updated>2013-11-10T14:54:05Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* How to download */ 2.0 &amp;gt; 2.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist.sourceforge.net/ eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery-30/ XQuery 3.0], [http://www.w3.org/TR/xpath-30/ XPath 3.0], [http://www.w3.org/TR/xslt20/ XSLT 2.0] (based on [http://www.saxonica.com/ Saxon]), XForms 1.1 (based on [http://www.betterForm.de betterForm], [http://www.orbeon.com Orbeon] or [http://www.agencexml.com/xsltforms XSLTForms]) XProc, JSON and JSONP.&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://exquery.github.io/exquery/exquery-restxq-specification/restxq-1.0-specification.html RESTXQ], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The 1.4 version added a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
&lt;br /&gt;
The [http://exist.sourceforge.net/download.html 2.0 version] completely redesigned the Security subsystem introducing Access Control Lists and multiple realm authentication, and also introduced a re-write of the WebDAV Server making it more widely compatible with clients. In addition hundreds of bugfixes and performance improvements have been made since the 1.4 release.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate, XSLT and XProc&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XML:DB API]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Security Access Control Lists on Documents and Collections&lt;br /&gt;
* Optional multi-realm integration with LDAP and Active Directory&lt;br /&gt;
* Integration with [[ApacheCocoon]]&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.oracle.com JRE] &amp;gt;= 6. Being a Java application it can be used on most operating systems, including Windows, Linux, Mac OS X, Solaris and FreeBSD and it can be deployed in several ways, as a standalone server application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library embedded in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/licenses/lgpl-2.1.html GNU LGPL 2.1] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the Digital.Humanities@Oxford Summer School in 2011; see the [http://digital.humanities.ox.ac.uk/DHSS2011/sessions.html#xmldb session description, slides, and sample materials].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A TEI module called Matumi is distributed as an eXist application. Matumi is still under development. It requires eXist version 1.5 and is installed from within eXist's Package Reposistory. After installation, it can be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
Matumi is not a full-blown TEI module yet, but it has some notable features, such as the ability to browse by filtering texts and core parts of the markup. It contains faceted search feeding off the markup, making possible &amp;quot;translingual&amp;quot; searches that utilise references added to name forms. &amp;lt;!--It contains an inline (WYMeditor-based) editor for marking up simple TEI structures and supplying them with key attributes. It has a general ATOM-based commenting function.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only.&lt;br /&gt;
&lt;br /&gt;
Installation will store a number of basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present orientation of the app.&lt;br /&gt;
&lt;br /&gt;
If you access through browsing, you can arrange the data by four criteria - books, entry title, subjects and names.&lt;br /&gt;
&lt;br /&gt;
If you access through search, in order to retrieve some sample results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/xQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As detailed above, eXist is itself written in the Java language. However, it enables complete applications to be created without writing any programming code, by just using only XQuery, XSLT, (X)HTML, CSS, XForms, XProc and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support for the Open Source product is provided mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
Commercial support, consultancy and training is also available from the creators of eXist through [http://www.existsolutions.com eXist Solutions]. eXist Solutions directly support and further the development of eXist.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
In August 2011, a dedicated email list was created on using eXist with TEI resources. For information or to subscribe, go to the [https://lists.sourceforge.net/lists/listinfo/exist-teixml eXist-TEIXML] information page.&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://mapoflondon.uvic.ca/ The Map of Early Modern London] maps the streets, sites, and significant boundaries of late 16th-century and early 17th-century London. &lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The correspondence, diaries, writings and works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ The Colonial Despatches of Vancouver Island and British Columbia 1846-1871] contains the original correspondence between the British Colonial Office and the colonies of Vancouver Island and British Columbia. &lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
Current stable release: eXist 2.0 revision 18252 - 2013-02-07&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 2.1, July 2013) from the [http://www.exist-db.org/exist/apps/homepage/index.html#subscriptions eXist Home Page]; clone or download the current trunk version from [https://github.com/eXist-db/exist eXist GitHub Page].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12038</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=12038"/>
		<updated>2013-07-04T13:42:14Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Sample implementations */ Adding MoEML&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist.sourceforge.net/ eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery-30/ XQuery 3.0], [http://www.w3.org/TR/xpath-30/ XPath 3.0], [http://www.w3.org/TR/xslt20/ XSLT 2.0] (based on [http://www.saxonica.com/ Saxon]), XForms 1.1 (based on [http://www.betterForm.de betterForm], [http://www.orbeon.com Orbeon] or [http://www.agencexml.com/xsltforms XSLTForms]) XProc, JSON and JSONP.&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://exquery.github.io/exquery/exquery-restxq-specification/restxq-1.0-specification.html RESTXQ], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The 1.4 version added a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
&lt;br /&gt;
The [http://exist.sourceforge.net/download.html 2.0 version] completely redesigned the Security subsystem introducing Access Control Lists and multiple realm authentication, and also introduced a re-write of the WebDAV Server making it more widely compatible with clients. In addition hundreds of bugfixes and performance improvements have been made since the 1.4 release.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate, XSLT and XProc&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XML:DB API]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Security Access Control Lists on Documents and Collections&lt;br /&gt;
* Optional multi-realm integration with LDAP and Active Directory&lt;br /&gt;
* Integration with [[ApacheCocoon]]&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.oracle.com JRE] &amp;gt;= 6. Being a Java application it can be used on most operating systems, including Windows, Linux, Mac OS X, Solaris and FreeBSD and it can be deployed in several ways, as a standalone server application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library embedded in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/licenses/lgpl-2.1.html GNU LGPL 2.1] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the Digital.Humanities@Oxford Summer School in 2011; see the [http://digital.humanities.ox.ac.uk/DHSS2011/sessions.html#xmldb session description, slides, and sample materials].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A TEI module called Matumi is distributed as an eXist application. Matumi is still under development. It requires eXist version 1.5 and is installed from within eXist's Package Reposistory. After installation, it can be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
Matumi is not a full-blown TEI module yet, but it has some notable features, such as the ability to browse by filtering texts and core parts of the markup. It contains faceted search feeding off the markup, making possible &amp;quot;translingual&amp;quot; searches that utilise references added to name forms. &amp;lt;!--It contains an inline (WYMeditor-based) editor for marking up simple TEI structures and supplying them with key attributes. It has a general ATOM-based commenting function.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only.&lt;br /&gt;
&lt;br /&gt;
Installation will store a number of basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present orientation of the app.&lt;br /&gt;
&lt;br /&gt;
If you access through browsing, you can arrange the data by four criteria - books, entry title, subjects and names.&lt;br /&gt;
&lt;br /&gt;
If you access through search, in order to retrieve some sample results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/xQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As detailed above, eXist is itself written in the Java language. However, it enables complete applications to be created without writing any programming code, by just using only XQuery, XSLT, (X)HTML, CSS, XForms, XProc and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support for the Open Source product is provided mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
Commercial support, consultancy and training is also available from the creators of eXist through [http://www.existsolutions.com eXist Solutions]. eXist Solutions directly support and further the development of eXist.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
In August 2011, a dedicated email list was created on using eXist with TEI resources. For information or to subscribe, go to the [https://lists.sourceforge.net/lists/listinfo/exist-teixml eXist-TEIXML] information page.&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://mapoflondon.uvic.ca/ The Map of Early Modern London] maps the streets, sites, and significant boundaries of late 16th-century and early 17th-century London. &lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The correspondence, diaries, writings and works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ The Colonial Despatches of Vancouver Island and British Columbia 1846-1871] contains the original correspondence between the British Colonial Office and the colonies of Vancouver Island and British Columbia. &lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
Current stable release: eXist 2.0 revision 18252 - 2013-02-07&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 2.0, February 2013) from the [http://www.exist-db.org/exist/apps/homepage/index.html#subscriptions eXist Home Page]; check out the current trunk version from &amp;quot;svn co &amp;lt;nowiki&amp;gt;https://svn.code.sf.net/p/exist/code/trunk/eXist&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=XPointer&amp;diff=10842</id>
		<title>XPointer</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=XPointer&amp;diff=10842"/>
		<updated>2012-05-21T07:42:50Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: typo (I hope)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''For use cases where these techniques might be used, see [[Stand-off use cases]].''&lt;br /&gt;
&lt;br /&gt;
The '''[http://www.w3.org/TR/xptr-framework/ XPointer Framework]''' is a collection of schemes (note: ''schemes'' not ''schemas'') that specify the method for addressing into the XML tree or help in this task. One end of its functionality overlaps with XPath, but the other allows one to address points and ranges inside elements, and this is often precious to us TEI-ers, especially in some [[stand-off markup]] systems or for working with ontologies (RDF may use it). It was initially defined as a companion to [[XLink]] that took care of URI fragment identifiers (the strings placed after the '#' in a URI).&lt;br /&gt;
&lt;br /&gt;
Some of the schemes, e.g. the simplest [http://www.w3.org/TR/xptr-element/ element() scheme], which uses simple tree-traversal syntax, are supported by any decent XML tool nowadays. It is worth pointing out that '''any tool that claims to support XInclude, must support the general conventions of the XPointer Framework and the XPointer element() scheme''' ([http://www.w3.org/TR/xinclude/#application per the XInclude spec]). The &amp;quot;general conventions&amp;quot; of the Framework mean, practically, the possibility of addressing elements by their IDs and the possibility of using multiple schemes in a single pointer (see [[#XPointer syntax|below]]).&lt;br /&gt;
&lt;br /&gt;
Apart from element(), there is also the [http://www.w3.org/TR/xptr-xmlns/ xmlns() scheme] that does namespace binding, and finally the [http://www.w3.org/TR/xptr-xpointer/ xpointer() scheme] that does an incredible lot of useful things in a very clever way, except it's not supported in full anywhere.&lt;br /&gt;
&lt;br /&gt;
The three schemes mentioned above have been defined or, in the case of xpointer(), drafted, by the W3C. The XPointer Framework, however, allows other parties to define their own schemes and get them registered in a special corner of the W3C called the [http://www.w3.org/2005/04/xpointer-schemes/ XPointer Registry]. And this is the point where we, as the TEI community, may want to focus some of our attention. Thanks to Syd Bauman, a number of [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SATSTEI-defined schemes] (described in the ''Linking and Alignment'' chapter of the Guidelines) have been registered with the W3C. One of them, [http://simonstl.com/ietf/draft-stlaurent-xpath-frag-01.txt xpath1()], is actually shared with other Internet communities, and implemented in Firefox (see [https://bugzilla.mozilla.org/show_bug.cgi?id=182323 bug #182323]). Another is smlxpath1() defined by the [http://www.w3.org/TR/sml/ Service Modeling Language]. Yet another is the string-range() scheme, one of the TEI-defined schemes that are useful in stand-off architecture and that may address into the content of elements.&lt;br /&gt;
&lt;br /&gt;
== Structure of the XPointer Framework ==&lt;br /&gt;
&lt;br /&gt;
The structure of the XPointer Framework is illustrated below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
                      XPointer Framework&lt;br /&gt;
                       .               .&lt;br /&gt;
                      /                 \&lt;br /&gt;
                     /                   \&lt;br /&gt;
                    .                     .&lt;br /&gt;
                syntax              scheme repository&lt;br /&gt;
                                      .            .&lt;br /&gt;
                                     /              \&lt;br /&gt;
                                    /                \&lt;br /&gt;
                                   .                  .&lt;br /&gt;
                         W3C &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;schemes&amp;lt;/span&amp;gt;               external-party (a.o. TEI) &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;schemes&amp;lt;/span&amp;gt;&lt;br /&gt;
                       .   .       .                     .          .            .&lt;br /&gt;
                      /    |        \                   /           |             \&lt;br /&gt;
                     /     |         \                 /            |              \&lt;br /&gt;
                    .      .          .               .             .               .&lt;br /&gt;
               element() xmlns() xpointer()        range() '''[http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SATSSR string-range()]'''  ...  xpath2()&lt;br /&gt;
                                 .       .&lt;br /&gt;
                                /         \&lt;br /&gt;
                               /           \&lt;br /&gt;
                              .             .&lt;br /&gt;
                      XPath 1.0 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;functions&amp;lt;/span&amp;gt;    XPointer &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;functions&amp;lt;/span&amp;gt;&lt;br /&gt;
                                            .   .       .&lt;br /&gt;
                                           /    |        \&lt;br /&gt;
                                          /     |         \&lt;br /&gt;
                                         .      .          .&lt;br /&gt;
                                  range-to()  end-point() '''[http://www.w3.org/TR/xptr-xpointer/#stringrange string-range()]''' ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that '''string-range()''' is mentioned twice in the diagram above. This is because of an unfortunate homonymy that has generated some confusion in the past but, hopefully, will not do so any longer.&lt;br /&gt;
&lt;br /&gt;
The XPointer xpointer() scheme uses [http://www.w3.org/TR/xpath#corelib XPath functions] and adds to them [http://www.w3.org/TR/xptr-xpointer/#xptr-functions several others], which, by entering the inter-character space, are able to cleverly address what no XPath has been able to address before. Among these functions is one called string-range().&lt;br /&gt;
&lt;br /&gt;
Thus the difference between the W3C's &amp;lt;code&amp;gt;(location-set) string-range(location-set, string-to-match, offset?, length?)&amp;lt;/code&amp;gt; '''function''' and the TEI's &amp;lt;code&amp;gt;(string) string-range(pointer, offset, length?)&amp;lt;/code&amp;gt; '''scheme''' is not merely a difference in the definition, but also a difference in the status. There is at least one important consequence of this, worth bearing in mind: '''the status and implementation of TEI's schemes does not directly depend on the status and implementation of the xpointer() scheme'''. Of course, one can hope that the former may piggyback on the latter, from the perspective of software developers.&lt;br /&gt;
&lt;br /&gt;
== XPointer syntax ==&lt;br /&gt;
&lt;br /&gt;
The term &amp;quot;XPointer syntax&amp;quot; is used here informally. Its practical relevance is that it allows for two things: addressing by ID and using multiple pointers. Still informally, the syntax may be sketched as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pointer  	  ::=   	ID | SchemeBased&lt;br /&gt;
SchemeBased	  ::=   	PointerPart+&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first alternative allows for addressing by ID, reminiscent of HTML: &amp;lt;code&amp;gt;&amp;quot;resource.xml#ID&amp;quot;&amp;lt;/code&amp;gt; (which may also use the element() scheme, as in &amp;lt;code&amp;gt;&amp;quot;resource.xml#element(ID)&amp;quot;&amp;lt;/code&amp;gt;), and the other for sequencing schemes, as in the examples below:&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;&amp;quot;resource.xml#xpointer((//p)[1]) element(p1)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;&amp;quot;resource.xml#xmlns(tei=&amp;lt;nowiki&amp;gt;http://www.tei-c.org/ns/1.0&amp;lt;/nowiki&amp;gt;)xpointer(//tei:p[1])&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The XPointer processor must evaluate such sequences from left to right and stop whenever it succeeds in making a match. This means that in the first case, ''if the scheme is recognized'', the processor tries to match the first of all &amp;lt;p&amp;amp;gt; elements that can be found in the document, and if it does not succeed, it moves to the second scheme and looks for the first element identified by the ID &amp;quot;p1&amp;quot;. Notice that this setup makes it '''possible for us to use TEI-defined schemes with any processor, provided that we provide some kind of fallback''' as the last scheme. Does that buy us much? Hardly, but it's a step forward until the processor starts recognizing TEI schemes.&lt;br /&gt;
&lt;br /&gt;
The second example sequence involves namespace binding: the xmlns() scheme binds the prefix, returns no result, so the processor moves to the next scheme and tries to make a match against, this time, a namespace-qualified element name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The fact that the non-W3C schemes xpath1() and smlxpath1() are supported and in use ('''note:''' what are the tools that support them? -- need to find that out), makes it more likely for us to get the developers to plug in TEI-defined schemes into their tools. Of course these schemes have to be coded first, but that was obvious from the beginning. &lt;br /&gt;
&lt;br /&gt;
Pushing the xpointer() scheme ahead might result in our being able to reuse the routines handling that scheme, which would reduce the work on TEI-scheme-handling.&lt;br /&gt;
&lt;br /&gt;
Link to [[Xpath12match.xslt]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Here I have to stop for a while'''&lt;br /&gt;
&lt;br /&gt;
What follows is a mess for now.&lt;br /&gt;
&lt;br /&gt;
== Lobbying section ==&lt;br /&gt;
(Refer to my unfinished essay on [[community efforts]] that will probably have to wait for after TEI-MM; this section is obviously also unfinished.)&lt;br /&gt;
&lt;br /&gt;
=== libxml2 ===&lt;br /&gt;
[http://xmlsoft.org/index.html Libxml2] is to my knowledge the only XML toolkit that has rudimentary support for XPointer's xpointer() schema. In fact, the support is rather bad... but at least it is there and can be fixed and extended if the need for it can be demonstrated. (The trick with diploma works may also work here -- there is a separate XPointer module that the student can concentrate on, possibly having an eye on what is common in handling the xpointer() scheme and the TEI-defined schemes)&lt;br /&gt;
&lt;br /&gt;
In fact, the TEI doesn't need the xpointer() scheme to be supported in xmllint (libxml2's parser) -- it just needs the general XPointer Framework to work (see the Addendum below for explanation).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''This is a fragment of my e-mail, with some links in it, about the xpointer/xinclude stuff'''&lt;br /&gt;
&lt;br /&gt;
Have to extract some bits from this fragment still.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
I searched for freely-available free-standing XPointer-aware tools&lt;br /&gt;
and found out that only libxml2 (with xmllint) comes reasonably close,&lt;br /&gt;
but its XPointer support is incomplete and buggy. I reported some of&lt;br /&gt;
that on TEI-L some time ago. Since then, libxml2 has seen two bugfix&lt;br /&gt;
releases, but the crucial functionality is still missing.&lt;br /&gt;
&lt;br /&gt;
We have a colleague, Jakub Wilk, who did some bug-hunting and submitted&lt;br /&gt;
a few patches to libxml2 in his free time, but I guess both his free&lt;br /&gt;
time and patience have run out now (which I find perfectly understandable).&lt;br /&gt;
&lt;br /&gt;
In case you were interested in pursuing this further, let me give you&lt;br /&gt;
some links as starters:&lt;br /&gt;
&lt;br /&gt;
;&amp;quot;internal error, xpointer.c&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;2409&amp;quot; when using string-range():&lt;br /&gt;
:https://bugzilla.gnome.org/show_bug.cgi?id=562541&lt;br /&gt;
&lt;br /&gt;
;Xpointer range-to function loses the end-point children: &lt;br /&gt;
:https://bugzilla.gnome.org/show_bug.cgi?id=306081&lt;br /&gt;
&lt;br /&gt;
;buggy range() XPointer function:&lt;br /&gt;
:https://bugzilla.gnome.org/show_bug.cgi?id=584219&lt;br /&gt;
&lt;br /&gt;
;buggy string-range() XPointer function:&lt;br /&gt;
:https://bugzilla.gnome.org/show_bug.cgi?id=583442&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I tried to use the xpointer-schema string-range() function instead of&lt;br /&gt;
the TEI-defined string-range schema, but that was impossible for a&lt;br /&gt;
while, until this bug got fixed:&lt;br /&gt;
&lt;br /&gt;
;unrecognized XPointer schemes are not skipped silently:&lt;br /&gt;
:https://bugzilla.gnome.org/show_bug.cgi?id=563562&lt;br /&gt;
&lt;br /&gt;
(so there is a light...)&lt;br /&gt;
&lt;br /&gt;
But that would require a few complications in the markup, to provide a&lt;br /&gt;
cascade of XPointer schemas, with the W3C schema as fallback until the&lt;br /&gt;
TEI-defined schemas are supported by some tool.&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Stand-off_markup&amp;diff=10450</id>
		<title>Stand-off markup</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Stand-off_markup&amp;diff=10450"/>
		<updated>2011-11-14T07:49:56Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Granularity: addressing elements/tokens vs. addressing (spans of) characters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Stand-off markup''' (also known as '''remote markup''' or '''stand-off annotation''') is the kind of markup that resides in a location different from the location of the data being described by it. It is thus the opposite of '''inline markup''', where data and annotations are intermingled within a single location.&lt;br /&gt;
&lt;br /&gt;
== Analogy: annotating binary data ==&lt;br /&gt;
&lt;br /&gt;
In the case of XML describing binary data, such as images or audio/video, this kind of system comes naturally, as it is impossible to store bits of binary files as element content in an XML file &amp;amp;mdash; in order for an XML annotation to be able to describe an image of a text or inscription that got scanned or photographed, a certain reference system is required (e.g. with pixels as individual units), together with pointers that create connections between elements in the XML file and areas of the image. Similarly with audio/video data, which you can index by the time axis, byte order, or within other appropriate reference systems.&lt;br /&gt;
&lt;br /&gt;
This kind of annotation system can also be applied to texts: instead of mixing data and markup, the source text can be left as read-only (and thus secure and possibly even located on a remote server) and the markup that describes it can constitute a separate layer, linked to the original by appropriate pointers.&lt;br /&gt;
&lt;br /&gt;
== Advantages ==&lt;br /&gt;
&lt;br /&gt;
* separation of logical layers of annotation&lt;br /&gt;
* overlapping hierarchies&lt;br /&gt;
* text read-only or secured, annotations free (cf. ANC)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== A bit of history ==&lt;br /&gt;
* CES, XCES, ANC&lt;br /&gt;
&lt;br /&gt;
* CES image&lt;br /&gt;
&lt;br /&gt;
* mention HyTime and the TEI's contribution to XLink?&lt;br /&gt;
&lt;br /&gt;
* ISO, Ide+Romary (?)&lt;br /&gt;
&lt;br /&gt;
* mention ATLAS (?)&lt;br /&gt;
&lt;br /&gt;
== Current implementations ==&lt;br /&gt;
&lt;br /&gt;
* ANC Tool (to aggregate XCES annotations, could it be customized?)&lt;br /&gt;
&lt;br /&gt;
* mention libxml2 and xmllint as the only (?) '''free-standing''' parser that (almost) implements the entire XPointer framework (bugs + non-W3C schemes are not handled)&lt;br /&gt;
&lt;br /&gt;
* mention TEI schemes defined at http://www.w3.org/2005/04/xpointer-schemes/&lt;br /&gt;
&lt;br /&gt;
* mention, perhaps, the way to use the string-range() function of the xpointer() scheme&lt;br /&gt;
&lt;br /&gt;
== Granularity: addressing elements/tokens vs. addressing (spans of) characters ==&lt;br /&gt;
&lt;br /&gt;
* James's paper&lt;br /&gt;
* NKJP/Polish: catching ambiguities at sublexical level&lt;br /&gt;
&lt;br /&gt;
When one does not want or need to address stand-off annotation at the sound or character level, an easy way to proceed is to build up a primary resource in TEI format, which is fully segmented at the word level (&amp;lt;w&amp;gt;, with IDs). Annotation files may in turn just refer to the corresponding IDs by means of a simple URL (http://www.myorganisation.org/myCorpus#w3425).&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*Documentation&lt;br /&gt;
** [http://www.cs.vassar.edu/CES/CES1-5.html#ToCOview CES documentation]&lt;br /&gt;
** [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SASO TEI Guidelines, ch. 16.9]&lt;br /&gt;
&lt;br /&gt;
* Tools that go some way towards creating/handling stand-off markup&lt;br /&gt;
** [http://www.cs.unibo.it/projects/xslt%2B%2B/XPointerTest.html XSLT++ Project: XPointer implementation]&lt;br /&gt;
** [http://www.huygensinstituut.knaw.nl/projects/editor EDITOR (the Edition as a Digital Instrument for Text-based Open Research)]&lt;br /&gt;
** [http://www.anc.org/tools/using-gate.html Gate for ANC] (not sure how it would handle TEI, separate plug-ins would be needed?)&lt;br /&gt;
&lt;br /&gt;
* Related papers&lt;br /&gt;
** [http://www.computerphilologie.de/jg06/boot.html A SANE approach to annotation in the digital edition, by Peter Boot, ''Jahrbuch für Computerphilologie'' 8 (2006)]&lt;br /&gt;
&lt;br /&gt;
[[category:Markup]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Serna&amp;diff=10076</id>
		<title>Serna</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Serna&amp;diff=10076"/>
		<updated>2011-10-07T12:04:55Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Language(s) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing tools]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
Serna provides a lightweight solution for students, open source developers, and other users to work with DITA, DocBook, TEI,and other popular XML formats. There are a few related products: Serna Enterprise (closed-source XML editor with a license fee), Serna SDK (for use with Serna Enterprise XML), and Serna Free (closed-source freeware).&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
See http://syntext.com/products/serna-feature-matrix/ .&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
Available for Windows XP/Windows 7, Linux, and Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
See http://syntext.com/products/ .&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Supports TEI P4 &amp;quot;out of the box&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
A Java application.&lt;br /&gt;
&lt;br /&gt;
(What computer language is the tool written in?)&lt;br /&gt;
(What language(s) are used in the interface?)&lt;br /&gt;
(What language(s) are used in the documentation?)&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://syntext.com/support/documentation/&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
http://syntext.com/support/&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
http://syntext.com/support/forum.html&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
4.3 (2011-09-29)&lt;br /&gt;
&lt;br /&gt;
== History of versions ==&lt;br /&gt;
* 4.1 (2009-03-12)&lt;br /&gt;
* 4.0 (2008-12-01)&lt;br /&gt;
* 3.8 (2008-07-28)&lt;br /&gt;
* 3.7 (2008-05-07)&lt;br /&gt;
* 3.6 (2008-03-19)&lt;br /&gt;
&lt;br /&gt;
== How to download or buy ==&lt;br /&gt;
http://www.syntext.com/downloads/serna/&lt;br /&gt;
&lt;br /&gt;
== Additional notes ==&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Serna&amp;diff=10075</id>
		<title>Serna</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Serna&amp;diff=10075"/>
		<updated>2011-10-07T12:03:31Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* System requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing tools]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
Serna provides a lightweight solution for students, open source developers, and other users to work with DITA, DocBook, TEI,and other popular XML formats. There are a few related products: Serna Enterprise (closed-source XML editor with a license fee), Serna SDK (for use with Serna Enterprise XML), and Serna Free (closed-source freeware).&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
See http://syntext.com/products/serna-feature-matrix/ .&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
Available for Windows XP/Windows 7, Linux, and Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
See http://syntext.com/products/ .&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Supports TEI P4 &amp;quot;out of the box&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
(What computer language is the tool written in?)&lt;br /&gt;
(What language(s) are used in the interface?)&lt;br /&gt;
(What language(s) are used in the documentation?)&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://syntext.com/support/documentation/&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
http://syntext.com/support/&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
http://syntext.com/support/forum.html&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
4.3 (2011-09-29)&lt;br /&gt;
&lt;br /&gt;
== History of versions ==&lt;br /&gt;
* 4.1 (2009-03-12)&lt;br /&gt;
* 4.0 (2008-12-01)&lt;br /&gt;
* 3.8 (2008-07-28)&lt;br /&gt;
* 3.7 (2008-05-07)&lt;br /&gt;
* 3.6 (2008-03-19)&lt;br /&gt;
&lt;br /&gt;
== How to download or buy ==&lt;br /&gt;
http://www.syntext.com/downloads/serna/&lt;br /&gt;
&lt;br /&gt;
== Additional notes ==&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Serna&amp;diff=10074</id>
		<title>Serna</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Serna&amp;diff=10074"/>
		<updated>2011-10-07T11:58:04Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Current version number and date of release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing tools]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
Serna provides a lightweight solution for students, open source developers, and other users to work with DITA, DocBook, TEI,and other popular XML formats. There are a few related products: Serna Enterprise (closed-source XML editor with a license fee), Serna SDK (for use with Serna Enterprise XML), and Serna Free (closed-source freeware).&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
See http://syntext.com/products/serna-feature-matrix/ .&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
See http://syntext.com/products/ .&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Supports TEI P4 &amp;quot;out of the box&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
(What computer language is the tool written in?)&lt;br /&gt;
(What language(s) are used in the interface?)&lt;br /&gt;
(What language(s) are used in the documentation?)&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://syntext.com/support/documentation/&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
http://syntext.com/support/&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
http://syntext.com/support/forum.html&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
4.3 (2011-09-29)&lt;br /&gt;
&lt;br /&gt;
== History of versions ==&lt;br /&gt;
* 4.1 (2009-03-12)&lt;br /&gt;
* 4.0 (2008-12-01)&lt;br /&gt;
* 3.8 (2008-07-28)&lt;br /&gt;
* 3.7 (2008-05-07)&lt;br /&gt;
* 3.6 (2008-03-19)&lt;br /&gt;
&lt;br /&gt;
== How to download or buy ==&lt;br /&gt;
http://www.syntext.com/downloads/serna/&lt;br /&gt;
&lt;br /&gt;
== Additional notes ==&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Serna&amp;diff=10073</id>
		<title>Serna</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Serna&amp;diff=10073"/>
		<updated>2011-10-07T11:55:19Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* History of versions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing tools]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
Serna provides a lightweight solution for students, open source developers, and other users to work with DITA, DocBook, TEI,and other popular XML formats. There are a few related products: Serna Enterprise (closed-source XML editor with a license fee), Serna SDK (for use with Serna Enterprise XML), and Serna Free (closed-source freeware).&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
See http://syntext.com/products/serna-feature-matrix/ .&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
See http://syntext.com/products/ .&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Supports TEI P4 &amp;quot;out of the box&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
(What computer language is the tool written in?)&lt;br /&gt;
(What language(s) are used in the interface?)&lt;br /&gt;
(What language(s) are used in the documentation?)&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://syntext.com/support/documentation/&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
http://syntext.com/support/&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
http://syntext.com/support/forum.html&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
4.1 (2009-03-12)&lt;br /&gt;
&lt;br /&gt;
== History of versions ==&lt;br /&gt;
* 4.1 (2009-03-12)&lt;br /&gt;
* 4.0 (2008-12-01)&lt;br /&gt;
* 3.8 (2008-07-28)&lt;br /&gt;
* 3.7 (2008-05-07)&lt;br /&gt;
* 3.6 (2008-03-19)&lt;br /&gt;
&lt;br /&gt;
== How to download or buy ==&lt;br /&gt;
http://www.syntext.com/downloads/serna/&lt;br /&gt;
&lt;br /&gt;
== Additional notes ==&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Critical_Apparatus_Workgroup&amp;diff=9944</id>
		<title>Critical Apparatus Workgroup</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Critical_Apparatus_Workgroup&amp;diff=9944"/>
		<updated>2011-09-10T15:24:32Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Representing &amp;quot;verbose&amp;quot; apparatus */ typos, grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/TC.html Critical Apparatus] workgroup is part of the TEI special interest group on manuscript [[SIG:MSS]].&lt;br /&gt;
&lt;br /&gt;
Participants to the preliminary workgroup:&lt;br /&gt;
&lt;br /&gt;
* Marjorie Burghart (MB)&lt;br /&gt;
* James Cummings (JC)&lt;br /&gt;
* Fotis Jannidis (FJ)&lt;br /&gt;
* Gregor Middell (GM)&lt;br /&gt;
* Dan O'Donnell (DOD)&lt;br /&gt;
* Espen Ore (EO)&lt;br /&gt;
* Elena Pierazzo (EP)&lt;br /&gt;
* Roberto Rosselli del Turco (RDT)&lt;br /&gt;
* Chris Wittern (CW)&lt;br /&gt;
&lt;br /&gt;
Comments below from others:&lt;br /&gt;
* Pascale Sutter (PS)&lt;br /&gt;
* [[User:Stuartyeates|Stuart Yeates]] (SAY)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== “Critical Apparatus” vs. “Textual Variance” vs. “Textual Variants”== &lt;br /&gt;
&lt;br /&gt;
The very name of the chapter, &amp;quot;Critical apparatus&amp;quot;, is felt by some to be be a problem: the '''critical apparatus''' is just inherited from the printed world and one of the possible physical embodiment of '''textual variance'''. EP therefore proposes to use this new name, moving from &amp;quot;critical apparatus&amp;quot; to textual variance.&lt;br /&gt;
&lt;br /&gt;
MB argues that, oddly, &amp;quot;textual variance&amp;quot; feels more restrictive to her than &amp;quot;critical apparatus&amp;quot;: it is a notion linked with Cerquiglini's work, which does not correspond to '''every''' branch of textual criticism. On the other hand, strictly speaking, the &amp;quot;critical apparatus&amp;quot; is not limited to registering the variants of the several witnesses of a text. It also includes various kinds of notes (identification of the sources of the text, historical notes, etc.). Even texts with a single witness may have a critical apparatus. Maybe the problem with the name has its origins in the choice of giving the name &amp;quot;critical apparatus&amp;quot; to a part of the guidelines dedicated solely to the registration of textual variants. &lt;br /&gt;
&lt;br /&gt;
FJ argues that for German ears the concept of textual variance is not closely connected to a specific scholar.&lt;br /&gt;
&lt;br /&gt;
MB proposes to use '''textual variants''' instead, since it focuses more on actual elements in the edition, when &amp;quot;variance&amp;quot; is nothing concrete but a phenomenon. &lt;br /&gt;
&lt;br /&gt;
Side remarks by MB: this vocabulary question might prove sticky in the end. The &amp;lt;app&amp;gt; elements is named &amp;lt;app&amp;gt; because it is considered &amp;quot;an apparatus entry&amp;quot;, so unless we end up recommending to change the elements names, the phrase &amp;quot;critical apparatus&amp;quot; will still be used in the module, at least to explain the tag names?&lt;br /&gt;
&lt;br /&gt;
RDT argues that while backward compatibility is clearly a bonus, as MB states &amp;lt;app&amp;gt; stands for 'apparatus entry': we shouldn't be afraid to change its function, for instance making it a container instead of a phrase level element. RDT stresses that he is proposing this by way of example, and to stress that our focus is on variants: these might then be organised in &amp;lt;app&amp;gt;s for traditional CA display, and/or in other, new ways for electronic display. Note that this might mean no traditional critical apparatus in a digital edition.&lt;br /&gt;
&lt;br /&gt;
MB: It is characteristic of a print-based approach to encoding that the &amp;lt;app&amp;gt; element was considered as encoding an apparatus entry (hence the &amp;lt;app&amp;gt; name), when what it really encodes is a locus where different witnesses have variant readings (whch would probably have justified a name along the lines of &amp;lt;locus&amp;gt; or whatnot).   &lt;br /&gt;
&lt;br /&gt;
JC: Thinks this points to a slight divergent nature at the heart of the current critical apparatus recommendations.  That of encoding an apparatus at the site of textual variance and encoding a structured view of a note entirely separate from the edited version of texts. (In mass digitization of critical editions, for example, one might have an &amp;lt;app&amp;gt; in a set of notes at the bottom of the page which are not encoded at the site of variance, or indeed necessarily connected with it.)  It is this striving to both be able to encode all sorts of various legacy forms of apparatus as well as simultaneously catering for those who are recording the structure by which they will generate an apparatus in producing some output.  So JC would argue that the first of these are apparatus and the second of these is a site/locus of textual variance.&lt;br /&gt;
&lt;br /&gt;
SAY: Prefers either '''textual variants''' or '''textual variance''' over '''Critical Apparatus''' simply because I believe their meaning is clearer to a larger proportion of English speaking people. Clear meanings help us inter-operate with other groups and standards by making our standard easier to read by third parties.&lt;br /&gt;
&lt;br /&gt;
== Issues == &lt;br /&gt;
&lt;br /&gt;
Preliminary notice: most of the issues raised here are connected with the parallel segmentation method, not because it is the more flawed, but because it is the more used by the members of this group. While location-referenced and double-end-point-attachment might be useful for mass conversion of printed material (for the former) and/or when using a piece of software handling the encoding (for the latter), the parallel segmentation method seems to be the easiest and more powerful way to encode the critical apparatus &amp;quot;by hand&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Also, one might point out that most of the issues raised here might be solved with standoff encoding. But this is extremely cumbersome to handle without the aid of a software, and it does not correspond to the way most people work. &lt;br /&gt;
&lt;br /&gt;
=== Specific phenomena ===&lt;br /&gt;
&lt;br /&gt;
==== Transpositions ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: with the parallel segmentation method, it is often cumbersome to render transpositions.&lt;br /&gt;
&lt;br /&gt;
Additionally it is not possible to mark them up explicitly. [http://juxtasoftware.org/ Juxta] for example works around that by storing transposition data in a custom XML format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;moves&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1855 MS&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;9679&amp;quot; end1=&amp;quot;10462&amp;quot; doc2=&amp;quot;1881 1st Ed.&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;9872&amp;quot; end2=&amp;quot;10467&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1855 MS&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;9679&amp;quot; end1=&amp;quot;10483&amp;quot; doc2=&amp;quot;1870 2nd Ed.&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;7781&amp;quot; end2=&amp;quot;8376&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1855 MS&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;9679&amp;quot; end1=&amp;quot;10504&amp;quot; doc2=&amp;quot;1870 Proof&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;8458&amp;quot; end2=&amp;quot;9056&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1855 MS&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;9886&amp;quot; end1=&amp;quot;10525&amp;quot; doc2=&amp;quot;1870 1st Ed.&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;8546&amp;quot; end2=&amp;quot;9141&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1870 Proof&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;1640&amp;quot; end1=&amp;quot;1850&amp;quot; doc2=&amp;quot;1881 1st Ed.&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;2961&amp;quot; end2=&amp;quot;3070&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/moves&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neither is this TEI-compliant, nor is the offset/range-based addressing (@start1/@start2 and @end1/@end2) proper XML markup. A standardized encoding would be helpful.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/fuszgtpnn2ywf6bh&lt;br /&gt;
&lt;br /&gt;
==== Handling of punctuation ====&lt;br /&gt;
&lt;br /&gt;
Seems to be a common problem in textual criticism/ apparatus creation, but lacks guidelines/ encoding examples:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/es6byhxpsbgkrxzo&lt;br /&gt;
&lt;br /&gt;
==== Representing omissions in an apparatus ====&lt;br /&gt;
&lt;br /&gt;
What's the proper way to represent missing lines/ paragraphs/ verses?&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/parztmwmlx5mqsof&lt;br /&gt;
* http://tei.markmail.org/thread/4sheu6nji3dvnf64&lt;br /&gt;
&lt;br /&gt;
=== Markup-related ===&lt;br /&gt;
&lt;br /&gt;
==== Inclusion of structural markup in the apparatus ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: the &amp;lt;app&amp;gt; element is phrase-level, when it really should be allowed to include paragraphs, and even &amp;amp;lt;div&amp;amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
Use case: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;I'm encoding a 19th c. edition of a medieval text, and one of the witness has omissions of several paragraphs. Of course, the TEI schema &lt;br /&gt;
won't let me put &amp;amp;lt;p&amp;amp;gt; elements inside an &amp;lt;app&amp;gt;/&amp;lt;lem&amp;gt; element...&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- I use the parallel segmentation method&amp;lt;br/&amp;gt;&lt;br /&gt;
- It is important to me to keep a methodical link between the encoded &lt;br /&gt;
apparatus and the notes numbers in the original edition (the &lt;br /&gt;
@n of each &amp;lt;app&amp;gt; tag bears the number of the footnote in the original &lt;br /&gt;
edition)&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is the [http://baluze.univ-avignon.fr/scan/t1/%285%29.jpg scan of a page from this edition], please consider footnote number 9. &lt;br /&gt;
The note contains: &amp;quot;9. Eodem anno, rex Francie… dampnificati, paragraphes omis par Bal.&amp;quot;, meaning that the ''Bal.'' witness has an omission where other witnesses have two long paragraphs, the first one beginning on the previous page (see the [http://baluze.univ-avignon.fr/scan/t1/%284%29.jpg previous page scanned]). &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/tbzi2yj5xd4dto34&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another use case:&lt;br /&gt;
&lt;br /&gt;
We have several witnesses of a poem, and in our base text, we have 8 stanzas, in another version only 6 stanzas and in some other 7? We are not allowed to have an &amp;lt;lg&amp;gt; and not even an &amp;lt;l&amp;gt; element within the &amp;lt;app&amp;gt; entry. So, we must put it the other way round, which may be somewhat awkward, like this:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;l&amp;gt;&lt;br /&gt;
    &amp;lt;app&amp;gt;&lt;br /&gt;
    &amp;lt;rdg wit=&amp;quot;#A&amp;quot;&amp;gt; [the text of the verse line here] &amp;lt;/rdg&amp;gt;&lt;br /&gt;
    &amp;lt;rdg wit=&amp;quot;#B&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;rdg wit=&amp;quot;#C&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/app&amp;gt;&lt;br /&gt;
    &amp;lt;/l&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We should then repeat this for every &amp;lt;l&amp;gt; , while it would be more practical to &amp;quot;say&amp;quot; this only once for entire stanza (with an &amp;lt;lg&amp;gt; within a &amp;lt;rdg&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
* Source: http://marjorie.burghart.online.fr/?q=en/content/tei-critical-apparatus-cheatsheet#comment-15&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More use cases from TEI-L:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/jyezaqfycaldtdcv&lt;br /&gt;
* http://tei.markmail.org/thread/fbyuxyabbxq4rwbr&lt;br /&gt;
* http://tei.markmail.org/thread/vrwkl7kkruulyjzh&lt;br /&gt;
* http://tei.markmail.org/thread/x5agpwzn4hiwwwcx&lt;br /&gt;
&lt;br /&gt;
==== Encoding variants in structural markup ====&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/ap62n37uf6rbfds4&lt;br /&gt;
* http://tei.markmail.org/thread/hbmnsn3v4aqjabt3&lt;br /&gt;
&lt;br /&gt;
==== Conflicts between individual readings and the semantics of structural markup that surrounds it ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: with the parallel segmentation method, witnesses with different forms of lineation pose a problem.&lt;br /&gt;
&lt;br /&gt;
=== Workflow-related ===&lt;br /&gt;
&lt;br /&gt;
==== Scalability ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: the parallel segmentation method is difficult to handle when adding hundreds of conflicting witnesses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;&lt;br /&gt;
Scaling is generally a problem with methods of indicating textual variance, but in parallel segmentation this is exacerbated because as the number of witnesses increase, the likelihood of needing to reformulate the reading boundaries, never mind the difficulty in reading or understanding such encodings. This may be a problem not only when looking at a single text with many witnesses, where variation in structure may be extremely difficult to represent where conflicts occur which disrupt this very basic structure (for example, imagine a set of witnesses where some have lines in linegroups, some just lines, some paragraphs, some paragraphs in divisions, but all with the same underlying text). But also where parallel segmentation is being used to record divergent interpretations of these individual witnesses by many editors (for distributed co-operative editions generated from many editorial views of a text). A plausible recommendation is to use a form of stand-off apparatus for such editions rather than parallel segmentation. And while some of the current methods can be used in a stand-off method, they should be updated to reflect current P5 usage of URI-based pointers.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Refactoring ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: with the the parallel segmentation method, it is cumbersome to add a new reading that necessitates changing where the borders of readings are drawn.&lt;br /&gt;
&lt;br /&gt;
==== Complexity ====&lt;br /&gt;
&lt;br /&gt;
Manually crafting an apparatus is error-prone:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/yuxqotf5aynxznq5&lt;br /&gt;
&lt;br /&gt;
==== Feasibility of double-endpoint-attached method ====&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/fsj7gvojds4mwcm5&lt;br /&gt;
* http://tei.markmail.org/thread/flwcnf4fxm4u7ebj&lt;br /&gt;
&lt;br /&gt;
=== Model vs. Representation ===&lt;br /&gt;
&lt;br /&gt;
==== Showing a lemma different from the content of the &amp;lt;lem&amp;gt; or chosen reading in an apparatus note ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: depending on the desired output of your digital edition, you may need to show in the apparatus entry a lemma text different from the content of the &amp;lt;lem&amp;gt; or desired &amp;lt;rdg&amp;gt;. This is typically the case for long omissions, when one does not display the full text that is omitted by one or more witnesses, but only the beginning and end of the omitted span of text.&lt;br /&gt;
&lt;br /&gt;
Use case: &lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;Let's consider again the example used in a previous use case: &lt;br /&gt;
Here is the [http://baluze.univ-avignon.fr/scan/t1/%285%29.jpg scan of a page from this edition], please consider footnote number 9. &lt;br /&gt;
The note contains: &amp;quot;9. Eodem anno, rex Francie… dampnificati, paragraphes omis par Bal.&amp;quot;, meaning that the ''Bal.'' witness has an omission where other witnesses have two long paragraphs, the first one beginning on the previous page (see the [http://baluze.univ-avignon.fr/scan/t1/%284%29.jpg previous page scanned]). &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
You certainly do not want to generate a footnote with these two full paragraphs to tell the reader that one witness omits them, but on the other hand you want to be able to represent the source according to its various witnesses, so location-referenced is not in order. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible workaround: add a new possible child to &amp;lt;add&amp;gt;, indicating how the content of the &amp;lt;lem&amp;gt; should be dislayed; something like: &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;app&amp;gt;&lt;br /&gt;
    &amp;lt;lemDisplay&amp;gt;Eodem anno, rex Francie… dampnificati&amp;lt;/lemDisplay&amp;gt;&lt;br /&gt;
    &amp;lt;lem&amp;gt;[several lines or paragraphs]&amp;lt;/lem&amp;gt;&lt;br /&gt;
    &amp;lt;rdg wit=&amp;quot;#V&amp;quot;&amp;gt;&amp;lt;/rdg&amp;gt;&lt;br /&gt;
    &amp;lt;/app&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Representing &amp;quot;verbose&amp;quot; apparatus ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: when you want to represent an apparatus entry written in a rather verbose way (in a print-to-digital edition). The same is true if you want to be able to generate a verbose apparatus note in a &amp;quot;born digital&amp;quot; edition. &lt;br /&gt;
&lt;br /&gt;
Use cases: &lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;You're encoding an existing edition, and want to represent the source it edits, while keeping intact the text / apparatus of the existing edition. Some apparatus entries are easy to represent with the &amp;lt;app&amp;gt; / &amp;lt;lem&amp;gt; / &amp;lt;rdg&amp;gt; elements, some others add editorial comments to the listing of the variants, and are quite difficult to represent. BTW, the same goes when you are encoding a born-digital edition for which you want to be able to generate an alternative print output corresponding to the traditional standards of a collection. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A - When I have a footnote giving two &amp;lt;i&amp;gt;lectiones&amp;lt;/i&amp;gt; from the same manuscript, one before correction and the other after: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b class=&amp;quot;moz-txt-star&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Text&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;: ad lectorem Venetum (b) .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b class=&amp;quot;moz-txt-star&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Note&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;: b) &amp;lt;i&amp;gt;ms.&amp;lt;/i&amp;gt;, lectionem venerum &amp;lt;i class=&amp;quot;moz-txt-slash&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;corrigé postérieurement en&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/i&amp;gt; lectorem Venetum&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If I encode it like this, with two separate rdg for the same&lt;br /&gt;
witness, each with a different @type (for instance, &amp;quot;anteCorr&amp;quot; and&lt;br /&gt;
&amp;quot;postCorr&amp;quot;), it gives an accurate account of the state of the witness, BUT it is an&lt;br /&gt;
interpretation of the original note in the critical apparatus, i.e. if&lt;br /&gt;
I do this I delete some text added by the original editor. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;app n=&amp;quot;b&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;lem&amp;amp;gt;lectorem Venetum&amp;amp;lt;/lem&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;rdg wit=&amp;quot;#ms.2&amp;quot; type=&amp;quot;anteCorr&amp;quot;&amp;amp;gt;lectionem venerum&amp;amp;lt;/rdg&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;rdg wit=&amp;quot;#ms.2&amp;quot; type=&amp;quot;postCorr&amp;quot;&amp;amp;gt;lectorem Venetum&amp;amp;lt;/rdg&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;/app&amp;amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;&lt;br /&gt;
Let's consider this other note. There is some text added verbosely within the apparatus note by the editor. &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;MsoNormal&amp;quot; style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;Text&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;: Hiis diebus civitas&lt;br /&gt;
Pergamensis(b) tenebat exersitum&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b style=&amp;quot;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;Note&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;: b) se, &amp;lt;i&amp;gt;mis indûment avant&amp;lt;/i&amp;gt; tenebat &amp;lt;i&amp;gt;par le ms&amp;lt;/i&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;MsoNormal&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;Should I encode it as: &amp;lt;br&amp;gt;&lt;br /&gt;
... Pergamensis &amp;amp;lt;app&lt;br /&gt;
n=&amp;quot;b&amp;quot;&amp;amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;lem/&amp;amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;rdg&lt;br /&gt;
type=&amp;quot;addition&amp;quot; wit=&amp;quot;#ms&amp;quot;&amp;amp;gt;&amp;amp;lt;sic&amp;amp;gt;se&amp;amp;lt;/sic&amp;amp;gt;&amp;amp;lt;/rdg&amp;amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;/app&amp;amp;gt;&amp;lt;/span&amp;gt;... &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one represents this note strictly with the &amp;lt;app&amp;gt; / &amp;lt;rdg&amp;gt;, it leads to the suppression of remarks by the original editor. Adding a note in the rdg to preserve the editor's comments could work here, but it's not always the case&amp;lt;br/&amp;gt;&lt;br /&gt;
Like: &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;... Pergamensis &amp;amp;lt;app&lt;br /&gt;
n=&amp;quot;b&amp;quot;&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;lem/&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;rdg&lt;br /&gt;
type=&amp;quot;addition&amp;quot; wit=&amp;quot;#ms&amp;quot;&amp;amp;gt;&amp;amp;lt;sic&amp;amp;gt;se&amp;amp;lt;/sic&amp;amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;&amp;amp;lt;note&amp;amp;gt;&amp;amp;lt;hi&lt;br /&gt;
rend=&amp;quot;italics&amp;quot;&amp;amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;mis&lt;br /&gt;
indûment avant&amp;lt;/span&amp;gt;&amp;amp;lt;/hi&amp;amp;gt; tenebat.&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;&amp;amp;lt;/note&amp;amp;gt;&amp;amp;lt;/rdg&amp;amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/app&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;MsoNormal&amp;quot; style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;'''Text'''&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;: …reliqui demum meos socios (d)&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Note'''&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;: d) domum&lt;br /&gt;
meam solito, &amp;lt;i&amp;gt;Bal.;&amp;lt;/i&amp;gt; dni &amp;lt;i&amp;gt;ou&amp;lt;/i&amp;gt; dm, &amp;lt;i&amp;gt;ms.; en note&amp;lt;/i&amp;gt; meam solita.&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we have 2 witnesses (Bal. et ms.), the latter with a) an uncertain&lt;br /&gt;
lectio (&amp;quot;dni&amp;quot; or &amp;quot;dm&amp;quot;) and b) a part of the lectio which is written as&lt;br /&gt;
a note (&amp;quot;meam solita&amp;quot;). This is tricky to encode. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/ib3bsrpirepp4ibc&lt;br /&gt;
* http://tei.markmail.org/thread/diubpw5adw6ntcas&lt;br /&gt;
&lt;br /&gt;
==== Representation of suggestions by the editor: ''lege'' ''dele'' etc. ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: Sometimes, the editor provides working suggestions through apparatus notes such as ''lege(ndum)'' (&amp;quot;read&amp;quot;), ''dele(ndum)'' (&amp;quot;delete)&amp;quot; etc. They do not belong in the textual variants ''per se'', and are not attached to witnesses, although they do belong in the critical apparatus.&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/vfw25psb5vgdiftw&lt;br /&gt;
&lt;br /&gt;
==== Collations of differing granularity ====&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/bonflsyb2d3ebtp2&lt;br /&gt;
* http://tei.markmail.org/thread/gqyymzd4a4xvhch7&lt;br /&gt;
&lt;br /&gt;
== An encoding proposal from the perspective of computer-aided collation tools == &lt;br /&gt;
&lt;br /&gt;
Gregor Middell gave an overview of textual variance from a software developer's perspective for the workgroup on a [[Textual_Variance|separate page]]. The models described there are used in tools like [http://collatex.sourceforge.net/ CollateX], [http://www.juxtasoftware.org/ Juxta] and [http://code.google.com/p/multiversiondocs/ nmerge].&lt;br /&gt;
&lt;br /&gt;
Collecting ideas from the mailinglist by James Cummings, Dan O'Donnell and Marjorie Burghart as well as following the [[Textual_Variance|“Gothenburg model” of textual variance]], a first take at separating the [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller model from the representation] of textual variance could be structured as follows.&lt;br /&gt;
&lt;br /&gt;
=== Modelling input data: Make the units of a collation addressable in the witnesses ===&lt;br /&gt;
&lt;br /&gt;
The Gothenburg model assumes a [[Textual_Variance#Tokenizer|preprocessing step]] by which the witnesses get split up into '''tokens''' of desired granularity. This granularity becomes the minimal unit of collation and can defined as pages, paragraphs, verses, lines, words, characters or any other unit that makes sense in the context of a particular tradition under investigation. To model collation results on top of tokenized witnesses, those tokens have to be addressable.&lt;br /&gt;
&lt;br /&gt;
The TEI defines an [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SAXP array of pointing mechanisms], which can be used to address anything from a whole XML document via URIs down to arbitrary content of those documents via sophisticated XPointer schemes. Projects would be free to choose among those mechanisms as long as each token is made available for later reference.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;p xml:base=&amp;quot;http://edition.org/witness_1&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;w&amp;gt;The&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;cat&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;ate&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;the&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;food&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;quickly&amp;lt;/w&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;p xml:base=&amp;quot;http://edition.org/witness_2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;w&amp;gt;Quickly&amp;lt;/w&amp;gt;, &amp;lt;w&amp;gt;the&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;cat&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;ate&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;the&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;food&amp;lt;/w&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here tokens on the word-level could be addressed via the [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SATSXP xpath1() XPointer scheme]:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;nowiki&amp;gt;http://edition.org/witness_1#xpath1(/p[1]/w[1])&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# &amp;lt;nowiki&amp;gt;http://edition.org/witness_1#xpath1(/p[1]/w[2])&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# ...&lt;br /&gt;
&lt;br /&gt;
A less verbose scheme would rely on each container element of a token being identified via a (possibly autogenerated) &amp;lt;code&amp;gt;xml:id&amp;lt;/code&amp;gt; attribute, like in the following verse-level tokenization.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;lg xml:base=&amp;quot;urn:goethe:faust2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;l xml:id=&amp;quot;l_1&amp;quot;&amp;gt;Die Sonne sinkt, die letzten Schiffe&amp;lt;/l&amp;gt;&lt;br /&gt;
  &amp;lt;l xml:id=&amp;quot;l_2&amp;quot;&amp;gt;Sie ziehen munter hafenein.&amp;lt;/l&amp;gt;&lt;br /&gt;
  &amp;lt;l xml:id=&amp;quot;l_3&amp;quot;&amp;gt;Ein großer Kahn ist im Begriffe&amp;lt;/l&amp;gt;&lt;br /&gt;
  &amp;lt;l xml:id=&amp;quot;l_4&amp;quot;&amp;gt;Auf dem Canale hier zu sein.&amp;lt;/l&amp;gt;&lt;br /&gt;
&amp;lt;/lg&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;nowiki&amp;gt;urn:goethe:faust2#l_1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# &amp;lt;nowiki&amp;gt;urn:goethe:faust2#l_2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# ...&lt;br /&gt;
&lt;br /&gt;
One can even think of reference schemes, which are as independent of existing markup as possible. By introducing &amp;amp;lt;anchor/&amp;gt; milestone elements at token boundaries and using the [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SATSRN range() XPointer scheme] the tokenization of arbitrary TEI documents can be accomplished, because &amp;amp;lt;anchor/&amp;gt; is part of [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/ref-model.global.html model.global].&lt;br /&gt;
&lt;br /&gt;
=== Modelling collated data: Encode the alignment/linking between tokens ===&lt;br /&gt;
&lt;br /&gt;
After tokens in the different witnesses have been made addressable, collation data can be modelled on top of that as [[Textual_Variance#Aligner|alignments of tokens]]. An '''alignment''' can be expressed as a set of tokens from different witnesses or, in accordance with the [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html corresponding guidelines chapter] as a link between two or more tokens.&lt;br /&gt;
&lt;br /&gt;
Taking the first example from above, a collation of the two given witnesses could be expressed as&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;linkGrp type=&amp;quot;collation&amp;quot; xml:base=&amp;quot;http://edition.org/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[1]) witness_2#xpath1(/p[1]/w[2])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[2]) witness_2#xpath1(/p[1]/w[3])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[3]) witness_2#xpath1(/p[1]/w[4])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[4]) witness_2#xpath1(/p[1]/w[5])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[5]) witness_2#xpath1(/p[1]/w[6])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[6]) witness_2#xpath1(/p[1]/w[1])&amp;quot; type=&amp;quot;transposition&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/linkGrp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each link in this example corresponds to a row in an alignment table as depicted in the Gothenburg model description. Omitted/ added tokens are expressed implictly by not linking to tokens in other witnesses, this is to say: Whether a set of tokens has been added to a witness or has been omitted from it, is a matter of interpreting collation data as expressed above from the perspective of one witness or another and with regard to the way, this witness aligns with others.&lt;br /&gt;
&lt;br /&gt;
One advantage of encoding collation data in such a set-oriented way is its '''scalability''':&lt;br /&gt;
&lt;br /&gt;
# Gradually adding witnesses to the collation may amount to adding alignments to the existing ones or modifying/augmenting the latter, depending on whether the collation is done pairwise (e. g. in relation to a base text) or via multiple alignment (e. g. without a prechosen base).&lt;br /&gt;
# Guiding a collation tool in producing ever more precise aligments in consecutive runs can be achieved by [[Textual_Variance#Analyzer|declaring alignments]] (for example transpositions), feeding those into the collator, adjusting the resulting alignment set, feeding it back into the collator for another run and so forth. Being able to encode the initial/preliminary results of such an iterative process in a standardized way, makes it possible to run different collation tools on the same text tradition, ideally each being able to make use of former results by other tools and to contribute to the overall result.&lt;br /&gt;
&lt;br /&gt;
The major disadvantage of encoding collation data this way is its apparant lack of human readability and that it is hardly possible to edit it by hand, especially when the collated text tradition grows larger. This problem can only be solved via tool support.&lt;br /&gt;
&lt;br /&gt;
=== Encoding the interpretation/ representation: Derive an apparatus from the collation ===&lt;br /&gt;
&lt;br /&gt;
A TEI-encoded critical apparatus is one possible rendition of collation data, possibly enhanced with information yielded from interpreting the alignments. There are a couple of ways how we could encode the above collation as an apparatus.&lt;br /&gt;
&lt;br /&gt;
==== Apparatus pointing to the collated tokens (for easier post-processing) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; xml:base=&amp;quot;http://edition.org/witness_1&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; xml:base=&amp;quot;http://edition.org/witness_2&amp;quot; xml:id=&amp;quot;w2_1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[1])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/rdg&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; xml:base=&amp;quot;http://edition.org/witness_1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[1])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[2])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[3])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[4])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[5])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/rdg&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; xml:base=&amp;quot;http://edition.org/witness_2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[2])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[3])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[4])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[5])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[6])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/rdg&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; xml:base=&amp;quot;http://edition.org/witness_1&amp;quot; corresp=&amp;quot;#w2_1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[6])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/rdg&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; xml:base=&amp;quot;http://edition.org/witness_2&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Apparatus with embedded textual content (for readability) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; xml:id=&amp;quot;w2_1&amp;quot;&amp;gt;Quickly,&amp;lt;/rdg&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot;&amp;gt;The cat ate the food&amp;lt;/rdg&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot;&amp;gt;the cat ate the food.&amp;lt;/rdg&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; corresp=&amp;quot;#w2_1&amp;quot;&amp;gt;quickly.&amp;lt;/rdg&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some problems here:&lt;br /&gt;
&lt;br /&gt;
* @corresp vs. &amp;lt;link/&amp;gt; for transpositions over more than two witnesses&lt;br /&gt;
* How to derive the segment content from the original witness automatically, if the token content does not add up to it (e. g. because of punctuation being excluded from the tokens from the start)?&lt;br /&gt;
&lt;br /&gt;
== Bibliography ==&lt;br /&gt;
&lt;br /&gt;
* O'Donnell, Daniel Paul. [http://etjanst.hb.se/bhs/ith/1-8/dpo.pdf “The Ghost in the Machine: Revisiting an Old Model for the Dynamic Generation of Digital Editions.”] HumanIT 8.1 (2005): 51­71.&lt;br /&gt;
* Vetter, L. and McDonald, J. ‘Witnessing Dickinson’s Witnesses’, Literary and Linguistic Computing, 18.2: 2003, 151-165.&lt;br /&gt;
* [http://eprints.qut.edu.au/38436/ Schmidt, D., 2010. The inadequacy of embedded markup for cultural heritage texts. Literary and Linguistic Computing, 25(3), pp. 337-356.]&lt;br /&gt;
&lt;br /&gt;
[[Category:SIG:Manuscripts]]&lt;br /&gt;
[[Category:Critical Apparatus]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Critical_Apparatus_Workgroup&amp;diff=9943</id>
		<title>Critical Apparatus Workgroup</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Critical_Apparatus_Workgroup&amp;diff=9943"/>
		<updated>2011-09-10T15:16:11Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* “Critical Apparatus” vs. “Textual Variance” vs. “Textual Variants” */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/TC.html Critical Apparatus] workgroup is part of the TEI special interest group on manuscript [[SIG:MSS]].&lt;br /&gt;
&lt;br /&gt;
Participants to the preliminary workgroup:&lt;br /&gt;
&lt;br /&gt;
* Marjorie Burghart (MB)&lt;br /&gt;
* James Cummings (JC)&lt;br /&gt;
* Fotis Jannidis (FJ)&lt;br /&gt;
* Gregor Middell (GM)&lt;br /&gt;
* Dan O'Donnell (DOD)&lt;br /&gt;
* Espen Ore (EO)&lt;br /&gt;
* Elena Pierazzo (EP)&lt;br /&gt;
* Roberto Rosselli del Turco (RDT)&lt;br /&gt;
* Chris Wittern (CW)&lt;br /&gt;
&lt;br /&gt;
Comments below from others:&lt;br /&gt;
* Pascale Sutter (PS)&lt;br /&gt;
* [[User:Stuartyeates|Stuart Yeates]] (SAY)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== “Critical Apparatus” vs. “Textual Variance” vs. “Textual Variants”== &lt;br /&gt;
&lt;br /&gt;
The very name of the chapter, &amp;quot;Critical apparatus&amp;quot;, is felt by some to be be a problem: the '''critical apparatus''' is just inherited from the printed world and one of the possible physical embodiment of '''textual variance'''. EP therefore proposes to use this new name, moving from &amp;quot;critical apparatus&amp;quot; to textual variance.&lt;br /&gt;
&lt;br /&gt;
MB argues that, oddly, &amp;quot;textual variance&amp;quot; feels more restrictive to her than &amp;quot;critical apparatus&amp;quot;: it is a notion linked with Cerquiglini's work, which does not correspond to '''every''' branch of textual criticism. On the other hand, strictly speaking, the &amp;quot;critical apparatus&amp;quot; is not limited to registering the variants of the several witnesses of a text. It also includes various kinds of notes (identification of the sources of the text, historical notes, etc.). Even texts with a single witness may have a critical apparatus. Maybe the problem with the name has its origins in the choice of giving the name &amp;quot;critical apparatus&amp;quot; to a part of the guidelines dedicated solely to the registration of textual variants. &lt;br /&gt;
&lt;br /&gt;
FJ argues that for German ears the concept of textual variance is not closely connected to a specific scholar.&lt;br /&gt;
&lt;br /&gt;
MB proposes to use '''textual variants''' instead, since it focuses more on actual elements in the edition, when &amp;quot;variance&amp;quot; is nothing concrete but a phenomenon. &lt;br /&gt;
&lt;br /&gt;
Side remarks by MB: this vocabulary question might prove sticky in the end. The &amp;lt;app&amp;gt; elements is named &amp;lt;app&amp;gt; because it is considered &amp;quot;an apparatus entry&amp;quot;, so unless we end up recommending to change the elements names, the phrase &amp;quot;critical apparatus&amp;quot; will still be used in the module, at least to explain the tag names?&lt;br /&gt;
&lt;br /&gt;
RDT argues that while backward compatibility is clearly a bonus, as MB states &amp;lt;app&amp;gt; stands for 'apparatus entry': we shouldn't be afraid to change its function, for instance making it a container instead of a phrase level element. RDT stresses that he is proposing this by way of example, and to stress that our focus is on variants: these might then be organised in &amp;lt;app&amp;gt;s for traditional CA display, and/or in other, new ways for electronic display. Note that this might mean no traditional critical apparatus in a digital edition.&lt;br /&gt;
&lt;br /&gt;
MB: It is characteristic of a print-based approach to encoding that the &amp;lt;app&amp;gt; element was considered as encoding an apparatus entry (hence the &amp;lt;app&amp;gt; name), when what it really encodes is a locus where different witnesses have variant readings (whch would probably have justified a name along the lines of &amp;lt;locus&amp;gt; or whatnot).   &lt;br /&gt;
&lt;br /&gt;
JC: Thinks this points to a slight divergent nature at the heart of the current critical apparatus recommendations.  That of encoding an apparatus at the site of textual variance and encoding a structured view of a note entirely separate from the edited version of texts. (In mass digitization of critical editions, for example, one might have an &amp;lt;app&amp;gt; in a set of notes at the bottom of the page which are not encoded at the site of variance, or indeed necessarily connected with it.)  It is this striving to both be able to encode all sorts of various legacy forms of apparatus as well as simultaneously catering for those who are recording the structure by which they will generate an apparatus in producing some output.  So JC would argue that the first of these are apparatus and the second of these is a site/locus of textual variance.&lt;br /&gt;
&lt;br /&gt;
SAY: Prefers either '''textual variants''' or '''textual variance''' over '''Critical Apparatus''' simply because I believe their meaning is clearer to a larger proportion of English speaking people. Clear meanings help us inter-operate with other groups and standards by making our standard easier to read by third parties.&lt;br /&gt;
&lt;br /&gt;
== Issues == &lt;br /&gt;
&lt;br /&gt;
Preliminary notice: most of the issues raised here are connected with the parallel segmentation method, not because it is the more flawed, but because it is the more used by the members of this group. While location-referenced and double-end-point-attachment might be useful for mass conversion of printed material (for the former) and/or when using a piece of software handling the encoding (for the latter), the parallel segmentation method seems to be the easiest and more powerful way to encode the critical apparatus &amp;quot;by hand&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Also, one might point out that most of the issues raised here might be solved with standoff encoding. But this is extremely cumbersome to handle without the aid of a software, and it does not correspond to the way most people work. &lt;br /&gt;
&lt;br /&gt;
=== Specific phenomena ===&lt;br /&gt;
&lt;br /&gt;
==== Transpositions ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: with the parallel segmentation method, it is often cumbersome to render transpositions.&lt;br /&gt;
&lt;br /&gt;
Additionally it is not possible to mark them up explicitly. [http://juxtasoftware.org/ Juxta] for example works around that by storing transposition data in a custom XML format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;moves&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1855 MS&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;9679&amp;quot; end1=&amp;quot;10462&amp;quot; doc2=&amp;quot;1881 1st Ed.&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;9872&amp;quot; end2=&amp;quot;10467&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1855 MS&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;9679&amp;quot; end1=&amp;quot;10483&amp;quot; doc2=&amp;quot;1870 2nd Ed.&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;7781&amp;quot; end2=&amp;quot;8376&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1855 MS&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;9679&amp;quot; end1=&amp;quot;10504&amp;quot; doc2=&amp;quot;1870 Proof&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;8458&amp;quot; end2=&amp;quot;9056&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1855 MS&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;9886&amp;quot; end1=&amp;quot;10525&amp;quot; doc2=&amp;quot;1870 1st Ed.&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;8546&amp;quot; end2=&amp;quot;9141&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;move doc1=&amp;quot;1870 Proof&amp;quot; space1=&amp;quot;original&amp;quot; start1=&amp;quot;1640&amp;quot; end1=&amp;quot;1850&amp;quot; doc2=&amp;quot;1881 1st Ed.&amp;quot; space2=&amp;quot;original&amp;quot; start2=&amp;quot;2961&amp;quot; end2=&amp;quot;3070&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/moves&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neither is this TEI-compliant, nor is the offset/range-based addressing (@start1/@start2 and @end1/@end2) proper XML markup. A standardized encoding would be helpful.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/fuszgtpnn2ywf6bh&lt;br /&gt;
&lt;br /&gt;
==== Handling of punctuation ====&lt;br /&gt;
&lt;br /&gt;
Seems to be a common problem in textual criticism/ apparatus creation, but lacks guidelines/ encoding examples:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/es6byhxpsbgkrxzo&lt;br /&gt;
&lt;br /&gt;
==== Representing omissions in an apparatus ====&lt;br /&gt;
&lt;br /&gt;
What's the proper way to represent missing lines/ paragraphs/ verses?&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/parztmwmlx5mqsof&lt;br /&gt;
* http://tei.markmail.org/thread/4sheu6nji3dvnf64&lt;br /&gt;
&lt;br /&gt;
=== Markup-related ===&lt;br /&gt;
&lt;br /&gt;
==== Inclusion of structural markup in the apparatus ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: the &amp;lt;app&amp;gt; element is phrase-level, when it really should be allowed to include paragraphs, and even &amp;amp;lt;div&amp;amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
Use case: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;I'm encoding a 19th c. edition of a medieval text, and one of the witness has omissions of several paragraphs. Of course, the TEI schema &lt;br /&gt;
won't let me put &amp;amp;lt;p&amp;amp;gt; elements inside an &amp;lt;app&amp;gt;/&amp;lt;lem&amp;gt; element...&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- I use the parallel segmentation method&amp;lt;br/&amp;gt;&lt;br /&gt;
- It is important to me to keep a methodical link between the encoded &lt;br /&gt;
apparatus and the notes numbers in the original edition (the &lt;br /&gt;
@n of each &amp;lt;app&amp;gt; tag bears the number of the footnote in the original &lt;br /&gt;
edition)&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is the [http://baluze.univ-avignon.fr/scan/t1/%285%29.jpg scan of a page from this edition], please consider footnote number 9. &lt;br /&gt;
The note contains: &amp;quot;9. Eodem anno, rex Francie… dampnificati, paragraphes omis par Bal.&amp;quot;, meaning that the ''Bal.'' witness has an omission where other witnesses have two long paragraphs, the first one beginning on the previous page (see the [http://baluze.univ-avignon.fr/scan/t1/%284%29.jpg previous page scanned]). &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/tbzi2yj5xd4dto34&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another use case:&lt;br /&gt;
&lt;br /&gt;
We have several witnesses of a poem, and in our base text, we have 8 stanzas, in another version only 6 stanzas and in some other 7? We are not allowed to have an &amp;lt;lg&amp;gt; and not even an &amp;lt;l&amp;gt; element within the &amp;lt;app&amp;gt; entry. So, we must put it the other way round, which may be somewhat awkward, like this:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;l&amp;gt;&lt;br /&gt;
    &amp;lt;app&amp;gt;&lt;br /&gt;
    &amp;lt;rdg wit=&amp;quot;#A&amp;quot;&amp;gt; [the text of the verse line here] &amp;lt;/rdg&amp;gt;&lt;br /&gt;
    &amp;lt;rdg wit=&amp;quot;#B&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;rdg wit=&amp;quot;#C&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/app&amp;gt;&lt;br /&gt;
    &amp;lt;/l&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We should then repeat this for every &amp;lt;l&amp;gt; , while it would be more practical to &amp;quot;say&amp;quot; this only once for entire stanza (with an &amp;lt;lg&amp;gt; within a &amp;lt;rdg&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
* Source: http://marjorie.burghart.online.fr/?q=en/content/tei-critical-apparatus-cheatsheet#comment-15&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More use cases from TEI-L:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/jyezaqfycaldtdcv&lt;br /&gt;
* http://tei.markmail.org/thread/fbyuxyabbxq4rwbr&lt;br /&gt;
* http://tei.markmail.org/thread/vrwkl7kkruulyjzh&lt;br /&gt;
* http://tei.markmail.org/thread/x5agpwzn4hiwwwcx&lt;br /&gt;
&lt;br /&gt;
==== Encoding variants in structural markup ====&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/ap62n37uf6rbfds4&lt;br /&gt;
* http://tei.markmail.org/thread/hbmnsn3v4aqjabt3&lt;br /&gt;
&lt;br /&gt;
==== Conflicts between individual readings and the semantics of structural markup that surrounds it ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: with the parallel segmentation method, witnesses with different forms of lineation pose a problem.&lt;br /&gt;
&lt;br /&gt;
=== Workflow-related ===&lt;br /&gt;
&lt;br /&gt;
==== Scalability ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: the parallel segmentation method is difficult to handle when adding hundreds of conflicting witnesses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;&lt;br /&gt;
Scaling is generally a problem with methods of indicating textual variance, but in parallel segmentation this is exacerbated because as the number of witnesses increase, the likelihood of needing to reformulate the reading boundaries, never mind the difficulty in reading or understanding such encodings. This may be a problem not only when looking at a single text with many witnesses, where variation in structure may be extremely difficult to represent where conflicts occur which disrupt this very basic structure (for example, imagine a set of witnesses where some have lines in linegroups, some just lines, some paragraphs, some paragraphs in divisions, but all with the same underlying text). But also where parallel segmentation is being used to record divergent interpretations of these individual witnesses by many editors (for distributed co-operative editions generated from many editorial views of a text). A plausible recommendation is to use a form of stand-off apparatus for such editions rather than parallel segmentation. And while some of the current methods can be used in a stand-off method, they should be updated to reflect current P5 usage of URI-based pointers.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Refactoring ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: with the the parallel segmentation method, it is cumbersome to add a new reading that necessitates changing where the borders of readings are drawn.&lt;br /&gt;
&lt;br /&gt;
==== Complexity ====&lt;br /&gt;
&lt;br /&gt;
Manually crafting an apparatus is error-prone:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/yuxqotf5aynxznq5&lt;br /&gt;
&lt;br /&gt;
==== Feasibility of double-endpoint-attached method ====&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/fsj7gvojds4mwcm5&lt;br /&gt;
* http://tei.markmail.org/thread/flwcnf4fxm4u7ebj&lt;br /&gt;
&lt;br /&gt;
=== Model vs. Representation ===&lt;br /&gt;
&lt;br /&gt;
==== Showing a lemma different from the content of the &amp;lt;lem&amp;gt; or chosen reading in an apparatus note ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: depending on the desired output of your digital edition, you may need to show in the apparatus entry a lemma text different from the content of the &amp;lt;lem&amp;gt; or desired &amp;lt;rdg&amp;gt;. This is typically the case for long omissions, when one does not display the full text that is omitted by one or more witnesses, but only the beginning and end of the omitted span of text.&lt;br /&gt;
&lt;br /&gt;
Use case: &lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;Let's consider again the example used in a previous use case: &lt;br /&gt;
Here is the [http://baluze.univ-avignon.fr/scan/t1/%285%29.jpg scan of a page from this edition], please consider footnote number 9. &lt;br /&gt;
The note contains: &amp;quot;9. Eodem anno, rex Francie… dampnificati, paragraphes omis par Bal.&amp;quot;, meaning that the ''Bal.'' witness has an omission where other witnesses have two long paragraphs, the first one beginning on the previous page (see the [http://baluze.univ-avignon.fr/scan/t1/%284%29.jpg previous page scanned]). &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
You certainly do not want to generate a footnote with these two full paragraphs to tell the reader that one witness omits them, but on the other hand you want to be able to represent the source according to its various witnesses, so location-referenced is not in order. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible workaround: add a new possible child to &amp;lt;add&amp;gt;, indicating how the content of the &amp;lt;lem&amp;gt; should be dislayed; something like: &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;app&amp;gt;&lt;br /&gt;
    &amp;lt;lemDisplay&amp;gt;Eodem anno, rex Francie… dampnificati&amp;lt;/lemDisplay&amp;gt;&lt;br /&gt;
    &amp;lt;lem&amp;gt;[several lines or paragraphs]&amp;lt;/lem&amp;gt;&lt;br /&gt;
    &amp;lt;rdg wit=&amp;quot;#V&amp;quot;&amp;gt;&amp;lt;/rdg&amp;gt;&lt;br /&gt;
    &amp;lt;/app&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Representing &amp;quot;verbose&amp;quot; apparatus ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: when you want to represent an apparatus entry written in a rather verbose way (in a print-to-digital edition). The same is true if you want to be able to generate a verbose apparatus note in a &amp;quot;born digital&amp;quot; edition. &lt;br /&gt;
&lt;br /&gt;
Use cases: &lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;You're encoding an existing edition, and want to represent the source it edits, while keeping intact the text / apparatus of the existing edition. Some apparatus entries are easy to represent with the &amp;lt;app&amp;gt; / &amp;lt;lem&amp;gt; / &amp;lt;rdg&amp;gt; elements, some others add editorial comments to the listing of the variants, and are quite difficult to represent. BTW, the same goes when you are encoding a born-digital edition for which you want to be able to generate an alternative print output corresponding to the traditional standards of a collection. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A - When I have a footnote giving two &amp;lt;i&amp;gt;lectiones&amp;lt;/i&amp;gt; from the same manuscrip, one before correction and the other after: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b class=&amp;quot;moz-txt-star&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Text&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;: ad lectorem Venetum (b) .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b class=&amp;quot;moz-txt-star&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Note&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;: b) &amp;lt;i&amp;gt;ms.&amp;lt;/i&amp;gt;, lectionem venerum &amp;lt;i class=&amp;quot;moz-txt-slash&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;corrigé postérieurement en&amp;lt;span class=&amp;quot;moz-txt-tag&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/i&amp;gt; lectorem Venetum&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If I encode it like this, with two seprate rdg for the same&lt;br /&gt;
witness, each with a different @type (for instance, &amp;quot;anteCorr&amp;quot; and&lt;br /&gt;
&amp;quot;postCorr&amp;quot;), it gives an accurate account of the state of the witness, BUT it is an&lt;br /&gt;
interpretation of the original note in the critical apparatus, i.e. if&lt;br /&gt;
I do this I delete some text added by the original editor. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;app n=&amp;quot;b&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;lem&amp;amp;gt;lectorem Venetum&amp;amp;lt;/lem&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;rdg wit=&amp;quot;#ms.2&amp;quot; type=&amp;quot;anteCorr&amp;quot;&amp;amp;gt;lectionem venerum&amp;amp;lt;/rdg&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;rdg wit=&amp;quot;#ms.2&amp;quot; type=&amp;quot;postCorr&amp;quot;&amp;amp;gt;lectorem Venetum&amp;amp;lt;/rdg&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;/app&amp;amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;&lt;br /&gt;
Let's consider this other note. There is some text added verbosely within the apparatus note by the editor. &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;MsoNormal&amp;quot; style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;Text&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;: Hiis diebus civitas&lt;br /&gt;
Pergamensis(b) tenebat exersitum&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b style=&amp;quot;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;Note&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;: b) se, &amp;lt;i&amp;gt;mis indûment avant&amp;lt;/i&amp;gt; tenebat &amp;lt;i&amp;gt;par le ms&amp;lt;/i&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;MsoNormal&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;Should I encode it as: &amp;lt;br&amp;gt;&lt;br /&gt;
... Pergamensis &amp;amp;lt;app&lt;br /&gt;
n=&amp;quot;b&amp;quot;&amp;amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;lem/&amp;amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;rdg&lt;br /&gt;
type=&amp;quot;addition&amp;quot; wit=&amp;quot;#ms&amp;quot;&amp;amp;gt;&amp;amp;lt;sic&amp;amp;gt;se&amp;amp;lt;/sic&amp;amp;gt;&amp;amp;lt;/rdg&amp;amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;lt;/app&amp;amp;gt;&amp;lt;/span&amp;gt;... &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I one represents this note strictly with the &amp;lt;app&amp;gt; / &amp;lt;rdg&amp;gt;, it leads to suppress remarks by the original editor. Adding a note in the rdg to preserve the editor's comments could work here, ut it's not always the case&amp;lt;br/&amp;gt;&lt;br /&gt;
Like: &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;... Pergamensis &amp;amp;lt;app&lt;br /&gt;
n=&amp;quot;b&amp;quot;&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;lem/&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;rdg&lt;br /&gt;
type=&amp;quot;addition&amp;quot; wit=&amp;quot;#ms&amp;quot;&amp;amp;gt;&amp;amp;lt;sic&amp;amp;gt;se&amp;amp;lt;/sic&amp;amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;&amp;amp;lt;note&amp;amp;gt;&amp;amp;lt;hi&lt;br /&gt;
rend=&amp;quot;italics&amp;quot;&amp;amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;mis&lt;br /&gt;
indûment avant&amp;lt;/span&amp;gt;&amp;amp;lt;/hi&amp;amp;gt; tenebat.&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;&amp;amp;lt;/note&amp;amp;gt;&amp;amp;lt;/rdg&amp;amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/app&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background:#FFEAEA&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;MsoNormal&amp;quot; style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;'''Text'''&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;: …reliqui demum meos socios (d)&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Note'''&amp;lt;span style=&amp;quot;&amp;quot;&amp;gt;: d) domum&lt;br /&gt;
meam solito, &amp;lt;i&amp;gt;Bal.;&amp;lt;/i&amp;gt; dni &amp;lt;i&amp;gt;ou&amp;lt;/i&amp;gt; dm, &amp;lt;i&amp;gt;ms.; en note&amp;lt;/i&amp;gt; meam solita.&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we have 2 witnesses (Bal. et ms.), the latter with a) an uncertain&lt;br /&gt;
lectio (&amp;quot;dni&amp;quot; or &amp;quot;dm&amp;quot;) and b) a part of the lectio which is written as&lt;br /&gt;
a note (&amp;quot;meam solita&amp;quot;). This is tricky to encode. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/ib3bsrpirepp4ibc&lt;br /&gt;
* http://tei.markmail.org/thread/diubpw5adw6ntcas&lt;br /&gt;
&lt;br /&gt;
==== Representation of suggestions by the editor: ''lege'' ''dele'' etc. ====&lt;br /&gt;
&lt;br /&gt;
In a nutshell: Sometimes, the editor provides working suggestions through apparatus notes such as ''lege(ndum)'' (&amp;quot;read&amp;quot;), ''dele(ndum)'' (&amp;quot;delete)&amp;quot; etc. They do not belong in the textual variants ''per se'', and are not attached to witnesses, although they do belong in the critical apparatus.&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/vfw25psb5vgdiftw&lt;br /&gt;
&lt;br /&gt;
==== Collations of differing granularity ====&lt;br /&gt;
&lt;br /&gt;
* http://tei.markmail.org/thread/bonflsyb2d3ebtp2&lt;br /&gt;
* http://tei.markmail.org/thread/gqyymzd4a4xvhch7&lt;br /&gt;
&lt;br /&gt;
== An encoding proposal from the perspective of computer-aided collation tools == &lt;br /&gt;
&lt;br /&gt;
Gregor Middell gave an overview of textual variance from a software developer's perspective for the workgroup on a [[Textual_Variance|separate page]]. The models described there are used in tools like [http://collatex.sourceforge.net/ CollateX], [http://www.juxtasoftware.org/ Juxta] and [http://code.google.com/p/multiversiondocs/ nmerge].&lt;br /&gt;
&lt;br /&gt;
Collecting ideas from the mailinglist by James Cummings, Dan O'Donnell and Marjorie Burghart as well as following the [[Textual_Variance|“Gothenburg model” of textual variance]], a first take at separating the [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller model from the representation] of textual variance could be structured as follows.&lt;br /&gt;
&lt;br /&gt;
=== Modelling input data: Make the units of a collation addressable in the witnesses ===&lt;br /&gt;
&lt;br /&gt;
The Gothenburg model assumes a [[Textual_Variance#Tokenizer|preprocessing step]] by which the witnesses get split up into '''tokens''' of desired granularity. This granularity becomes the minimal unit of collation and can defined as pages, paragraphs, verses, lines, words, characters or any other unit that makes sense in the context of a particular tradition under investigation. To model collation results on top of tokenized witnesses, those tokens have to be addressable.&lt;br /&gt;
&lt;br /&gt;
The TEI defines an [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SAXP array of pointing mechanisms], which can be used to address anything from a whole XML document via URIs down to arbitrary content of those documents via sophisticated XPointer schemes. Projects would be free to choose among those mechanisms as long as each token is made available for later reference.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;p xml:base=&amp;quot;http://edition.org/witness_1&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;w&amp;gt;The&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;cat&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;ate&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;the&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;food&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;quickly&amp;lt;/w&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;p xml:base=&amp;quot;http://edition.org/witness_2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;w&amp;gt;Quickly&amp;lt;/w&amp;gt;, &amp;lt;w&amp;gt;the&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;cat&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;ate&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;the&amp;lt;/w&amp;gt; &amp;lt;w&amp;gt;food&amp;lt;/w&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here tokens on the word-level could be addressed via the [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SATSXP xpath1() XPointer scheme]:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;nowiki&amp;gt;http://edition.org/witness_1#xpath1(/p[1]/w[1])&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# &amp;lt;nowiki&amp;gt;http://edition.org/witness_1#xpath1(/p[1]/w[2])&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# ...&lt;br /&gt;
&lt;br /&gt;
A less verbose scheme would rely on each container element of a token being identified via a (possibly autogenerated) &amp;lt;code&amp;gt;xml:id&amp;lt;/code&amp;gt; attribute, like in the following verse-level tokenization.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;lg xml:base=&amp;quot;urn:goethe:faust2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;l xml:id=&amp;quot;l_1&amp;quot;&amp;gt;Die Sonne sinkt, die letzten Schiffe&amp;lt;/l&amp;gt;&lt;br /&gt;
  &amp;lt;l xml:id=&amp;quot;l_2&amp;quot;&amp;gt;Sie ziehen munter hafenein.&amp;lt;/l&amp;gt;&lt;br /&gt;
  &amp;lt;l xml:id=&amp;quot;l_3&amp;quot;&amp;gt;Ein großer Kahn ist im Begriffe&amp;lt;/l&amp;gt;&lt;br /&gt;
  &amp;lt;l xml:id=&amp;quot;l_4&amp;quot;&amp;gt;Auf dem Canale hier zu sein.&amp;lt;/l&amp;gt;&lt;br /&gt;
&amp;lt;/lg&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;nowiki&amp;gt;urn:goethe:faust2#l_1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# &amp;lt;nowiki&amp;gt;urn:goethe:faust2#l_2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# ...&lt;br /&gt;
&lt;br /&gt;
One can even think of reference schemes, which are as independent of existing markup as possible. By introducing &amp;amp;lt;anchor/&amp;gt; milestone elements at token boundaries and using the [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SATSRN range() XPointer scheme] the tokenization of arbitrary TEI documents can be accomplished, because &amp;amp;lt;anchor/&amp;gt; is part of [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/ref-model.global.html model.global].&lt;br /&gt;
&lt;br /&gt;
=== Modelling collated data: Encode the alignment/linking between tokens ===&lt;br /&gt;
&lt;br /&gt;
After tokens in the different witnesses have been made addressable, collation data can be modelled on top of that as [[Textual_Variance#Aligner|alignments of tokens]]. An '''alignment''' can be expressed as a set of tokens from different witnesses or, in accordance with the [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html corresponding guidelines chapter] as a link between two or more tokens.&lt;br /&gt;
&lt;br /&gt;
Taking the first example from above, a collation of the two given witnesses could be expressed as&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;linkGrp type=&amp;quot;collation&amp;quot; xml:base=&amp;quot;http://edition.org/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[1]) witness_2#xpath1(/p[1]/w[2])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[2]) witness_2#xpath1(/p[1]/w[3])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[3]) witness_2#xpath1(/p[1]/w[4])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[4]) witness_2#xpath1(/p[1]/w[5])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[5]) witness_2#xpath1(/p[1]/w[6])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;link target=&amp;quot;witness_1#xpath1(/p[1]/w[6]) witness_2#xpath1(/p[1]/w[1])&amp;quot; type=&amp;quot;transposition&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/linkGrp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each link in this example corresponds to a row in an alignment table as depicted in the Gothenburg model description. Omitted/ added tokens are expressed implictly by not linking to tokens in other witnesses, this is to say: Whether a set of tokens has been added to a witness or has been omitted from it, is a matter of interpreting collation data as expressed above from the perspective of one witness or another and with regard to the way, this witness aligns with others.&lt;br /&gt;
&lt;br /&gt;
One advantage of encoding collation data in such a set-oriented way is its '''scalability''':&lt;br /&gt;
&lt;br /&gt;
# Gradually adding witnesses to the collation may amount to adding alignments to the existing ones or modifying/augmenting the latter, depending on whether the collation is done pairwise (e. g. in relation to a base text) or via multiple alignment (e. g. without a prechosen base).&lt;br /&gt;
# Guiding a collation tool in producing ever more precise aligments in consecutive runs can be achieved by [[Textual_Variance#Analyzer|declaring alignments]] (for example transpositions), feeding those into the collator, adjusting the resulting alignment set, feeding it back into the collator for another run and so forth. Being able to encode the initial/preliminary results of such an iterative process in a standardized way, makes it possible to run different collation tools on the same text tradition, ideally each being able to make use of former results by other tools and to contribute to the overall result.&lt;br /&gt;
&lt;br /&gt;
The major disadvantage of encoding collation data this way is its apparant lack of human readability and that it is hardly possible to edit it by hand, especially when the collated text tradition grows larger. This problem can only be solved via tool support.&lt;br /&gt;
&lt;br /&gt;
=== Encoding the interpretation/ representation: Derive an apparatus from the collation ===&lt;br /&gt;
&lt;br /&gt;
A TEI-encoded critical apparatus is one possible rendition of collation data, possibly enhanced with information yielded from interpreting the alignments. There are a couple of ways how we could encode the above collation as an apparatus.&lt;br /&gt;
&lt;br /&gt;
==== Apparatus pointing to the collated tokens (for easier post-processing) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; xml:base=&amp;quot;http://edition.org/witness_1&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; xml:base=&amp;quot;http://edition.org/witness_2&amp;quot; xml:id=&amp;quot;w2_1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[1])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/rdg&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; xml:base=&amp;quot;http://edition.org/witness_1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[1])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[2])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[3])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[4])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[5])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/rdg&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; xml:base=&amp;quot;http://edition.org/witness_2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[2])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[3])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[4])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[5])&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[6])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/rdg&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; xml:base=&amp;quot;http://edition.org/witness_1&amp;quot; corresp=&amp;quot;#w2_1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ptr target=&amp;quot;#xpath1(/p[1]/w[6])&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/rdg&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; xml:base=&amp;quot;http://edition.org/witness_2&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Apparatus with embedded textual content (for readability) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; xml:id=&amp;quot;w2_1&amp;quot;&amp;gt;Quickly,&amp;lt;/rdg&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot;&amp;gt;The cat ate the food&amp;lt;/rdg&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot;&amp;gt;the cat ate the food.&amp;lt;/rdg&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;app&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_1&amp;quot; corresp=&amp;quot;#w2_1&amp;quot;&amp;gt;quickly.&amp;lt;/rdg&amp;gt;&lt;br /&gt;
  &amp;lt;rdg wit=&amp;quot;http://edition.org/witness_2&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/app&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some problems here:&lt;br /&gt;
&lt;br /&gt;
* @corresp vs. &amp;lt;link/&amp;gt; for transpositions over more than two witnesses&lt;br /&gt;
* How to derive the segment content from the original witness automatically, if the token content does not add up to it (e. g. because of punctuation being excluded from the tokens from the start)?&lt;br /&gt;
&lt;br /&gt;
== Bibliography ==&lt;br /&gt;
&lt;br /&gt;
* O'Donnell, Daniel Paul. [http://etjanst.hb.se/bhs/ith/1-8/dpo.pdf “The Ghost in the Machine: Revisiting an Old Model for the Dynamic Generation of Digital Editions.”] HumanIT 8.1 (2005): 51­71.&lt;br /&gt;
* Vetter, L. and McDonald, J. ‘Witnessing Dickinson’s Witnesses’, Literary and Linguistic Computing, 18.2: 2003, 151-165.&lt;br /&gt;
* [http://eprints.qut.edu.au/38436/ Schmidt, D., 2010. The inadequacy of embedded markup for cultural heritage texts. Literary and Linguistic Computing, 25(3), pp. 337-356.]&lt;br /&gt;
&lt;br /&gt;
[[Category:SIG:Manuscripts]]&lt;br /&gt;
[[Category:Critical Apparatus]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9818</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9818"/>
		<updated>2011-08-31T05:51:25Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Support for TEI */ updating&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist.sourceforge.net/ eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery/ XQuery 1.0], [http://www.w3.org/TR/xpath20/ XPath 2.0], [http://www.w3.org/TR/xslt XSLT 1.0] (based on [http://http://xalan.apache.org/ Apache Xalan]) or [http://www.w3.org/TR/xslt20 XSLT 2.0] [http://saxon.sourceforge.net/ Saxon]&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The [http://exist.sourceforge.net/download.html 1.4 version] adds a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XMLDB Api]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Integration with [[ApacheCocoon]]	&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.sun.com/javase/downloads/index.jsp JDK] &amp;gt; 1.4. Being a Java application it can be used on most operating systems, from Windows 2000/XP to Linux or Mac OS X, and it can be deployed in several ways, as a standalone application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/copyleft/lesser.html GNU LGPL] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the Digital.Humanities@Oxford Summer School in 2011; see the [http://digital.humanities.ox.ac.uk/DHSS2011/sessions.html#xmldb session description, slides, and sample materials].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A TEI module called Matumi is distributed as an eXist application. Matumi is still under development. It requires eXist version 1.5 and is installed from within eXist's Package Reposistory. After installation, it can be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
Matumi is not a full-blown TEI module yet, but it has some notable features, such as the ability to browse by filtering texts and core parts of the markup. It contains faceted search feeding off the markup, making possible &amp;quot;translingual&amp;quot; searches that utilise references added to name forms. &amp;lt;!--It contains an inline (WYMeditor-based) editor for marking up simple TEI structures and supplying them with key attributes. It has a general ATOM-based commenting function.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only.&lt;br /&gt;
&lt;br /&gt;
Installation will store a number of basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present orientation of the app.&lt;br /&gt;
&lt;br /&gt;
If you access through browsing, you can arrange the data by four criteria - books, entry title, subjects and names.&lt;br /&gt;
&lt;br /&gt;
If you access through search, in order to retrieve some sample results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/xQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As wrote before, eXist is a Java application. Anyway, whole applications can be created without writing any line of programming code, but using only XQuery, XSLT, (X)HTML, CSS and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support is provived mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being eXist open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
In August 2011, a dedicated email list was created on using eXist with TEI resources. For information or to subscribe, go to the [https://lists.sourceforge.net/lists/listinfo/exist-teixml eXist-TEIXML] information page.&lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The correspondence, diaries, writings and works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ Colonial Despatches]: the colonial despatches of Vancouver Island and British Columbia 1846-1871.&lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
Current stable release: eXist 1.4.0-rev10440 - 2009-11-11&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 1.4, April 2011) from the [http://exist-db.org/index.html#download eXist Home Page]; check out the current trunk version from &amp;quot;svn co &amp;lt;nowiki&amp;gt;https://exist.svn.sourceforge.net/svnroot/exist/trunk/eXist&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9404</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9404"/>
		<updated>2011-05-13T09:54:26Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Sample implementations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist.sourceforge.net/ eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery/ XQuery 1.0], [http://www.w3.org/TR/xpath20/ XPath 2.0], [http://www.w3.org/TR/xslt XSLT 1.0] (based on [http://http://xalan.apache.org/ Apache Xalan]) or [http://www.w3.org/TR/xslt20 XSLT 2.0] [http://saxon.sourceforge.net/ Saxon]&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The [http://exist.sourceforge.net/download.html 1.4 version] adds a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XMLDB Api]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Integration with [[ApacheCocoon]]	&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.sun.com/javase/downloads/index.jsp JDK] &amp;gt; 1.4. Being a Java application it can be used on most operating systems, from Windows 2000/XP to Linux or Mac OS X, and it can be deployed in several ways, as a standalone application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/copyleft/lesser.html GNU LGPL] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
A TEI module distributed as an eXist application is under development. This protoype can be downloaded from [http://exist.svn.sourceforge.net/viewvc/exist/apps/TEIXLingual/?pathrev=14317 Sourceforge]. The app requires eXist 1.5. To install on a Unix-like system, cd into the directory and call ant. This will create a file named &amp;quot;encyclopedia-0.1.xar&amp;quot; inside the build directory. On your local eXist home page, access the Admin panel, click on Package Reposistory, choose the xar file, and upload and install it. The app can now be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
The app is not a full-blown TEI module yet, lacking some fairly obvious features, such as display of metadata about the texts displayed and the ability to browse through texts and marked-up items; these features will be added in May-June 2011. The app contains faceted search feeding off the markup, it makes possible &amp;quot;translingual&amp;quot; searches utilising unique (mainly, dbpedia) references added manually to different name forms, it contains an inline (WYMeditor-based) editor for marking up simple TEI (name) structures and supplying them with key attributes, and it has a general ATOM-based commenting function.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only; no XSLT is used.&lt;br /&gt;
&lt;br /&gt;
The installation will store a number of very basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present name of the app. In order to generate some example results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the TEI@Oxford Summer School in 2010; see [http://tei.oucs.ox.ac.uk/Oxford/2010-07-oxford/materials/workshops/eXist/ oxford/materials/workshops/eXist].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Support for TEI is not out of the box, meaning that in the standard distribution there are not ready to use XQuery or XSLT files for TEI documents, even as examples. Notwithstanding implementation with TEI is really straightforward and there are several applications based on this software. In particular the development of the new indexing core, for a better management of complex document-centric file, such as TEI documents, has been supported by the TAPoR node of [http://tapor.uvic.ca/home.php University of Victoria].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/xQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As wrote before, eXist is a Java application. Anyway, whole applications can be created without writing any line of programming code, but using only XQuery, XSLT, (X)HTML, CSS and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support is provived mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being eXist open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net. &lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The correspondence, diaries, writings and works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ Colonial Despatches]: the colonial despatches of Vancouver Island and British Columbia 1846-1871.&lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
Current stable release: eXist 1.4.0-rev10440 - 2009-11-11&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 1.4, April 2011) from the [http://exist-db.org/index.html#download eXist Home Page]; check out the current trunk version from &amp;quot;svn co &amp;lt;nowiki&amp;gt;https://exist.svn.sourceforge.net/svnroot/exist/trunk/eXist&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9403</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9403"/>
		<updated>2011-05-13T09:37:36Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Current version number and date of release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist.sourceforge.net/ eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery/ XQuery 1.0], [http://www.w3.org/TR/xpath20/ XPath 2.0], [http://www.w3.org/TR/xslt XSLT 1.0] (based on [http://http://xalan.apache.org/ Apache Xalan]) or [http://www.w3.org/TR/xslt20 XSLT 2.0] [http://saxon.sourceforge.net/ Saxon]&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The [http://exist.sourceforge.net/download.html 1.4 version] adds a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XMLDB Api]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Integration with [[ApacheCocoon]]	&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.sun.com/javase/downloads/index.jsp JDK] &amp;gt; 1.4. Being a Java application it can be used on most operating systems, from Windows 2000/XP to Linux or Mac OS X, and it can be deployed in several ways, as a standalone application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/copyleft/lesser.html GNU LGPL] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
A TEI module distributed as an eXist application is under development. This protoype can be downloaded from [http://exist.svn.sourceforge.net/viewvc/exist/apps/TEIXLingual/?pathrev=14317 Sourceforge]. The app requires eXist 1.5. To install on a Unix-like system, cd into the directory and call ant. This will create a file named &amp;quot;encyclopedia-0.1.xar&amp;quot; inside the build directory. On your local eXist home page, access the Admin panel, click on Package Reposistory, choose the xar file, and upload and install it. The app can now be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
The app is not a full-blown TEI module yet, lacking some fairly obvious features, such as display of metadata about the texts displayed and the ability to browse through texts and marked-up items; these features will be added in May-June 2011. The app contains faceted search feeding off the markup, it makes possible &amp;quot;translingual&amp;quot; searches utilising unique (mainly, dbpedia) references added manually to different name forms, it contains an inline (WYMeditor-based) editor for marking up simple TEI (name) structures and supplying them with key attributes, and it has a general ATOM-based commenting function.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only; no XSLT is used.&lt;br /&gt;
&lt;br /&gt;
The installation will store a number of very basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present name of the app. In order to generate some example results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the TEI@Oxford Summer School in 2010; see [http://tei.oucs.ox.ac.uk/Oxford/2010-07-oxford/materials/workshops/eXist/ oxford/materials/workshops/eXist].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Support for TEI is not out of the box, meaning that in the standard distribution there are not ready to use XQuery or XSLT files for TEI documents, even as examples. Notwithstanding implementation with TEI is really straightforward and there are several applications based on this software. In particular the development of the new indexing core, for a better management of complex document-centric file, such as TEI documents, has been supported by the TAPoR node of [http://tapor.uvic.ca/home.php University of Victoria].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/xQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As wrote before, eXist is a Java application. Anyway, whole applications can be created without writing any line of programming code, but using only XQuery, XSLT, (X)HTML, CSS and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support is provived mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being eXist open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net. &lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The Collected Works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ Colonial Despatches]: the colonial despatches of Vancouver Island and British Columbia 1846-1871.&lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
Current stable release: eXist 1.4.0-rev10440 - 2009-11-11&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 1.4, April 2011) from the [http://exist-db.org/index.html#download eXist Home Page]; check out the current trunk version from &amp;quot;svn co &amp;lt;nowiki&amp;gt;https://exist.svn.sourceforge.net/svnroot/exist/trunk/eXist&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9402</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9402"/>
		<updated>2011-05-13T09:33:22Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: added WeGA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist.sourceforge.net/ eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery/ XQuery 1.0], [http://www.w3.org/TR/xpath20/ XPath 2.0], [http://www.w3.org/TR/xslt XSLT 1.0] (based on [http://http://xalan.apache.org/ Apache Xalan]) or [http://www.w3.org/TR/xslt20 XSLT 2.0] [http://saxon.sourceforge.net/ Saxon]&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The [http://exist.sourceforge.net/download.html 1.4 version] adds a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XMLDB Api]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Integration with [[ApacheCocoon]]	&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.sun.com/javase/downloads/index.jsp JDK] &amp;gt; 1.4. Being a Java application it can be used on most operating systems, from Windows 2000/XP to Linux or Mac OS X, and it can be deployed in several ways, as a standalone application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/copyleft/lesser.html GNU LGPL] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
A TEI module distributed as an eXist application is under development. This protoype can be downloaded from [http://exist.svn.sourceforge.net/viewvc/exist/apps/TEIXLingual/?pathrev=14317 Sourceforge]. The app requires eXist 1.5. To install on a Unix-like system, cd into the directory and call ant. This will create a file named &amp;quot;encyclopedia-0.1.xar&amp;quot; inside the build directory. On your local eXist home page, access the Admin panel, click on Package Reposistory, choose the xar file, and upload and install it. The app can now be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
The app is not a full-blown TEI module yet, lacking some fairly obvious features, such as display of metadata about the texts displayed and the ability to browse through texts and marked-up items; these features will be added in May-June 2011. The app contains faceted search feeding off the markup, it makes possible &amp;quot;translingual&amp;quot; searches utilising unique (mainly, dbpedia) references added manually to different name forms, it contains an inline (WYMeditor-based) editor for marking up simple TEI (name) structures and supplying them with key attributes, and it has a general ATOM-based commenting function.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only; no XSLT is used.&lt;br /&gt;
&lt;br /&gt;
The installation will store a number of very basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present name of the app. In order to generate some example results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, presented at the TEI@Oxford Summer School in 2010; see [http://tei.oucs.ox.ac.uk/Oxford/2010-07-oxford/materials/workshops/eXist/ oxford/materials/workshops/eXist].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Support for TEI is not out of the box, meaning that in the standard distribution there are not ready to use XQuery or XSLT files for TEI documents, even as examples. Notwithstanding implementation with TEI is really straightforward and there are several applications based on this software. In particular the development of the new indexing core, for a better management of complex document-centric file, such as TEI documents, has been supported by the TAPoR node of [http://tapor.uvic.ca/home.php University of Victoria].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/xQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As wrote before, eXist is a Java application. Anyway, whole applications can be created without writing any line of programming code, but using only XQuery, XSLT, (X)HTML, CSS and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support is provived mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being eXist open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net. &lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://www.weber-gesamtausgabe.de/ Carl-Maria-von-Weber-Gesamtausgabe (WeGA)] The Collected Works of Carl Maria von Weber &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ Colonial Despatches]: the colonial despatches of Vancouver Island and British Columbia 1846-1871.&lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
eXist 1.4 - 2009-09-08&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 1.4, April 2011) from the [http://exist-db.org/index.html#download eXist Home Page]; check out the current trunk version from &amp;quot;svn co &amp;lt;nowiki&amp;gt;https://exist.svn.sourceforge.net/svnroot/exist/trunk/eXist&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9369</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9369"/>
		<updated>2011-05-03T08:59:59Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Synopsis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist.sourceforge.net/ eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery/ XQuery 1.0], [http://www.w3.org/TR/xpath20/ XPath 2.0], [http://www.w3.org/TR/xslt XSLT 1.0] (based on [http://http://xalan.apache.org/ Apache Xalan]) or [http://www.w3.org/TR/xslt20 XSLT 2.0] [http://saxon.sourceforge.net/ Saxon]&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]).&lt;br /&gt;
            &lt;br /&gt;
The [http://exist.sourceforge.net/download.html 1.4 version] adds a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XMLDB Api]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Integration with [[ApacheCocoon]]	&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.sun.com/javase/downloads/index.jsp JDK] &amp;gt; 1.4. Being a Java application it can be used on most operating systems, from Windows 2000/XP to Linux or Mac OS X, and it can be deployed in several ways, as a standalone application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/copyleft/lesser.html GNU LGPL] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
A TEI module distributed as an eXist application is under development. This protoype can be downloaded from [http://exist.svn.sourceforge.net/viewvc/exist/apps/TEIXLingual/?pathrev=14317 Sourceforge]. The app requires eXist 1.5. To install on a Unix-like system, cd into the directory and call ant. This will create a file named &amp;quot;encyclopedia-0.1.xar&amp;quot; inside the build directory. On your local eXist home page, access the Admin panel, click on Package Reposistory, choose the xar file, and upload and install it. The app can now be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
The app is not a full-blown TEI module yet, lacking some fairly obvious features, such as display of metadata about the texts displayed and the ability to browse through texts and marked-up items; these features will be added in May-June 2011. The app contains faceted search feeding off the markup, it makes possible &amp;quot;translingual&amp;quot; searches utilising unique (mainly, dbpedia) references added manually to different name forms, it contains an inline (WYMeditor-based) editor for marking up simple TEI (name) structures and supplying them with key attributes, and it has a general ATOM-based commenting function.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only; no XSLT is used.&lt;br /&gt;
&lt;br /&gt;
The installation will store a number of very basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present name of the app. In order to generate some example results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, created in cooperation with Dan McCreary and presented at the TEI@Oxford Summer School in 2010; see [http://tei.oucs.ox.ac.uk/Oxford/2010-07-oxford/materials/workshops/eXist/ oxford/materials/workshops/eXist].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Support for TEI is not out of the box, meaning that in the standard distribution there are not ready to use XQuery or XSLT files for TEI documents, even as examples. Notwithstanding implementation with TEI is really straightforward and there are several applications based on this software. In particular the development of the new indexing core, for a better management of complex document-centric file, such as TEI documents, has been supported by the TAPoR node of [http://tapor.uvic.ca/home.php University of Victoria].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/xQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As wrote before, eXist is a Java application. Anyway, whole applications can be created without writing any line of programming code, but using only XQuery, XSLT, (X)HTML, CSS and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support is provived mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being eXist open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net. &lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://demo.exist-db.org/examples.xml official demo] (without TEI related examples) &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ Colonial Despatches]: the colonial despatches of Vancouver Island and British Columbia 1846-1871.&lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
eXist 1.4 - 2009-09-08&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 1.4, April 2011) from the [http://exist-db.org/index.html#download eXist Home Page]; check out the current trunk version from &amp;quot;svn co &amp;lt;nowiki&amp;gt;https://exist.svn.sourceforge.net/svnroot/exist/trunk/eXist&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9368</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9368"/>
		<updated>2011-05-03T07:49:56Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Synopsis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist.sourceforge.net/ eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Technologies: [http://www.w3.org/TR/xquery/ XQuery 1.0], [http://www.w3.org/TR/xpath20/ XPath 2.0], [http://www.w3.org/TR/xslt XSLT 1.0] (based on [http://http://xalan.apache.org/ Apache Xalan]) or [http://www.w3.org/TR/xslt20 XSLT 2.0] [http://saxon.sourceforge.net/ Saxon]&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]&lt;br /&gt;
            &lt;br /&gt;
The [http://exist.sourceforge.net/download.html 1.4 version] adds a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XMLDB Api]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Integration with [[ApacheCocoon]]	&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.sun.com/javase/downloads/index.jsp JDK] &amp;gt; 1.4. Being a Java application it can be used on most operating systems, from Windows 2000/XP to Linux or Mac OS X, and it can be deployed in several ways, as a standalone application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/copyleft/lesser.html GNU LGPL] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
A TEI module distributed as an eXist application is under development. This protoype can be downloaded from [http://exist.svn.sourceforge.net/viewvc/exist/apps/TEIXLingual/?pathrev=14317 Sourceforge]. The app requires eXist 1.5. To install on a Unix-like system, cd into the directory and call ant. This will create a file named &amp;quot;encyclopedia-0.1.xar&amp;quot; inside the build directory. On your local eXist home page, access the Admin panel, click on Package Reposistory, choose the xar file, and upload and install it. The app can now be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
The app is not a full-blown TEI module yet, lacking some fairly obvious features, such as display of metadata about the texts displayed and the ability to browse through texts and marked-up items; these features will be added in May-June 2011. The app contains faceted search feeding off the markup, it makes possible &amp;quot;translingual&amp;quot; searches utilising unique (mainly, dbpedia) references added manually to different name forms, it contains an inline (WYMeditor-based) editor for marking up simple TEI (name) structures and supplying them with key attributes, and it has a general ATOM-based commenting function.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only; no XSLT is used.&lt;br /&gt;
&lt;br /&gt;
The installation will store a number of very basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present name of the app. In order to generate some example results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, created in cooperation with Dan McCreary and presented at the TEI@Oxford Summer School in 2010; see [http://tei.oucs.ox.ac.uk/Oxford/2010-07-oxford/materials/workshops/eXist/ oxford/materials/workshops/eXist].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Support for TEI is not out of the box, meaning that in the standard distribution there are not ready to use XQuery or XSLT files for TEI documents, even as examples. Notwithstanding implementation with TEI is really straightforward and there are several applications based on this software. In particular the development of the new indexing core, for a better management of complex document-centric file, such as TEI documents, has been supported by the TAPoR node of [http://tapor.uvic.ca/home.php University of Victoria].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/xQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As wrote before, eXist is a Java application. Anyway, whole applications can be created without writing any line of programming code, but using only XQuery, XSLT, (X)HTML, CSS and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support is provived mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being eXist open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net. &lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://demo.exist-db.org/examples.xml official demo] (without TEI related examples) &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ Colonial Despatches]: the colonial despatches of Vancouver Island and British Columbia 1846-1871.&lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
eXist 1.4 - 2009-09-08&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 1.4, April 2011) from the [http://exist-db.org/index.html#download eXist Home Page]; check out the current trunk version from &amp;quot;svn co &amp;lt;nowiki&amp;gt;https://exist.svn.sourceforge.net/svnroot/exist/trunk/eXist&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9367</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9367"/>
		<updated>2011-05-03T07:48:43Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Synopsis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
[http://exist.sourceforge.net/ eXist-db] is an open source database management system built using [http://en.wikipedia.org/wiki/XML XML] technology.  It stores XML data according to the XML data model and features efficient, index-based XQuery processing.&lt;br /&gt;
&lt;br /&gt;
eXist-db supports many [http://en.wikipedia.org/wiki/Web_2 Web 2.0] technology standards, making&lt;br /&gt;
it an excellent platform for developing web-based applications: &lt;br /&gt;
&lt;br /&gt;
*Key technologies: [http://www.w3.org/TR/xquery/ XQuery 1.0], [http://www.w3.org/TR/xpath20/ XPath 2.0], [http://www.w3.org/TR/xslt XSLT 1.0] (based on [http://http://xalan.apache.org/ Apache Xalan]) or [http://www.w3.org/TR/xslt20 XSLT 2.0] [http://saxon.sourceforge.net/ Saxon]&lt;br /&gt;
&lt;br /&gt;
*Interfaces: [http://en.wikipedia.org/wiki/Representational_State_Transfer REST], [http://www.webdav.org/ WebDAV], [http://www.w3.org/TR/soap/ SOAP], [http://en.wikipedia.org/wiki/XML-RPC XML-RPC], and [http://en.wikipedia.org/wiki/Atom_(standard) Atom Publishing Protocol]&lt;br /&gt;
&lt;br /&gt;
*XML database specific features: [http://xmldb-org.sourceforge.net/xupdate/index.html XML:DB], [http://xmldb-org.sourceforge.net/xupdate/ XUpdate],  [http://exist.sourceforge.net/update_ext.html XQuery update extensions] (to be aligned with the new [http://www.w3.org/TR/xquery-update-10/ XQuery Update Facility 1.0]&lt;br /&gt;
            &lt;br /&gt;
The [http://exist.sourceforge.net/download.html 1.4 version] adds a new full text index based on  [http://lucene.apache.org/java/docs/index.html Apache Lucene], a lightweight [http://en.wikipedia.org/wiki/Rewrite_engine URL rewriting] and [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model–view–controller] framework, as well as support for [http://xproc.org/ XProc]. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance.&lt;br /&gt;
                &lt;br /&gt;
eXist-db is highly compliant with the [http://www.w3.org/TR/xquery/ XQuery standard] (current [http://www.w3.org/XML/Query/test-suite/ XQuery Test Suite] score is [http://www.w3.org/XML/Query/test-suite/XQTSReportSimple.html 99.4%]).&lt;br /&gt;
 &lt;br /&gt;
The query engine is extensible and features a large collection of [http://demo.exist-db.org/exist/xquery/functions.xql XQuery Function Modules].&lt;br /&gt;
 &lt;br /&gt;
eXist-db provides a powerful environment for the development of web applications&lt;br /&gt;
based on XQuery and related standards. Entire web applications can be written in&lt;br /&gt;
XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--            &lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XMLDB Api]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Integration with [[ApacheCocoon]]	&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.sun.com/javase/downloads/index.jsp JDK] &amp;gt; 1.4. Being a Java application it can be used on most operating systems, from Windows 2000/XP to Linux or Mac OS X, and it can be deployed in several ways, as a standalone application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/copyleft/lesser.html GNU LGPL] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
A TEI module distributed as an eXist application is under development. This protoype can be downloaded from [http://exist.svn.sourceforge.net/viewvc/exist/apps/TEIXLingual/?pathrev=14317 Sourceforge]. The app requires eXist 1.5. To install on a Unix-like system, cd into the directory and call ant. This will create a file named &amp;quot;encyclopedia-0.1.xar&amp;quot; inside the build directory. On your local eXist home page, access the Admin panel, click on Package Reposistory, choose the xar file, and upload and install it. The app can now be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
The app is not a full-blown TEI module yet, lacking some fairly obvious features, such as display of metadata about the texts displayed and the ability to browse through texts and marked-up items; these features will be added in May-June 2011. The app contains faceted search feeding off the markup, it makes possible &amp;quot;translingual&amp;quot; searches utilising unique (mainly, dbpedia) references added manually to different name forms, it contains an inline (WYMeditor-based) editor for marking up simple TEI (name) structures and supplying them with key attributes, and it has a general ATOM-based commenting function.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only; no XSLT is used.&lt;br /&gt;
&lt;br /&gt;
The installation will store a number of very basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present name of the app. In order to generate some example results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, created in cooperation with Dan McCreary and presented at the TEI@Oxford Summer School in 2010; see [http://tei.oucs.ox.ac.uk/Oxford/2010-07-oxford/materials/workshops/eXist/ oxford/materials/workshops/eXist].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Support for TEI is not out of the box, meaning that in the standard distribution there are not ready to use XQuery or XSLT files for TEI documents, even as examples. Notwithstanding implementation with TEI is really straightforward and there are several applications based on this software. In particular the development of the new indexing core, for a better management of complex document-centric file, such as TEI documents, has been supported by the TAPoR node of [http://tapor.uvic.ca/home.php University of Victoria].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
There is a comprehensive discussion of optimising eXist/xQuery for TEI on  [http://exist.2174344.n4.nabble.com/eXist-optimisation-and-large-TEI-collections-td3487406.html the eXist-open mailing list]&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As wrote before, eXist is a Java application. Anyway, whole applications can be created without writing any line of programming code, but using only XQuery, XSLT, (X)HTML, CSS and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support is provived mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being eXist open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net. &lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://demo.exist-db.org/examples.xml official demo] (without TEI related examples) &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ Colonial Despatches]: the colonial despatches of Vancouver Island and British Columbia 1846-1871.&lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
eXist 1.4 - 2009-09-08&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 1.4, April 2011) from the [http://exist-db.org/index.html#download eXist Home Page]; check out the current trunk version from &amp;quot;svn co &amp;lt;nowiki&amp;gt;https://exist.svn.sourceforge.net/svnroot/exist/trunk/eXist&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9346</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9346"/>
		<updated>2011-05-01T09:13:08Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Support for TEI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XMLDB Api]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Integration with [[ApacheCocoon]]	&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.sun.com/javase/downloads/index.jsp JDK] &amp;gt; 1.4. Being a Java application it can be used on most operating systems, from Windows 2000/XP to Linux or Mac OS X, and it can be deployed in several ways, as a standalone application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/copyleft/lesser.html GNU LGPL] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
A TEI module distributed as an eXist application is under development. This protoype can be downloaded from [http://exist.svn.sourceforge.net/viewvc/exist/apps/TEIXLingual/?pathrev=14317 Sourceforge]. The app requires eXist 1.5. To install on a Unix-like system, cd into the directory and call ant. This will create a file named &amp;quot;encyclopedia-0.1.xar&amp;quot; inside the build directory. On your local eXist home page, access the Admin panel, click on Package Reposistory, choose the xar file, and upload and install it. The app can now be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
The app is not a full-blown TEI module yet, lacking some fairly obvious features, such as display of metadata about the texts displayed and the ability to browse through texts and marked-up items; these features will be added in May-June 2011. The app contains faceted search feeding off the markup, it makes possible &amp;quot;translingual&amp;quot; searches utilising unique (mainly, dbpedia) references added manually to different name forms, it contains an inline (WYMeditor-based) editor for marking up simple TEI (name) structures and supplying them with key attributes, and it has a general ATOM-based commenting function.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only; no XSLT is used.&lt;br /&gt;
&lt;br /&gt;
The installation will store a number of very basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present name of the app. In order to generate some example results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, created in cooperation with Dan McCreary and presented at the TEI@Oxford Summer School in 2010; see [http://tei.oucs.ox.ac.uk/Oxford/2010-07-oxford/materials/workshops/eXist/ oxford/materials/workshops/eXist].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Support for TEI is not out of the box, meaning that in the standard distribution there are not ready to use XQuery or XSLT files for TEI documents, even as examples. Notwithstanding implementation with TEI is really straightforward and there are several applications based on this software. In particular the development of the new indexing core, for a better management of complex document-centric file, such as TEI documents, has been supported by the TAPoR node of [http://tapor.uvic.ca/home.php University of Victoria].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As wrote before, eXist is a Java application. Anyway, whole applications can be created without writing any line of programming code, but using only XQuery, XSLT, (X)HTML, CSS and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support is provived mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being eXist open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net. &lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://demo.exist-db.org/examples.xml official demo] (without TEI related examples) &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ Colonial Despatches]: the colonial despatches of Vancouver Island and British Columbia 1846-1871.&lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
eXist 1.4 - 2009-09-08&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 1.4, April 2011) from the [http://exist-db.org/index.html#download eXist Home Page]; check out the current trunk version from &amp;quot;svn co &amp;lt;nowiki&amp;gt;https://exist.svn.sourceforge.net/svnroot/exist/trunk/eXist&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9328</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9328"/>
		<updated>2011-04-28T10:23:08Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Sample implementations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XMLDB Api]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Integration with [[ApacheCocoon]]	&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.sun.com/javase/downloads/index.jsp JDK] &amp;gt; 1.4. Being a Java application it can be used on most operating systems, from Windows 2000/XP to Linux or Mac OS X, and it can be deployed in several ways, as a standalone application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/copyleft/lesser.html GNU LGPL] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
A TEI module distributed as an eXist application is under development. This protoype can be downloaded from [http://exist.svn.sourceforge.net/viewvc/exist/apps/TEIXLingual/?pathrev=14317 Sourceforge]. The app requires eXist 1.5. To install on a Unix-like system, cd into the directory and call ant. This will create a file named &amp;quot;encyclopedia-0.1.xar&amp;quot; inside the build directory. On your local eXist home page, access the Admin panel, click on Package Reposistory, choose the xar file, and upload and install it. The app can now be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
The app is not a full-blown TEI module yet, lacking some fairly obvious features, such as display of metadata about the texts displayed and the ability to browse through texts and marked-up items; these features will be added in May-June 2011. The app contains faceted search feeding off the markup, it makes possible &amp;quot;translingual&amp;quot; searches utilising unique (mainly, dbpedia) references added manually to different name forms, it contains an inline (WYMeditor-based) editor for marking up simple TEI (name) structures and supplying them with key attributes, and it has a general ATOM-based commenting function.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only; no XSLT is used.&lt;br /&gt;
&lt;br /&gt;
The installation will store a number of very basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present name of the app. In order to generate some example results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts within an XRX framework with eXist, created in cooperation with Dan McCreary; see [http://tei.oucs.ox.ac.uk/Oxford/2010-07-oxford/materials/workshops/eXist/ oxford/materials/workshops/eXist].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Support for TEI is not out of the box, meaning that in the standard distribution there are not ready to use XQuery or XSLT files for TEI documents, even as examples. Notwithstanding implementation with TEI is really straightforward and there are several applications based on this software. In particular the development of the new indexing core, for a better management of complex document-centric file, such as TEI documents, has been supported by the TAPoR node of [http://tapor.uvic.ca/home.php University of Victoria].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As wrote before, eXist is a Java application. Anyway, whole applications can be created without writing any line of programming code, but using only XQuery, XSLT, (X)HTML, CSS and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support is provived mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being eXist open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net. &lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://demo.exist-db.org/examples.xml official demo] (without TEI related examples) &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://graves.uvic.ca/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
* [http://thesaurus.sermones.net/voragine/index.xsp Sermones.net : éditions électroniques de sermons latins médiévaux]: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.&lt;br /&gt;
* [http://ciham.ish-lyon.cnrs.fr/paleographie/index.php?l=en Interactive Album of Mediaeval Palaeography]: website for training in practical palaeographical skills.&lt;br /&gt;
* [http://bcgenesis.uvic.ca/ Colonial Despatches]: the colonial despatches of Vancouver Island and British Columbia 1846-1871.&lt;br /&gt;
* [http://mariage.uvic.ca/ Le mariage sous L'Ancien Régime]&lt;br /&gt;
* [http://scancan.net/ Scandinavian-Canadian Studies / Études scandinaves au Canada]&lt;br /&gt;
* [http://voice.univie.ac.at Vienna-Oxford International Corpus of English]: a corpus of transcripts of spoken ELF interactions in TEI format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--http://macgreevy.org?--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
eXist 1.4 - 2009-09-08&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 1.4, April 2011) from the [http://exist-db.org/index.html#download eXist Home Page]; check out the current trunk version from &amp;quot;svn co &amp;lt;nowiki&amp;gt;https://exist.svn.sourceforge.net/svnroot/exist/trunk/eXist&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9327</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9327"/>
		<updated>2011-04-28T09:49:49Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* How to download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XMLDB Api]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Integration with [[ApacheCocoon]]	&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.sun.com/javase/downloads/index.jsp JDK] &amp;gt; 1.4. Being a Java application it can be used on most operating systems, from Windows 2000/XP to Linux or Mac OS X, and it can be deployed in several ways, as a standalone application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/copyleft/lesser.html GNU LGPL] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
A TEI module distributed as an eXist application is under development. This protoype can be downloaded from [http://exist.svn.sourceforge.net/viewvc/exist/apps/TEIXLingual/?pathrev=14317 Sourceforge]. The app requires eXist 1.5. To install on a Unix-like system, cd into the directory and call ant. This will create a file named &amp;quot;encyclopedia-0.1.xar&amp;quot; inside the build directory. On your local eXist home page, access the Admin panel, click on Package Reposistory, choose the xar file, and upload and install it. The app can now be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
The app is not a full-blown TEI module yet, lacking some fairly obvious features, such as display of metadata about the texts displayed and the ability to browse through texts and marked-up items; these features will be added in May-June 2011. The app contains faceted search feeding off the markup, it makes possible &amp;quot;translingual&amp;quot; searches utilising unique (mainly, dbpedia) references added manually to different name forms, it contains an inline (WYMeditor-based) editor for marking up simple TEI (name) structures and supplying them with key attributes, and it has a general ATOM-based commenting function.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only; no XSLT is used.&lt;br /&gt;
&lt;br /&gt;
The installation will store a number of very basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present name of the app. In order to generate some example results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts within an XRX framework with eXist, created in cooperation with Dan McCreary; see [http://tei.oucs.ox.ac.uk/Oxford/2010-07-oxford/materials/workshops/eXist/ oxford/materials/workshops/eXist].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Support for TEI is not out of the box, meaning that in the standard distribution there are not ready to use XQuery or XSLT files for TEI documents, even as examples. Notwithstanding implementation with TEI is really straightforward and there are several applications based on this software. In particular the development of the new indexing core, for a better management of complex document-centric file, such as TEI documents, has been supported by the TAPoR node of [http://tapor.uvic.ca/home.php University of Victoria].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As wrote before, eXist is a Java application. Anyway, whole applications can be created without writing any line of programming code, but using only XQuery, XSLT, (X)HTML, CSS and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support is provived mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being eXist open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net. &lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://demo.exist-db.org/examples.xml official demo] (without TEI related examples) &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://www.tapor.uvic.ca:8080/cocoon/graves/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
eXist 1.4 - 2009-09-08&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 1.4, April 2011) from the [http://exist-db.org/index.html#download eXist Home Page]; check out the current trunk version from &amp;quot;svn co &amp;lt;nowiki&amp;gt;https://exist.svn.sourceforge.net/svnroot/exist/trunk/eXist&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9326</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9326"/>
		<updated>2011-04-28T09:49:26Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* How to download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XMLDB Api]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Integration with [[ApacheCocoon]]	&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.sun.com/javase/downloads/index.jsp JDK] &amp;gt; 1.4. Being a Java application it can be used on most operating systems, from Windows 2000/XP to Linux or Mac OS X, and it can be deployed in several ways, as a standalone application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/copyleft/lesser.html GNU LGPL] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
A TEI module distributed as an eXist application is under development. This protoype can be downloaded from [http://exist.svn.sourceforge.net/viewvc/exist/apps/TEIXLingual/?pathrev=14317 Sourceforge]. The app requires eXist 1.5. To install on a Unix-like system, cd into the directory and call ant. This will create a file named &amp;quot;encyclopedia-0.1.xar&amp;quot; inside the build directory. On your local eXist home page, access the Admin panel, click on Package Reposistory, choose the xar file, and upload and install it. The app can now be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
The app is not a full-blown TEI module yet, lacking some fairly obvious features, such as display of metadata about the texts displayed and the ability to browse through texts and marked-up items; these features will be added in May-June 2011. The app contains faceted search feeding off the markup, it makes possible &amp;quot;translingual&amp;quot; searches utilising unique (mainly, dbpedia) references added manually to different name forms, it contains an inline (WYMeditor-based) editor for marking up simple TEI (name) structures and supplying them with key attributes, and it has a general ATOM-based commenting function.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only; no XSLT is used.&lt;br /&gt;
&lt;br /&gt;
The installation will store a number of very basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present name of the app. In order to generate some example results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts within an XRX framework with eXist, created in cooperation with Dan McCreary; see [http://tei.oucs.ox.ac.uk/Oxford/2010-07-oxford/materials/workshops/eXist/ oxford/materials/workshops/eXist].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Support for TEI is not out of the box, meaning that in the standard distribution there are not ready to use XQuery or XSLT files for TEI documents, even as examples. Notwithstanding implementation with TEI is really straightforward and there are several applications based on this software. In particular the development of the new indexing core, for a better management of complex document-centric file, such as TEI documents, has been supported by the TAPoR node of [http://tapor.uvic.ca/home.php University of Victoria].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As wrote before, eXist is a Java application. Anyway, whole applications can be created without writing any line of programming code, but using only XQuery, XSLT, (X)HTML, CSS and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support is provived mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being eXist open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net. &lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://demo.exist-db.org/examples.xml official demo] (without TEI related examples) &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://www.tapor.uvic.ca:8080/cocoon/graves/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
eXist 1.4 - 2009-09-08&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 1.4, April 2011) from [http://exist-db.org/index.html#download eXist Home Page]; check out the current trunk version from &amp;quot;svn co &amp;lt;nowiki&amp;gt;https://exist.svn.sourceforge.net/svnroot/exist/trunk/eXist&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9325</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9325"/>
		<updated>2011-04-28T09:48:51Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* How to download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XMLDB Api]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Integration with [[ApacheCocoon]]	&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.sun.com/javase/downloads/index.jsp JDK] &amp;gt; 1.4. Being a Java application it can be used on most operating systems, from Windows 2000/XP to Linux or Mac OS X, and it can be deployed in several ways, as a standalone application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/copyleft/lesser.html GNU LGPL] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
A TEI module distributed as an eXist application is under development. This protoype can be downloaded from [http://exist.svn.sourceforge.net/viewvc/exist/apps/TEIXLingual/?pathrev=14317 Sourceforge]. The app requires eXist 1.5. To install on a Unix-like system, cd into the directory and call ant. This will create a file named &amp;quot;encyclopedia-0.1.xar&amp;quot; inside the build directory. On your local eXist home page, access the Admin panel, click on Package Reposistory, choose the xar file, and upload and install it. The app can now be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
The app is not a full-blown TEI module yet, lacking some fairly obvious features, such as display of metadata about the texts displayed and the ability to browse through texts and marked-up items; these features will be added in May-June 2011. The app contains faceted search feeding off the markup, it makes possible &amp;quot;translingual&amp;quot; searches utilising unique (mainly, dbpedia) references added manually to different name forms, it contains an inline (WYMeditor-based) editor for marking up simple TEI (name) structures and supplying them with key attributes, and it has a general ATOM-based commenting function.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only; no XSLT is used.&lt;br /&gt;
&lt;br /&gt;
The installation will store a number of very basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present name of the app. In order to generate some example results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts within an XRX framework with eXist, created in cooperation with Dan McCreary; see [http://tei.oucs.ox.ac.uk/Oxford/2010-07-oxford/materials/workshops/eXist/ oxford/materials/workshops/eXist].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Support for TEI is not out of the box, meaning that in the standard distribution there are not ready to use XQuery or XSLT files for TEI documents, even as examples. Notwithstanding implementation with TEI is really straightforward and there are several applications based on this software. In particular the development of the new indexing core, for a better management of complex document-centric file, such as TEI documents, has been supported by the TAPoR node of [http://tapor.uvic.ca/home.php University of Victoria].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As wrote before, eXist is a Java application. Anyway, whole applications can be created without writing any line of programming code, but using only XQuery, XSLT, (X)HTML, CSS and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support is provived mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being eXist open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net. &lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://demo.exist-db.org/examples.xml official demo] (without TEI related examples) &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://www.tapor.uvic.ca:8080/cocoon/graves/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
eXist 1.4 - 2009-09-08&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
Download the current stable version (version 1.4, April 2011) from [http://exist-db.org/index.html#download http://exist-db.org/index.html#download eXist Home Page]; check out the current trunk version from &amp;quot;svn co &amp;lt;nowiki&amp;gt;https://exist.svn.sourceforge.net/svnroot/exist/trunk/eXist&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9324</id>
		<title>EXist</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=EXist&amp;diff=9324"/>
		<updated>2011-04-28T09:42:56Z</updated>

		<summary type="html">&lt;p&gt;Jensopetersen: /* Support for TEI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Querying tools]]&lt;br /&gt;
[[Category:Publishing and delivery tools]]&lt;br /&gt;
[[Category:XQuery]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
[http://exist.sourceforge.net/ eXist] is a Native XML Database, used for storing and querying XML files. Since the first versions, made available between 2000 and 2001, eXist has considerably evolved, thanks also to an active community of developers and users, and in its latest releases, it has several functions, such as support for [http://www.w3.org/TR/xquery/ XQuery], [http://www.w3.org/2001/XInclude XInclude] and [http://xmldb-org.sourceforge.net/xupdate/ XUpdate]. Through an integration with [[ApacheCocoon]], [http://www.w3.org/TR/xslt XSLT] processing can be added to the whole workflow, using the pipeline concept of the [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Sitemap]. In this way data and documents can be queried and transformed using together, in the same process, [http://www.w3.org/TR/xquery/ XQuery] and [http://www.w3.org/TR/xslt XSLT]. Moreover [http://exist.sourceforge.net/ eXist] can be integrated as a block in [[ApacheCocoon]], so to use all the modules of this framework, and not the limited version shipped with this database. Recently, starting from version 1.1, [http://exist.sourceforge.net/ eXist] has changed the indexing core, becoming more efficient in being used with complex document-centric files, such as TEI encoded texts.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Persistent storing and indexing of the XML documents&lt;br /&gt;
* Database administration functions (data management, backup, recoveries) &lt;br /&gt;
* Management of the stored documents in collections&lt;br /&gt;
* XQuery engine with extentions for full-text search&lt;br /&gt;
* Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate&lt;br /&gt;
* [http://xmldb-org.sourceforge.net/xapi/ XMLDB Api]&lt;br /&gt;
* Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)&lt;br /&gt;
* Integration with [[ApacheCocoon]]	&lt;br /&gt;
&lt;br /&gt;
== User commentary ==&lt;br /&gt;
'''Please sign all comments.'''&lt;br /&gt;
&lt;br /&gt;
Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. [[User:Stuartyeates|Stuartyeates]] 18:15, 26 April 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
eXist is written in Java, and therefore requires a [http://java.sun.com/javase/downloads/index.jsp JDK] &amp;gt; 1.4. Being a Java application it can be used on most operating systems, from Windows 2000/XP to Linux or Mac OS X, and it can be deployed in several ways, as a standalone application, as a web application inside a servlet container (such as [http://tomcat.apache.org/ Apache Tomcat] or [http://www.mortbay.org/ Jetty]) or as a Java library in a larger application.&lt;br /&gt;
&lt;br /&gt;
== Source code and licensing ==&lt;br /&gt;
eXist is open-source, released under the [http://www.gnu.org/copyleft/lesser.html GNU LGPL] license.&lt;br /&gt;
&lt;br /&gt;
== Support for TEI ==&lt;br /&gt;
A TEI module distributed as an eXist application is under development. This protoype can be downloaded from [http://exist.svn.sourceforge.net/viewvc/exist/apps/TEIXLingual/?pathrev=14317 Sourceforge]. The app requires eXist 1.5. To install on a Unix-like system, cd into the directory and call ant. This will create a file named &amp;quot;encyclopedia-0.1.xar&amp;quot; inside the build directory. On your local eXist home page, access the Admin panel, click on Package Reposistory, choose the xar file, and upload and install it. The app can now be accessed from [http://localhost:8080/exist/apps/encyclopedia/ http://localhost:8080/exist/apps/encyclopedia/] on a default installation.&lt;br /&gt;
&lt;br /&gt;
The app is not a full-blown TEI module yet, lacking some fairly obvious features, such as display of metadata about the texts displayed and the ability to browse through texts and marked-up items; these features will be added in May-June 2011. The app contains faceted search feeding off the markup, it makes possible &amp;quot;translingual&amp;quot; searches utilising unique (mainly, dbpedia) references added manually to different name forms, it contains an inline (WYMeditor-based) editor for marking up simple TEI (name) structures and supplying them with key attributes, and it has a general ATOM-based commenting function.&lt;br /&gt;
&lt;br /&gt;
The app uses XQuery only; no XSLT is used.&lt;br /&gt;
&lt;br /&gt;
The installation will store a number of very basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present name of the app. In order to generate some example results, select lemma and search for &amp;quot;nation&amp;quot;, select term and search for &amp;quot;ars&amp;quot;, select name and search for &amp;quot;marx&amp;quot;, select text and search for &amp;quot;gouvernement&amp;quot;, or select key and search for &amp;quot;http://dbpedia.org/page/French_Revolution&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts within an XRX framework with eXist, created in cooperation with Dan McCreary; see [http://tei.oucs.ox.ac.uk/Oxford/2010-07-oxford/materials/workshops/eXist/ oxford/materials/workshops/eXist].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Support for TEI is not out of the box, meaning that in the standard distribution there are not ready to use XQuery or XSLT files for TEI documents, even as examples. Notwithstanding implementation with TEI is really straightforward and there are several applications based on this software. In particular the development of the new indexing core, for a better management of complex document-centric file, such as TEI documents, has been supported by the TAPoR node of [http://tapor.uvic.ca/home.php University of Victoria].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Language(s) ==&lt;br /&gt;
As wrote before, eXist is a Java application. Anyway, whole applications can be created without writing any line of programming code, but using only XQuery, XSLT, (X)HTML, CSS and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages ([http://www.bmuskalla.de/DB_eXist/ PHP], [http://query-exist.sourceforge.net/ Perl]) and frameworks ([http://sourceforge.net/projects/springxmldb/ Spring], [http://www.throwingbeans.org/tech/xml_databases_with_exist_and_coldfusion.html ColdFusion], [http://www.zope.org/Members/spilloz/existda Zope]).&lt;br /&gt;
The [http://exist-db.org/documentation.html documentation] is available only in english.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
http://exist-db.org/documentation.html&lt;br /&gt;
&lt;br /&gt;
== Tech support ==&lt;br /&gt;
Technical support is provived mainly throught the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Being eXist open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.&lt;br /&gt;
&lt;br /&gt;
== User community ==&lt;br /&gt;
The user community is very active and, as for the technical support, the main way of communication is the [http://sourceforge.net/mail/?group_id=17691 mailing list]. Many participants of this list are also part of the TEI Community. There is also a [http://wiki.exist-db.org wiki] and an IRC channel: #existdb at irc.freenode.net. &lt;br /&gt;
&lt;br /&gt;
== Sample implementations ==&lt;br /&gt;
* [http://demo.exist-db.org/examples.xml official demo] (without TEI related examples) &lt;br /&gt;
* [http://web.uvic.ca/hrd/achallc2005/abstracts.htm ACH/ALLC 2005: Conference Program and Abstracts]&lt;br /&gt;
* [http://www.tapor.uvic.ca:8080/cocoon/graves/ Diary of Robert Graves]&lt;br /&gt;
* [http://193.204.255.27/operaliber/index.php?page=/operaLiber/home OperaLiber]&lt;br /&gt;
* [http://www.anglo-norman.net/ The Anglo-Norman Dictionary]&lt;br /&gt;
* [http://mith2.umd.edu/eada/ Early Americas Digital Archive]&lt;br /&gt;
* [http://buddhistinformatics.ddbc.edu.tw/BZA/ A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama]&lt;br /&gt;
* [http://history.state.gov/ Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State]&lt;br /&gt;
* [https://github.com/stuartyeates/He-Kupu-Tawhito Multilingual Concordances with TEI]&lt;br /&gt;
* [http://vnsletters.org/VNS/ VNS letters online]: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'&lt;br /&gt;
* [http://ctb.kantl.be/corpora/CPWNL/ Corpus Pieter Willems]: searchable facsimile edition of the first Dutch dialect survey ever&lt;br /&gt;
* [http://tbe.kantl.be/TBE/xquery/TBEvalidator.xq TEI validator]: interactive validating app for TEI documents using eXist's XML validation functions&lt;br /&gt;
&lt;br /&gt;
== Current version number and date of release ==&lt;br /&gt;
eXist 1.4 - 2009-09-08&lt;br /&gt;
&lt;br /&gt;
== How to download ==&lt;br /&gt;
[http://exist-db.org/index.html#download http://exist-db.org/index.html#download].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Berkeley DB XML]]&lt;br /&gt;
* [[Base-X]]&lt;br /&gt;
* [[TEI Web Publishing]]&lt;/div&gt;</summary>
		<author><name>Jensopetersen</name></author>
		
	</entry>
</feed>