// PB definitions for CityLex.

syntax = "proto2";

package citylex;

// A series of values paired with a lemma or wordform.
message Entry {

  // Frequencies.

  optional int64 celex_freq = 1;

  optional int64 subtlex_uk_freq = 2;
  optional int64 subtlex_uk_cd = 3;

  optional int64 subtlex_us_freq = 4;
  optional int64 subtlex_us_cd = 5;

  // Morphological analyses.

  message MorphEntry {
    required string lemma = 1;
    optional string pos = 2;
    optional string features = 3;
  }

  // TODO(kbg): Implement the morphological features.
  optional string celex_morph_status = 6;
  optional string celex_morph_language_code = 7;

  optional string elp_morph_sp = 8;  // Morphological analysis.
  optional int32 elp_nmorph = 9;     // Number of morphs in that analysis.

  repeated MorphEntry udlexicons_morph = 10;

  repeated MorphEntry unimorph_morph = 11;

  // Pronunciations.

  repeated string celex_pron = 12;

  repeated string cmudict_pron = 13;

  repeated string wikipron_uk_pron = 14;
  repeated string wikipron_us_pron = 15;
}

// A collection of entries.
message Lexicon {
  map<string, Entry> entry = 1;
}
