← All articles

Product

Sports Data Is Harder Than It Looks: Building an Honest BJJ Ontology

Why Brazilian Jiu-Jitsu terminology resists clean data structure, and how BRAWLER AI models techniques, positions, and uncertainty without pretending to know more than it does.

Brendan McWeeney5 min read
Abstract clusters of glowing gold particles on a dark background connected by thin threads of light, with a few faint particles drifting unassigned between them

Say "knee cut" in three different gyms and you will hear it called a knee slice, a knee slide, and just "that pass everyone does." All four names are the same technique. None of them is wrong. Now try building a training journal that has to file all four under one record, and you have met the problem that shaped more of BRAWLER AI than any other.

This is a field note from building that structure: what makes grappling terminology genuinely hard to model, and why the honest answer sometimes has to be "I am not sure yet."

Why BJJ terminology is messy

Jiu-jitsu vocabulary was not designed. It grew. Techniques get named by whoever popularized them, in whatever language they taught in, and the names stick unevenly: Portuguese here, English there, a competitor's nickname somewhere else. The same sweep can carry a lineage name, a descriptive name, and a joke name, all in active use.

It gets worse. Names overlap in the other direction too: "single leg" is a takedown in one sentence and a guard variation in another, and only position context tells you which. Instructors invent private shorthand. New systems rename old positions to plant a flag. And practitioners speaking casually after training, which is exactly when BRAWLER AI listens, say things like "that thing where you trap the arm" and expect to be understood.

A spreadsheet dies here. If every spoken variant becomes its own row, your half guard work is scattered across five names and no pattern is visible. If everything gets forced into one row, distinctions that matter get erased. Both failures are quiet, and both make the record less true.

Position, technique, type, and uncertainty

The structure that survived contact with real training data has four load-bearing ideas.

A position is where you are: mount, half guard, side control, the fifty or so places a roll can live. A technique is what you do from there. A type is what kind of action it is: a sweep, a submission, a guard pass. Keeping these three separate matters, because "armbar" alone says far less than "armbar, from closed guard, as a submission" and your pattern history is built from the combination.

As of 2026-07-18, the canonical library behind BRAWLER AI holds 305 techniques, 49 positions, and 13 technique types. Each technique carries its type, and deliberately not a single home position: the same armbar legitimately starts from mount, closed guard, or side control, so position is captured on your entry, from what you actually said happened, and the pattern history is built from that combination.

The fourth idea is the unglamorous one: uncertainty is part of the model, not a failure of it. Some of what you say after training does not map cleanly to any canonical record, and the structure has a place for that too.

Synonyms and unresolved states

When you say "knee slice," matching runs in stages. Exact names match first. Then known variations and close spellings get a chance: fuzzy matching exists because tired people misspeak and transcripts mishear, and "kimora" should still find the kimura.

But there is a floor. When a mention cannot be matched with confidence, BRAWLER AI leaves it unresolved rather than forcing it into the nearest canonical record. Your words stay in the entry; the structured link simply is not claimed. An unresolved state is the system saying "I heard you, and I am not going to guess."

That choice costs something. A forced match would make the database look cleaner and the product look smarter. It would also be quietly wrong, and wrong data in a training journal compounds: one bad guess about which guard you meant becomes a false pattern three months later. A gap is recoverable. A confident lie is not.

Why honest structure matters to the practitioner

None of this is abstract if you train. The structure is what makes your own history answerable.

When your after-class recaps become structured records, questions get answers that scattered notes cannot give: whether your escapes are coming earlier, which position your rounds keep living in, whether the pass that ate your guard all spring has actually stopped appearing. That only works if the structure underneath is trustworthy: if "knee cut" and "knee slice" landed in the same place, and if the system did not pad your history with guesses.

Honest structure is also what keeps the coaching layer honest. A Weekly Focus proposal or a Brawler Brief is only as good as the records it reads. Garbage taxonomy in, confident nonsense out. The unresolved states are load-bearing here: they mark exactly where the record is thin, instead of papering over it.

What the system does not infer

The boundary is as important as the structure, so here it is plainly.

BRAWLER AI does not infer techniques you did not mention. It does not decide that because you trained with a bigger partner you must have worked pressure passing. It does not upgrade a co-occurrence in your history into a cause, and it does not fill an unresolved mention with its best guess to make a chart look complete. You review every entry before it saves, and what you confirm is what the record holds.

Structure, in other words, is not intelligence. It is honesty at scale: the same discipline a good training partner shows when they tell you "I do not know what that position is called either" instead of inventing a name.

That discipline is most of what building a sports data model actually is. The counts will keep growing and the synonym lists will keep getting longer, but the rule underneath does not change: model the mess faithfully, keep the uncertainty visible, and let the practitioner, not the schema, be the authority on what happened on the mat.

If you like reading the engineering underneath the training tool, this series continues with how the same source-of-truth thinking got applied to the brand itself. And if you want to see the ontology working on your own rounds, BRAWLER AI is on the App Store, ready when you are after your next session.

BRAWLER AI

Voice-first training intelligence for Brazilian Jiu-Jitsu. Talk about your training. We'll find the patterns you missed.