Data-aware versus business-aware is a clean way to name the gap, and revenue is the perfect example because the disagreement is usually organisational rather than technical - finance and sales genuinely mean different things by it, and both definitions are correct in their own report. An agent that picks one silently produces a number someone will confidently act on, which is worse than refusing. Two things that have helped me on the same problem. First, an agent that can say the term is ambiguous and ask which definition applies beats one that guesses, and the ambiguity is detectable when two authoritative definitions exist for the same concept. Second, the trusted-relationships piece needs to be enforced rather than suggested: if a join path is not in the approved set, the agent should not be able to construct it at all, since a plausible-looking join across an unvalidated key produces a query that runs and returns a wrong number with no error anywhere. Worth carrying a freshness marker on definitions too - metric definitions change with reorganisations, and a semantic layer that ages silently is the same staleness problem RAG has with superseded documents.
Data-aware versus business-aware is a clean way to name the gap, and revenue is the perfect example because the disagreement is usually organisational rather than technical - finance and sales genuinely mean different things by it, and both definitions are correct in their own report. An agent that picks one silently produces a number someone will confidently act on, which is worse than refusing. Two things that have helped me on the same problem. First, an agent that can say the term is ambiguous and ask which definition applies beats one that guesses, and the ambiguity is detectable when two authoritative definitions exist for the same concept. Second, the trusted-relationships piece needs to be enforced rather than suggested: if a join path is not in the approved set, the agent should not be able to construct it at all, since a plausible-looking join across an unvalidated key produces a query that runs and returns a wrong number with no error anywhere. Worth carrying a freshness marker on definitions too - metric definitions change with reorganisations, and a semantic layer that ages silently is the same staleness problem RAG has with superseded documents.