concrete MergeEng of Merge = BasicEng ** open DictLangEng, DictEng, ParadigmsEng, ResEng, ParamBasic in {
   
lin
  -- single instances 
  AngularDegree = MassNP (AdjCN (PositA angular_A) (UseN degree_N)) ;
  AtomGram = MassNP (ApposCN (UseN atom_N) (MassNP (UseN gram_N))) ;
  Bit = MassNP (UseN bit_N) ;
  Black = MassNP (UseN black_N) ;
  Blue = MassNP (UseN blue_N) ;
  BritishThermalUnit = MassNP (AdjCN (PositA british_A) (AdjCN (PositA thermal_A) (UseN unit_N))) ;
  Calorie = MassNP (UseN calorie_N) ;
  Ampere = MassNP (UseN ampere_N) ;
  Joule = MassNP (UseN joule_N) ;
  Watt = MassNP (UseN watt_N) ;
  Volt = MassNP (UseN volt_N) ;
  Ohm = MassNP (UseN ohm_N) ;
  Gray = MassNP (UseN gray_N) ;
  ElectronVolt = MassNP (ApposCN (UseN electron_N) (MassNP (UseN volt_N))) ;
  Gram = MassNP (UseN gram_N) ;
  Hertz = DetCN (DetQuant IndefArt NumSg) (UseN hertz_N) ;
  Kilogram = MassNP (UseN kilogram_N) ;
  Meter = MassNP (UseN meter_N) ;
  Mole = MassNP (UseN mole_N) ;
  SecondDuration = MassNP (AdjCN (AdjOrd (OrdNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))))) (UseN duration_N)) ;
  Left = MassNP (UseN left_N) ;
  Right = MassNP (UseN right_N) ;
  CentralTimeZone = MassNP (AdjCN (PositA central_A) (ApposCN (UseN time_N) (MassNP (UseN zone_N)))) ;
  Cup = MassNP (UseN cup_N) ;
  Damp = MassNP (UseN damp_N) ;
  DayDuration = MassNP (ApposCN (UseN day_N) (MassNP (UseN duration_N))) ;
  East = MassNP (UseN east_N) ;
  EasternTimeZone = MassNP (AdjCN (PositA eastern_A) (ApposCN (UseN time_N) (MassNP (UseN zone_N)))) ;
  ElectronVolt = MassNP (ApposCN (UseN electron_N) (MassNP (UseN volt_N))) ;
  Female = MassNP (UseN female_N) ;
  Fluid = MassNP (UseN fluid_N) ;
  FootLength = MassNP (ApposCN (UseN foot_N) (MassNP (UseN length_N))) ;
  Gas = MassNP (UseN gas_N) ;
  Horsepower = DetCN (DetQuant IndefArt NumSg) (UseN horsepower_N) ;
  HourDuration = MassNP (ApposCN (UseN hour_N) (MassNP (UseN duration_N))) ;
  Inch = MassNP (UseN inch_N) ;
  InchMercury = MassNP (ApposCN (UseN inch_N) (MassNP (UseN mercury_N))) ;
  Liquid = MassNP (UseN liquid_N) ;
  Living = DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 live_V2)) ;
  Male = MassNP (UseN male_N) ;
  Mile = MassNP (UseN mile_N) ;
  MinuteDuration = MassNP (AdjCN (PositA minute_A) (UseN duration_N)) ;
  MmMercury = DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN mm_N) (MassNP (UseN mercury_N))) ;
  MonthDuration = MassNP (ApposCN (UseN month_N) (MassNP (UseN duration_N))) ;
  MountainTimeZone = MassNP (ApposCN (ApposCN (UseN mountain_N) (MassNP (UseN time_N))) (MassNP (UseN zone_N))) ;
  Necessity = MassNP (UseN necessity_N) ;
  NegativeInfinity = MassNP (AdjCN (PositA negative_A) (UseN infinity_N)) ;
  North = MassNP (UseN north_N) ;
  NullList = MassNP (AdjCN (PositA null_A) (UseN list_N)) ;
  Obligation = MassNP (UseN obligation_N) ;
  Ounce = MassNP (UseN ounce_N) ;
  PacificTimeZone = MassNP (AdjCN (PositA pacific_A) (ApposCN (UseN time_N) (MassNP (UseN zone_N)))) ;
  Permission = MassNP (UseN permission_N) ;
  Pi = MassNP (UseN pi_N) ;
  Pint = MassNP (UseN pint_N) ;
  Plasma = MassNP (UseN plasma_N) ;
  PositiveInfinity = MassNP (AdjCN (PositA positive_A) (UseN infinity_N)) ;
  Possibility = MassNP (UseN possibility_N) ;
  PoundForce = MassNP (ApposCN (UseN pound_N) (MassNP (UseN force_N))) ;
  PoundMass = MassNP (ApposCN (UseN pound_N) (MassNP (UseN mass_N))) ;
  Prohibition = MassNP (UseN prohibition_N) ;
  Quart = MassNP (UseN quart_N) ;
  Red = MassNP (UseN red_N) ;
  Rough = MassNP (UseN rough_N) ;
  Sitting = DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 sit_V2)) ;
  Slug = MassNP (UseN slug_N) ;
  Smooth = MassNP (UseN smooth_N) ;
  Solid = MassNP (UseN solid_N) ;
  South = MassNP (UseN south_N) ;
  Standing = DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 stand_V2)) ;
  True = MassNP (UseN true_N) ;
  Unconscious = MassNP (UseN unconscious_N) ;
  UnitedKingdomGallon = MassNP (AdjCN (PositA united_A) (ApposCN (UseN kingdom_N) (MassNP (UseN gallon_N)))) ;
  UnitedStatesCent = DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN cent_N)))) ;
  UnitedStatesDollar = DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN dollar_N)))) ;
  UnitedStatesGallon = DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN gallon_N)))) ;
  Vertical = MassNP (UseN vertical_N) ;
  WeekDuration = MassNP (ApposCN (UseN week_N) (MassNP (UseN duration_N))) ;
  West = MassNP (UseN west_N) ;
  Wet = MassNP (UseN wet_N) ;
  White = MassNP (UseN white_N) ;
  YearDuration = MassNP (ApposCN (UseN year_N) (MassNP (UseN duration_N))) ;
  Yellow = MassNP (UseN yellow_N) ;
  Law = MassNP (UseN law_N) ;
  Promise = MassNP (UseN promise_N) ;
  PurchaseContract = MassNP (ApposCN (UseN purchase_N) (MassNP (UseN contract_N))) ;
  Warranty = MassNP (UseN warranty_N) ;
  NakedPromise = MassNP (AdjCN (PositA naked_A) (UseN promise_N)) ;
  
  
  
  -- subclass declarations :
  AbnormalAnatomicalStructure = AdjCN (PositA abnormal_A) (AdjCN (PositA anatomical_A) (UseN structure_N)) ;
  Abstract = AdjCN (PositA abstract_A) (UseN entity_N) ;
  Adjective = UseN adjective_N ;
  Adverb = UseN adverb_N ;
  Advertising = UseN2 (VerbToNounV2 advertise_V2) ;
  AgeGroup = ApposCN (UseN age_N) (MassNP (UseN group_N)) ;
  Agent = UseN agent_N ;
  Air = UseN air_N ;
  Alga = UseN alga_N ;
  Amphibian = UseN amphibian_N ;
  AnatomicalStructure = AdjCN (PositA anatomical_A) (UseN structure_N) ;
  AngleMeasure = ApposCN (UseN angle_N) (MassNP (UseN measure_N)) ;
  Animal = UseN animal_N ;
  AnimalAnatomicalStructure = ApposCN (UseN animal_N) (MassNP (AdjCN (PositA anatomical_A) (UseN structure_N))) ;
  AnimalLanguage = ApposCN (UseN animal_N) (MassNP (UseN language_N)) ;
  AnimalSubstance = ApposCN (UseN animal_N) (MassNP (UseN substance_N)) ;
  Ape = UseN ape_N ;
  April = UseN april_N ;
  AquaticMammal = AdjCN (PositA aquatic_A) (UseN mammal_N) ;
  Arachnid = UseN arachnid_N ;
  AreaMeasure = ApposCN (UseN area_N) (MassNP (UseN measure_N)) ;
  Argument = UseN argument_N ;
  ArtWork = ApposCN (UseN art_N) (MassNP (UseN work_N)) ;
  Article = UseN article_N ;
  Artifact = UseN artifact_N ;
  ArtificialLanguage = AdjCN (PositA artificial_A) (UseN language_N) ;
  AsexualReproduction = AdjCN (PositA asexual_A) (UseN reproduction_N) ;
  AstronomicalBody = AdjCN (PositA astronomical_A) (UseN body_N) ;
  Atom = UseN atom_N ;
  AtomicNucleus = AdjCN (PositA atomic_A) (UseN nucleus_N) ;
  Attaching = UseN2 (VerbToNounV2 attach_V2) ;
  AttachingDevice = ApposCN (UseN2 (VerbToNounV2 attach_V2)) (MassNP (UseN device_N)) ;
  Attack = UseN attack_N ;
  Attribute = UseN attribute_N ;
  August = UseN august_N ;
  Bacterium = UseN bacterium_N ;
  Battle = UseN battle_N ;
  BeliefGroup = ApposCN (UseN belief_N) (MassNP (UseN group_N)) ;
  Betting = UseN2 (VerbToNounV2 bet_V2) ;
  Beverage = UseN beverage_N ;
  BinaryNumber = AdjCN (PositA binary_A) (UseN number_N) ;
  BiologicalAttribute = AdjCN (PositA biological_A) (UseN attribute_N) ;
  BiologicalProcess = AdjCN (PositA biological_A) (UseN process_N) ;
  Bird = UseN bird_N ;
  Birth = UseN birth_N ;
  Blood = UseN blood_N ;
  BodyCavity = ApposCN (UseN body_N) (MassNP (UseN cavity_N)) ;
  BodyCovering = ApposCN (UseN body_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 cover_V2))) ;
  BodyJunction = ApposCN (UseN body_N) (MassNP (UseN junction_N)) ;
  BodyMotion = ApposCN (UseN body_N) (MassNP (UseN motion_N)) ;
  BodyPart = AdvCN (UseN body_N) part_Adv ;
  BodyPosition = ApposCN (UseN body_N) (MassNP (UseN position_N)) ;
  BodySubstance = ApposCN (UseN body_N) (MassNP (UseN substance_N)) ;
  BodyVessel = ApposCN (UseN body_N) (MassNP (UseN vessel_N)) ;
  Boiling = UseN2 (VerbToNounV2 boil_V2) ;
  Bone = UseN bone_N ;
  Book = UseN book_N ;
  Borrowing = UseN2 (VerbToNounV2 borrow_V2) ;
  Breathing = UseN breathing_N ;
  Building = UseN building_N ;
  Buying = UseN2 (VerbToNounV2 buy_V2) ;
  Calculating = UseN2 (VerbToNounV2 calculate_V2) ;
  Carbohydrate = UseN carbohydrate_N ;
  Carnivore = UseN carnivore_N ;
  Carrying = UseN2 (VerbToNounV2 carry_V2) ;
  Cell = UseN cell_N ;
  Certificate = UseN certificate_N ;
  ChangeOfPossession = AdvCN (UseN change_N) (PrepNP part_Prep (MassNP (UseN possession_N))) ;
  Character = UseN character_N ;
  ChemicalDecomposition = AdjCN (PositA chemical_A) (UseN decomposition_N) ;
  ChemicalProcess = AdjCN (PositA chemical_A) (UseN process_N) ;
  ChemicalSynthesis = AdjCN (PositA chemical_A) (UseN synthesis_N) ;
  Circle = UseN circle_N ;
  City = UseN city_N ;
  Classifying = UseN2 (VerbToNounV2 classify_V2) ;
  ClosedTwoDimensionalFigure = AdjCN (PositA (VerbToParticipeA close_V)) (AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN figure_N)) ;
  Clothing = UseN clothing_N ;
  Cloud = UseN cloud_N ;
  Collection = UseN collection_N ;
  Combining = UseN2 (VerbToNounV2 combine_V2) ;
  Combustion = UseN combustion_N ;
  CommercialAgent = AdjCN (PositA commercial_A) (UseN agent_N) ;
  CommercialService = AdjCN (PositA commercial_A) (UseN service_N) ;
  Committing = UseN2 (VerbToNounV2 commit_V2) ;
  Communication = UseN communication_N ;
  Comparing = UseN2 (VerbToNounV2 compare_V2) ;
  ComplexNumber = AdjCN (PositA complex_A) (UseN number_N) ;
  CompositeUnitOfMeasure = AdjCN (PositA composite_A) (AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN measure_N)))) ;
  CompoundSubstance = AdjCN (PositA compound_A) (UseN substance_N) ;
  ComputerLanguage = ApposCN (UseN computer_N) (MassNP (UseN language_N)) ;
  ComputerProgram = ApposCN (UseN computer_N) (MassNP (UseN program_N)) ;
  ComputerProgramming = ApposCN (UseN computer_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 program_V2))) ;
  Condensing = UseN2 (VerbToNounV2 condense_V2) ;
  Confining = UseN2 (VerbToNounV2 confine_V2) ;
  ConsciousnessAttribute = ApposCN (UseN consciousness_N) (MassNP (UseN attribute_N)) ;
  ConstantQuantity = AdjCN (PositA constant_A) (UseN quantity_N) ;
  Constructing = UseN2 (VerbToNounV2 construct_V2) ;
  ContentBearingObject = AdjCN (PositA (mkA "content-bearing")) (UseN object_N) ;
  ContentBearingPhysical = AdjCN (PositA (mkA "content-bearing")) (AdjCN (PositA physical_A) (UseN entity_N)) ;
  ContentBearingProcess = AdjCN (PositA (mkA "content-bearing")) (UseN process_N) ;
  ContentDevelopment = AdjCN (PositA content_A) (UseN development_N) ;
  Contest = UseN contest_N ;
  ContestAttribute = ApposCN (UseN contest_N) (MassNP (UseN attribute_N)) ;
  Continent = UseN continent_N ;
  Cooking = UseN cooking_N ;
  Cooling = UseN2 (VerbToNounV2 cool_V2) ;
  Cooperation = UseN cooperation_N ;
  Corporation = UseN corporation_N ;
  Counting = UseN2 (VerbToNounV2 count_V2) ;
  County = UseN county_N ;
  Covering = UseN covering_N ;
  Creation = UseN creation_N ;
  Crustacean = UseN crustacean_N ;
  Currency = UseN currency_N ;
  CurrencyMeasure = ApposCN (UseN currency_N) (MassNP (UseN measure_N)) ;
  Cutting = UseN cutting_N ;
  Damaging = UseN2 (VerbToNounV2 damage_V2) ;
  Dancing = UseN dancing_N ;
  Day = UseN day_N ;
  Death = UseN death_N ;
  December = UseN december_N ;
  Deciding = UseN2 (VerbToNounV2 decide_V2) ;
  Declaring = UseN2 (VerbToNounV2 declare_V2) ;
  Decoding = UseN2 (VerbToNounV2 decode_V2) ;
  Decreasing = UseN2 (VerbToNounV2 decrease_V2) ;
  DeductiveArgument = AdjCN (PositA deductive_A) (UseN argument_N) ;
  Demonstrating = UseN2 (VerbToNounV2 demonstrate_V2) ;
  Designing = UseN designing_N ;
  Destruction = UseN destruction_N ;
  Detaching = UseN2 (VerbToNounV2 detach_V2) ;
  Device = UseN device_N ;
  DiagnosticProcess = AdjCN (PositA diagnostic_A) (UseN process_N) ;
  Digesting = UseN2 (VerbToNounV2 digest_V2) ;
  DirectedGraph = AdjCN (PositA (VerbToParticipeA direct_V)) (UseN graph_N) ;
  Directing = UseN2 (VerbToNounV2 direct_V2) ;
  DirectionChange = ApposCN (UseN direction_N) (MassNP (UseN change_N)) ;
  DirectionalAttribute = AdjCN (PositA directional_A) (UseN attribute_N) ;
  Discovering = UseN2 (VerbToNounV2 discover_V2) ;
  DiseaseOrSyndrome = ConjCN or_Conj (BaseCN (UseN disease_N) (UseN syndrome_N)) ;
  Disseminating = UseN2 (VerbToNounV2 disseminate_V2) ;
  Drinking = UseN drinking_N ;
  Driving = UseN2 (VerbToNounV2 drive_V2) ;
  Drying = UseN2 (VerbToNounV2 dry_V2) ;
  DualObjectProcess = AdjCN (PositA dual_A) (ApposCN (UseN object_N) (MassNP (UseN process_N))) ;
  Eating = UseN2 (VerbToNounV2 eat_V2) ;
  EducationalOrganization = AdjCN (PositA educational_A) (UseN organization_N) ;
  EducationalProcess = AdjCN (PositA educational_A) (UseN process_N) ;
  Egg = UseN egg_N ;
  Election = UseN election_N ;
  Electron = UseN electron_N ;
  ElementalSubstance = AdjCN (PositA elemental_A) (UseN substance_N) ;
  EmotionalState = AdjCN (PositA emotional_A) (UseN state_N) ;
  Encoding = UseN2 (VerbToNounV2 encode_V2) ;
  EngineeringComponent = AdjCN (PositA (VerbToGerundA engineer_V)) (UseN component_N) ;
  EngineeringConnection = AdjCN (PositA (VerbToGerundA engineer_V)) (UseN connection_N) ;
  Entity = UseN entity_N ;
  Enzyme = UseN enzyme_N ;
  EthnicGroup = AdjCN (PositA ethnic_A) (UseN group_N) ;
  Evaporating = UseN2 (VerbToNounV2 evaporate_V2) ;
  EvenInteger = AdjCN (PositA even_A) (UseN integer_N) ;
  Experimenting = UseN (VerbToNoun experiment_V) ;
  Explanation = UseN explanation_N ;
  Expressing = UseN2 (VerbToNounV2 express_V2) ;
  Fabric = UseN fabric_N ;
  FactualText = AdjCN (PositA factual_A) (UseN text_N) ;
  Falling = UseN2 (VerbToNounV2 befall_V2) ;
  FamilyGroup = ApposCN (UseN family_N) (MassNP (UseN group_N)) ;
  FatTissue = AdjCN (PositA fat_A) (UseN tissue_N) ;
  February = UseN february_N ;
  Fern = UseN fern_N ;
  FictionalText = AdjCN (PositA fictional_A) (UseN text_N) ;
  FieldOfStudy = AdvCN (UseN field_N) (PrepNP part_Prep (MassNP (UseN study_N))) ;
  FinancialInstrument = AdjCN (PositA financial_A) (UseN instrument_N) ;
  FinancialTransaction = AdjCN (PositA financial_A) (UseN transaction_N) ;
  FiniteSet = AdjCN (PositA finite_A) (UseN set_N) ;
  Fish = UseN fish_N ;
  FlowRegion = ApposCN (UseN flow_N) (MassNP (UseN region_N)) ;
  FloweringPlant = AdjCN (PositA (VerbToGerundA flower_V)) (UseN plant_N) ;
  Food = UseN food_N ;
  Freezing = UseN2 (VerbToNounV2 deep_freeze_V2) ;
  FrequencyMeasure = ApposCN (UseN frequency_N) (MassNP (UseN measure_N)) ;
  FreshWaterArea = AdjCN (PositA fresh_A) (ApposCN (UseN water_N) (MassNP (UseN area_N))) ;
  Friday = UseN friday_N ;
  FruitOrVegetable = ConjCN or_Conj (BaseCN (UseN fruit_N) (UseN vegetable_N)) ;
  FunctionQuantity = ApposCN (UseN function_N) (MassNP (UseN quantity_N)) ;
  Funding = UseN2 (VerbToNounV2 fund_V2) ;
  Fungus = UseN fungus_N ;
  Game = UseN game_N ;
  GasMixture = ApposCN (UseN gas_N) (MassNP (UseN mixture_N)) ;
  GasMotion = ApposCN (UseN gas_N) (MassNP (UseN motion_N)) ;
  GeologicalProcess = AdjCN (PositA geological_A) (UseN process_N) ;
  GeometricFigure = AdjCN (PositA geometric_A) (UseN figure_N) ;
  GeometricPoint = AdjCN (PositA geometric_A) (UseN point_N) ;
  Gesture = UseN gesture_N ;
  Getting = UseN2 (VerbToNounV2 beget_V2) ;
  Giving = UseN2 (VerbToNounV2 give_V2) ;
  GivingBack = AdjCN (PositA (VerbToGerundA give_V)) (UseN back_N) ;
  Gland = UseN gland_N ;
  Government = UseN government_N ;
  GovernmentOrganization = ApposCN (UseN government_N) (MassNP (UseN organization_N)) ;
  Grabbing = UseN2 (VerbToNounV2 grab_V2) ;
  Graduation = UseN graduation_N ;
  Graph = UseN graph_N ;
  GraphArc = ApposCN (UseN graph_N) (MassNP (UseN arc_N)) ;
  GraphCircuit = ApposCN (UseN graph_N) (MassNP (UseN circuit_N)) ;
  GraphElement = ApposCN (UseN graph_N) (MassNP (UseN element_N)) ;
  GraphLoop = ApposCN (UseN graph_N) (MassNP (UseN loop_N)) ;
  GraphNode = ApposCN (UseN graph_N) (MassNP (UseN node_N)) ;
  GraphPath = ApposCN (UseN graph_N) (MassNP (UseN path_N)) ;
  Group = UseN group_N ;
  GroupOfPeople = AdvCN (UseN group_N) (PrepNP part_Prep (MassNP (UseN people_N))) ;
  Growth = UseN growth_N ;
  Guiding = UseN2 (VerbToNounV2 guide_V2) ;
  Hearing = UseN hearing_N ;
  Heating = UseN heating_N ;
  Hiring = UseN2 (VerbToNounV2 hire_V2) ;
  Hole = UseN hole_N ;
  Hormone = UseN hormone_N ;
  Hour = UseN hour_N ;
  House = UseN house_N ;
  Human = UseN human_N ;
  HumanLanguage = AdjCN (PositA human_A) (UseN language_N) ;
  Hunting = UseN hunting_N ;
  Icon = UseN icon_N ;
  ImaginaryNumber = AdjCN (PositA imaginary_A) (UseN number_N) ;
  Impacting = UseN2 (VerbToNounV2 impact_V2) ;
  Impelling = UseN2 (VerbToNounV2 impel_V2) ;
  Increasing = UseN2 (VerbToNounV2 increase_V2) ;
  InductiveArgument = AdjCN (PositA inductive_A) (UseN argument_N) ;
  InformationMeasure = ApposCN (UseN information_N) (MassNP (UseN measure_N)) ;
  Ingesting = UseN2 (VerbToNounV2 ingest_V2) ;
  Injecting = UseN2 (VerbToNounV2 inject_V2) ;
  Injuring = UseN2 (VerbToNounV2 injure_V2) ;
  Insect = UseN insect_N ;
  Inserting = UseN2 (VerbToNounV2 insert_V2) ;
  Integer = UseN integer_N ;
  IntentionalProcess = AdjCN (PositA intentional_A) (UseN process_N) ;
  IntentionalPsychologicalProcess = AdjCN (PositA intentional_A) (AdjCN (PositA psychological_A) (UseN process_N)) ;
  InternalAttribute = AdjCN (PositA internal_A) (UseN attribute_N) ;
  InternalChange = AdjCN (PositA internal_A) (UseN change_N) ;
  Interpreting = UseN2 (VerbToNounV2 interpret_V2) ;
  InvalidDeductiveArgument = AdjCN (PositA invalid_A) (AdjCN (PositA deductive_A) (UseN argument_N)) ;
  Invertebrate = UseN invertebrate_N ;
  Investigating = UseN2 (VerbToNounV2 investigate_V2) ;
  IrrationalNumber = AdjCN (PositA irrational_A) (UseN number_N) ;
  Island = UseN island_N ;
  January = UseN january_N ;
  JoiningAnOrganization = ApposCN (UseN2 (VerbToNounV2 join_V2)) (DetCN (DetQuant IndefArt NumSg) (UseN organization_N)) ;
  Judging = UseN2 (VerbToNounV2 judge_V2) ;
  JudicialOrganization = AdjCN (PositA judicial_A) (UseN organization_N) ;
  JudicialProcess = AdjCN (PositA judicial_A) (UseN process_N) ;
  July = UseN july_N ;
  June = UseN june_N ;
  Keeping = UseN keeping_N ;
  Killing = UseN killing_N ;
  LandArea = ApposCN (UseN land_N) (MassNP (UseN area_N)) ;
  Language = UseN language_N ;
  LeapYear = ApposCN (UseN leap_N) (MassNP (UseN year_N)) ;
  Learning = UseN learning_N ;
  LeavingAnOrganization = ApposCN (UseN2 (VerbToNounV2 leave_V2)) (DetCN (DetQuant IndefArt NumSg) (UseN organization_N)) ;
  LegalAction = AdjCN (PositA legal_A) (UseN action_N) ;
  LegalDecision = AdjCN (PositA legal_A) (UseN decision_N) ;
  Lending = UseN2 (VerbToNounV2 lend_V2) ;
  LengthMeasure = ApposCN (UseN length_N) (MassNP (UseN measure_N)) ;
  LinguisticCommunication = AdjCN (PositA linguistic_A) (UseN communication_N) ;
  LinguisticExpression = AdjCN (PositA linguistic_A) (UseN expression_N) ;
  LiquidMixture = AdjCN (PositA liquid_A) (UseN mixture_N) ;
  LiquidMotion = AdjCN (PositA liquid_A) (UseN motion_N) ;
  List = UseN list_N ;
  Listening = UseN (VerbToNoun listen_V) ;
  LogicalOperator = AdjCN (PositA logical_A) (UseN operator_N) ;
  Looking = UseN2 (VerbToNounV2 look_V2) ;
  Machine = UseN machine_N ;
  Maintaining = UseN2 (VerbToNounV2 maintain_V2) ;
  Making = UseN making_N ;
  Mammal = UseN mammal_N ;
  Man = UseN man_N ;
  Managing = UseN2 (VerbToNounV2 manage_V2) ;
  ManualHumanLanguage = AdjCN (PositA manual_A) (AdjCN (PositA human_A) (UseN language_N)) ;
  Manufacture = UseN manufacture_N ;
  Manufacturer = UseN manufacturer_N ;
  March = UseN march_N ;
  Marsupial = UseN marsupial_N ;
  MassMeasure = ApposCN (UseN mass_N) (MassNP (UseN measure_N)) ;
  Matriculation = UseN matriculation_N ;
  May = UseN may_N ;
  Measuring = UseN2 (VerbToNounV2 measure_V2) ;
  MeasuringDevice = AdjCN (PositA (VerbToGerundA measure_V)) (UseN device_N) ;
  Meat = UseN meat_N ;
  Meeting = UseN meeting_N ;
  Melting = UseN2 (VerbToNounV2 melt_V2) ;
  MercantileOrganization = AdjCN (PositA mercantile_A) (UseN organization_N) ;
  Metal = UseN metal_N ;
  MilitaryForce = AdjCN (PositA military_A) (UseN force_N) ;
  MilitaryOrganization = AdjCN (PositA military_A) (UseN organization_N) ;
  MilitaryProcess = AdjCN (PositA military_A) (UseN process_N) ;
  Mineral = UseN mineral_N ;
  Minute = UseN minute_N ;
  Mixture = UseN mixture_N ;
  Molecule = UseN molecule_N ;
  Monday = UseN monday_N ;
  Monkey = UseN monkey_N ;
  Month = UseN month_N ;
  Morpheme = UseN morpheme_N ;
  Moss = UseN moss_N ;
  Motion = UseN motion_N ;
  MotionDownward = AdvCN (UseN motion_N) downward_Adv ;
  MotionPicture = ApposCN (UseN motion_N) (MassNP (UseN picture_N)) ;
  MotionUpward = AdvCN (UseN motion_N) upward_Adv ;
  Muscle = UseN muscle_N ;
  Music = UseN music_N ;
  MusicalInstrument = AdjCN (PositA musical_A) (UseN instrument_N) ;
  Naming = UseN2 (VerbToNounV2 name_V2) ;
  Nation = UseN nation_N ;
  NaturalLanguage = AdjCN (PositA natural_A) (UseN language_N) ;
  NaturalProcess = AdjCN (PositA natural_A) (UseN process_N) ;
  NaturalSubstance = AdjCN (PositA natural_A) (UseN substance_N) ;
  NegativeInteger = AdjCN (PositA negative_A) (UseN integer_N) ;
  NegativeRealNumber = AdjCN (PositA negative_A) (AdjCN (PositA real_A) (UseN number_N)) ;
  Neutron = UseN neutron_N ;
  NormativeAttribute = AdjCN (PositA normative_A) (UseN attribute_N) ;
  Noun = UseN noun_N ;
  NounPhrase = ApposCN (UseN noun_N) (MassNP (UseN phrase_N)) ;
  November = UseN november_N ;
  NullSet = AdjCN (PositA null_A) (UseN set_N) ;
  Number = UseN number_N ;
  Nutrient = UseN nutrient_N ;
  Object = UseN object_N ;
  ObjectiveNorm = AdjCN (PositA objective_A) (UseN norm_N) ;
  October = UseN october_N ;
  OddInteger = AdjCN (PositA odd_A) (UseN integer_N) ;
  Offering = UseN offering_N ;
  OlfactoryAttribute = AdjCN (PositA olfactory_A) (UseN attribute_N) ;
  OneDimensionalFigure = AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN figure_N) ;
  OpenTwoDimensionalFigure = AdjCN (PositA open_A) (AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN figure_N)) ;
  Ordering = UseN ordering_N ;
  Organ = UseN organ_N ;
  OrganOrTissueProcess = ApposCN (ConjCN or_Conj (BaseCN (UseN organ_N) (UseN tissue_N))) (MassNP (UseN process_N)) ;
  OrganicObject = AdjCN (PositA organic_A) (UseN object_N) ;
  Organism = UseN organism_N ;
  OrganismProcess = ApposCN (UseN organism_N) (MassNP (UseN process_N)) ;
  Organization = UseN organization_N ;
  OrganizationalProcess = AdjCN (PositA organizational_A) (UseN process_N) ;
  Oval = UseN oval_N ;
  ParamilitaryOrganization = AdjCN (PositA paramilitary_A) (UseN organization_N) ;
  ParticleWord = ApposCN (UseN particle_N) (MassNP (UseN word_N)) ;
  Patent = UseN patent_N ;
  Perception = UseN perception_N ;
  PerceptualAttribute = AdjCN (PositA perceptual_A) (UseN attribute_N) ;
  Periodical = UseN periodical_N ;
  PermanentResidence = AdjCN (PositA permanent_A) (UseN residence_N) ;
  Phrase = UseN phrase_N ;
  Physical = AdjCN (PositA physical_A) (UseN entity_N) ;
  PhysicalAttribute = AdjCN (PositA physical_A) (UseN attribute_N) ;
  PhysicalQuantity = AdjCN (PositA physical_A) (UseN quantity_N) ;
  PhysicalState = AdjCN (PositA physical_A) (UseN state_N) ;
  PhysicalSystem = AdjCN (PositA physical_A) (UseN system_N) ;
  Plan = UseN plan_N ;
  PlaneAngleMeasure = ApposCN (ApposCN (UseN plane_N) (MassNP (UseN angle_N))) (MassNP (UseN measure_N)) ;
  Planning = UseN2 (VerbToNounV2 plan_V2) ;
  Plant = UseN plant_N ;
  PlantAnatomicalStructure = ApposCN (UseN plant_N) (MassNP (AdjCN (PositA anatomical_A) (UseN structure_N))) ;
  PlantSubstance = ApposCN (UseN plant_N) (MassNP (UseN substance_N)) ;
  Poisoning = UseN2 (VerbToNounV2 poison_V2) ;
  Poking = UseN2 (VerbToNounV2 poke_V2) ;
  PoliticalOrganization = AdjCN (PositA political_A) (UseN organization_N) ;
  PoliticalProcess = AdjCN (PositA political_A) (UseN process_N) ;
  Pollen = UseN pollen_N ;
  Position = UseN position_N ;
  PositiveInteger = AdjCN (PositA positive_A) (UseN integer_N) ;
  PositiveRealNumber = AdjCN (PositA positive_A) (AdjCN (PositA real_A) (UseN number_N)) ;
  Precipitation = UseN precipitation_N ;
  Predicting = UseN2 (VerbToNounV2 predict_V2) ;
  PrepositionalPhrase = AdjCN (PositA prepositional_A) (UseN phrase_N) ;
  Pretending = UseN2 (VerbToNounV2 pretend_V2) ;
  PrimaryColor = AdjCN (PositA primary_A) (UseN colour_N) ;
  Primate = UseN primate_N ;
  PrimeNumber = AdjCN (PositA prime_A) (UseN number_N) ;
  ProbabilityAttribute = ApposCN (UseN probability_N) (MassNP (UseN attribute_N)) ;
  Procedure = UseN procedure_N ;
  Process = UseN process_N ;
  Product = UseN product_N ;
  Proposition = UseN proposition_N ;
  Protein = UseN protein_N ;
  Proton = UseN proton_N ;
  PseudoGraph = AdjCN (PositA pseudo_A) (UseN graph_N) ;
  PsychologicalAttribute = AdjCN (PositA psychological_A) (UseN attribute_N) ;
  PsychologicalProcess = AdjCN (PositA psychological_A) (UseN process_N) ;
  Publication = UseN publication_N ;
  PureSubstance = AdjCN (PositA pure_A) (UseN substance_N) ;
  Pursuing = UseN2 (VerbToNounV2 pursue_V2) ;
  Putting = UseN2 (VerbToNounV2 put_V2) ;
  Quantity = UseN quantity_N ;
  QuantityChange = ApposCN (UseN quantity_N) (MassNP (UseN change_N)) ;
  Questioning = UseN2 (VerbToNounV2 question_V2) ;
  Radiating = UseN2 (VerbToNounV2 radiate_V2) ;
  RadiatingLight = AdjCN (PositA (VerbToGerundA radiate_V)) (UseN light_N) ;
  RadiatingSound = AdjCN (PositA (VerbToGerundA radiate_V)) (UseN sound_N) ;
  RationalNumber = AdjCN (PositA rational_A) (UseN number_N) ;
  Reading = UseN reading_N ;
  RealNumber = AdjCN (PositA real_A) (UseN number_N) ;
  Reasoning = UseN reasoning_N ;
  RecreationOrExercise = ConjCN or_Conj (BaseCN (UseN recreation_N) (UseN exercise_N)) ;
  Region = UseN region_N ;
  Releasing = UseN2 (VerbToNounV2 release_V2) ;
  ReligiousOrganization = AdjCN (PositA religious_A) (UseN organization_N) ;
  ReligiousProcess = AdjCN (PositA religious_A) (UseN process_N) ;
  Remembering = UseN2 (VerbToNounV2 remember_V2) ;
  Removing = UseN2 (VerbToNounV2 remove_V2) ;
  Repairing = UseN2 (VerbToNounV2 repair_V2) ;
  ReproductiveBody = AdjCN (PositA reproductive_A) (UseN body_N) ;
  Reptile = UseN reptile_N ;
  Requesting = UseN2 (VerbToNounV2 request_V2) ;
  Residence = UseN residence_N ;
  ResidentialBuilding = AdjCN (PositA residential_A) (UseN building_N) ;
  Roadway = UseN roadway_N ;
  Rodent = UseN rodent_N ;
  Room = UseN room_N ;
  Running = UseN running_N ;
  SaltWaterArea = AdjCN (PositA salt_A) (ApposCN (UseN water_N) (MassNP (UseN area_N))) ;
  SaturationAttribute = ApposCN (UseN saturation_N) (MassNP (UseN attribute_N)) ;
  Saturday = UseN saturday_N ;
  Second = UseN second_N ;
  Seed = UseN seed_N ;
  Seeing = UseN2 (VerbToNounV2 foresee_V2) ;
  Selecting = UseN2 (VerbToNounV2 select_V2) ;
  SelfConnectedObject = ApposCN (UseN self_N) (MassNP (AdjCN (PositA (VerbToParticipeA connect_V)) (UseN object_N))) ;
  Selling = UseN selling_N ;
  Sentence = UseN sentence_N ;
  SentientAgent = AdjCN (PositA sentient_A) (UseN agent_N) ;
  Separating = UseN2 (VerbToNounV2 separate_V2) ;
  September = UseN september_N ;
  Series = UseN series_N ;
  ServiceProcess = ApposCN (UseN service_N) (MassNP (UseN process_N)) ;
  Set = UseN set_N ;
  SetOrClass = ConjCN or_Conj (BaseCN (UseN set_N) (UseN class_N)) ;
  SexAttribute = ApposCN (UseN sex_N) (MassNP (UseN attribute_N)) ;
  SexualReproduction = AdjCN (PositA sexual_A) (UseN reproduction_N) ;
  ShapeAttribute = ApposCN (UseN shape_N) (MassNP (UseN attribute_N)) ;
  ShapeChange = ApposCN (UseN shape_N) (MassNP (UseN change_N)) ;
  Shooting = UseN shooting_N ;
  ShoreArea = ApposCN (UseN shore_N) (MassNP (UseN area_N)) ;
  Singing = UseN singing_N ;
  SingleAgentProcess = AdjCN (PositA single_A) (ApposCN (UseN agent_N) (MassNP (UseN process_N))) ;
  SingleFamilyResidence = AdjCN (PositA single_A) (ApposCN (UseN family_N) (MassNP (UseN residence_N))) ;
  Smelling = UseN2 (VerbToNounV2 smell_V2) ;
  Smoke = UseN smoke_N ;
  SocialInteraction = AdjCN (PositA social_A) (UseN interaction_N) ;
  SocialRole = AdjCN (PositA social_A) (UseN role_1_N) ;
  SocialUnit = AdjCN (PositA social_A) (UseN unit_N) ;
  SolidAngleMeasure = AdjCN (PositA solid_A) (ApposCN (UseN angle_N) (MassNP (UseN measure_N))) ;
  Solution = UseN solution_N ;
  SoundAttribute = AdjCN (PositA sound_A) (UseN attribute_N) ;
  Speaking = UseN2 (VerbToNounV2 bespeak_V2) ;
  SpokenHumanLanguage = AdjCN (PositA (VerbToParticipeA speak_V)) (AdjCN (PositA human_A) (UseN language_N)) ;
  Spore = UseN spore_N ;
  Sport = UseN sport_N ;
  StateChange = ApposCN (UseN state_N) (MassNP (UseN change_N)) ;
  StateOfMind = AdvCN (UseN state_N) (PrepNP part_Prep (MassNP (UseN mind_N))) ;
  StateOrProvince = ConjCN or_Conj (BaseCN (UseN state_N) (UseN province_N)) ;
  StaticWaterArea = AdjCN (PositA static_A) (ApposCN (UseN water_N) (MassNP (UseN area_N))) ;
  Stating = UseN2 (VerbToNounV2 state_V2) ;
  StationaryArtifact = AdjCN (PositA stationary_A) (UseN artifact_N) ;
  StreamWaterArea = ApposCN (ApposCN (UseN stream_N) (MassNP (UseN water_N))) (MassNP (UseN area_N)) ;
  SubatomicParticle = AdjCN (PositA subatomic_A) (UseN particle_N) ;
  SubjectiveAssessmentAttribute = AdjCN (PositA subjective_A) (ApposCN (UseN assessment_N) (MassNP (UseN attribute_N))) ;
  Substance = UseN substance_N ;
  Substituting = UseN2 (VerbToNounV2 substitute_V2) ;
  Summary = UseN summary_N ;
  Sunday = UseN sunday_N ;
  Supposing = UseN2 (VerbToNounV2 suppose_V2) ;
  SurfaceChange = ApposCN (UseN surface_N) (MassNP (UseN change_N)) ;
  Surgery = UseN surgery_N ;
  Suspension = UseN suspension_N ;
  Swimming = UseN swimming_N ;
  SymbolicString = AdjCN (PositA symbolic_A) (UseN string_N) ;
  SyntheticSubstance = AdjCN (PositA synthetic_A) (UseN substance_N) ;
  TactilePerception = AdjCN (PositA tactile_A) (UseN perception_N) ;
  TasteAttribute = ApposCN (UseN taste_N) (MassNP (UseN attribute_N)) ;
  Tasting = UseN2 (VerbToNounV2 taste_V2) ;
  TemperatureMeasure = ApposCN (UseN temperature_N) (MassNP (UseN measure_N)) ;
  TemporaryResidence = AdjCN (PositA temporary_A) (UseN residence_N) ;
  TerminatingEmployment = AdjCN (PositA (VerbToGerundA terminate_V)) (UseN employment_N) ;
  Text = UseN text_N ;
  TextureAttribute = ApposCN (UseN texture_N) (MassNP (UseN attribute_N)) ;
  TherapeuticProcess = AdjCN (PositA therapeutic_A) (UseN process_N) ;
  ThreeDimensionalFigure = AdjCN (PositA (compoundA (regA "three-dimensional"))) (UseN figure_N) ;
  Thursday = UseN thursday_N ;
  TimeDependentQuantity = ApposCN (ApposCN (UseN time_N) (MassNP (UseN dependent_N))) (MassNP (UseN quantity_N)) ;
  TimeDuration = ApposCN (UseN time_N) (MassNP (UseN duration_N)) ;
  TimeInterval = ApposCN (UseN time_N) (MassNP (UseN interval_N)) ;
  TimeMeasure = ApposCN (UseN time_N) (MassNP (UseN measure_N)) ;
  TimePoint = ApposCN (UseN time_N) (MassNP (UseN point_N)) ;
  TimePosition = ApposCN (UseN time_N) (MassNP (UseN position_N)) ;
  TimeZone = ApposCN (UseN time_N) (MassNP (UseN zone_N)) ;
  Tissue = UseN tissue_N ;
  Touching = UseN2 (VerbToNounV2 touch_V2) ;
  TraitAttribute = ApposCN (UseN trait_N) (MassNP (UseN attribute_N)) ;
  Transaction = UseN transaction_N ;
  Transfer = UseN transfer_N ;
  Translating = UseN2 (VerbToNounV2 translate_V2) ;
  Transportation = UseN transportation_N ;
  TransportationDevice = ApposCN (UseN transportation_N) (MassNP (UseN device_N)) ;
  Tree = UseN tree_N ;
  TruthValue = ApposCN (UseN truth_N) (MassNP (UseN value_N)) ;
  Tuesday = UseN tuesday_N ;
  TwoDimensionalAngle = AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN angle_N) ;
  TwoDimensionalFigure = AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN figure_N) ;
  Uncovering = UseN2 (VerbToNounV2 uncover_V2) ;
  UnilateralGetting = AdjCN (PositA unilateral_A) (UseN2 (VerbToNounV2 beget_V2)) ;
  UnilateralGiving = AdjCN (PositA unilateral_A) (UseN2 (VerbToNounV2 give_V2)) ;
  UniqueList = AdjCN (PositA unique_A) (UseN list_N) ;
  UnitOfAngularMeasure = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (AdjCN (PositA angular_A) (UseN measure_N)))) ;
  UnitOfArea = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN area_N))) ;
  UnitOfAtmosphericPressure = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (AdjCN (PositA atmospheric_A) (UseN pressure_N)))) ;
  UnitOfCurrency = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN currency_N))) ;
  UnitOfDuration = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN duration_N))) ;
  UnitOfFrequency = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN frequency_N))) ;
  UnitOfInformation = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN information_N))) ;
  UnitOfLength = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN length_N))) ;
  UnitOfMass = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN mass_N))) ;
  UnitOfMeasure = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN measure_N))) ;
  UnitOfTemperature = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN temperature_N))) ;
  UnitOfVolume = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN volume_N))) ;
  ValidDeductiveArgument = AdjCN (PositA valid_A) (AdjCN (PositA deductive_A) (UseN argument_N)) ;
  Vehicle = UseN vehicle_N ;
  Verb = UseN verb_N ;
  VerbPhrase = ApposCN (UseN verb_N) (MassNP (UseN phrase_N)) ;
  Vertebrate = UseN vertebrate_N ;
  ViolentContest = AdjCN (PositA violent_A) (UseN contest_N) ;
  Virus = UseN virus_N ;
  VisualAttribute = AdjCN (PositA visual_A) (UseN attribute_N) ;
  Vitamin = UseN vitamin_N ;
  VocalCords = AdjCN (PositA vocal_A) (UseN cord_N) ;
  Vocalizing = UseN2 (VerbToNounV2 vocalize_V2) ;
  VolumeMeasure = ApposCN (UseN volume_N) (MassNP (UseN measure_N)) ;
  Voting = UseN2 (VerbToNounV2 vote_V2) ;
  Walking = UseN walking_N ;
  War = UseN war_N ;
  Water = UseN water_N ;
  WaterArea = ApposCN (UseN water_N) (MassNP (UseN area_N)) ;
  WaterCloud = ApposCN (UseN water_N) (MassNP (UseN cloud_N)) ;
  WaterMotion = ApposCN (UseN water_N) (MassNP (UseN motion_N)) ;
  Weapon = UseN weapon_N ;
  WearableItem = AdjCN (PositA wearable_A) (UseN item_N) ;
  WeatherProcess = ApposCN (UseN weather_N) (MassNP (UseN process_N)) ;
  Wedding = UseN wedding_N ;
  Wednesday = UseN wednesday_N ;
  Week = UseN week_N ;
  Wetting = UseN wetting_N ;
  Wind = UseN wind_N ;
  Woman = UseN woman_N ;
  Word = UseN word_N ;
  Worm = UseN worm_N ;
  Writing = UseN writing_N ;
  Year = UseN year_N ;
  
  
  -- nullary functions 
  
  GreatestCommonDivisorFn ob = AdvNP (DetCN (DetQuantOrd DefArt NumSg (OrdSuperl great_A)) (AdjCN (PositA common_A) (UseN divisor_N))) (PrepNP part_Prep (ConjNP and_Conj ob)) ;
  LeastCommonMultipleFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA least_A) (AdjCN (PositA common_A) (UseN multiple_N)))) (PrepNP part_Prep (ConjNP and_Conj ob)) ;
  ListFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN list_N)) (PrepNP part_Prep (ConjNP and_Conj ob)) ;
  
  -- unary functions 
  
  AbsoluteValueFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA absolute_A) (UseN value_N))) (PrepNP part_Prep ob) ;
  AbstractionFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN abstraction_N)) (PrepNP part_Prep (MassNP ob)) ;
  BackFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN back_N)) (PrepNP part_Prep ob) ;
  BeginFn ob = AdvNP (DetCN (DetQuant DefArt NumPl) (UseN2 (VerbToNounV2 begin_V2))) (PrepNP part_Prep ob) ;
  BeginNodeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA initial_A) (UseN node_N))) (PrepNP part_Prep ob) ;
  CeilingFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN ceiling_N)) (PrepNP part_Prep ob) ;
  CenterOfCircleFn ob = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN centre_N)) (PrepNP part_Prep (MassNP (UseN circle_N)))) (PrepNP part_Prep ob) ;
  ComplementFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN complement_N)) (PrepNP part_Prep ob) ;
  CosineFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN cosine_N)) (PrepNP part_Prep ob) ;
  CutSetFn ob = AdvCN (AdjCN (PositA (VerbToParticipeA cut_V)) (UseN set_N)) (PrepNP part_Prep ob) ;
  DenominatorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN denominator_N)) (PrepNP part_Prep ob) ;
  EndFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN end_N)) (PrepNP part_Prep ob) ;
  EndNodeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN end_N) (MassNP (UseN node_N)))) (PrepNP part_Prep ob) ;
  ExtensionFn ob = AdvCN (UseN extension_N) (PrepNP part_Prep  ob) ;
  FloorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN floor_N)) (PrepNP part_Prep ob) ;
  FrontFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN front_N)) (PrepNP part_Prep ob) ;
  FutureFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN future_N)) (PrepNP part_Prep ob) ;
  GeneralizedIntersectionFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA (VerbToParticipeA generalize_V)) (UseN intersection_N))) (PrepNP part_Prep (MassNP ob)) ;
  GeneralizedUnionFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA (VerbToParticipeA generalize_V)) (UseN union_N))) (PrepNP part_Prep (MassNP  ob)) ;
  GovernmentFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN government_N)) (PrepNP part_Prep  ob) ;
  HoleHostFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN hole_N) (MassNP (UseN host_N)))) (PrepNP part_Prep ob) ;
  HoleSkinFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN hole_N) (MassNP (UseN skin_N)))) (PrepNP part_Prep ob) ;
  ImaginaryPartFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA imaginary_A) (UseN part_N))) (PrepNP part_Prep ob) ;
  ImmediateFamilyFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA immediate_A) (UseN family_N))) (PrepNP part_Prep ob) ;
  ImmediateFutureFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA immediate_A) (UseN future_N))) (PrepNP part_Prep ob) ;
  ImmediatePastFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA immediate_A) (UseN past_N))) (PrepNP part_Prep ob) ;
  InitialNodeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA initial_A) (UseN node_N))) (PrepNP part_Prep ob) ;
  IntegerSquareRootFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (AdvCN (UseN integer_N) square_Adv) (MassNP (UseN root_N)))) (PrepNP part_Prep ob) ;
  MagnitudeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN magnitude_N)) (PrepNP part_Prep ob) ;
  MinimalCutSetFn ob = AdvCN (AdjCN (PositA minimal_A) (AdjCN (PositA (VerbToParticipeA cut_V)) (UseN set_N))) (PrepNP part_Prep ob) ;
  NumeratorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN numerator_N)) (PrepNP part_Prep ob) ;
  PastFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN past_N)) (PrepNP part_Prep ob) ;
  PathWeightFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN path_N) (MassNP (UseN weight_N)))) (PrepNP part_Prep ob) ;
  PowerSetFn ob = AdvCN (ApposCN (UseN power_N) (MassNP (UseN set_N))) (PrepNP part_Prep ob) ;
  PredecessorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN predecessor_N)) (PrepNP part_Prep ob) ;
  PremisesFn ob = AdvNP (DetCN (DetQuant DefArt NumPl) (UseN premise_N)) (PrepNP part_Prep ob) ;
  ProbabilityFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN probability_N)) (PrepNP part_Prep (sentToNoun ob)) ;
  PropertyFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN property_N)) (PrepNP part_Prep ob) ;
  RationalNumberFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA rational_A) (UseN number_N))) (PrepNP part_Prep ob) ;
  RealNumberFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA real_A) (UseN number_N))) (PrepNP part_Prep ob) ;
  ReciprocalFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN reciprocal_N)) (PrepNP part_Prep ob) ;
  RoundFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA round_A) (UseN value_N))) (PrepNP part_Prep ob) ;
  SineFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN sine_N)) (PrepNP part_Prep ob) ;
  SquareRootFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA square_A) (UseN root_N))) (PrepNP part_Prep ob) ;
  SuccessorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN successor_N)) (PrepNP part_Prep ob) ;
  TangentFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN tangent_N)) (PrepNP part_Prep ob) ;
  TerminalNodeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA terminal_A) (UseN node_N))) (PrepNP part_Prep ob) ;
  UnitFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN unit_N)) (PrepNP part_Prep ob) ;
  WealthFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN wealth_N)) (PrepNP part_Prep ob) ;
  WhenFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN time_N)) (PrepNP part_Prep ob) ;
  YearFn ob = AdvCN (UseN year_N) (PrepNP part_Prep ob) ;
  KiloFn ob = AdvNP (MassNP (UseN kilo_N)) (PrepNP part_Prep ob) ;
  ListLengthFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN length_N)) (PrepNP part_Prep ob) ;
  SignumFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN sign_N)) (PrepNP part_Prep ob) ;
  
  -- binary functions 
  
  AdditionFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN addition_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
  DayFn ob1 ob2 = AdvCN (ApposCN (UseN day_N) ob1) (PrepNP part_Prep (MassNP ob2)) ;
  DivisionFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN division_N)) (PrepNP part_Prep ob1)) (PrepNP to_Prep ob2) ;
  EditionFn ob1 ob2 = AdvCN (ApposCN (UseN edition_N) (MassNP ob1)) (PrepNP part_Prep ob2) ;
  ExponentiationFn ob1 ob2 = AdvNP (AdvNP ob1 (PrepNP to_Prep (DetCN (DetQuant DefArt NumSg) (UseN power_N)))) (PrepNP part_Prep ob2) ;
  GraphPathFn ob1 ob2 = AdvCN (UseN path_N) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
  HourFn ob1 ob2 = AdvCN (ApposCN (UseN hour_N) ob1) (PrepNP part_Prep (MassNP ob2)) ;
  IntersectionFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN intersection_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
  IntervalFn ob1 ob2 = AdvCN (AdvCN (UseN interval_N) (PrepNP from_Prep ob1)) (PrepNP to_Prep ob2) ;
  ListConcatenateFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN concatenation_N)) (PrepNP part_Prep ob1)) (PrepNP to_Prep ob2) ;
  ListOrderFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN element_N)) (PrepNP with_Prep (MassNP (ApposCN (UseN number_N) ob2)))) (PrepNP in_Prep ob1) ;
  LogFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN logarithm_N)) (PrepNP part_Prep ob1)) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN base_N) ob2))) ;
  MaxFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN maximum_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
  MaximalWeightedPathFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN path_N)) (PrepNP part_Prep (MassNP (AdjCN (PositA maximal_A) (UseN weight_N))))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
  MinFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN minimum_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
  MinimalWeightedPathFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN path_N)) (PrepNP part_Prep (MassNP (AdjCN (PositA minimal_A) (UseN weight_N))))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
  MinuteFn ob1 ob2 = AdvCN (ApposCN (UseN minute_N) ob1) (PrepNP part_Prep (MassNP ob2)) ;
  MonthFn ob1 ob2 = AdvCN (ApposCN (UseN month_N) (MassNP ob1)) (PrepNP part_Prep (MassNP ob2)) ;
  MultiplicationFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN multiplication_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
  PerFn ob1 ob2 = AdvNP ob1 (PrepNP per_Prep ob2) ;
  PeriodicalIssueFn ob1 ob2 = AdvCN (AdvCN (AdjCN (PositA periodical_A) (UseN issue_N)) (PrepNP part_Prep (MassNP ob1))) (PrepNP with_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN number_N) ob2))) ;
  RecurrentTimeIntervalFn ob1 ob2 = AdvCN (AdjCN (PositA recurrent_A) (ApposCN (UseN time_N) (MassNP (UseN interval_N)))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP (MassNP ob1) (MassNP ob2)))) ;
  RelativeComplementFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (AdvCN (UseN complement_N) (PrepNP part_Prep ob2)) (MassNP (UseN relative_N)))) (PrepNP to_Prep ob1) ;
  RelativeTimeFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (ApposCN (UseN time_N) ob1) (MassNP (UseN relative_N)))) (PrepNP to_Prep ob2) ;
  RemainderFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN remainder_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
  SecondFn ob1 ob2 = AdvCN (ApposCN (UseN second_N) ob1) (PrepNP part_Prep (MassNP ob2)) ;
  SeriesVolumeFn ob1 ob2 = AdvCN (ApposCN (UseN volume_N) ob2) (PrepNP in_Prep (DetCN (DetQuant DefArt NumPl) (ApposCN (UseN series_N) (MassNP ob1)))) ;
  SubtractionFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN subtraction_N)) (PrepNP part_Prep ob2)) (PrepNP from_Prep ob1) ;
  TemporalCompositionFn ob1 ob2 = AdvCN (AdjCN (PositA temporal_A) (UseN composition_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 (MassNP ob2)))) ;
  TimeIntervalFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN time_N) (MassNP (UseN interval_N)))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
  UnionFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN union_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
  WhereFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN location_N)) (PrepNP part_Prep ob1)) (PrepNP at_Prep ob2) ;
  DensityFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant IndefArt NumSg) (UseN density_N)) (PrepNP part_Prep ob1)) (PrepNP per_Prep ob2) ;
  SpeedFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant IndefArt NumSg) (UseN speed_N)) (PrepNP part_Prep ob1)) (PrepNP per_Prep ob2) ;
  
  -- quaternary functions 
  
  VelocityFn ob1 ob2 ob3 ob4 = AdvNP (AdvNP (AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN velocity_N)) (PrepNP part_Prep ob1)) (PrepNP per_Prep ob2)) (PrepNP part_Prep ob3)) (PrepNP to_Prep ob4) ;
  
  
  -- nullary predicates
  
  contraryAttribute ob1 = mkPolSent (PredVP (ConjNP and_Conj ob1) (UseComp (CompNP (MassNP (AdjCN (PositA contrary_A) (UseN attribute_N)))))) ;
  exhaustiveAttribute ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj ob2) (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA exhaustive_A) (UseN decomposition_N))))) (PrepNP part_Prep (MassNP ob1))) (PrepNP in_Prep (DetCN (DetQuant IndefArt NumPl) (UseN instance_N))))) ;
  exhaustiveDecomposition ob1 ob2 = mkPolSent (PredVP (MassNP (ConjCN and_Conj ob2)) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA exhaustive_A) (UseN decomposition_N))))) (PrepNP part_Prep (MassNP ob1)))) ;
  partition ob1 ob2 = mkPolSent (PredVP (MassNP (ConjCN and_Conj ob2)) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN partition_N)))) (PrepNP part_Prep (MassNP ob1)))) ;
  
  
  
  -- binary predicates   
  abstractCounterpart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA abstract_A) (UseN counterpart_N))))) (PrepNP part_Prep ob2))) ;
  acquaintance ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN acquaintance_N)))) (PrepNP part_Prep ob2))) ;
  atomicNumber ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA atomic_A) (UseN number_N))))) (PrepNP part_Prep ob2))) ;
  authors ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN author_N)))) (PrepNP part_Prep (MassNP ob2)))) ;
  average ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN average_N)))) (PrepNP part_Prep ob2))) ;
  barometricPressure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA barometric_A) (UseN pressure_N))))) (PrepNP part_Prep ob2))) ;
  believes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a believe_V2) (sentToNoun ob2))) ;
  boilingPoint ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumPl) (ApposCN (UseN2 (VerbToNounV2 boil_V2)) (MassNP (UseN point_N)))))) (PrepNP part_Prep ob2))) ;
  causes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a cause_V2) ob2)) ;
  causesProposition ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (ComplSlash (SlashV2a cause_V2) (sentToNoun ob2))) ;
  causesSubclass ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (ComplSlash (SlashV2a cause_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN class_N))))) (PrepNP part_Prep (MassNP ob2)))) ;
  citizen ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN citizen_N)))) (PrepNP part_Prep ob2))) ;
  conclusion ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN conclusion_N)))) (PrepNP part_Prep ob2))) ;
  connected ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 connect_V2) (PrepNP to_Prep ob2))) ;
  considers ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a consider_V2) (sentToNoun ob2))) ;
  consistent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (PositA consistent_A))) (PrepNP with_Prep ob2))) ;
  containsInformation ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a contain_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN information_N) ob2)))) ;
  cooccur ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseV occur_V) (PositAdvAdj simultaneous_A)) (PrepNP with_Prep ob2))) ;
  copy ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN copy_N)))) (PrepNP part_Prep ob2))) ;
  date ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN date_N)))) (PrepNP part_Prep ob2))) ;
  decreasesLikelihood ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (AdvVP (ComplSlash (SlashV2a decrease_V2) (DetCN (DetQuant DefArt NumSg) (UseN possibility_N))) (PrepNP part_Prep (sentToNoun ob2)))) ;
  desires ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a desire_V2) (sentToNoun ob2))) ;
  diameter ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN diameter_N)))) (PrepNP part_Prep ob2))) ;
  duration ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN duration_N)))) (PrepNP part_Prep ob2))) ;
  earlier ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAP (ComparA early_A ob2)))) ;
  editor ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN editor_N)))) (PrepNP part_Prep (MassNP ob2)))) ;
  element ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN element_N)))) (PrepNP part_Prep ob2))) ;
  employs ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a employ_V2) ob2)) ;
  entails ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (ComplSlash (SlashV2a entail_V2) (sentToNoun ob2))) ;
  equal ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (PositA equal_A))) (PrepNP to_Prep ob2))) ;
  exploits ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a exploit_V2) ob2)) ;
  expressedInLanguage ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 express_V2) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob2))))) ;
  faces ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a face_V2) ob2)) ;
  familyRelation ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN family_N) (MassNP (UseN relation_N)))))) (PrepNP part_Prep ob2))) ;
  frequency ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN frequency_N)))) (PrepNP part_Prep ob2))) ;
  geometricPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA geometric_A) (UseN part_N))))) (PrepNP part_Prep ob2))) ;
  graphMeasure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN measure_N)))) (PrepNP part_Prep ob2))) ;
  graphPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN part_N)))) (PrepNP part_Prep ob2))) ;
  hasPurpose ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN purpose_N) (sentToNoun ob2))))) ;
  hasSkill ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN skill_N)  ob2)))) ;
  holdsDuring ob1 ob2 = mkPolSent (PredVP (sentToNoun ob2) (AdvVP (UseV hold_V) (PrepNP during_Prep ob1))) ;
  holdsObligation ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (ComplSlash (SlashV2a behold_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN obligation_N) ob2)))) ;
  holdsRight ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (ComplSlash (SlashV2a behold_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN right_N)  ob2)))) ;
  hole ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN hole_N)))) (PrepNP part_Prep ob2))) ;
  identicalListItems ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA identical_A) (UseN item_N))))) ;
  inList ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN element_N)))) (PrepNP part_Prep ob2))) ;
  increasesLikelihood ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (AdvVP (ComplSlash (SlashV2a increase_V2) (DetCN (DetQuant DefArt NumSg) (UseN possibility_N))) (PrepNP part_Prep (sentToNoun ob2)))) ;
  independentProbability ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP (sentToNoun ob1) (sentToNoun ob2))) (ComplSlash (SlashV2a have_V2) (MassNP (AdjCN (PositA independent_A) (UseN probability_N))))) ;
  inhabits ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a inhabit_V2) ob2)) ;
  inhibits ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (ComplSlash (SlashV2a inhibit_V2) (MassNP ob2))) ;
  knows ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a know_V2) (sentToNoun ob2))) ;
  larger ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAP (ComparA large_A ob2)))) ;
  leader ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN leader_N)))) (PrepNP part_Prep ob2))) ;
  legalRelation ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA legal_A) (UseN relation_N))))) (PrepNP part_Prep ob2))) ;
  lessThanOrEqualTo ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (ConjAP or_Conj (BaseAP (PositA less_A) (PositA equal_A))))) (PrepNP to_Prep ob2))) ;
  lineMeasure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN measure_N)))) (PrepNP part_Prep ob2))) ;
  material ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN material_N)))) (PrepNP part_Prep ob2))) ;
  measure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN measure_N)))) (PrepNP part_Prep ob2))) ;
  meltingPoint ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumPl) (ApposCN (UseN2 (VerbToNounV2 melt_V2)) (MassNP (UseN point_N)))))) (PrepNP part_Prep ob2))) ;
  multiplicativeFactor ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN factor_N)))) (PrepNP part_Prep ob2))) ;
  mutualAcquaintance ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA mutual_A) (UseN acquaintance_N)))))) ;
  needs ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a need_V2) ob2)) ;
  parallel ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (PositA parallel_A))) (PrepNP to_Prep ob2))) ;
  parent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN parent_N)))) (PrepNP part_Prep ob2))) ;
  partialOrderingOn c p = mkPolSent (PredVP (sentToNoun p) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA partial_A) (UseN ordering_N))))) (PrepNP on_Prep (DetCN (DetQuant IndefArt NumSg) c)))) ;
  pathLength ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN length_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN path_N) ob2))))) ;
  possesses ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a possess_V2) ob2)) ;
  precondition ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN precondition_N)))) (PrepNP part_Prep (MassNP ob2)))) ;
  premise ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN premise_N)))) (PrepNP part_Prep ob2))) ;
  prevents ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (ComplSlash (SlashV2a prevent_V2) (MassNP ob2))) ;
  property ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN property_N)))) (PrepNP part_Prep ob2))) ;
  publishes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a publish_V2) (MassNP ob2))) ;
  radius ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN radius_N)))) (PrepNP part_Prep ob2))) ;
  refers ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseV refer_V) (PrepNP to_Prep ob2))) ;
  reflexiveOn c p = mkPolSent (PredVP (sentToNoun p) (AdvVP (UseComp (CompAP (PositA reflexive_A))) (PrepNP on_Prep (DetCN (DetQuant IndefArt NumSg) c)))) ;
  relatedEvent ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA (VerbToParticipeA relate_V)) (UseN event_N)))))) ;
  relatedInternalConcept ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA (VerbToParticipeA relate_V)) (AdjCN (PositA internal_A) (UseN concept_N))))))) ;
  relative ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN relative_N)))) (PrepNP part_Prep ob2))) ;
  sibling ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN sibling_N)))) (PrepNP part_Prep ob2))) ;
  smaller ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAP (ComparA small_A ob2)))) ;
  subAttribute ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN attribute_N)))))) (PrepNP part_Prep ob2))) ;
  subCollection ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN collection_N)))))) (PrepNP part_Prep ob2))) ;
  subGraph ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN graph_N)))))) (PrepNP part_Prep ob2))) ;
  subList ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN list_N)))))) (PrepNP part_Prep ob2))) ;
  subProcess ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN process_N)))))) (PrepNP part_Prep ob2))) ;
  subProposition ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN proposition_N)))))) (PrepNP part_Prep ob2))) ;
  subSystem ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN system_N)))))) (PrepNP part_Prep ob2))) ;
  subclass ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN class_N)))))) (PrepNP part_Prep ob2))) ;
  
  subsumesContentClass ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (ComplSlash (SlashV2a subsume_V2) (DetCN (DetQuant DefArt NumSg) (UseN content_N))) (PrepNP part_Prep (MassNP ob2)))) ;
  subsumesContentInstance ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a subsume_V2) (DetCN (DetQuant DefArt NumSg) (UseN content_N))) (PrepNP part_Prep ob2))) ;
  successorAttribute ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN successor_N) (MassNP (UseN attribute_N)))))) (PrepNP part_Prep ob2))) ;
  systemPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN part_N)))) (PrepNP part_Prep ob2))) ;
  temporalPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA temporal_A) (UseN part_N))))) (PrepNP part_Prep ob2))) ;
  time ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN time_N)))) (PrepNP part_Prep ob2))) ;
  totalOrderingOn c p = mkPolSent (PredVP (sentToNoun p) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA total_A) (UseN ordering_N))))) (PrepNP on_Prep (DetCN (DetQuant IndefArt NumSg) c)))) ;
  traverses ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a traverse_V2) ob2)) ;
  uses ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a use_V2) ob2)) ;
  version ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN version_N)))) (PrepNP part_Prep (MassNP ob2)))) ;
  wants ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a want_V2) ob2)) ;
  wears ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a outwear_V2) ob2)) ;
  weight ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN weight_N)))) (PrepNP part_Prep ob2))) ;
  age ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN age_N)))) (PrepNP part_Prep ob2))) ;
  agent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN agent_N)))) (PrepNP part_Prep ob2))) ;
  ancestor ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN ancestor_N)))) (PrepNP part_Prep ob2))) ;
  angleOfFigure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN angle_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN figure_N) ob2))))) ;
  attends ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a attend_V2) ob2)) ;
  attribute ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN attribute_N)))) (PrepNP part_Prep ob2))) ;
  before ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAdv (PrepNP before_Prep ob2)))) ;
  bottom ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN bottom_N)))) (PrepNP part_Prep ob2))) ;
  side ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN side_N)))) (PrepNP part_Prep ob2))) ;
  surface ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN surface_N)))) (PrepNP part_Prep ob2))) ;
  top ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN top_N)))) (PrepNP part_Prep ob2))) ;
  brother ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN brother_N)))) (PrepNP part_Prep ob2))) ;
  fills ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a fill_V2) ob2)) ;
  completelyFills ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj complete_A)) (ComplSlash (SlashV2a fill_V2) ob2)) ;
  properlyFills ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj proper_A)) (ComplSlash (SlashV2a fill_V2) ob2)) ;
  exactlyLocated ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA exact_A) (UseN location_N))))) (PrepNP part_Prep ob1))) ;
  partiallyFills ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj partial_A)) (ComplSlash (SlashV2a fill_V2) ob2)) ;
  component ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN component_N)))) (PrepNP part_Prep ob2))) ;
  contains ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a contain_V2) ob2)) ;
  crosses ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a cross_V2) ob2)) ;
  destination ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN destination_N)))) (PrepNP part_Prep ob2))) ;
  direction ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN direction_N)))) (PrepNP part_Prep ob2))) ;
  during ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseV happen_V) (PrepNP during_Prep ob2))) ;
  equivalentContentClass ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP (MassNP ob1) (MassNP ob2))) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA equivalent_A) (UseN content_N))))) ;
  finishes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a finish_V2) ob2)) ;
  grasps ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a grasp_V2) ob2)) ;
  penetrates ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a penetrate_V2) ob2)) ;
  height ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN height_N)))) (PrepNP part_Prep ob2))) ;
  length ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN length_N)))) (PrepNP part_Prep ob2))) ;
  width ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN width_N)))) (PrepNP part_Prep ob2))) ;
  home ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN home_N)))) (PrepNP part_Prep ob2))) ;
  husband ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN husband_N)))) (PrepNP part_Prep ob2))) ;
  wife ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN wife_N)))) (PrepNP part_Prep ob2))) ;
  instrument ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN instrument_N)))) (PrepNP part_Prep ob2))) ;
  result ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN result_N)))) (PrepNP part_Prep ob2))) ;
  interiorPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN interior_N)))) part_Adv) (PrepNP part_Prep ob2))) ;
  linearExtent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA linear_A) (UseN extent_N))))) (PrepNP part_Prep ob2))) ;
  located ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN location_N)))) (PrepNP part_Prep ob1))) ;
  manner ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN manner_N)))) (PrepNP part_Prep ob2))) ;
  member ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN member_N)))) (PrepNP part_Prep ob2))) ;
  monetaryValue ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA monetary_A) (UseN value_N))))) (PrepNP part_Prep ob2))) ;
  names ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN name_N)))) (PrepNP part_Prep ob2))) ;
  origin ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN origin_N)))) (PrepNP part_Prep ob2))) ;
  part ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN part_N)))) (PrepNP part_Prep ob2))) ;
  path ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN path_N)))) (PrepNP part_Prep ob2))) ;
  mother ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN mother_N)))) (PrepNP part_Prep ob2))) ;
  father ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN father_N)))) (PrepNP part_Prep ob2))) ;
  daughter ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN daughter_N)))) (PrepNP part_Prep ob2))) ;
  son ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN son_N)))) (PrepNP part_Prep ob2))) ;
  patient ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN patient_N)))) (PrepNP part_Prep ob2))) ;
  piece ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN piece_N)))) (PrepNP part_Prep ob2))) ;
  pointOfFigure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN point_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN figure_N) ob2))))) ;
  properPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA proper_A) (UseN part_N))))) (PrepNP part_Prep ob2))) ;
  realization ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN realization_N)))) (PrepNP part_Prep ob2))) ;
  represents ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a represent_V2) ob2)) ;
  sister ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN sister_N)))) (PrepNP part_Prep ob2))) ;
  spouse ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN spouse_N)))) (PrepNP part_Prep ob2))) ;
  starts ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a start_V2) ob2)) ;
  stays ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a stay_V2) ob2)) ;
  subOrganization ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN organization_N)))))) (PrepNP part_Prep ob2))) ;
  subPlan ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN plan_N)))))) (PrepNP part_Prep ob2))) ;
  superficialPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA superficial_A) (UseN part_N))))) (PrepNP part_Prep ob2))) ;
  truth ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN truth_N) (MassNP (UseN value_N)))))) (PrepNP part_Prep ob2))) ;
  angularMeasure ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA angular_A) (UseN measure_N))))) (PrepNP part_Prep ob1))) ;
  arcWeight ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN weight_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN arc_N) ob1))))) ;
  geographicSubregion ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN region_N)))))) (PrepNP part_Prep ob2))) ;
  involvedInEvent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 involve_V2) (PrepNP in_Prep ob2))) ;
  meetsTemporally ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj temporal_A)) (ComplSlash (SlashV2a meet_V2) ob2)) ;
  partlyLocated ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA partial_A) (UseN location_N))))) (PrepNP part_Prep ob1))) ;
  geopoliticalSubdivision ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN division_N)))))) (PrepNP part_Prep ob2))) ;
  immediateSubclass ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA immediate_A) (ApposCN (UseN sub_N) (MassNP (UseN class_N))))))) (PrepNP part_Prep ob2))) ;
  meetsSpatially ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj spatial_A)) (ComplSlash (SlashV2a meet_V2) ob2)) ;
  overlapsPartially ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj partial_A)) (ComplSlash (SlashV2a overlap_V2) ob2)) ;
  overlapsSpatially ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj spatial_A)) (ComplSlash (SlashV2a overlap_V2) ob2)) ;
  subset ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN set_N)))))) (PrepNP part_Prep ob2))) ;
  greaterThan ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAP (ComparA great_A ob2)))) ;
  greaterThanOrEqualTo ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (ConjAP or_Conj (BaseAP (UseComparA great_A) (PositA equal_A))))) (PrepNP to_Prep ob2))) ;
  inScopeOfInterest ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 interest_V2) (PrepNP in_Prep ob2))) ;
  overlapsTemporally ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj temporal_A)) (ComplSlash (SlashV2a overlap_V2) ob2)) ;
  engineeringSubcomponent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN component_N)))))) (PrepNP part_Prep ob2))) ;
  equivalentContentInstance ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA equivalent_A) (UseN content_N))))) ;
  successorAttributeClosure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (ApposCN (UseN successor_N) (MassNP (UseN attribute_N))) (MassNP (UseN closure_N)))))) (PrepNP part_Prep ob2))) ;
  transactionAmount ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN amount_N)))) (PrepNP part_Prep ob2))) ;
  connectedEngineeringComponents ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (PassV2 connect_V2)) ;
  
  
  -- ternary predicate 
  
  between ob1 ob2 ob3 = mkPolSent (PredVP ob2 (UseComp (CompAdv (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob3)))))) ;
  conditionalProbability ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN probability_N)))) (PrepNP part_Prep (PPartNP (sentToNoun ob1) condition_V2))) (PrepNP by8agent_Prep (sentToNoun ob2)))) ;
  confersNorm ob1 ob2 ob3 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a confer_V2) (ConjNP and_Conj (BaseNP ob3 (sentToNoun ob2))))) ;
  confersObligation ob1 ob2 ob3 = mkPolSent (PredVP (sentToNoun ob1) (AdvVP (AdvVP (ComplSlash (SlashV2a confer_V2) (DetCN (DetQuant DefArt NumSg) (UseN obligation_N))) (PrepNP part_Prep ob3)) (PrepNP to_Prep  ob2))) ;
  confersRight ob1 ob2 ob3 = mkPolSent (PredVP (sentToNoun ob1) (AdvVP (AdvVP (ComplSlash (SlashV2a confer_V2) (DetCN (DetQuant DefArt NumSg) (UseN right_N))) (PrepNP part_Prep ob3)) (PrepNP to_Prep ob2))) ;
  connects ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a connect_V2) ob2) (PrepNP to_Prep ob3))) ;
  deprivesNorm ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a deprive_V2) ob3) (PrepNP to_Prep ( sentToNoun ob2)))) ;
  distance ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN distance_N)))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))))) ;
  documentation ob1 ob2 ob3 = mkPolSent (PredVP ob2 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN documentation_N)))) (PrepNP part_Prep ob1)) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob2))))) ;
  geometricDistance ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA geometric_A) (UseN distance_N))))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))))) ;
  hasPurposeForAgent ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN purpose_N) (sentToNoun ob2)))) (PrepNP for_Prep (MassNP (ApposCN (UseN agent_N) ob3))))) ;
  links ob1 ob2 ob3 = mkPolSent (PredVP ob3 (ComplSlash (SlashV2a link_V2) (ConjNP and_Conj (BaseNP ob1 ob2)))) ;
  occupiesPosition ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a occupy_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN position_N) ob2))) (PrepNP in_Prep ob3))) ;
  orientation ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN orientation_N)))) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))))) ;
  pointOfIntersection ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN point_N)))) (PrepNP part_Prep (MassNP (UseN intersection_N)))) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))))) ;
  relatedExternalConcept ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA (VerbToParticipeA relate_V)) (AdjCN (PositA external_A) (UseN concept_N)))))) (PrepNP part_Prep ob2)) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob3))))) ;
  representsForAgent ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a represent_V2) ob2) (PrepNP for_Prep ob3))) ;
  representsInLanguage ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a represent_V2) ob2) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob3))))) ;
  temporallyBetween ob1 ob2 ob3 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompAdv (PositAdvAdj temporal_A))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob3))))) ;
  temporallyBetweenOrEqual ob1 ob2 ob3 = mkPolSent (PredVP ob2 (AdvVP (AdvVP (UseComp (CompAdv (PositAdvAdj temporal_A))) (ConjAdv or_Conj (BaseAdv between_Adv (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA same_A) (UseN time_N))))))) (PrepNP with_Prep (ConjNP or_Conj (BaseNP ob1 ob3))))) ;
  altitude ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (AdvCN (UseN altitude_N) (PrepNP part_Prep ob1)) (MassNP (UseN relative_N)))))) (PrepNP to_Prep ob2))) ;
  connectsEngineeringComponents ob1 ob2 ob3 = mkPolSent (PredVP ob3 (ComplSlash (SlashV2a connect_V2) (ConjNP and_Conj (BaseNP ob2 ob3)))) ;
  depth ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (AdvCN (UseN depth_N) (PrepNP part_Prep ob1)) (MassNP (UseN relative_N)))))) (PrepNP to_Prep ob2))) ;
  synonymousExternalConcept ob1 ob2 ob3 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA synonymous_A) (AdjCN (PositA external_A) (UseN concept_N)))))) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob3))))) ;
  greaterThanByQuality ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (AdvVP (UseV (mkV "have")) more_Adv) (PrepNP part_Prep (PPartNP ob3 compare_V2))) (PrepNP to_Prep ob2))) ;
  prefers ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a prefer_V2) (sentToNoun ob2)) (PrepNP to_Prep (sentToNoun ob3)))) ;
  
  --relations
  AsymmetricRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA asymmetric_A) (UseN relation_N)))))) ;
  EquivalenceRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN equivalence_N) (MassNP (UseN relation_N))))))) ;
  IntransitiveRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA intransitive_A) (UseN relation_N)))))) ;
  -- OneToOneFunction c1 c2 f = mkPolSent(PredVP f (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdvCN (UseN one_N) (PrepNP to_Prep (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01))))))) (UseN function_N)))))))) ;
  PartialOrderingRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA partial_A) (ApposCN (UseN2 (VerbToNounV2 order_V2)) (MassNP (UseN relation_N)))))))) ;
  SequenceFunction c f = mkPolSent(PredVP  f (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sequence_N) (MassNP (UseN function_N))))))) ;
  ReflexiveRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA reflexive_A) (UseN relation_N)))))) ;
  SymmetricRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA symmetric_A) (UseN relation_N)))))) ;
  TotalOrderingRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA total_A) (ApposCN (UseN2 (VerbToNounV2 order_V2)) (MassNP (UseN relation_N)))))))) ;
  TransitiveRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA transitive_A) (UseN relation_N)))))) ;
  IntentionalRelation c1 c2 f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA intentional_A) (UseN relation_N)))))) ;
  subRelation2El c1 c2 c3 c4 f g = mkPolSent (PredVP (sentToNoun f) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN relation_N)))))) (PrepNP part_Prep (sentToNoun g)))) ;
  identityElement c f elem = mkPolSent (PredVP elem (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN identity_N) (MassNP (UseN element_N)))))) (PrepNP part_Prep f))) ;
  inverse c f g = mkPolSent (PredVP (sentToNoun f) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN inverse_N)))) (PrepNP part_Prep (sentToNoun g)))) ;

  --others
  toInt x = {s = \\c => x.s; a = agrP3 Sg; lock_NP = <>} ;
  toRealNum x = {s = \\c => x.s; a = agrP3 Sg; lock_NP = <>} ;
};
