File size: 115,625 Bytes
6af5ff5 a1aef88 6af5ff5 a1aef88 6af5ff5 a1aef88 6af5ff5 a1aef88 6af5ff5 a1aef88 0e62cc9 a1aef88 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 | API_KEY = ''
GEMINI_KEY = ''
COHERE_KEY = ''
FORMAT_LONG = '''{
"sightingDetails": {
"DenseNarrativeSection": "Short Free-form dense narrative description of the event from the omniscient perspective, including any relevant information ",
"trustScore" : "A reliability score from 0-100 based on the UAP/UFO report",
"date": "YYYY-MM-DD",
"timeOfDay": "HH:MM (24-hour format)",
"location": {
"name": "Specific Location",
"latitude": "Decimal Degrees",
"longitude": "Decimal Degrees"
},
"weatherConditions": {
"generalDescription": "Description of weather",
"visibility": "Clear, Partially Cloudy, etc.",
"cloudCover": "Percentage or description",
"extremePhenomena": "Any extreme weather conditions"
},
"sightingDuration": "Duration in hours or minutes",
"uapCharacteristics": {
"size": "Description or comparison",
"shape": "The Shape of the object",
"color": "Description of colors and patterns",
"altitude": "Estimated or measured altitude",
"speed": "Estimated or measured speed",
"movementPattern": "Zigzagging, straight line, stationary, etc.",
"changeInAppearance": "Details of any transformations",
"sound": "Description of any associated sounds",
"electromagneticEffects": "Any disturbances in electronic devices",
"visualClarity": "Clarity of object's appearance",
"detailedStructure": "Description of surface, texture, etc.",
"presenceHumanoids": "Presence of humanoids (Yes/No)",
"presenceSounds": "Presence of sound (Yes/No)",
"presenceLights": "Presence of lights (Yes/No)"
},
"observerDetails": {
"numberOfWitnesses": "Number of witnesses",
"observerBackground": {
"occupation": "Occupation",
"experienceWithAircraft": "Experience with aircraft or aerial phenomena"
},
"psychologicalEffects": "Psychological/Emotional effects on observer",
"emotionalStateBeforeSighting": "Observer's emotional state before sighting",
"behavioralResponse": "Observer's reaction during the sighting",
"subsequentEffects": "Physical or psychological effects post-sighting"
},
"evidence": {
"photographic": "Available/Not available",
"video": "Available/Not available",
"url": "URL"
},
"additionalInformation": {
"interactionWithEnvironment": "Effects on surroundings",
"wildlifeBehavior": "Any unusual animal behavior",
"previousActivity": "History of similar sightings in the area",
"flightCharacteristics": "Detailed flight pattern description",
"radarData": "Available/Not available",
"airTrafficCommunications": "Reports from nearby aircraft or control towers",
"officialResponses": "Governmental or scientific responses",
"historicalComparisons": "Reference to similar historical sightings",
"communicationAttempts": "Perceived attempts at communication from UAP",
"temporalAnomalies": "Reports of lost time or time discrepancies",
"anomalyDuration": "Specific times for changes in UAP appearance/behavior",
"sightingFrequency": "Frequency of sightings by the observer"
}
}
}'''
# ---------------------------------------------------------------------------
# Spreadsheet-mapped format for UAP Activities Data 1975 Onwards.xlsx
# Used by uap_xlsx_filler.py โ structure mirrors the spreadsheet column groups.
# ---------------------------------------------------------------------------
FACILITY_TYPES = [
"Aircraft Testing",
"Atomic weapons assembly facilities",
"Atomic Weapons Deployment",
"Atomic weapons stockpile sites",
"Facility type unknown",
"ICBM Minuteman III MRV",
"ICBM Sites",
"Materials Production",
"Military Base",
"Missile Testing",
"Other facility type/function not listed below",
"Population Centre",
"Radioactive materials production plants",
"Reactor Facility",
"Space Flight",
"Weapons Deployment Base",
"Weapons Design & Assembly",
"Weapons Stockpile",
]
FORMAT_LONG_XLSX = {
# โโ Source โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Maps to spreadsheet columns B-D
"source": {
"name": "string โ name of the reporting database, publication or organisation (e.g. NICAP, MUFON, AFOSI)",
"ref": "string โ specific citation, case ID or URL for this case",
"duplicate": "string โ leave blank unless this is a known duplicate; if so, note the original case reference"
},
# โโ Date / Time โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Maps to spreadsheet columns E-M
"date_time": {
"year": "integer YYYY โ calendar year of the sighting (e.g. 1975); null if unknown",
"month": "integer 1-12 โ calendar month; null if unknown",
"day": "integer 1-31 โ calendar day; null if unknown",
"day_night": "enum [D, N, U] โ D = daytime, N = night-time, U = unknown",
"local_time": "string HH:MM โ local 24-hour start time of the sighting (e.g. 20:30); empty if unknown",
"local_time_code": "string โ IANA timezone abbreviation or UTC offset (e.g. EST, UTC+2, PST)",
"duration_min": "integer โ total observed duration in minutes; null if unknown",
"gmt_start": "string HH:MM โ start time converted to GMT/UTC; empty if unknown",
"description": "string โ free-text date/time context when exact values cannot be determined"
},
# โโ Location โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Maps to spreadsheet columns N-T
"location": {
"country": "string โ ISO 3166-1 alpha-2 code or full name (e.g. US, UK, France)",
"state": "string โ state, province or region abbreviation or name (e.g. TN, Ontario)",
"city": "string โ city, town or nearest known populated place",
"latitude": "float decimal degrees WGS-84, positive = North (e.g. 36.010); null if unknown",
"longitude": "float decimal degrees WGS-84, positive = East (e.g. -84.267); null if unknown",
"description": "string โ additional location context: landmarks, base name, access restrictions, etc.",
"type": "enum [Atomic site, Military base, Population centre, Waste facility, Water body, River, Airport, Forest, Desert, Ocean, Unknown] โ primary character of the location"
},
# โโ Witness โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Maps to spreadsheet columns U-W
"witness": {
"count": "integer โ total number of independent witnesses; null if unknown",
"type": "string โ comma-separated subset of [Military, Public, Police, Pilot, Civilian, Scientist] โ witness categories",
"description": "string โ additional detail about witness background, rank, occupation or credibility assessment"
},
# โโ Investigation โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Maps to spreadsheet columns X-Y
"investigation": {
"source": "string โ organisation or individual that formally investigated (e.g. USAF Blue Book, NICAP, MUFON)",
"description": "string โ summary of investigation process and conclusions"
},
# โโ Craft โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Maps to spreadsheet columns Z-AD
"craft": {
"primary_shape": "enum [Sphere, Disc, Cigar, Triangle, Diamond, Cylinder, Boomerang, Chevron, Egg, Cone, Saturn, Cross, Rectangle, Teardrop, Fireball, Light, Orb, Tic-Tac, Cube, Pyramid, Unknown, Other] โ dominant observed shape",
"secondary_shape": "enum [same values as primary_shape, or empty] โ secondary or sub-shape if the object had a compound form",
"colour": "string โ colour or colour combination observed (e.g. Silver, Glowing orange, Red and white flashing)",
"size": "enum [Tiny (<0.5 m), Small (0.5-3 m), Medium (3-10 m), Large (10-50 m), Very large (50-200 m), Massive (>200 m), Unknown] โ estimated physical size at closest approach",
"description": "string โ free-text shape, texture, surface markings, lighting and structural detail"
},
# โโ Performance / 5 Observables โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Maps to spreadsheet columns AE-AK
# The 5 Observables are the Pentagon/AATIP framework for anomalous performance
"performance": {
"speed_mph": "float โ estimated or reported speed in miles per hour; null if unknown",
"acceleration_g": "float โ observed peak acceleration in g-force units; null if unknown",
"hypersonic": "enum [Y, ] โ Y if hypersonic velocity without acoustic signature or thermal bloom was observed; blank otherwise",
"instantaneous_acceleration": "enum [Y, ] โ Y if instantaneous or near-instantaneous acceleration (impossible for known craft) was observed; blank otherwise",
"low_observability": "enum [Y, ] โ Y if cloaking, active stealth or anomalously low radar cross-section was noted; blank otherwise",
"trans_medium_travel": "enum [Y, ] โ Y if seamless travel across air, water or near-space boundaries was observed; blank otherwise",
"positive_lift": "enum [Y, ] โ Y if antigravitic or non-aerodynamic lift (no wings, rotors, visible propulsion) was observed; blank otherwise"
},
# โโ Military Context โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Maps to spreadsheet columns AL-AP
"military": {
"reported_by": "string โ comma-separated subset of [Military, Public, Police, Pilot, Intelligence] โ who officially reported or filed the case",
"military_public": "enum [Military, Public, Mixed] โ whether the primary location/context is military-controlled or publicly accessible",
"facility_name": "string โ name of the specific military base, nuclear site or government facility involved; empty if not applicable",
"facility_type": "enum [Aircraft Testing, Atomic weapons assembly facilities, Atomic Weapons Deployment, Atomic weapons stockpile sites, Facility type unknown, ICBM Minuteman III MRV, ICBM Sites, Materials Production, Military Base, Missile Testing, Other facility type/function not listed below, Population Centre, Radioactive materials production plants, Reactor Facility, Space Flight, Weapons Deployment Base, Weapons Design & Assembly, Weapons Stockpile] โ closest matching SCU facility category",
"comments": "string โ source notes on the military relevance or sensitivity of the case"
},
# โโ Effects โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Maps to spreadsheet columns AQ-AT
"effects": {
"atomic_related": "enum [Y, N] โ Y if the event involved an atomic/nuclear site, material or weapon",
"communication": "enum [Y, N] โ Y if communication interference, anomalous signals or transmissions were reported",
"physical_effects": "enum [Y, N] โ Y if physical effects on people, animals, vehicles or the local environment were reported",
"text": "string โ free-text description of all communication anomalies and physical effects observed"
},
# โโ Engagement flags (spreadsheet group "Engagement", cols AU-BE) โโโโโโโโโโ
# These are independent Y/N observed-fact flags.
# Multiple Y values are allowed simultaneously.
"engagement_flags": {
"aircraft_engagement": "enum [Y, N] โ Y if military or civilian aircraft actively manoeuvred to intercept or engage the UAP",
"aircraft_encounters": "enum [Y, N] โ Y if aircraft encountered the UAP without deliberate engagement",
"active_radar_jamming": "enum [Y, N] โ Y if active radar jamming โ of the UAP or by the UAP โ was documented",
"over_military_installation": "enum [Y, N] โ Y if the UAP was observed directly over a military installation or restricted airspace",
"during_missile_test": "enum [Y, N] โ Y if the sighting coincided with a missile, rocket or high-altitude balloon test",
"radar_tracking": "enum [Y, N] โ Y if the UAP was tracked on military or civilian radar",
"radio_interference": "enum [Y, N] โ Y if radio or audio receiver interference (noise, cutouts) was reported",
"radar_jamming": "enum [Y, N] โ Y if radar receivers or displays were jammed or degraded",
"directed_radar": "enum [Y, N] โ Y if the UAP emitted directed radar transmissions mimicking in-use frequencies",
"coded_radar": "enum [Y, N] โ Y if coded radar (IFF โ Identification Friend or Foe) transmissions were detected from the UAP",
"multiple_interactive_flight": "enum [Y, N] โ Y if multiple UAP performed coordinated or interactive flight manoeuvres with each other"
},
# โโ Engagement Type (spreadsheet group "Engagement Type", cols BF-BO) โโโโโโ
# CONSTRAINT: exactly ONE field must be set to "P" (Primary โ the dominant
# engagement type for this case). Additional fields may be "S" (Secondary โ
# also present but not the defining characteristic). All remaining fields must
# be left blank (empty string). Do NOT use Y/N here.
#
# Rule: 1 ร P required | 0-many ร S allowed | blank = not applicable
# Exception: if NO engagement type applies at all, set no_engagement = "P"
# and leave every other field blank.
"engagement_type": {
"interactive_flight": "P, S, or blank โ UAP performed flight that appeared to react to or interact with observers or aircraft",
"radical_flight": "P, S, or blank โ UAP executed physically impossible manoeuvres (right-angle turns, instant acceleration, sudden reversal)",
"loitering": "P, S, or blank โ UAP hovered, circled or loitered in a defined area for an extended period",
"electronic_transmissions": "P, S, or blank โ electronic signals or transmissions attributed to the UAP were detected",
"interference_weapons": "P, S, or blank โ weapons systems (guns, missiles, guidance electronics) were interfered with or disabled",
"military_intrusions": "P, S, or blank โ UAP physically intruded into a secured military installation or restricted airspace",
"occupant_encounter": "P, S, or blank โ occupants of the UAP were directly encountered by witnesses (physical contact or attempted communication)",
"occupant_observed": "P, S, or blank โ occupants were visually observed from a distance but no encounter occurred",
"close_approach": "P, S, or blank โ UAP made a close approach (<30 m) to witnesses, vehicles or structures",
"no_engagement": "P, S, or blank โ set to P only when no other engagement type applies; mutually exclusive with all other P/S assignments"
},
# โโ Case Narrative โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Maps to spreadsheet column BP
"case_text": {
"text": "string โ verbatim or faithfully summarised case narrative from the original source"
}
}
# ---------------------------------------------------------------------------
# FORMAT_SCU_V2 โ "SCU v2" parsing schema
#
# A redlined evolution of FORMAT_LONG_XLSX. It adds the parser-emitted
# source / assessment / anomaly blocks, tri-state (Y/N/U) flags, structured
# witness roles and an evidence array โ everything the SCU five-criterion
# eligibility gate needs at parse time.
#
# The `manifest` block is a DOWNSTREAM JOIN target keyed on source.documentId:
# the LLM must leave every manifest field null (each field is described as
# "null โ populated by manifest join").
#
# Pair the parsed output with scu_normalizer.py to canonicalise the values and
# derive the scu_eligible gate columns.
# ---------------------------------------------------------------------------
FORMAT_SCU_V2 = {
# โโ Sighting details (kept from FORMAT_LONG, tightened) โโโโโโโโโโโโโโโโโโโโ
"sightingDetails": {
"DenseNarrativeSection": "string โ short omniscient free-form narrative of the event, including any relevant context",
"trustScore": "integer 0-100 โ composite reliability score for the DATA (not the phenomenon): source provenance, completeness of date/time/location/description, investigator class, timeliness, observation modality, witness count and independence",
"trustScoreNotes": "string โ one-sentence justification listing which dimensions drove trustScore",
"date": "YYYY-MM-DD",
"timeOfDay": "HH:MM (24-hour format)",
"location": {
"name": "string โ specific location",
"latitude": "float โ decimal degrees; null if unknown",
"longitude": "float โ decimal degrees; null if unknown"
},
"weatherConditions": {
"generalDescription": "string โ description of weather",
"visibility": "string โ Clear, Partially Cloudy, etc.",
"cloudCover": "string โ percentage or description",
"extremePhenomena": "string โ any extreme weather conditions"
},
"sightingDuration": "string โ duration in hours or minutes",
"uapCharacteristics": {
"size": "string โ description or comparison",
"shape": "string โ shape of the object",
"color": "string โ colours and patterns",
"altitude": "string โ estimated or measured altitude",
"speed": "string โ estimated or measured speed",
"movementPattern": "string โ zig-zag, straight line, stationary, etc.",
"changeInAppearance": "string โ details of any transformations",
"sound": "string โ description of any associated sounds",
"electromagneticEffects": "string โ disturbances in electronic devices",
"visualClarity": "string โ clarity of the object's appearance",
"detailedStructure": "string โ surface, texture, structural detail",
"presenceHumanoids": "enum [Y, N, U] โ Y observed, N explicitly none, U unknown",
"presenceHumanoids_notes": "string โ qualifiers (e.g. 'reported via telepathy', 'in photograph'); empty if none",
"presenceSounds": "enum [Y, N, U]",
"presenceLights": "enum [Y, N, U]"
},
"observerDetails": {
"numberOfWitnesses": "integer โ exact witness count when reported; null otherwise",
"numberOfWitnessesFreeform": "string โ original phrasing when non-numeric (e.g. 'Multiple', 'Hundreds', 'At least 6')",
"observerBackground": {
"occupation": "string โ observer occupation",
"experienceWithAircraft": "string โ experience with aircraft or aerial phenomena"
},
"psychologicalEffects": "string โ psychological/emotional effects on the observer",
"emotionalStateBeforeSighting": "string โ observer's emotional state before the sighting",
"behavioralResponse": "string โ observer's reaction during the sighting",
"subsequentEffects": "string โ physical or psychological effects after the sighting"
},
"evidence": [
{
"mediaType": "enum [photographic, video, radar_trace, audio, instrumented, physical_sample, sketch]",
"availability": "enum [available, not_available, attempted_failed, referenced_not_seen, inconclusive]",
"url": "string โ direct link if available, else empty",
"description": "string โ qualifiers (e.g. '8mm film exposed 10 seconds', 'sketch by witness')",
"chainOfCustody": "string โ provenance notes if recorded"
}
],
"additionalInformation": {
"interactionWithEnvironment": "string โ effects on surroundings",
"wildlifeBehavior": "string โ unusual animal behaviour",
"previousActivity": "string โ history of similar sightings in the area",
"flightCharacteristics": "string โ detailed flight-pattern description",
"radarData": "enum [available, not_available, available_with_caveat, unknown]",
"radarDataNotes": "string โ qualifiers (e.g. 'tracked by theodolite', 'controller had no contact')",
"airTrafficCommunications": "string โ reports from nearby aircraft or control towers",
"officialResponses": "string โ governmental or scientific responses",
"historicalComparisons": "string โ reference to similar historical sightings",
"communicationAttempts": "string โ perceived attempts at communication from the UAP",
"temporalAnomalies": "string โ reports of lost time or time discrepancies",
"anomalyDuration": "string โ specific times for changes in UAP appearance/behaviour",
"sightingFrequency": "string โ frequency of sightings by the observer"
}
},
# โโ Source (parser-emitted; expanded provenance + adjudication) โโโโโโโโโโโโ
"source": {
"name": "string โ reporting database, publication or organisation (e.g. NICAP, MUFON, AFOSI)",
"ref": "string โ specific citation, case ID or URL for this case",
"duplicate": "string โ case-ref of the original if this is a known duplicate, else blank",
"documentId": "string โ identifier of the upstream source document; copy if visible, else blank",
"pages": "string โ page range within the source document (e.g. 'page_0004-page_0006'); blank if unknown",
"chunkCount": "integer โ number of text chunks contributing to this row; null if unknown",
"parseWarning": "boolean โ true if a parse error was flagged on this row; default false",
"rawText": "string โ un-truncated narrative text of the source",
"agency": "string โ coarse agency taxonomy inferred from the document (FBI, NARA-CIA, DOD, MISC, NASA); null if not indicated",
"collection": "string โ sub-collection within the agency (e.g. 'series-38', 'hs1-834228961'); null if not indicated",
"tier": "enum [primary_investigative, secondary_investigative, reference_book, press, retrospective_personal_account, unknown] โ coarse reliability tier; default 'unknown'",
"firstRecordedDate": "YYYY-MM-DD โ earliest dateline visible in the document text (cable/letter/memo date); null if not visible",
"contemporaneous": "enum [Y, N, U] โ Y if firstRecordedDate is within one year of the sighting, N if later, U if either date is unknown",
"originalAdjudication": "string โ verbatim conclusion by the investigating authority as quoted in the document; null if no adjudication appears",
"originalAdjudicationType": "enum [unidentified, explained, dismissed, no_investigation, not_stated] โ coded reading of the adjudication; use 'not_stated' when the document is silent"
},
# โโ Manifest (DOWNSTREAM JOIN ONLY โ leave every field null) โโโโโโโโโโโโโโโ
"manifest": {
"pdfUrl": "null โ populated by manifest join, never by the parser",
"releaseDate": "null โ populated by manifest join, never by the parser",
"isRedacted": "null โ populated by manifest join, never by the parser",
"documentType": "null โ populated by manifest join, never by the parser",
"documentDescription": "null โ populated by manifest join, never by the parser",
"agencyRelease": "null โ populated by manifest join, never by the parser",
"videoId": "null โ populated by manifest join, never by the parser",
"modalImage": "null โ populated by manifest join, never by the parser",
"joinStatus": "null โ populated by manifest join, never by the parser"
},
# โโ Assessment (parse-time judgement about the report's coherence) โโโโโโโโโ
"assessment": {
"contradictsUap": "boolean โ true if the source itself states the incident was NOT a UAP (film defect, balloon, weather, hoax, sarcastic/diplomatic usage)",
"notes": "string โ short justification for contradictsUap, or any other parse-time annotation"
},
# โโ Anomaly (SCU Criterion 3 โ anomalous characterization) โโโโโโโโโโโโโโโโโ
"anomaly": {
"structure": "boolean โ anomalous shape, size, surface or detailed structure",
"flight": "boolean โ anomalous flight (hypersonic without sonic boom, instantaneous acceleration, trans-medium, etc.)",
"occupant": "boolean โ occupants observed or encountered",
"signal": "boolean โ anomalous electronic transmissions or radio behaviour",
"summary": "string โ one-sentence justification for any of the above being true"
},
# โโ Date / Time โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"date_time": {
"year": "integer YYYY โ calendar year; null if unknown",
"month": "integer 1-12 โ calendar month; null if unknown",
"day": "integer 1-31 โ calendar day; null if unknown",
"day_night": "enum [D, N, U]",
"local_time": "string HH:MM โ local 24-hour start time; empty if unknown",
"local_time_code": "string โ IANA timezone abbreviation or UTC offset (e.g. EST, UTC+2)",
"duration_min": "integer โ total observed duration in minutes; null if unknown",
"gmt_start": "string HH:MM โ start time converted to GMT/UTC; empty if unknown",
"description": "string โ free-text date/time context when exact values cannot be determined",
"yearUncertainty": "enum [exact, approximate_year, approximate_decade, unknown]",
"dateUncertainty": "enum [exact, approximate_month, approximate_year, unknown]",
"inWindow_1945_1975": "boolean โ true if the sighting falls within the SCU master study window"
},
# โโ Location โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"location": {
"country": "string โ ISO 3166-1 alpha-2 code (strict). For non-country locations use sentinels: INTL_WATERS, MOON, AQ, MULTIPLE, SCAND, UNKNOWN",
"state": "string โ US Census two-letter code for US states; ISO 3166-2 subdivision code elsewhere; empty if not applicable",
"city": "string โ city, town or nearest known populated place",
"latitude": "float โ decimal degrees WGS-84, positive = North; null if unknown",
"longitude": "float โ decimal degrees WGS-84, positive = East; null if unknown",
"description": "string โ additional location context: landmarks, base name, access restrictions",
"type": "enum [Atomic site, Military base, Population centre, Waste facility, Water body, River, Airport, Forest, Desert, Ocean, Space flight, Mixed, Other, Rural, Missile testing, Unknown] โ primary character of the location",
"secondaryType": "enum [same values as type, or empty] โ for locations that genuinely span two types"
},
# โโ Witness (structured roles array) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"witness": {
"count": "integer โ exact number of independent witnesses; null if unknown",
"countFreeform": "string โ original phrasing when non-numeric (e.g. 'Multiple', 'Hundreds')",
"roles": ["enum [Military, Public, Police, Pilot, Civilian, Scientist, Intelligence, Astronaut, Politician, Security] โ JSON array of witness roles; no duplicates, order irrelevant"],
"notes": "string โ rank/role qualifiers that don't belong in the roles enum (e.g. 'Naval Reserve')",
"description": "string โ broader witness background, credibility assessment, observer-location detail"
},
# โโ Investigation (SCU Criterion 1 + 4) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"investigation": {
"source": "string โ organisation or individual that investigated",
"investigatorClass": "enum [USAF, NICAP, MUFON, FBI, CIA, NASA, AARO, law_enforcement, civilian_research, press_only, none, other]",
"startDate": "YYYY-MM-DD โ when the investigation began; null if unknown",
"lagDays": "integer โ days between sighting and start of investigation; null if unknown",
"timeliness": "enum [timely, late, unknown] โ timely = lagDays <= 365 (SCU Criterion 1); late = lagDays > 365",
"reports_within_1_month_of_sighting": "enum [Y, N, U] โ Y if the report or field investigation was initiated within one month of the observation; finer-grained than the SCU Criterion 1 one-year rule",
"reports_within_1_year_of_sighting": "enum [Y, N, U] โ Y if the report or field investigation was initiated within one year of the observation (SCU Criterion 1, the one-year timeliness rule)",
"description": "string โ summary of the investigation process and conclusions"
},
# โโ Craft โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"craft": {
"primary_shape": "enum [Sphere, Disc, Cigar, Triangle, Diamond, Cylinder, Boomerang, Chevron, Egg, Cone, Saturn, Cross, Rectangle, Teardrop, Fireball, Light, Orb, Tic-Tac, Cube, Pyramid, Oval, Dome, Crescent, Unknown, Other] โ dominant observed shape; fold Round/Circle/Ball/Spherical into Sphere",
"secondary_shape": "enum [same values as primary_shape, or empty]",
"colour": "string โ colour or colour combination observed",
"size": "enum [Tiny (<0.5 m), Small (0.5-3 m), Medium (3-10 m), Large (10-50 m), Very large (50-200 m), Massive (>200 m), Unknown]",
"sizeRangeMeters": "string โ explicit metre range derived from the size band (e.g. '3-10 m'); empty if Unknown",
"description": "string โ free-text shape, texture, surface markings, lighting and structural detail"
},
# โโ Performance / 5 Observables (tri-state) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"performance": {
"speed_mph": "float โ estimated or reported speed in mph; null if unknown",
"acceleration_g": "float โ observed peak acceleration in g; null if unknown",
"hypersonic": "enum [Y, N, U] โ Y observed, N explicitly negative, U unknown/not assessed",
"instantaneous_acceleration": "enum [Y, N, U]",
"low_observability": "enum [Y, N, U]",
"trans_medium_travel": "enum [Y, N, U]",
"positive_lift": "enum [Y, N, U]"
},
# โโ Military context โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"military": {
"reported_by": ["enum [Military, Public, Police, Pilot, Intelligence] โ JSON array of who officially reported the case"],
"military_public": "enum [Military, Public, Mixed, None] โ use None when the military/public character of the location is unknown",
"facility_name": "string โ name of the military base, nuclear site or government facility; empty if not applicable",
"facility_type": "enum [Aircraft testing, Atomic weapons assembly facilities, Atomic weapons deployment, Atomic weapons stockpile sites, Facility type unknown, ICBM Minuteman III MRV, ICBM Sites, Materials Production, Military base, Missile testing, Other, Population centre, Radioactive materials production plants, Reactor Facility, Space flight, Weapons Deployment Base, Weapons Design & Assembly, Weapons Stockpile, Airport, Unknown, None] โ use None when the facility type is unknown",
"comments": "string โ source notes on the military relevance or sensitivity of the case"
},
# โโ Effects (tri-state) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"effects": {
"atomic_related": "enum [Y, N, U] โ Y if the event involved an atomic/nuclear site, material or weapon",
"communication": "enum [Y, N, U] โ Y if communication interference or anomalous signals were reported",
"physical_effects": "enum [Y, N, U] โ Y if physical effects on people, animals, vehicles or environment were reported",
"text": "string โ free-text description of communication anomalies and physical effects"
},
# โโ Engagement flags (tri-state observed-fact flags) โโโโโโโโโโโโโโโโโโโโโโโ
"engagement_flags": {
"aircraft_engagement": "enum [Y, N, U]",
"aircraft_encounters": "enum [Y, N, U]",
"active_radar_jamming": "enum [Y, N, U]",
"over_military_installation": "enum [Y, N, U]",
"during_missile_test": "enum [Y, N, U]",
"radar_tracking": "enum [Y, N, U]",
"radio_interference": "enum [Y, N, U]",
"radar_jamming": "enum [Y, N, U]",
"directed_radar": "enum [Y, N, U]",
"coded_radar": "enum [Y, N, U]",
"multiple_interactive_flight": "enum [Y, N, U]"
},
# โโ Engagement type (exactly one P; 0-many S; blank otherwise) โโโโโโโโโโโโโ
"engagement_type": {
"interactive_flight": "P, S, or blank โ UAP flight appeared to react to or interact with observers or aircraft",
"radical_flight": "P, S, or blank โ physically impossible manoeuvres (right-angle turns, instant acceleration, sudden reversal)",
"loitering": "P, S, or blank โ UAP hovered, circled or loitered for an extended period",
"electronic_transmissions": "P, S, or blank โ electronic signals attributed to the UAP were detected",
"interference_weapons": "P, S, or blank โ weapons systems were interfered with or disabled",
"military_intrusions": "P, S, or blank โ UAP intruded into a secured installation or restricted airspace",
"occupant_encounter": "P, S, or blank โ occupants were directly encountered by witnesses",
"occupant_observed": "P, S, or blank โ occupants were visually observed from a distance, no encounter",
"close_approach": "P, S, or blank โ UAP made a close approach (<30 m) to witnesses, vehicles or structures",
"no_engagement": "P, S, or blank โ set to P only when no other engagement type applies"
},
# โโ Case narrative โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"case_text": {
"text": "string โ faithfully summarised case narrative; the verbatim full text lives in source.rawText"
}
}
# ---------------------------------------------------------------------------
# FORMAT_SCU_V3 โ "SCU v3" parsing schema
#
# A redlined evolution of FORMAT_SCU_V2 that folds in the UFOSETI assessment
# frameworks (UFOCAT-style explanation taxonomy + Hynek-Vallรฉe AN/CE recovery
# and biological-entity flags + medical-effect human-injury extension).
#
# Adds, relative to FORMAT_SCU_V2:
# โข assessment.explanationCategory โ UFOCAT-style conventional-explanation taxonomy
# โข anomaly.validated / materialRecovery / biologicalEntity โ official-body review,
# craft-debris recovery, and non-human entity encounter flags
# โข effects.humanInjury / humanInjuryNotes โ explicit medical-injury extension
#
# The `manifest` block remains a DOWNSTREAM JOIN target keyed on source.documentId:
# the LLM must leave every manifest field null.
#
# Pair the parsed output with scu_normalizer.py to canonicalise the values and
# derive the scu_eligible gate columns.
# ---------------------------------------------------------------------------
FORMAT_SCU_V3 = {
# โโ Sighting details (kept from SCU_v2, unchanged) โโโโโโโโโโโโโโโโโโโโโโโโโ
"sightingDetails": {
"DenseNarrativeSection": "string โ short omniscient free-form narrative of the event, including any relevant context",
"trustScore": "integer 0-100 โ composite reliability score for the DATA (not the phenomenon): source provenance, completeness of date/time/location/description, investigator class, timeliness, observation modality, witness count and independence",
"trustScoreNotes": "string โ one-sentence justification listing which dimensions drove trustScore",
"date": "YYYY-MM-DD",
"timeOfDay": "HH:MM (24-hour format)",
"location": {
"name": "string โ specific location",
"latitude": "float โ decimal degrees; null if unknown",
"longitude": "float โ decimal degrees; null if unknown"
},
"weatherConditions": {
"generalDescription": "string โ description of weather",
"visibility": "string โ Clear, Partially Cloudy, etc.",
"cloudCover": "string โ percentage or description",
"extremePhenomena": "string โ any extreme weather conditions"
},
"sightingDuration": "string โ duration in hours or minutes",
"uapCharacteristics": {
"size": "string โ description or comparison",
"shape": "string โ shape of the object",
"color": "string โ colours and patterns",
"altitude": "string โ estimated or measured altitude",
"speed": "string โ estimated or measured speed",
"movementPattern": "string โ zig-zag, straight line, stationary, etc.",
"changeInAppearance": "string โ details of any transformations",
"sound": "string โ description of any associated sounds",
"electromagneticEffects": "string โ disturbances in electronic devices",
"visualClarity": "string โ clarity of the object's appearance",
"detailedStructure": "string โ surface, texture, structural detail",
"presenceHumanoids": "enum [Y, N, U] โ Y observed, N explicitly none, U unknown",
"presenceHumanoids_notes": "string โ qualifiers (e.g. 'reported via telepathy', 'in photograph'); empty if none",
"presenceSounds": "enum [Y, N, U]",
"presenceLights": "enum [Y, N, U]"
},
"observerDetails": {
"numberOfWitnesses": "integer โ exact witness count when reported; null otherwise",
"numberOfWitnessesFreeform": "string โ original phrasing when non-numeric (e.g. 'Multiple', 'Hundreds', 'At least 6')",
"observerBackground": {
"occupation": "string โ observer occupation",
"experienceWithAircraft": "string โ experience with aircraft or aerial phenomena"
},
"psychologicalEffects": "string โ psychological/emotional effects on the observer",
"emotionalStateBeforeSighting": "string โ observer's emotional state before the sighting",
"behavioralResponse": "string โ observer's reaction during the sighting",
"subsequentEffects": "string โ physical or psychological effects after the sighting"
},
"evidence": [
{
"mediaType": "enum [photographic, video, radar_trace, audio, instrumented, physical_sample, sketch]",
"availability": "enum [available, not_available, attempted_failed, referenced_not_seen, inconclusive]",
"url": "string โ direct link if available, else empty",
"description": "string โ qualifiers (e.g. '8mm film exposed 10 seconds', 'sketch by witness')",
"chainOfCustody": "string โ provenance notes if recorded"
}
],
"additionalInformation": {
"interactionWithEnvironment": "string โ effects on surroundings",
"wildlifeBehavior": "string โ unusual animal behaviour",
"previousActivity": "string โ history of similar sightings in the area",
"flightCharacteristics": "string โ detailed flight-pattern description",
"radarData": "enum [available, not_available, available_with_caveat, unknown]",
"radarDataNotes": "string โ qualifiers (e.g. 'tracked by theodolite', 'controller had no contact')",
"airTrafficCommunications": "string โ reports from nearby aircraft or control towers",
"officialResponses": "string โ governmental or scientific responses",
"historicalComparisons": "string โ reference to similar historical sightings",
"communicationAttempts": "string โ perceived attempts at communication from the UAP",
"temporalAnomalies": "string โ reports of lost time or time discrepancies",
"anomalyDuration": "string โ specific times for changes in UAP appearance/behaviour",
"sightingFrequency": "string โ frequency of sightings by the observer"
}
},
# โโ Source (parser-emitted; expanded provenance + adjudication) โโโโโโโโโโโโ
"source": {
"name": "string โ reporting database, publication or organisation (e.g. NICAP, MUFON, AFOSI)",
"ref": "string โ specific citation, case ID or URL for this case",
"duplicate": "string โ case-ref of the original if this is a known duplicate, else blank",
"documentId": "string โ identifier of the upstream source document; copy if visible, else blank",
"pages": "string โ page range within the source document (e.g. 'page_0004-page_0006'); blank if unknown",
"chunkCount": "integer โ number of text chunks contributing to this row; null if unknown",
"parseWarning": "boolean โ true if a parse error was flagged on this row; default false",
"rawText": "string โ un-truncated narrative text of the source",
"agency": "string โ coarse agency taxonomy inferred from the document (FBI, NARA-CIA, DOD, MISC, NASA); null if not indicated",
"collection": "string โ sub-collection within the agency (e.g. 'series-38', 'hs1-834228961'); null if not indicated",
"tier": "enum [primary_investigative, secondary_investigative, reference_book, press, retrospective_personal_account, unknown] โ coarse reliability tier; default 'unknown'",
"firstRecordedDate": "YYYY-MM-DD โ earliest dateline visible in the document text (cable/letter/memo date); null if not visible",
"contemporaneous": "enum [Y, N, U] โ Y if firstRecordedDate is within one year of the sighting, N if later, U if either date is unknown",
"originalAdjudication": "string โ verbatim conclusion by the investigating authority as quoted in the document; null if no adjudication appears",
"originalAdjudicationType": "enum [unidentified, explained, dismissed, no_investigation, not_stated] โ coded reading of the adjudication; use 'not_stated' when the document is silent"
},
# โโ Manifest (DOWNSTREAM JOIN ONLY โ leave every field null) โโโโโโโโโโโโโโโ
"manifest": {
"pdfUrl": "null โ populated by manifest join, never by the parser",
"releaseDate": "null โ populated by manifest join, never by the parser",
"isRedacted": "null โ populated by manifest join, never by the parser",
"documentType": "null โ populated by manifest join, never by the parser",
"documentDescription": "null โ populated by manifest join, never by the parser",
"agencyRelease": "null โ populated by manifest join, never by the parser",
"videoId": "null โ populated by manifest join, never by the parser",
"modalImage": "null โ populated by manifest join, never by the parser",
"joinStatus": "null โ populated by manifest join, never by the parser"
},
# โโ Assessment (parse-time judgement + UFOCAT-style explanation taxonomy) โโ
"assessment": {
"contradictsUap": "boolean โ true if the source itself states the incident was NOT a UAP (film defect, balloon, weather, hoax, sarcastic/diplomatic usage)",
"notes": "string โ short justification for contradictsUap, or any other parse-time annotation",
"explanationCategory": "enum [conventional_tech, weather, celestial, hoax, misidentification, redacted_explained, unknown] โ populated only when contradictsUap is true; sub-classifies the type of conventional explanation given by the source. Use 'unknown' when contradictsUap is true but the source does not specify the explanation type."
},
# โโ Anomaly (SCU Criterion 3 + UFOSETI Hynek-Vallรฉe extensions) โโโโโโโโโโโโ
"anomaly": {
"structure": "boolean โ anomalous shape, size, surface or detailed structure",
"flight": "boolean โ anomalous flight (hypersonic without sonic boom, instantaneous acceleration, trans-medium, etc.)",
"occupant": "boolean โ occupants observed or encountered",
"signal": "boolean โ anomalous electronic transmissions or radio behaviour",
"summary": "string โ one-sentence justification for any of the above being true",
"validated": "enum [Y, N, U] โ Y if an official investigative body (USAF, FBI, AARO, NICAP, etc.) reviewed the case and could not produce a conventional explanation; N if the same body produced a conventional explanation; U if no official review conclusion is stated in the source",
"materialRecovery": "enum [Y, N, U] โ Y if the source describes or alleges physical recovery of craft debris, material fragments, or other non-biological physical evidence attributable to the UAP; N if explicitly none; U if unknown or not mentioned",
"biologicalEntity": "enum [Y, N, U] โ Y if the source describes or alleges recovery, encounter, or direct contact with a non-human biological entity (living or deceased); N if explicitly none; U if unknown or not mentioned"
},
# โโ Date / Time โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"date_time": {
"year": "integer YYYY โ calendar year; null if unknown",
"month": "integer 1-12 โ calendar month; null if unknown",
"day": "integer 1-31 โ calendar day; null if unknown",
"day_night": "enum [D, N, U]",
"local_time": "string HH:MM โ local 24-hour start time; empty if unknown",
"local_time_code": "string โ IANA timezone abbreviation or UTC offset (e.g. EST, UTC+2)",
"duration_min": "integer โ total observed duration in minutes; null if unknown",
"gmt_start": "string HH:MM โ start time converted to GMT/UTC; empty if unknown",
"description": "string โ free-text date/time context when exact values cannot be determined",
"yearUncertainty": "enum [exact, approximate_year, approximate_decade, unknown]",
"dateUncertainty": "enum [exact, approximate_month, approximate_year, unknown]",
"inWindow_1945_1975": "boolean โ true if the sighting falls within the SCU master study window"
},
# โโ Location โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"location": {
"country": "string โ ISO 3166-1 alpha-2 code (strict). For non-country locations use sentinels: INTL_WATERS, MOON, AQ, MULTIPLE, SCAND, UNKNOWN",
"state": "string โ US Census two-letter code for US states; ISO 3166-2 subdivision code elsewhere; empty if not applicable",
"city": "string โ city, town or nearest known populated place",
"latitude": "float โ decimal degrees WGS-84, positive = North; null if unknown",
"longitude": "float โ decimal degrees WGS-84, positive = East; null if unknown",
"description": "string โ additional location context: landmarks, base name, access restrictions",
"type": "enum [Atomic site, Military base, Population centre, Waste facility, Water body, River, Airport, Forest, Desert, Ocean, Space flight, Mixed, Other, Rural, Missile testing, Unknown] โ primary character of the location",
"secondaryType": "enum [same values as type, or empty] โ for locations that genuinely span two types"
},
# โโ Witness (structured roles array) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"witness": {
"count": "integer โ exact number of independent witnesses; null if unknown",
"countFreeform": "string โ original phrasing when non-numeric (e.g. 'Multiple', 'Hundreds')",
"roles": ["enum [Military, Public, Police, Pilot, Civilian, Scientist, Intelligence, Astronaut, Politician, Security] โ JSON array of witness roles; no duplicates, order irrelevant"],
"notes": "string โ rank/role qualifiers that don't belong in the roles enum (e.g. 'Naval Reserve')",
"description": "string โ broader witness background, credibility assessment, observer-location detail"
},
# โโ Investigation (SCU Criterion 1 + 4) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"investigation": {
"source": "string โ organisation or individual that investigated",
"investigatorClass": "enum [USAF, NICAP, MUFON, FBI, CIA, NASA, AARO, law_enforcement, civilian_research, press_only, none, other]",
"startDate": "YYYY-MM-DD โ when the investigation began; null if unknown",
"lagDays": "integer โ days between sighting and start of investigation; null if unknown",
"timeliness": "enum [timely, late, unknown] โ timely = lagDays <= 365 (SCU Criterion 1); late = lagDays > 365",
"reports_within_1_month_of_sighting": "enum [Y, N, U] โ Y if the report or field investigation was initiated within one month of the observation; finer-grained than the SCU Criterion 1 one-year rule",
"reports_within_1_year_of_sighting": "enum [Y, N, U] โ Y if the report or field investigation was initiated within one year of the observation (SCU Criterion 1, the one-year timeliness rule)",
"description": "string โ summary of the investigation process and conclusions"
},
# โโ Craft โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"craft": {
"primary_shape": "enum [Sphere, Disc, Cigar, Triangle, Diamond, Cylinder, Boomerang, Chevron, Egg, Cone, Saturn, Cross, Rectangle, Teardrop, Fireball, Light, Orb, Tic-Tac, Cube, Pyramid, Oval, Dome, Crescent, Unknown, Other] โ dominant observed shape; fold Round/Circle/Ball/Spherical into Sphere",
"secondary_shape": "enum [same values as primary_shape, or empty]",
"colour": "string โ colour or colour combination observed",
"size": "enum [Tiny (<0.5 m), Small (0.5-3 m), Medium (3-10 m), Large (10-50 m), Very large (50-200 m), Massive (>200 m), Unknown]",
"sizeRangeMeters": "string โ explicit metre range derived from the size band (e.g. '3-10 m'); empty if Unknown",
"description": "string โ free-text shape, texture, surface markings, lighting and structural detail"
},
# โโ Performance / 5 Observables (tri-state) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"performance": {
"speed_mph": "float โ estimated or reported speed in mph; null if unknown",
"acceleration_g": "float โ observed peak acceleration in g; null if unknown",
"hypersonic": "enum [Y, N, U] โ Y observed, N explicitly negative, U unknown/not assessed",
"instantaneous_acceleration": "enum [Y, N, U]",
"low_observability": "enum [Y, N, U]",
"trans_medium_travel": "enum [Y, N, U]",
"positive_lift": "enum [Y, N, U]"
},
# โโ Military context โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"military": {
"reported_by": ["enum [Military, Public, Police, Pilot, Intelligence] โ JSON array of who officially reported the case"],
"military_public": "enum [Military, Public, Mixed, None] โ use None when the military/public character of the location is unknown",
"facility_name": "string โ name of the military base, nuclear site or government facility; empty if not applicable",
"facility_type": "enum [Aircraft testing, Atomic weapons assembly facilities, Atomic weapons deployment, Atomic weapons stockpile sites, Facility type unknown, ICBM Minuteman III MRV, ICBM Sites, Materials Production, Military base, Missile testing, Other, Population centre, Radioactive materials production plants, Reactor Facility, Space flight, Weapons Deployment Base, Weapons Design & Assembly, Weapons Stockpile, Airport, Unknown, None] โ use None when the facility type is unknown",
"comments": "string โ source notes on the military relevance or sensitivity of the case"
},
# โโ Effects (tri-state + medical-injury extension) โโโโโโโโโโโโโโโโโโโโโโโโโ
"effects": {
"atomic_related": "enum [Y, N, U] โ Y if the event involved an atomic/nuclear site, material or weapon",
"communication": "enum [Y, N, U] โ Y if communication interference or anomalous signals were reported",
"physical_effects": "enum [Y, N, U] โ Y if physical effects on people, animals, vehicles or environment were reported",
"text": "string โ free-text description of communication anomalies and physical effects",
"humanInjury": "enum [Y, N, U] โ Y if physical injury to human witnesses was explicitly reported (burns, radiation sickness, temporary blindness, trauma, neurological effects, etc.); N if the source explicitly states no injury; U if not mentioned. Do NOT infer from 'physical_effects' alone โ requires direct textual evidence of human bodily harm.",
"humanInjuryNotes": "string โ type and severity of injury as described in the source (e.g. 'radiation burns to hands and face', 'temporary paralysis lasting 3 days'); empty if humanInjury is N or U"
},
# โโ Engagement flags (tri-state observed-fact flags) โโโโโโโโโโโโโโโโโโโโโโโ
"engagement_flags": {
"aircraft_engagement": "enum [Y, N, U]",
"aircraft_encounters": "enum [Y, N, U]",
"active_radar_jamming": "enum [Y, N, U]",
"over_military_installation": "enum [Y, N, U]",
"during_missile_test": "enum [Y, N, U]",
"radar_tracking": "enum [Y, N, U]",
"radio_interference": "enum [Y, N, U]",
"radar_jamming": "enum [Y, N, U]",
"directed_radar": "enum [Y, N, U]",
"coded_radar": "enum [Y, N, U]",
"multiple_interactive_flight": "enum [Y, N, U]"
},
# โโ Engagement type (exactly one P; 0-many S; blank otherwise) โโโโโโโโโโโโโ
"engagement_type": {
"interactive_flight": "P, S, or blank โ UAP flight appeared to react to or interact with observers or aircraft",
"radical_flight": "P, S, or blank โ physically impossible manoeuvres (right-angle turns, instant acceleration, sudden reversal)",
"loitering": "P, S, or blank โ UAP hovered, circled or loitered for an extended period",
"electronic_transmissions": "P, S, or blank โ electronic signals attributed to the UAP were detected",
"interference_weapons": "P, S, or blank โ weapons systems were interfered with or disabled",
"military_intrusions": "P, S, or blank โ UAP intruded into a secured installation or restricted airspace",
"occupant_encounter": "P, S, or blank โ occupants were directly encountered by witnesses",
"occupant_observed": "P, S, or blank โ occupants were visually observed from a distance, no encounter",
"close_approach": "P, S, or blank โ UAP made a close approach (<30 m) to witnesses, vehicles or structures",
"no_engagement": "P, S, or blank โ set to P only when no other engagement type applies"
},
# โโ Case narrative โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"case_text": {
"text": "string โ faithfully summarised case narrative; the verbatim full text lives in source.rawText"
}
}
# ---------------------------------------------------------------------------
# FORMAT_SCU_V1 โ "SCU v1" parsing schema (the default extraction format)
#
# The same field set as FORMAT_SCU_V3, minus two blocks:
# โข sightingDetails โ the verbose nested narrative group
# โข manifest โ the all-null downstream-join placeholder columns the
# parser must always leave null
# Everything else (source, assessment, anomaly, date_time, location, witness,
# investigation, craft, performance, military, effects, engagement_flags,
# engagement_type, case_text) is inherited unchanged. Derived from
# FORMAT_SCU_V3 so it never drifts out of sync; _deep_merge treats schemas as
# read-only, so the shared nested references are safe.
# ---------------------------------------------------------------------------
_SCU_V1_DROP = ("sightingDetails", "manifest")
FORMAT_SCU_V1 = {k: v for k, v in FORMAT_SCU_V3.items() if k not in _SCU_V1_DROP}
# ---------------------------------------------------------------------------
# Merged compact schema โ used by the Markdown-folder ingestion agent.
# Covers the essential fields from both FORMAT_LONG (sightingDetails) and
# FORMAT_LONG_XLSX (SCU groups) so the result feeds either downstream pipeline.
# The LLM is instructed to be concise: fill what is explicitly stated, leave
# everything else null / blank.
# ---------------------------------------------------------------------------
# ---------------------------------------------------------------------------
# UFOSETI (RU) format โ Russian UFO/UAP database schema
# Column names mirror the UFOSETI database export; ar_code values follow the
# UFOCAT Codebook 2023: https://cufos.org/PDFs/UFOCAT%20Codebook%202023.pdf
# ---------------------------------------------------------------------------
FORMAT_UFOSETI_RU = {
# 15 columns matching the UFOSETI export schema (final_ufoseti_dataset.xlsx, 3 069 rows)
"obs_number": "integer โ UFOSETI internal observation ID; preserve the raw number exactly (e.g. 3776)",
"en_description": "string โ English-language narrative description of the sighting event",
"ru_description": "string โ Russian-language narrative description of the same event (ะะฟะธัะฐะฝะธะต ะฝะฐ ััััะบะพะผ ัะทัะบะต)",
"country": "string โ Country where the sighting occurred (e.g. Russia, Kazakhstan, Ukraine, United States)",
# ar_code: two-character UFOCAT Anomaly Rating code from the UFOCAT Codebook 2023
# A digit = Anomaly level: 0 = Not Anomalous | 1 = Probably Not Anomalous
# 2 = Probably Anomalous | 3 = Anomalous
# R digit = Reliability: 0 = Hoax or Mistake | 1 = Rumor / Media Publication
# 2 = Reliable Source / Primary Source | 3 = Indirect Testimony
# 4 = Indirect Evidence | 5 = Have Reliable Data
# 6 = Have Irrefutable Public Data
"ar_code": "string โ UFOCAT two-part Anomaly-Reliability code, format A{0-3}R{0-6}. "
"A = anomaly level (0 Not Anomalous โ 3 Anomalous); "
"R = evidence reliability (0 Hoax/Mistake โ 6 Irrefutable Public Data). "
"E.g. A2R2 = Probably Anomalous | Reliable Source. Leave blank if unknown.",
# Hynek-Vallรฉe phenomenological classification used by UFOSETI
# Category prefix: FB = Fly-By (no maneuver noted)
# MA = Maneuver (observed flight maneuver)
# AN = Anomalous phenomenon (non-craft anomaly)
# CE = Close Encounter (object within ~150 m)
# Subtype digit: 1 = no physical effects or traces
# 2 = physical / electromagnetic effects
# 3 = entity or occupant observed
# 4 = abduction or reality transformation (AN4)
# 5 = fatal outcome or bilateral contact (CE5)
"hynek_vallee_code": "string โ Hynek-Vallรฉe classification: prefix (FB Fly-By, MA Maneuver, AN Anomaly, CE Close Encounter) "
"plus subtype 1-5 (1 no effects; 2 physical/EM effects; 3 entity observed; 4 abduction/transformation; 5 fatal/contact). "
"Observed values: FB1, FB2, FB4, FB5, MA1, MA2, MA3, MA4, MA5, AN1, AN2, AN3, AN4, AN5, CE1, CE2, CE3, CE4, CE5. "
"Leave blank if unknown.",
"authenticities": "string โ UFOSETI investigation status. Allowed values: "
"Unconfirmed (report received, not yet reviewed), "
"Under investigation (active review in progress), "
"Investigation was made (review completed), "
"Investigation suspended (review halted, no conclusion), "
"Insufficient data (not enough information to assess), "
"Repetition (duplicate or repeat of a known sighting). "
"Leave blank if unknown.",
"observation_date": "string โ Date and time of the sighting in DD-MM-YYYY HH:MMZ format (UTC), e.g. 18-05-2024 07:28Z",
"report_date": "string โ Date and time the report was submitted in DD-MM-YYYY HH:MMZ format (UTC), e.g. 20-05-2024 13:13Z",
"shape": "string โ Shape of the observed object. Allowed values: "
"Round, Circular, Spherical, Triangular, Star-shaped, Cigar-shaped, Oval, Hemisphere, Polygonal. "
"Leave blank if unknown.",
"observer_direction": "string โ Compass direction the observer was facing during the sighting. Allowed values: "
"North, North-East, East, South-East, South, South-West, West, North-West, No direction. "
"Leave blank if unknown.",
# ar_code_full is the human-readable expansion of ar_code; the two must always agree
"ar_code_full": "string โ Full human-readable UFOCAT Anomaly Rating: {Anomaly level} | {Reliability level}. "
"Anomaly levels: Not Anomalous | Probably Not Anomalous | Probably Anomalous | Anomalous. "
"Reliability levels: Hoax/Mistake | Rumor/Media Publication | Reliable Source/Primary Source | "
"Indirect Testimony | Indirect Evidence | Have Reliable Data | Have Irrefutable Public Data. "
"Must be consistent with ar_code. E.g. A2R2 โ Probably Anomalous | Reliable Source/Primary Source.",
"source": "string โ Originating source: direct URL (YouTube, VK, NUFORC, etc.) or organisation name "
"(e.g. MUFON โ Mutual UFO Network, NUFORC โ National UFO Reporting Center); leave blank if unknown",
"ufoseti_report_date":"string โ Timestamp when this record was ingested into the UFOSETI database, "
"format YYYY-MM-DD HH:MM:SS UTC, e.g. 2024-05-20 13:13:03 UTC",
"url": "string โ Direct URL to the original UFOSETI report page, "
"e.g. https://ufoseti.org/ru/reports/3776-inoy-nlo-russian-federation-chelyabinskaya-oblast"
}
FORMAT_MERGED = {
# โโ Default UAP format fields โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"sightingDetails": {
"DenseNarrativeSection": "2-3 sentence omniscient summary of the event",
"trustScore": "integer 0-100 reliability estimate",
"date": "YYYY-MM-DD or partial (YYYY-MM or YYYY)",
"location": {
"name": "most specific known place name",
"latitude": "decimal degrees or null",
"longitude": "decimal degrees or null"
},
"uapCharacteristics": {
"shape": "dominant shape or null",
"color": "colour description or null",
"size": "size description or null",
"speed": "speed description or null",
"movementPattern": "movement description or null",
"sound": "sound description or null",
"presenceLights": "Yes / No / null"
}
},
# โโ SCU spreadsheet format fields โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"source": {
"name": "reporting database, publication or organisation",
"ref": "case ID, document reference or URL"
},
"date_time": {
"year": "integer YYYY or null",
"month": "integer 1-12 or null",
"day": "integer 1-31 or null",
"day_night": "D / N / U",
"duration_min": "integer minutes or null"
},
"location": {
"country": "ISO country name or code",
"state": "state / province or null",
"city": "nearest city or null",
"latitude": "float or null",
"longitude": "float or null",
"type": "enum [Atomic site, Military base, Population centre, Water body, Airport, Forest, Desert, Ocean, Unknown]"
},
"witness": {
"count": "integer or null",
"type": "comma-separated subset of [Military, Public, Police, Pilot, Civilian, Scientist]"
},
"craft": {
"primary_shape": "enum [Sphere, Disc, Cigar, Triangle, Diamond, Cylinder, Boomerang, Egg, Cone, Fireball, Light, Orb, Tic-Tac, Rectangle, Unknown, Other]",
"colour": "colour string or null",
"size": "enum [Tiny, Small, Medium, Large, Very large, Massive, Unknown]"
},
"performance": {
"hypersonic": "Y or blank",
"instantaneous_acceleration": "Y or blank",
"low_observability": "Y or blank",
"trans_medium_travel": "Y or blank",
"positive_lift": "Y or blank"
},
"military": {
"reported_by": "comma-separated subset of [Military, Public, Police, Pilot, Intelligence]",
"facility_name": "name of base / site or null",
"facility_type": "SCU facility enum or null"
},
"effects": {
"atomic_related": "Y / N",
"physical_effects": "Y / N"
},
"engagement_type": {
"interactive_flight": "P, S, or blank",
"radical_flight": "P, S, or blank",
"loitering": "P, S, or blank",
"close_approach": "P, S, or blank",
"no_engagement": "P, S, or blank"
},
"case_text": {
"text": "verbatim or faithfully summarised case narrative"
}
}
# โโ FORMAT_NUFORC โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# US National UFO Reporting Center | ~70,000 rows | EN | NUFORC 2023.03.csv
FORMAT_NUFORC = {
"id": "string โ unique NUFORC case ID (e.g. S177105)",
"city": "string โ city or town of sighting (uppercase)",
"district": "string โ state, province or region (uppercase)",
"country": "string โ ISO 3166-1 alpha-2 country code (e.g. US, GB)",
"water": "string โ associated water body; null if unknown",
"other": "string โ additional location qualifier; null if unknown",
"date": "string โ ISO 8601 datetime of sighting (e.g. 2023-07-29 17:45:00)",
"date_detail": "string โ human-readable date/time as submitted (e.g. 07/29/23 5:45 PM)",
"description": "string โ free-text witness narrative",
}
# โโ FORMAT_BLUE_BOOK โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# US Air Force Project Blue Book (1947โ1969) | ~15,000 rows | EN | bluebook1.csv + bluebook2.csv
FORMAT_BLUE_BOOK = {
"case_id": "string โ Blue Book case identifier (e.g. BB-8371)",
"date": "string โ date of the sighting (various formats); null if unknown",
"location": "string โ free-text location (city, state or country)",
"state": "string โ US state abbreviation (e.g. NY, CA); null for non-US",
"country": "enum [US, EU, P, AS, CN, A, CA, SA, AF, AU, ME, JP, GB, M, OC, AN] โ country or continental code; null if unknown",
"incident": "string โ free-text summary of the incident",
"special_comments":"string โ investigator annotations; null if unknown",
"shape": "string โ observed shape (free-text; ~400 unique values; e.g. Disc, Cigar, Light, Round, Ball, DomeDisc, Ovoid, Oval, Cylinder, Sphere, Triangle, Fireball); null if unknown",
"size_meters": "float โ estimated physical size in metres; null if unknown",
"result": "enum [Meteor, Aircraft, Balloon, Star, Venus, Satellite, Reflection, Debris, Mars, Mirage, Rocket, Hoax, Jupiter, Flare, Re-entry, Unidentified, Insufficient Data, Unknown, Psychological, Natural, Moon, Radar, Light, Astronomical, Other] โ official investigation conclusion; null if unknown",
}
# โโ FORMAT_UK_NATIONAL_ARCHIVES โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# UK MoD / National Archives UAP catalogue (1978โ2000) | ~2,827 rows | EN | uk.csv
FORMAT_UK_NATIONAL_ARCHIVES = {
"date": "string โ date of sighting (YYYY-MM-DD)",
"catalog_entry": "string โ UK National Archives DEFE reference (e.g. DEFE-24-1939-13)",
"location": "string โ free-text city, county and country (e.g. Laughton, Sheffield, UK)",
"summary_description":"string โ free-text summary of the sighting as filed by the MoD",
"shape": "string โ observed shape (free-text; ~936 unique values; major: light, lights, round, circular, star, triangular, cigar, oval, saucer, ball, disc, sphere, oblong); null if unknown",
"size": "string โ size descriptor (free-text; major: large, small, very large, aircraft size, football, moon); null if unknown",
"special_comments": "string โ supplementary MoD analyst notes, identification attempts and cross-references; null if unknown",
}
# โโ FORMAT_COBEPS_NOTIFICATIONS_PAN โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# COBEPS Belgium official PAN notifications up to 31 Dec 2023 | ~1,308 rows | FR | NOTIFICATIONS PAN (Belgique) 31_12_2023.csv
FORMAT_COBEPS_NOTIFICATIONS_PAN = {
# Administrative
"NO": "integer โ sequential record number",
"N_Cobeps": "string โ internal COBEPS case reference (NยฐCobeps)",
# Temporal
"CommAn": "integer โ year report was received by COBEPS (2006โ2023)",
"Origininfo": "enum [COBEPS, REUB, MUFON, ovni-ufologie.com, Les ovnis Forum ufologique, Belgisch UFO-Meldpunt, SOS-OVNI, AREPS, Forum/blog internet belge, Forum/blog internet รฉtranger, GERU] โ channel through which report was received",
"ExactMom": "enum [TRUE, FALSE] โ whether the observation time is exact",
"J_N_C": "enum [J, N, C] โ time of day: J=day (jour), N=night, C=twilight/crepuscular (J/N/C column)",
"AnObs": "integer โ year of observation",
"MoisObs": "integer 1โ12 โ month of observation",
"JourObs": "integer 1โ31 โ day of month of observation",
"JourSem": "integer 1โ7 โ day of week (1=Mon, 7=Sun)",
"HeurObs": "integer 0โ24 โ hour of observation",
"DecaGMT": "integer โ UTC offset in hours (1 or 2)",
"GMT": "string โ UTC time of sighting (HH:MM)",
"Duree": "float โ duration in minutes; null if unknown",
"Secondes": "integer โ duration in seconds; null if unknown",
"Multi": "enum [0, 1] โ multi-event flag: 0=single event, 1=part of multi-event series",
# Location
"Lieu": "string โ locality name (Belgium)",
"Nuts2": "enum [Hainaut, Liรจge, Namur, Brabant Wallon, Bruxelles, Luxembourg, Vlaams-Brabant, West-Vlaanderen, Oost-Vlaanderen, Antwerpen, Limburg] โ Belgian NUTS-2 province",
"Lat": "float โ latitude in decimal degrees WGS-84; null if unknown",
"Long": "float โ longitude in decimal degrees WGS-84; null if unknown",
# Witness
"NbTem": "integer โ number of witnesses",
"EnMouv": "enum [0, 1] โ witness in motion: 0=stationary, 1=moving",
"Source": "enum [1, 2, 3] โ source quality: 1=direct, 2=secondary, 3=press/media",
# Phenomenology
"Texte": "string โ free-text case narrative",
"NbPhe": "integer โ number of phenomena/objects observed",
"Dessinable": "enum [0, 1] โ phenomenon describable enough to sketch: 0=no, 1=yes",
"Symetrie": "string โ symmetry code (Fx=frontal, Sx=sagittal; digit=planes of symmetry; e.g. F0, S1, S3)",
"CouleurUni": "string โ dominant single colour (free-text); null if unknown",
"CouleurForm": "string โ secondary/form colour (free-text); null if unknown",
"Bruit": "enum [0, 1] โ sound reported: 0=no, 1=yes",
"Deplacement": "enum [Rectiligne ou courbe mais continu, Immobile, Complexe: plusieurs types de mouvements diffรฉrents, Immobile puis en mouvement rectiligne, Changements brutaux de direction et/ou de vitesse, Rectiligne ou en larges courbes, Globalement rectiligne mais saccades et/ou lรฉgรจres variations de vitesse, Complexe et difficilement descriptible, 1 ร 3 changements importants de directions et de vitesses, Sacades et lรฉgรจres variations de vitesse] โ movement pattern; null if unknown",
"AzimutDeb": "float โ starting azimuth in degrees (0โ360); null if unknown",
"ElevDeb": "float โ starting elevation angle in degrees (0โ90); null if unknown",
"AzimutFin": "float โ ending azimuth in degrees; null if unknown",
"ElevFin": "float โ ending elevation angle in degrees; null if unknown",
"Photo": "integer โ number of photographs (0 if none); null if unknown",
"Video": "integer โ number of video recordings (0 if none); null if unknown",
"Trace": "enum [0, 1] โ physical trace left: 0=no, 1=yes",
# Classification
"OrganTrait": "string โ organisation that processed the case (e.g. COBEPS, REUB)",
"EtapEnq": "enum [Enquรชte achevรฉe, Clรดturรฉ sans enquรชte, Pas d'information, Evaluation en cours, Enquรชte en cours] โ investigation stage",
"Rapport": "enum [FI, RDE, CRE] โ report type produced; null if none",
"GEIPAN": "enum [a, b, c, d, x, ec] โ GEIPAN/PAN classification: a=identified, b=probably identified, c=insufficient data, d=unidentified, x=unclassified, ec=under investigation",
"Hynek": "enum [LN, DD, RR1, RR2, RR3, RR4, PS] โ Hynek classification; null if unknown",
"TypeIdent": "enum [Aรฉrostat, Aรฉrodyne, Astronautique, Astronomique, Rentrรฉe atmosphรฉrique, Projection lumineuse, Animaux volants, Eclairage, Psychologique, Projectiles lumineux] โ identified explanation category; null if unidentified",
"AltitPhen": "enum [0 Sol, 1 Basses couches, 2 Troposphรจre, 3 Stratosphรจre, 4 Mรฉsosphรจre, 5 Thermosphere, 6 Exosphรจre, 8 Spatiale] โ altitude layer of the phenomenon; null if unknown",
"AvisTem": "enum [0, 1] โ witness confidence in own report: 0=uncertain, 1=confident; null if unknown",
}
# โโ FORMAT_COBEPS_COB_2021 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# COBEPS COB Online historical catalogue (pre-2021) | ~2,111 rows | FR | COB_2021 - COB Online.csv
FORMAT_COBEPS_COB_2021 = {
"CodeCOB": "string โ unique COB case code",
"Lien_PDF": "string โ URL to associated PDF report; null if none",
"Date_Encodage":"string โ date the case was encoded",
# Location
"Lieu": "string โ locality of the sighting (Belgium)",
"Province": "enum [Hainaut, Bruxelles, Liรจge, Namur, West-Vlaanderen, Antwerpen, Vlaams-Brabant, Luxembourg, Brabant Wallon, Oost-Vlaanderen, Limburg] โ Belgian province",
"Long": "float โ longitude in decimal degrees",
"Lat": "float โ latitude in decimal degrees",
# Temporal
"Date_p": "string โ primary (earliest) date of observation",
"Heure_p": "string โ primary time of observation (HH:MM)",
"Imp_heure": "enum [0, 1] โ time imprecision: 0=exact, 1=approximate",
"Decalage": "enum [00:00, 01:00, 02:00] โ UTC offset string",
"J_N_C": "enum [J, N, C, D] โ time of day: J=day, N=night, C=twilight, D=dawn",
# Witness
"RD1": "enum [0, 1] โ data reliability: 0=lower, 1=higher",
"Nb_temoins": "string โ number of witnesses (integer or >1)",
"TM": "enum [0, 1] โ multiple-witness: 0=single, 1=multiple",
"Etat_Ciel": "enum [Dรฉgagรฉ, Nuageux, Couvert, Dรฉgagรฉ>Couvert] โ sky condition; null if unknown",
# Phenomenology
"Description": "string โ free-text narrative of the sighting",
"Mob": "enum [0, 1] โ witness mobile: 0=stationary, 1=moving",
"Nb_P": "string โ number of objects/phenomena",
"Apparence": "enum [Forme, Lumiรจre, Ligne, Pt] โ primary phenomenological appearance: Forme=shaped object, Lumiรจre=light, Ligne=line, Pt=point",
"Formation": "enum [Triangulaire, Sans, Inconnue, Complexe, Quadrangulaire, Linรฉaire, Circulaire, Paire] โ formation shape when multiple objects; null if single",
"Trajectoire": "enum [Arrรชtรฉe, Stationnaire, Rectiligne, Complexe, Saccadรฉe, Brisรฉe, Courbe, Cyclique] โ movement trajectory; null if unknown",
"Duree": "float โ duration in minutes; null if unknown",
"Photos": "integer โ number of photographs taken; null if none",
"Niveau_source":"enum [1, 2, 3] โ source quality: 1=direct/firsthand, 2=secondary, 3=tertiary",
"Lune_Pres": "enum [0, 1] โ moon above horizon: 0=no, 1=yes",
# Ratings
"CR": "integer 0โ5 โ credibility rating",
"ET": "integer 0โ5 โ strangeness/exceptionality rating",
"Hynek": "enum [LN, DD, RR1, RR2, RR3, RR4] โ Hynek classification",
"Forme": "enum [OV, SV, SP, TR, CI, RE, CY, PO, TZ] โ shape code: OV=oval, SV=sphere, SP=disc/saucer, TR=triangle, CI=cigar, RE=rectangle, CY=cylinder, PO=polygon, TZ=teardrop; null if unknown",
"PAN": "enum [A, B, C, D] โ GEIPAN/PAN classification: A=identified, B=probably identified, C=insufficient data, D=unidentified",
"Identification":"string โ free-text identified explanation; null if unidentified",
}
# โโ FORMAT_GEP โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# GEP Germany UFO/UAP reports 1972โ2023 | ~5,577 rows | DE | UFO-UAP-Falldaten_GEP_1972-2023.csv
FORMAT_GEP = {
"Fallnummer": "string โ GEP internal case number",
"Datum": "string โ date of observation (YYYY-MM-DD or free-text)",
"Land": "string โ country of sighting (primarily Deutschland)",
"Bundesland": "string โ German federal state (Bundesland)",
"Sichtungsort": "string โ city or locality of sighting",
"lokale_Uhrzeit": "string โ local time of sighting (HH:MM)",
"Zeitzone": "enum [MESZ, MEZ, ESZ, EZ, ES, WESZ, ADT, WEZ, BST, EDT, EST, CET, CEST] โ timezone abbreviation",
"Tageszeit": "enum [abends, nachts, tagsรผber, nachmittags, mittags, morgens, spรคtabends, spรคtnachmittags, vormittags, frรผhabends] โ time-of-day descriptor (German: abends=evening, nachts=night, tagsรผber=daytime, morgens=morning, etc.); null if unknown",
"UTC": "string โ UTC datetime of sighting",
"Erstkontakt": "enum [Falldatenbank, E-Mail, Anruf, Kontaktformular, Facebook, Brief, Fragebogen, GEP-Forum, Medien, Sonstiges] โ channel of first contact/report submission",
"Gemeldet": "string โ date the case was reported",
"Sachverhalt": "string โ free-text summary of the sighting (German)",
"Klassifikation_Hynek": "enum [NL, DD, CE I, CE II, CE III, CE IV, CE 4.2, S, Ungenรผgende Daten] โ Hynek classification",
"Klassifikation_Hendry": "enum [IFO, NEAR IFO, PROBLEMATIC UFO, GOOD UFO, Ungenรผgende Daten, Hoax, S] โ Hendry IFO/UFO classification",
"Klassifikation_IFO_Verifikationsschluessel": "enum [V1, V2, V3] โ IFO verification confidence level (V1=high, V3=low)",
"Identifikation": "string โ specific identified object or phenomenon (free-text); null if unidentified",
"Identifikation_Gruppe": "enum [Modell-Heiรluftballone / Himmelslaternen, Folienballons / Forschungsballons / LED-Ballons / Heliumballons, Flugzeuge / Hubschrauber / Kondensstreifen, Planeten / Sterne / Mond, Satelliten / Flares / Raumstation, Insekten / Vรถgel / Partikel / Tropfen, Lichteffektgerรคte / Skybeamer / Laser / LIDAR / Scheinwerfer / Beleuchtung, Meteore / Feuerkugeln / Re-entries, Drohnen, Atmosphรคrische Effekte / Wetterphรคnomene, Unbekannt, Handgemachtes, Ungenรผgende Daten] โ category group for identified objects; null if unidentified",
}
# โโ FORMAT_UPDB_NICAP โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# UPDB / NICAP NSID database | ~5,885 rows | EN | NSID_DBListingbyDateLinks.csv
FORMAT_UPDB_NICAP = {
"Date": "string โ date of sighting (YYMMDD format; 000000=unknown)",
"City": "string โ city or locality",
"State_or_Country":"string โ US state abbreviation or full country name",
"Cat": "enum [1, 2, 3, 4, 5, 6, 7, 8, 9, 11] โ NICAP/NSID phenomenological category: 1=Nocturnal lights, 2=Daylight discs, 3=Radar cases, 4=Close encounters (CE IโIV), 5=Photographic cases, 6=Physical traces, 7=Medical effects on witnesses, 8=Animal reactions, 9=Electromagnetic effects, 11=Unclassified/other",
"BB": "string โ linked Blue Book case ID if cross-referenced; null if none",
"NC_flag": "string โ NICAP data quality flag (sparse); null if unknown",
"LC": "string โ location confidence flag (sparse); null if unknown",
"Description": "string โ free-text case description",
}
# โโ FORMAT_OVNIBASE โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# OVNIBASE French UFO database | ~3,145 rows | FR | ovni-base.csv
FORMAT_OVNIBASE = {
"Num_cas": "integer โ sequential case number",
"Depart": "string โ French dรฉpartement number (e.g. 51; Dรฉpart. column)",
"Ville": "string โ city or locality",
"Latitude": "float โ latitude in decimal degrees; null if unknown",
"Longitude": "float โ longitude in decimal degrees; null if unknown",
"CR_Observation": "string โ free-text narrative of the sighting (CR Observation column)",
"Typ_Obs": "enum [Visuel : Eloignรฉ, Visuel : proche, Visuel proche avec personnages, Seulement entitรฉs] โ type of observation: distant visual, close visual, close visual with entities, entities only",
"Date": "string โ date of sighting (DD/MM/YYYY)",
"Heure": "string โ time of sighting (HH:MM); null if unknown",
"Duree": "string โ duration (free-text); null if unknown",
"Nbre_Objets": "integer โ number of objects observed",
"Type_Objet": "string โ shape/type of object (free-text; ~115 unique values; major: Non-dรฉfini, Boule Lumineuse, Disque, Cigare, Sphรจre, Ovoรฏde, Triangle, Elliptique, Soucoupe avec dรดme, Demi sphรจre, Rectangle, Cylindre); null if unknown",
"Couleur": "enum [Rouge, Blanc, Orange, Mรฉtallique (argent,), Jaune, Plusieurs couleurs, Changement couleur, Vert, Gris, Bleu, Noir, Rose] โ dominant colour; null if unknown",
"Brillance": "enum [Brillant, รฉblouissant, Halo, fluorescent, Faiblement lumineux, Rรฉflรฉchit la lumiรจre, Brillant par intermitence, Non lumineux] โ luminosity descriptor; null if unknown",
"Effet_visuel": "string โ visual effect observed (free-text; e.g. Traรฎnรฉe, faisceau de lumiรจre, hublots, feux clignotants, gerbes d'รฉtincelles, Rayon); null if unknown",
"Disp_inst": "enum [o, n] โ instantaneous disappearance: o=yes, n=no",
"Vitesse": "string โ speed descriptor (free-text; ~63 unique values; e.g. Rapide, Lent, Immobile, Extrรชmement rapide, Immobile puis accรฉlรฉration foudroyante); null if unknown",
"Mouvement_type_vol":"string โ movement/flight type (free-text; ~92 unique values; e.g. En ligne droite, Diverses manลuvres, Au sol puis dรฉcollage, Virage ร angle droit); null if unknown",
"Taille": "string โ size descriptor (~195 unique; apparent or estimated; e.g. 2 ร 5 mรจtres (รฉvaluรฉe), Pleine Lune (apparente)); null if unknown",
"Type_Entite": "string โ entity/occupant type description (~58 unique, sparse); null if none",
"Nbre_Entite": "string โ number of entities (0 if none); null if unknown",
"Action_entite": "string โ actions performed by entities (comma-separated, sparse); null if none",
"Effets_temoin": "string โ physiological/psychological effects on witness (comma-separated; ~115 unique values); null if none",
"Effet_Physique": "string โ physical effects on environment or vehicles (sparse); null if none",
"Nbre_Temoins": "integer โ number of witnesses",
"Enq_Off": "enum [o, n] โ officially investigated: o=yes, n=no",
"Meteo": "enum [Beau temps, ciel clair, Nuages รฉpars, Ciel couvert haute altitude, Ciel couvert basse altitude, Pluie continue faible, Pluies รฉparses, Brouillard, Grosse pluie, Orage, Tempรชte, Neige] โ weather conditions; null if unknown",
"Annee": "integer โ year of observation",
"Atter": "enum [o, n] โ landing reported: o=yes, n=no",
}
# โโ FORMAT_UFOSETI โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# UFOSETI.org Russian/international UAP database | ~3,069 rows | EN+RU | final_ufoseti_dataset.csv
# Note: FORMAT_UFOSETI_RU (above) is the LLM extraction template; this mirrors the raw column schema.
FORMAT_UFOSETI = {
"obs_number": "integer โ unique UFOSETI observation number",
"en_description": "string โ English-language description of the event",
"ru_description": "string โ Russian-language description of the event (ะะฟะธัะฐะฝะธะต ะฝะฐ ััััะบะพะผ ัะทัะบะต)",
"country": "string โ country of sighting (full name)",
"ar_code": "enum [A0R0, A0R1, A0R2, A1R1, A1R2, A1R3, A2R1, A2R2, A2R3, A2R4, A3R1, A3R2] โ UFOCAT two-part Anomaly-Reliability code: A0โA3 = anomaly level (0 Not Anomalous โ 3 Anomalous); R0โR4 = source reliability",
"ar_code_full": "string โ human-readable expansion of ar_code (e.g. Probably Anomalous | Reliable Source/Primary Source)",
"hynek_vallee_code": "enum [FB1, FB2, FB5, MA1, MA2, AN1, AN2, CE1, CE2, CE3, CE4, CE5] โ combined Hynek/Vallรฉe classification; null if unknown",
"authenticities": "enum [Unconfirmed, Investigation was made, Under investigation, Insufficient data, Repetition, Investigation suspended] โ report authentication status",
"observation_date": "string โ date and time of observation (DD-MM-YYYY HH:MMZ format, UTC)",
"report_date": "string โ date and time the report was filed",
"shape": "enum [Round, Circular, Spherical, Triangular, Star-shaped, Cigar-shaped, Oval, Hemisphere, Polygonal] โ shape of the observed object; null if unknown",
"observer_direction":"enum [No direction, East, West, South-West, North-West, South, South-East, North, North-East] โ cardinal direction the observer was facing",
"source": "string โ original source of the report (free-text URL or organisation name); null if unknown",
"ufoseti_report_date":"string โ date/time the case was entered into the UFOSETI database (UTC)",
"url": "string โ URL to the case page on ufoseti.org",
}
# โโ FORMAT_UAP_SIGHTINGS_GITHUB โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# MiChaelinzo/UAP_SIGTHINGS multi-source sighting JSON | ~1,000 rows (sample) | EN | getData2.json
FORMAT_UAP_SIGHTINGS_GITHUB = {
"id": "string โ unique sighting ID",
"city": "string โ city of sighting",
"country": "string โ ISO 3166-1 alpha-2 country code (primarily US)",
"date": "string โ ISO 8601 datetime of sighting",
"date_detail": "string โ human-readable date/time string",
"description": "string โ free-text witness narrative",
"district": "string โ state, province or region (uppercase)",
"latitude": "string โ latitude in decimal degrees (sparse); null if unknown",
"longitude": "string โ longitude in decimal degrees (sparse); null if unknown",
"other": "string โ additional notes or source-specific data; null if unknown",
"source": "enum [NUFORC, UFODNA, NICAP] โ originating database",
"source_id": "string โ case ID within the originating source database",
"water": "string โ water body reference (sparse); null if unknown",
"word_count": "integer โ word count of the description field",
}
# โโ FORMAT_WEINSTEIN_PILOT_CATALOG โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Dominique Weinstein Pilot Catalog โ aircraft crew UAP encounters 1916โ1999 | ~1,300 rows | EN | Weinstein UFO Catalog 2001.xlsx
FORMAT_WEINSTEIN_PILOT_CATALOG = {
"W_num": "integer โ sequential Weinstein case number (W# column)",
"DATE": "string โ date in YY.MM.DD format (e.g. 44.06.00 = June 1944)",
"TIME": "string โ local time (HH:MM); null if unknown",
"ZT_LT": "enum [ZT, LT] โ time zone indicator: ZT=Zulu/UTC, LT=local time; null if unknown",
"COUNTRY": "string โ country or ocean/region (full name)",
"LOCATION": "string โ specific location, airway or coordinates",
"LAT_LNG": "string โ coordinates (sparse, free-text); null if unknown",
"TYPE_OF_PLANE_AND_WITNESSES": "string โ aircraft type and witness description",
"WHO": "string โ witness role (e.g. pilot, crew, passengers)",
"UFO_DESCRIPTION": "string โ free-text description of the UAP",
"Radar": "enum [AR, GR, RO, NR, GR AR, GRAR, GRARO] โ radar detection: AR=airborne radar, GR=ground radar, RO=radar only, NR=no radar; null if unknown",
"G": "string โ ground witness also saw the object (G if confirmed); null otherwise",
"X": "string โ multiple independent witnesses (X if present); null otherwise",
"E": "string โ electromagnetic/physical effect on aircraft (E if present); null otherwise",
"SOURCES": "string โ source references (coded bibliography)",
}
# โโ FORMAT_PETROWITSCH_LATAM โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Petrowitsch Catalogue โ Chilean & Latin American UAP cases | ~3,529+ rows | ES | Petrowitsch_Casos OVNI Chilenos_2024-01-29.xlsx + Petrowitsch_Casos Latino_americanos_2024-01-29.xlsx
FORMAT_PETROWITSCH_LATAM = {
"DIA": "integer โ day of observation; null if unknown",
"MES": "integer โ month of observation; null if unknown",
"ANNO": "integer โ year of observation (AรO column); null if unknown",
"HORA": "string โ local time (HH hs. format, sparse); null if unknown",
"H": "integer โ duration hours component; null if unknown",
"M": "integer โ duration minutes component; null if unknown",
"S": "integer โ duration seconds component; null if unknown",
"LUGAR": "string โ city or locality name (free-text)",
"REGION": "string โ Chilean administrative region (Roman numeral, e.g. X, RM); null if unknown",
"COORDENADAS": "string โ approximate coordinates (free-text, e.g. 41ยบ45,73ยบ44); null if unknown",
"J_V": "string โ Vallรฉe catalogue reference code (e.g. IB); null if unknown",
"N_objetos": "integer โ number of objects observed; null if unknown",
"Descripcion": "string โ free-text description of the phenomenon (Descripciรณn column)",
"Velocidad": "string โ speed descriptor (free-text, sparse); null if unknown",
"DIRECC": "string โ direction of travel (free-text, sparse); null if unknown",
"OTRAS_CARACTERISTICAS":"string โ additional observed characteristics; null if unknown",
"FOTO_FILM": "string โ photo/film indicators (M=Movie, F=photo codes); null if none",
"TESTIGOS_N": "integer โ number of witnesses; null if unknown",
"Ocupacion": "string โ witness occupation (sparse; Ocupaciรณn column); null if unknown",
"POSIBLE_EXPLICACION": "string โ possible explanation or identification; null if unknown",
"FUENTES": "string โ bibliographic source references (coded)",
}
# โโ FORMAT_UFOCAT โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# UFOCAT 2023 โ J. Allen Hynek Center for UFO Studies / Sun River Research Institute | ~146,000 rows | EN | ufocat2023.accdb + UFOCAT 2023.xlsx
FORMAT_UFOCAT = {
# โโ Record linkage โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"URN": "integer โ UFOCAT Record Number: permanent unique identifier for every record (primary key)",
"PRN": "integer โ Primary Record Number: URN of the most authoritative record for this event; group records by PRN to deduplicate event counts",
"X2": "enum [0, 1, 2, 3] โ primacy within an event block: 0=primary (use for counting), 1=independent secondary investigation, 2=references primary source, 3=references a secondary source",
"IRN": "integer โ Indirect Record Number: URN most closely associated with the source cited by this record's author; null for primary entries",
"X1": "enum [=, -] โ confidence of PRNโIRN match: ==clear match, -=possible match; null=primary entry with no indirect source",
# โโ Bibliographic provenance โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"AUTHOR": "string โ surname (and first initial) of the investigator or editor responsible for this record; may be organisation/journal name if author unknown",
"LEVEL": "enum [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] โ source type/accessibility: 0โ2=confidential investigation files; 3=preferred open investigation file; 4=newspaper/magazine; 5=UFO periodical; 6=personal files; 7=first-edition book; 8=revised/paperback edition; 9=list-only no narrative; null=non-event record",
"SOURCE": "string โ 12-character mnemonic code for the direct source (investigation file, periodical, or book); lookup in SOURCES auxiliary table",
"PAGEVOL": "string โ position within the direct source (page number, serial number, or date-based code, depending on LEVEL)",
"ISOURCE": "string โ 12-character mnemonic for the indirect (cited) source; special punctuation codes: *=firsthand written investigation, +=standardised witness form, apostrophe=scientific journal account, .=witness letter/interview, ,=newspaper account",
"IPAGEVOL": "string โ position within the indirect source; same scheme as PAGEVOL",
# โโ Date / Time โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"YEAR": "string โ year of the event (4 chars): exact year e.g. 1975; trailing .=decade only; E=early, M=middle, L=late in decade",
"MO": "string โ month (01โ12); blank first col + season code: E=JanโApr, F=OctโDec, L=SepโDec, M=MayโAug, S=AprโJun, W=JanโMar",
"DAY": "string โ day (01โ31); blank first col + E=early, M=middle, L=late in month",
"TIME": "string โ local event onset time (HHMM 24-hour); or descriptor: Day, Night, Morn, After, Even, Dawn, Noon, Dusk, MidD, MidN, Pdawn; - in minute sub-field=early, +=late",
"TZ": "enum [*, +, ., -, ', =] โ date/time accuracy: *=GMT/UTC, +=daylight saving, .=confirmed local standard, -=date approximate, apostrophe=publication date, ==date believed erroneous; null=unspecified",
"TZONE": "float โ timezone code (hours behind Greenwich noon): 4=Pacific Standard, 5=Mountain Standard, 6=Central Standard, 7=Eastern Standard; fractional values for non-integer UTC offsets",
# โโ Location โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"LOCATION": "string โ place-name of the sighting (city/town, up to 30 chars); formatted PLACENAME DIRECTION DISTANCEunits (e.g. LOUISVILLE SW 10M); = separates two places meaning between",
"LFLG": "enum [-, +, *, =] โ location accuracy: -=approximate, +=specific witness location, *=specific phenomenon location, ==place-name believed erroneous; null=standard",
"REGION": "enum [A, AA, AF, AS, AU, CA, CN, EU, I, M, ME, NA, P, SA, US, W, XX, RE] โ world region: A=Atlantic, AA=Antarctica, AF=Africa, AS=Asia, AU=Australia+Oceania, CA=Central America, CN=Canada, EU=Europe, I=Indian Ocean, M=Mediterranean, ME=Middle East, NA=North America unspecified, P=Pacific, SA=South America, US=United States, W=World unspecified, XX=Outer Space, RE=Roman Empire",
"STATE": "string โ state or country code (up to 3 chars): US states use 2-letter USPS abbreviations; countries use 1โ3 letter codes from WORLD auxiliary table",
"COUNTY": "string โ county or province (up to 12 chars); ~3,150 US counties; non-US uses province",
"LONGITUDE": "string โ longitude (up to 8 chars); default English system: West positive; decimal point in col 5=decimal degrees, apostrophe=degrees+minutes; see X3",
"LATITUDE": "string โ latitude (up to 8 chars); same system as LONGITUDE; two-letter prefix=British National Grid",
"X3": "enum [M, Q, =] โ coordinate system: null=English (360ยฐ, Greenwich), M=French metric (400ยฐ, Notre-Dame Paris), Q=English but questionable, ==known error",
"TER": "string โ terrain/landmark type at sighting location (~100 values; e.g. Airfield, Airport, City, Electric, Farm, Forest, Highway, Lake, Military, Missile, Mountain, Nuclear, Ocean, River, Shore, Warplane, Warship, Woods); see codebook Table 5",
# โโ Witness โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"WITNESSES": "string โ number of witnesses (right-justified); -=about, +=at least; C=hundred, K=thousand; letter codes: F=few, G=group, M=many, N=numerous, S=several",
"AGE": "string โ age of principal witness in years (2 chars); or group composition: first char=number of families, second=A/C/T/S/M/X/Y/W adult-type code",
"SEX": "enum [M, F, C, X] โ witness sex/group: M=all male, F=all female, C=couple, X=mixed; null=unknown",
"MIS": "enum [#, +, =] โ #=military witnesses, +=police witnesses, ==witness name incorrectly copied; null=none",
"NAMES": "string โ principal witness surname(s); additional witnesses separated by =; confidential=initials only; organisation in parentheses; investigator name in reverse parentheses for confidential cases",
"VFLG": "enum [(, , ,', ., #] โ vehicle flag: (=orbiting spacecraft, apostrophe=aircraft, ,=boat, .=automobile/motorcycle, #=airborne+ground witnesses in contact; null=none",
# โโ Phenomenology โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"HYNEK": "enum [NL, ND, NO, DD, DL, DO, RV, RR, CE1, CE2, CE3, CE4, AM, BH, CM, CR, MIB, TC] โ Hynek extended classification: NL=Nocturnal Light, ND=Nocturnal Disc, NO=Nocturnal Object, DD=Daylight Disc, DL=Daylight Light, DO=Daylight Object, RV=Radar-Visual, RR=Radar only, CE1โCE4=Close Encounters, AM=Animal Mutilation, BH=Black Helicopter, CM=Cattle Mutilation, CR=Crash Retrieval, MIB=Men in Black, TC=Physical Trace only",
"VALLEE": "enum [AN1, AN2, AN3, AN4, AN5, FB1, FB2, FB3, FB4, FB5, CE1, CE2, CE3, CE4, CE5, MA1, MA2, MA3, MA4, MA5] โ Vallรฉe classification: AN=Anomaly, FB=Flyby, CE=Close Encounter, MA=Manoeuvre; sub-type 1โ5 indicates increasing physical/experiential involvement",
"SVP": "string โ SVP Credibility Rating (3 digits): S=Source Reliability (0โ4), V=Site Visit quality (0โ4), P=Possible Explanations resisted (0โ4); e.g. 342",
"TYPE": "string โ UFOCAT type code: first digit 0โ9=strangeness scale (0=non-UFO, 1=stationary, 2=moving, 3=single discontinuity, 4=multiple discontinuities, 5=encounter without landing, 6=landed, 7=occupants outside, 8=intelligent communication, 9=lasting physical effects); followed by letter sub-type codes (E=EM effect, T=physical trace, W=independent witnesses, etc.)",
"EXPL": "enum [=, -, +, *] โ explainability flag: ==certainly explained, -=probably/possibly explained, null=no explanation offered, +=probably unconventional, *=virtually certain unconventional",
"EXPLAN": "enum [Aircraft, Animals, AnomProp, Aurora, Balloon, Birds, Blimp, Bolide, Cloud, Coincidenc, Comet, Debris, EM, FalseTarge, Fireball, Flare, Hallucinat, Helicopter, Hoax, Inversion, Junk, Jupiter, Lensflare, Light, Lights, Malfunct, Mars, Meteor, Mirage, Missile, Moon, Natural, Op-error, Planet, Prank, Psych, Quake, RadarChaff, Re-entry, Reflection, Rocket, Rumor, Satelite, Saturn, SpiderGoss, Star, Trawlers, Unreliable, Venus, Weather, Wind] โ conventional explanation as given by the direct source; null if unexplained",
"OBJS": "string โ number of UFO objects (right-justified; -=about, +=at least; C=hundred; letter codes F/G/M/N/S; 0=no object; for trace-only cases=number of trace marks)",
"DUR": "string โ duration of observation (normally minutes; +=at least; decimal prefix=seconds; H suffix=hours; D=days; B=brief, VB=very brief, .F=few seconds, .S=several seconds, SH=several hours)",
"SIZE": "integer โ estimated physical size as base-2 log of largest dimension in feet (e.g. 5=32 ft/10 m, 10=~1,000 ft/300 m); negative values possible; null if unknown",
"ANGLSIZ": "string โ apparent (angular) size: .=point source, .0=non-point, .1=โsun/moon, .2=twice sun/moon; Poher qualitative codes: (A=immense, (B=quarter-coin at arm's length, (C=orange, (D=melon/plate, (E=40 cm, (F=1 m, (G=2 m, (H=commercial aircraft",
"DIST": "integer โ closest approach distance as base-2 log in feet (e.g. 8=256 ft/78 m; -1=witness touched UFO); null if unknown",
"COLOR": "enum [Aluminum, Amber, Beige, Black, Blue, BluGray, BluGreen, Bluish, Bright, Bronze, Brown, Changed, Chrome, Clear, Copper, Dark, Fire, Fluoresc, Glowing, Gold, Gray, Green, Luminous, Metallic, Multi, Orange, Pearl, Phosphor, Pink, Red, Rust, Shiny, Silver, Tan, Transpar, Violet, White, Yellow, Zinc] โ principal colour; Multi=multi-coloured; Changed=colour changed during sighting; null if unknown",
"SHAPE": "enum [Aircraft, Arrow, Badge, Ball, Banana, Bat, Beam, Beehive, Blimp, Bottle, Bowl, BowTie, Box, Bulb, Bullet, Capsule, Cigar, Circle, Circular, Cloud, Cone, Copter, Crescent, Cross, Crown, Cube, Cylinder, Delta, Diamond, Dirigibl, Disc, DomeDisc, Dumbell, Ellipse, Elliptic, Elongate, FanBlade, Fish, Flare, Flash, Football, Fuselage, Globe, Hemisphr, L-Shape, Lampshad, Lens, Light, Lights, Linear, Lozenge, MantaRay, Missile, Object, Oblong, Odd, Orb, Oval, Ovoid, Pear, Polygon, Polymorf, Pyramid, Rectangl, Ring, Rocket, Round, Saturn, Schliere, Sparks, Sphere, Spindle, Square, Star, T-Shape, Teardrop, Top, Torpedo, Triangle, Tube, V-Shape, Walnut, Wedge, Wing, X-Shape, Y-Shape] โ principal shape; Polymorf=shape-changing; V-Shape=boomerang; Polygon=all multi-sided; null if unknown",
"SOUND": "string โ principal sound reported (e.g. NoSound, Noise, Humming, Buzzing, Whistle, Roar, Rumbling, Hissing, Jet, Droning, Whirring; NoSound=explicitly silent); null if unknown",
"WEA": "enum [Calm, Clear, Clouds, Cloudy, Fog, Ice, Muddy, Overcast, Partial, Rain, Snow, Storm, Thunder, Undrcast] โ weather conditions; null if not recorded",
# โโ Entity fields (added 2002) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"Ufonaut": "string โ classification of UFO humanoid/entity type reported; null if no entity",
"Height": "float โ reported height of the Ufonaut/entity in feet; null if none or unknown",
"Uniform": "string โ uniform or clothing description of the Ufonaut/entity; null if none or unknown",
# โโ Computed temporal fields โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"AST": "float โ Absolute Sidereal Time (4-digit integer rounded to nearest hour) calibrated to Puy-de-Dรดme, France (Epsilon Eridani reference); null if uncomputable",
"LST": "float โ Local Sidereal Time at the specific sighting location; null if uncomputable",
"USER_DEFINED":"string โ user-definable field; currently stores LST prefixed with RA for sidereal-time searches",
# โโ Free-text narrative โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"NOTES": "string โ free-text narrative describing key aspects of the report (up to 200 chars; added 1998; sparse); null if empty",
}
# โโ FORMAT_CISU_CISUCAT โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CISU Italian UAP catalogue (CISUCAT) | ~50,000+ rows estimated | IT | 2022-08-31 CISUCAT.xls + annual revisions
# Note: column schema requires XLS parsing; fields below are derived from CISU publications.
FORMAT_CISU_CISUCAT = {
"case_number": "string โ CISU internal case number (exact column name TBC from XLS)",
"date": "string โ date of observation",
"time": "string โ local time of observation; null if unknown",
"location": "string โ city or locality of sighting (Italy)",
"province": "string โ Italian province abbreviation",
"country": "string โ country (primarily Italy)",
"shape": "string โ shape of the observed object (free-text); null if unknown",
"duration": "string โ observed duration (free-text); null if unknown",
"num_witnesses": "integer โ number of witnesses; null if unknown",
"witness_type": "string โ type of witness (e.g. civilian, military, pilot); null if unknown",
"hynek": "string โ Hynek classification code; null if unknown",
"source": "string โ source of the report (bibliography or organisation)",
"description": "string โ free-text narrative of the sighting (Italian)",
}
# โโ FORMAT_CUFOC_1977_ITALY_FRANCE โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CUFOC 1977 Italy-France wave study (Bourdon+Delaval digitisation) | partial rows | FR/IT | ita_fr77_delaval.xlsx
# Note: column schema requires XLSX parsing; fields below are derived from Bourdon/Delaval methodology.
FORMAT_CUFOC_1977_ITALY_FRANCE = {
"case_id": "string โ case identifier from the CUFOC/CUN coding schema",
"date": "string โ date of observation (1977 wave)",
"time": "string โ local time of observation; null if unknown",
"country": "enum [France, Italy] โ country of the sighting",
"location": "string โ city or locality (French or Italian)",
"hynek": "string โ Hynek classification; null if unknown",
"ifo_ufo": "string โ IFO/UFO determination (identified vs. unidentified); null if unknown",
"shape": "string โ shape of observed object; null if unknown",
"source": "string โ source publication or investigation reference (Bourdon/Delaval)",
"description": "string โ free-text narrative of the sighting (French or Italian)",
}
# โโ FORMAT_UAPCHECK โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# UAPCHECK.com international data-exchange API registry | 22 organisations | EN | api.sql
# Note: this is an organisational registry, NOT a sighting catalogue.
FORMAT_UAPCHECK = {
"id_api": "integer โ auto-increment organisation ID",
"api_org_key": "string โ unique organisation key (format UAP-XXXXXX)",
"api_org_name": "string โ human-readable organisation name (e.g. MUFON (USA), GEP (Germany), COBEPS (Belgium))",
"api_org_url": "string โ website or API endpoint URL of the organisation",
"api_org_lang": "string โ ISO 639-1 language code of the organisation",
"api_org_latitude":"float โ latitude of organisation headquarters",
"api_org_longitude":"float โ longitude of organisation headquarters",
"api_options": "string โ JSON structure with API configuration options; null if none",
}
|