Skip to content

Differences between Catmandu and Metafacture Fix and other important differences

TobiasNx edited this page Sep 14, 2023 · 5 revisions
  • The issue label conformToCatmandu highlights differences that need to be fixed.

  • Some Catmandu functions are not supported yet: assoc, diassoc, compact,uri_decode

  • Some new function exists that are not part of Catmandu

  • Due to the difference between encoding/decoding of JSON/YAML by MF. Arrays need to have an arrayMarker if they should be transformed into an array or source paths are arrays.

  • Indexing of array/repeatable fields: Catmandu starts with 0, Fix starts with 1 due to JsonDecoder.

  • embedded fix in catmandu commands can be separated by ;

  • when transforming to yaml from marc catmandu shows the hidden _id by default too, metafacture does not, only if you use a fix (copy_field("_id", "_id")

  • YAML encoding in Catmandu ends record with ..., metafacture does not

  • Marc handling in MF and Catmandu are completly different. MF: Leader-Element, XXX+Indicies = Toplevel elements, Subfilds=> Subfields, difficulties are created by repeated subfields, Catmandu: _id, array-in-array, unclear structure) (MF has an advantage here. MF: uses generic fix, Catmandu: uses its special Marc-Fix.)

  • do list(path:"...", "var":"...) in MF Fix the var-attribute needs to be in " due to x text in catmandu not

  • substring-function does not define start and end index but start and number of signs.

  • with the FLUX commands list-fix-paths and list-fix-values MF provides an easy way to get an overview over the records

  • boolean values for options in MF Fix are stated as string-values e.g. "true" differently to catmandu where they use the numeric 1