Problem
The verify_recommendation tool's self-promotion signal uses lexical matching only: domain name must appear in rank-1 item. This misses corporate acquisitions like adobe.com ranking Marketo #1 (Marketo is Adobe-owned).
Current behavior
- adobe.com → brand token = 'adobe'
- Rank-1 item 'Marketo' contains no 'adobe' → not detected
- False negative (better than false positive)
Solution: Wikidata SPARQL
Query Wikidata for owned-by relationships on lexical miss. One lookup per unique company, cached 7 days.
Pros: accurate, transparent, zero-deps (external API, not bundled), no maintenance
Cons: 1-3s first lookup (cached after)
See full discussion in issue body.
Problem
The verify_recommendation tool's self-promotion signal uses lexical matching only: domain name must appear in rank-1 item. This misses corporate acquisitions like adobe.com ranking Marketo #1 (Marketo is Adobe-owned).
Current behavior
Solution: Wikidata SPARQL
Query Wikidata for owned-by relationships on lexical miss. One lookup per unique company, cached 7 days.
Pros: accurate, transparent, zero-deps (external API, not bundled), no maintenance
Cons: 1-3s first lookup (cached after)
See full discussion in issue body.