# ME001 — Vocabulary Matching Patterns

Status: Draft  
Version: v0.8  
Scope: Vocabulary Matching für kontrollierte Vokabulare, zunächst digiCULT/xTree  
Depends on: ISO 25964-1:2011, ISO 25964-2:2013  
Related: ME002 Vocabulary Matching Pipeline

## 1. Purpose

Dieses Dokument definiert die `Vocabulary Matching Patterns`, die Reconcilix zur fachlichen Klassifikation von Reconciliation-Ergebnissen verwendet.

Ein `Vocabulary Matching Pattern` beschreibt **nicht** primär einen Fehler. Es beschreibt eine wiederkehrende Matching-Situation, die bei der Interpretation eines `SourceValue` und beim Abgleich gegen ein kontrolliertes Vokabular festgestellt wird.

ME001 ist unabhängig von Reconcilix als Software. Die Patterns können auch in manuellen Evaluationen, OpenRefine-Exporten oder Expert:innenfeedback verwendet werden.

## 2. Language Convention

Der Fließtext ist deutsch. Normative Fachbegriffe, Pattern-Namen und Modellbegriffe sind englisch.

Beispiele:

- `SourceValue`
- `Vocabulary Matching Pattern`
- `InterpretationNode`
- `CandidateConcept`
- `MatchDecision`
- `EXACT_MATCH`
- `ORTHOGRAPHIC_VARIANT`

## 3. Core Idea

Ein `Vocabulary Matching Pattern` klassifiziert das Ergebnis einer Interpretation bzw. eines Reconciliation-Versuchs.

Es beantwortet die Frage:

> What kind of matching situation was observed for this interpretation?

Beispiele:

```text
SourceValue: "Kreuz"
InterpretationNode: "Kreuz"
Vocabulary Matching Pattern: EXACT_MATCH
```

```text
SourceValue: "Altrarretabel"
InterpretationNode[0]: "Altrarretabel"
Vocabulary Matching Pattern: ORTHOGRAPHIC_VARIANT

InterpretationNode[1]: "Altarretabel"
Vocabulary Matching Pattern: COMPOSITE_TERM
```

Ein `SourceValue` kann über seinen `InterpretationGraph` mehrere `Vocabulary Matching Patterns` aufweisen.

## 4. Atomic and Composite Usage

Die Patterns selbst werden möglichst atomar definiert. Ein konkreter Fall kann mehrere Patterns kombinieren.

Beispiel:

```text
SourceValue: "Altrarretabel"
Patterns:
- ORTHOGRAPHIC_VARIANT
- COMPOSITE_TERM
```

Beispiel:

```text
SourceValue: "Annenretabel"
Patterns:
- COMPOSITE_TERM
- SEMANTIC_GENERALIZATION
```

Diese Kombination wird nicht als neues Spezialpattern modelliert. Stattdessen entsteht die fachliche Beschreibung durch die Kombination atomarer Patterns entlang des `InterpretationGraph`.

## 5. Pattern Fields

Jedes Pattern wird durch folgende Felder beschrieben:

| Field | Description |
|---|---|
| `Pattern` | Normativer Pattern-Name |
| `Definition` | Fachliche Bedeutung |
| `Recognition` | Hinweise zur Erkennung |
| `Examples` | Typische Beispiele |
| `Typical Resolution` | Wo oder wodurch das Pattern typischerweise bearbeitet wird |
| `Automation Potential` | `High`, `Medium`, `Low` |
| `Context Dependency` | `None`, `Limited`, `High` |
| `Notes` | Hinweise für Evaluation und Expert:innenfeedback |

## 6. Pattern Catalogue

### 6.1 EXACT_MATCH

**Definition**  
`SourceValue` bzw. `InterpretationNode` entspricht unmittelbar einem `CandidateConcept` im Zielvokabular.

**Recognition**

- Der bevorzugte oder alternative Term des `CandidateConcept` stimmt fachlich direkt mit dem `InterpretationNode` überein.
- Keine weitere Normalisierung oder semantische Ableitung ist erforderlich.

**Examples**

- `Kreuz` → `Kreuz`
- `Relief` → `Relief`
- `Leuchter` → `Leuchter`

**Typical Resolution**  
Direct Lookup / Candidate Discovery

**Automation Potential**  
High

**Context Dependency**  
None

**Notes**  
`EXACT_MATCH` bedeutet fachliche Übereinstimmung, nicht zwingend reine String-Identität. Entscheidend ist die Übereinstimmung mit dem Zielbegriff.

---

### 6.2 ORTHOGRAPHIC_VARIANT

**Definition**  
Der `InterpretationNode` enthält eine orthographische Abweichung gegenüber der erwarteten Benennung eines Zielbegriffs.

**Recognition**

- Tippfehler, Buchstabendreher oder Schreibfehler sind erkennbar.
- Nach Korrektur entsteht eine plausible Benennung oder ein plausibler weiterer `InterpretationNode`.

**Examples**

- `Altrarretabel` → `Altarretabel`
- `Reliqiar` → `Reliquiar`

**Typical Resolution**  
Normalization

**Automation Potential**  
High

**Context Dependency**  
None / Limited

**Notes**  
`ORTHOGRAPHIC_VARIANT` ersetzt das frühere unscharfe `SOURCE_DATA_ISSUE`. Nicht jeder Datenfehler ist eine orthographische Variante.

---

### 6.3 LEXICAL_VARIANT

**Definition**  
Der `InterpretationNode` unterscheidet sich lexikalisch vom Zielbegriff, ohne dass eine andere fachliche Bedeutung entsteht.

**Recognition**

- Singular/Plural
- Flexion
- ggf. einfache Schreibvarianten, sofern sie nicht als klarer Schreibfehler klassifiziert werden

**Examples**

- `Adlerpulte` → `Adlerpult`
- `Reliefs` → `Relief`
- `Armreliquiare` → `Reliquiar`

**Typical Resolution**  
Normalization

**Automation Potential**  
High

**Context Dependency**  
None

**Notes**  
`LEXICAL_VARIANT` beschreibt zulässige oder erwartbare Varianten. Eindeutige Tippfehler gehören zu `ORTHOGRAPHIC_VARIANT`.

---

### 6.4 COMPOSITE_TERM

**Definition**  
Der `InterpretationNode` ist ein zusammengesetzter Term, der mindestens einen relevanten Bestandteil enthält, der für das Matching isoliert oder interpretiert werden kann.

**Recognition**

- Komposita
- zusammengesetzte Benennungen
- Zielbegriff ist häufig ein Bestandteil oder ein semantisch abgeleiteter Oberbegriff

**Examples**

- `Altarretabel`
- `Altartafel`
- `Annenretabel`
- `Altarkreuz`

**Typical Resolution**  
Normalization / Semantic Interpretation

**Automation Potential**  
Medium / High

**Context Dependency**  
Limited

**Notes**  
`COMPOSITE_TERM` kann mit `SEMANTIC_GENERALIZATION` kombiniert auftreten, z. B. wenn `Annenretabel` auf `Retabel` gemappt wird.

---

### 6.5 MULTI_CONCEPT_EXPRESSION

**Definition**  
Der `SourceValue` oder `InterpretationNode` enthält mehrere eigenständige Concepts, die für das Matching getrennt behandelt werden müssen.

**Recognition**

- Aufzählungen
- koordinierte Ausdrücke
- zusammengesetzte Ensembles
- mehrere mögliche Objekttypen in einem Feldwert

**Examples**

- `Altar-Kanzel-Orgelprospekt`
- `Kanzel mit Schalldeckel`
- `Kirche mit Friedhof`

**Typical Resolution**  
Decomposition / InterpretationGraph branching

**Automation Potential**  
Medium

**Context Dependency**  
Limited / High

**Notes**  
Dieses Pattern unterscheidet sich von `COMPOSITE_TERM`. Bei `COMPOSITE_TERM` geht es um eine zusammengesetzte Benennung; bei `MULTI_CONCEPT_EXPRESSION` um mehrere eigenständige Begriffe.

---

### 6.6 SEMANTIC_GENERALIZATION

**Definition**  
Der geeignete `CandidateConcept` ist ein allgemeinerer Begriff als der `InterpretationNode`.

**Recognition**

- Der Quellwert ist spezifischer als das Zielvokabular.
- Ein broadMatch oder eine fachlich akzeptierte Generalisierung ist erforderlich.

**Examples**

- `Anastasiusreliquiar` → `Reliquiar`
- `Annenretabel` → `Retabel`
- `Altartriptychon` → `Altarbild` oder `Retabel` je nach Zielvokabular und fachlicher Entscheidung

**Typical Resolution**  
Semantic Interpretation / Candidate Discovery über broader concepts

**Automation Potential**  
Medium

**Context Dependency**  
Limited

**Notes**  
Dieses Pattern ist zentral für xTree-Vokabulare, da geeignete Zielbegriffe häufig über Oberbegriffe gefunden werden.

---

### 6.7 CONTEXT_DEPENDENT

**Definition**  
Der `InterpretationNode` kann ohne zusätzlichen Kontext nicht sicher einem `CandidateConcept` zugeordnet werden.

**Recognition**

- Der Wert ist mehrdeutig.
- Der Wert kann Eigenname, Titel, Person, Motiv, Objektteil oder Objekttyp sein.
- Entscheidung erfordert Kontextdaten, z. B. TEI, LIDO, Objektbeschreibung, Standort, Ereignisse oder andere Strukturfelder.

**Examples**

- `Anna`
- `Apostel`
- `Bogen`
- `Arma Christi`

**Typical Resolution**  
Context Enrichment / Strategy Exploration

**Automation Potential**  
Low / Medium

**Context Dependency**  
High

**Notes**  
`CONTEXT_DEPENDENT` ist nicht zwingend ein Endzustand. Es kann eine weitere `Matching Strategy` auslösen, bei der zusätzlicher Kontext einbezogen wird.

---

### 6.8 NOT_AN_OBJECT_TYPE

**Definition**  
Der `SourceValue` oder `InterpretationNode` beschreibt keinen Objekttyp, obwohl das Zielfeld einen Objekttyp erwartet.

**Recognition**

- Zahlenwerte, Datierungen, Hausnummern
- Personen-, Orts- oder Ereignisangaben im falschen Feld
- Werte, die nur durch andere Quelldaten in einen Objekttyp überführt werden können

**Examples**

- `1509`
- Hausnummern
- reine Datierungsangaben

**Typical Resolution**  
Input Validation / Field Semantics / Context Lookup

**Automation Potential**  
High für einfache Muster, sonst Medium

**Context Dependency**  
Limited / High

**Notes**  
Bei numerischen Werten kann eine einfache Regel helfen: Werte mit Ziffern sind im Objekttypfeld besonders zu prüfen. Der korrekte Objekttyp kann ggf. nur aus TEI- oder Strukturkontext abgeleitet werden.

---

### 6.9 WRONG_SEMANTIC_CLASS

**Definition**  
Der gefundene `CandidateConcept` gehört fachlich einer anderen Begriffsklasse an als der erwartete Zielbegriff.

**Recognition**

- Candidate wirkt lexikalisch ähnlich, gehört aber semantisch in eine andere Klasse.
- Treffer entsteht durch irreführende String-Ähnlichkeit oder falschen Kontext.

**Examples**

- `Large Two Forms` → `forms (benches)`

**Typical Resolution**  
Candidate Evaluation / Semantic Filtering

**Automation Potential**  
Medium

**Context Dependency**  
Limited / High

**Notes**  
Dieses Pattern ist vorläufig. Es sollte in weiteren Expert:innenfeedbackrunden gezielt beobachtet werden, bevor es als stabiler Kernbestandteil gilt.

---

### 6.10 NO_SUITABLE_CONCEPT

**Definition**  
Im Zielvokabular existiert kein geeigneter `CandidateConcept` für den `InterpretationNode`.

**Recognition**

- Weder exactMatch noch broadMatch noch verwandte Concepts sind fachlich akzeptabel.
- Expert:innen schlagen keinen Zielbegriff vor oder fordern Vokabularerweiterung.

**Examples**

- Noch offen; sollte im xTree-Kontext wegen broadMatch selten sein.

**Typical Resolution**  
Vocabulary Extension / External Concept Scheme / Manual Review

**Automation Potential**  
Low

**Context Dependency**  
High

**Notes**  
Im xTree-Kontext sollte dieses Pattern selten auftreten, da häufig ein allgemeinerer Zielbegriff akzeptabel sein kann.

## 7. Use in Expert Feedback

Für Expert:innenfeedback kann eine Spalte `Vocabulary Matching Pattern` verwendet werden. Falls mehrere Patterns zutreffen, können sie durch Semikolon getrennt werden:

```text
ORTHOGRAPHIC_VARIANT; COMPOSITE_TERM
```

Für die nächste Feedbackrunde sollten insbesondere beobachtet werden:

- Stabilität von `WRONG_SEMANTIC_CLASS`
- Trennschärfe zwischen `COMPOSITE_TERM` und `MULTI_CONCEPT_EXPRESSION`
- Fälle mit `CONTEXT_DEPENDENT`
- Häufigkeit von `ORTHOGRAPHIC_VARIANT`

## 8. Open Questions

- Soll `PROPER_NAME` als eigenes Pattern geführt werden oder zunächst unter `CONTEXT_DEPENDENT` bleiben?
- Wann wird aus `SEMANTIC_GENERALIZATION` ein explizites broadMatch-Verhalten?
- Welche Patterns sind für Bauwerke zusätzlich erforderlich?
