Skip to content

Apparatus

Christian Lück edited this page Jan 6, 2022 · 6 revisions

Critical apparatus

To make oXbytei's great apparatus actions work, just put a <variantEncoding> in the header:

<encodingDesc>
    <variantEncoding location="internal" method="double-end-point"/>
	...
</encodingDesc>

Now, with that in your document, when you select a span of text using the mouse or a shift-arrow combination on your keyboard, and then press apparatus then a new apparatus entry will be created. The text of the selection will go into <lem> and the caret is placed into a <rdg> element.

All variant encodings but external location referenced are supported:

You don't have to adjust anything for these different methods but put the information into the header.

For the external apparatus, the target has to exist. It's the first <listApp> node of the current nodes following nodes. E.g. a <listApp> in the backmatter of the document, or just one at the end of the current paragraph or division.

<TEI xmlns="http://www.tei-c.org/ns/1.0" xml:lang="en">
	<text>
		<body>
			...
		</body>
		<back>
			<listApp/>
		</back>
	</text>
</TEI>

Select witness

Right after the creation of the apparatus elements you're asked to select the text witness of the reading. The suggestions are generated from all nodes that match the XPath //teiHeader//sourceDesc/listWit//witness.

You can adjust the @wit attribute later pressing select witness.

A multiple select dialog for selecting multiple witnesses is on the roadmap.

Configuration

Suggestions for @wit

The Suggestions for @wit are generated by the de.wwu.scdh.teilsp.extensions.LabelledEntriesFromXML plugin. This is the default configuration:

<plugins>
        <plugin>
            <class>de.wwu.scdh.teilsp.extensions.LabelledEntriesFromXML</class>
            <type>e.wwu.scdh.teilsp.services.extensions.ILabelledEntriesProvider</type>
            <configurations>
                <configuration>
                    <conditions>
                        <condition domain="context">self::*:lem | self::*:rdg</condition>
                        <condition domain="priority">10</condition>
                        <condition domain="nodeName">wit</condition>
                        <condition domain="nodeType">attributeValue</condition>
                    </conditions>
                    <arguments>
                        <argument name="namespaces">t:http://www.tei-c.org/ns/1.0 xml:http://www.w3.org/XML/1998/namespace</argument>
                        <argument name="selection">//t:teiHeader//t:sourceDesc/t:listWit//t:witness</argument>
                        <argument name="key">@xml:id</argument>
                        <argument name="label">normalize-space(concat(@xml:id, ':', .))</argument>
                        <argument name="prefix">#</argument>
                    </arguments>
                </configuration>
				...
            </configurations>
        </plugin>
		...
</plugins>

Properties of variant encodings

For some variant encoding methods, there are configuration properties. For the internal or external double end-point attached apparatus there are properties like this:

<?xml version="1.0" encoding="UTF-8"?>
<teilspConfiguration xmlns="http://wwu.de/scdh/teilsp/config/">

    <properties>

        <!-- properties for internal double-end point attached apparatus -->
        <property name="oxbytei.action.app.dep.int.startAnchor">anchor</property>
        <property name="oxbytei.action.app.dep.int.startAnchorNamespace">http://www.tei-c.org/ns/1.0</property>
        <property name="oxbytei.action.app.dep.int.startId">'${id}'</property>
        <property name="oxbytei.action.app.dep.int.endAnchor">anchor</property>
        <property name="oxbytei.action.app.dep.int.startAnchorNamespace">http://www.tei-c.org/ns/1.0</property>
        <property name="oxbytei.action.app.dep.int.endId">'${id}'</property>
        <property name="oxbytei.action.app.dep.int.moveToEnd">true</property>
        <property name="oxbytei.action.app.dep.int.sourceLocation">/*</property>
        <property name="oxbytei.action.app.dep.int.targetLocation">self::*</property>
        <property name="oxbytei.action.app.dep.int.action">Replace</property>
        <property name="oxbytei.action.app.dep.int.externalParams"></property>

		...

	</properties>

	...

</teilspConfiguration>

Just look at the names. All these properties have the common prefix oxbytei.action.app.dep.int.. That means the oxbytei action for an apparatus, the double end-point (dep) method, internal target.

The rest is the name of a parameter to the author operation SurroundWithAnchorsXSLTOperation.

Things important here: In the properties for the external operation, you may want to change the targetLocation.

XSLT

Inserting an apparatus entry for the double end-point attached apparatus and the location referenced apparatus envolve an XSLT operation. You can replace the stylesheet by redirection through an XML catalog.

Path/URI suffixes for redirection:

  • oxbytei/xsl/app-dep-int.xsl

  • oxbytei/xsl/app-dep-ext.xsl

  • oxbytei/xsl/app-locref-postprocess.xsl

Clone this wiki locally