PICA::Schema::Builder(3)

NAME
PICA::Schema::Builder - Create Avram Schema from examples

SYNOPSIS
  my $builder = PICA::Schema::Builder->new( title => 'My Schema' );

  while (my $record = get_some_pica_record()) {
      $builder->add($record);
  }

  $schema = $builder->schema;

DESCRIPTION
An Avram Schema <https://format.gbv.de/schema/avram/specification> can be created automatically from PICA::Data records. The result contains a list of field that have been used in any of the inspected records. The schema can tell:

•   the number of inspected "records"

•   which "fields" and their "subfields" have been found in records

•   the "total" number each field has been found and the number of "records" with each field.

•   which of the fields occurr in all records ("required")

•   whether a field has been repeated in a record ("repeatable")

And information about requiredness and repeatability for subfields. Subfield order is not taken into account.

This class is a subclass of PICA::Schema.

CONSTRUCTOR
The builder can be initialized with information of an existing builder or schema, in particular "fields", "total", and "records". Option "ignore_unknown" will ignore fields not already specified in "fields".

METHODS

  add( $record )
Analyse an additional PICA record.

  schema
Return a PICA::Schema that all analyzed records conform to. This methods creates a deep copy and removes all fields with "total" zero.

SEE ALSO
Catmandu::Breaker can analyze PICA data and create additional statistics.