The useful finding from the passenger-language research is not that Davao riders speak in one special dialect. It is that a transit question often arrives as a fragment, a landmark reference, or a mixed-language sentence. “spmc po to uyanguren?”, “DGT - ADDU, unsa sakyan?”, and “Unsaon pag-adto gikan Davao National High School padulong SM Lanang?” are all short enough to fit in a search box, but they put different demands on the extractor.

The sample came from public Davao commute discussions and from versioned evaluation fixtures. It is a product-language corpus, not a census of Davao speech. It is stronger for route and landmark questions than for every bus term, and it does not establish that any listed form is unique to Davao.

The extraction boundary

The application does not need a general-purpose linguistic parser. It needs to recognize a supported transit intent, preserve the place wording, and leave resolution to deterministic code.

This is why the current assistant can treat “gikan” and “padulong” as useful trip framing without pretending that a token alone identifies a stop. It can preserve “kanto Gmall” as a route-lookup place while the route catalog decides whether that phrase has a candidate. It can classify “Pila?” as a fare follow-up only when the previous result supplies the missing trip context.

The prompt states the copying rule before the model sees any example:

text
1Preserve original place and route wording word for word.
2Never invent names, codes, fares, routes, stops, schedules, ETAs, vehicle positions, or instructions.
3Copy place and route values exactly as they appear in the user message, including case, abbreviations, typos, and words such as "a place called".

Source: 03-slots.md. The compiler enforces this rule in intent-contract.ts: it checks that the model copied a substring, then returns the original slice. That is what keeps “front of KFC,” “spmc,” and a typo available for the place resolver or a clarification.

What the messages contain

The observed forms fall into a few practical groups:

Passenger wordingWhat it usually asks forCurrent contract
gikan, from, galingStarting placeoriginText when a trip or fare intent supports it
padulong, paingon, to, papuntaDestination framingdestinationText
unsa sakyan, what jeepWhich service to takeUsually plan_trip when endpoints exist
muagi, moagi, pass nearWhether a service passes a placeroute_lookup with placeText
naog, naug, munaog, babaWhere to get offA trip follow-up today; no separate alighting field
pabalik, vice versaReturn directionA trip follow-up; the contract preserves the primary trip intent
tabok, pikas lane, atbang, kantoCrossing, road side, front, or intersectionContext today; no dedicated geometry instruction field
2 rides ba siya?, double rideTransfer count or complexityA trip follow-up; the planner supplies the authoritative count

The distinction between “which vehicle passes a place” and “how do I get from one place to another” is more important than translating every word. “Unsa nga jeep muagi sa kanto Gmall?” expects route_lookup with place text “kanto Gmall.” “DGT to ADDU unsay sakyan” expects plan_trip with two endpoint strings. The same word, sakyan, appears in both transit-shaped questions, but the endpoint structure changes the action.

Landmarks are first-class passenger references. The corpus uses malls, schools, hospitals, gates, fast-food branches, gyms, intersections, and informal hubs such as Roxas and Acacia. A landmark is useful evidence for place resolution, not proof of a route connection. The assistant must preserve it and let the catalog, geocoder, and planner decide what is known.

Code-switching is normal input

The fixtures mix English, Filipino, and Cebuano in the same message. “How much ang pamasahe gikan Matina pa-Roxas?” uses an English question frame, a Filipino fare noun, and Cebuano trip framing. “From front of KFC to Acacia, unsa sakyan?” switches in the other direction. The schema records en, fil, ceb, or other, but the slot rules do not require every token to share that label.

The prompt asks the model to preserve the original place and route wording, including lowercase text, abbreviations, typos, and qualifiers. The compiler then checks the returned values. This division is more reliable than a preprocessing step that rewrites “spmc” or “kanto Gmall” before the resolver sees it.

The corpus also contains intent the current v1 contract does not fully represent. A rider may mention a road side, a crossing, luggage, crowding, a time window, a signboard, or where to alight. Those details matter for a useful transit answer, but no documentation should claim they are structured fields until the shared contract and deterministic execution path support them.

Cases that changed the product questions

One public question from Davao National High School to SM Lanang uses gikan, padulong, a school, a mall, and speech-like punctuation. The product lesson is simple: endpoint extraction must work before grammar correction, and the resolver must be allowed to return ambiguity.

The Sasa to UP Mindanao examples ask “How many rides?” and discuss where to alight, cross, and take a last-mile vehicle. That is not just a request for a path count. It is a request for the risk and work involved in the trip. The current planner can supply ride count and walking legs when its data supports them, but the assistant intent contract still treats the message as a trip request rather than encoding every passenger concern.

The Bajada to SM Ecoland discussion contains a correction from the passenger: some Toril jeeps do not pass SM City. This is why a route name or corridor is not enough to establish a destination connection. A deterministic route result must retain service identity and direction, and a follow-up must be able to narrow the earlier assumption.

The airport-to-Kidapawan question asks about luggage and avoiding a crowded jeepney. The current compiler keeps the endpoints and does not invent a jeepney mode preference from a negative phrase. The remaining preferences are visible gaps for product design, not fields to hallucinate into the current schema.

Evidence and limits

The public examples were accessed on 2026-08-24 and are recorded with provenance in the v2 evaluation data. The research notes include a public Metro Davao commute guide, a Davao commute discussion, the Sasa to UP Mindanao question, and the airport to Kidapawan discussion. Some source pages were available through public indexes rather than a stable direct response, so the corpus records that limitation instead of treating every observation as equally strong.

The current implementation does not contain a separate vocabulary.md file. The relevant rules now live in the prompt sections, the intent compiler, and the evaluation fixtures. The research therefore explains why those rules exist; it does not claim that a token list by itself solves multilingual transit understanding.