PICA Path

Mit PICA Path Ausdrücken lassen sich einzelne Felder, Unterfelder und Feldinhalte von PICA-Daten referenzieren. Das Format ist von MARCSpec inspiriert und wird im Rahmen der Werkzeuge picadata, Catmandu und pica-rs entwickelt.

Beispiele

003@
012X$abc
2...
123A/0./1-3

Syntax

Zur vollständigen Unterstützung von PICA Path muss mindestens folgende formale Syntax erkannt werden:

path              ::=  ( tag | xtag ) occurrence? subfields?
tag               ::=  [012.] [0-9.] [0-9.] [A-Z@.]
xtag              ::=  "2" [0-9.] [0-9.] [A-Z@.] "x" number
occurrence        ::=  "/" occurrenceValue
occurrenceValue   ::=  number "-" number | occurrencePattern | "*"
occurrencePattern ::=  [0-9] [0-9]? [0-9]?
subfields         ::=  [$.]? ( [A-Za-z0-9]+ | "*" )
number            ::=  [0-9]+

Als Standard-Erweiterungen sind die Angabe von Positionen in Unterfeldwerten (position) und eine alternative Syntax zur Angabe von Occurrences möglich (umgesetzt in den Werkzeugen picadata und Catmandu):

path              ::=  ( tag | xtag ) occurrence? ( subfields position? )?
position          ::=  "/" ( number | range ) 
range             ::=  number "-" number? | "-" number
occurrence        ::=  "/" occurrenceValue | "[" occurrenceValue "]"
occurrencePattern ::=  [0-9.] [0-9.]? [0-9.]?

Positionsangaben beziehen sich nicht auf Bytes sondern auf Unicode-Codepunkte. Bei Positionsangaben über mehrere Unterfelder werden die Unterfeldwerte in Reihenfolge ihres Vorkommens im Feld zu einer Zeichenkette zusammengefügt.

Falls keine Occurrence angegeben ist, wird als Standardwert 0 angenommen (keine Occcurrence) bzw. * (beliebige Occurrence) wenn der Ausdruck mit 2 oder mit . beginnt.

Ein Ausdruck mit X-Occurrence (xtag) passt auf Felder der Ebene 2, bei denen das Unterfeld x dem angegebenen Wert entspricht.

Zur Besseren Lesbarkeit sollten PICA Path Ausdrücke folgendermaßen normalisiert werden:

erstellt2014
AutorJakob Voß
FormatZeichenkette
AnwendungAbfragesprachen
fürPICA-Format (PICA)