Full-stack AI-product, alleen gebouwd
Markatzy
Een platform voor merkbewaking in Ecuador. Het nationale bureau voor intellectuele eigendom publiceert elke maand circa 1.800 nieuwe aanvragen, en houders hebben 30 dagen om oppositie in te stellen tegen een conflicterende aanvraag. Markatzy leest elk publicatieblad, vergelijkt elke aanvraag op vier dimensies met de merken die het bewaakt, en stelt de oppositiebrief op wanneer een conflict daartoe aanleiding geeft.
markatzy.comVan publicatieblad tot oppositiebrief
- 01Pagina's van het publicatiebladHet maandelijkse publicatieblad komt binnen als gescande pagina's, circa 900 per editie, opgeslagen in S3.
- 02OCR en parsingPer pagina worden kolommen, logo's en velden herkend; de vermeldingen worden geparsed en krijgen een betrouwbaarheidsscore.
- 03Menselijke controleEen beoordelaar bevestigt de opmaak en handelt vóór de import eerst de minst zekere vermeldingen af.
- 04BewakingEen achtergrondtaak vergelijkt elk bewaakt merk op vier dimensies met de nieuwe editie.
- 05OppositiebriefClaude stelt de brief op aan de hand van de juridische kennisbank, met elke bronverwijzing gekoppeld aan het betreffende artikel.
Het probleem
Op grond van Besluit 486 van de Andesgemeenschap kan iedereen met een rechtmatig belang binnen 30 dagen na publicatie oppositie instellen tegen een merkaanvraag. In Ecuador publiceert het bureau voor intellectuele eigendom (SENADI) aanvragen in een maandelijks publicatieblad van circa 1.000 tot 2.300 vermeldingen, als gescande pagina's. Een kantoor dat 100 merken bewaakt, moet elke maand circa 170.000 paren beoordelen, en de conflicten die ertoe doen zijn vaak fonetisch of visueel, niet een identieke schrijfwijze.
Ik kwam dit probleem tegen als merkenjurist (abogado), toen ik aanvragen indiende en opposities voerde bij SENADI, en schreef daar toen mijn eerste vergelijkingsscripts voor. Markatzy is dat werk, omgezet in een product.
Vier manieren waarop twee merken kunnen botsen
Elke aanvraag krijgt ten opzichte van elk bewaakt merk een score op vier dimensies. De totaalscore is de hoogste van de vier, samen met de dimensie die deze opleverde, omdat één sterke gelijkenis volstaat om het publiek te verwarren. Elke organisatie stelt haar eigen drempelwaarden in, en de overlap in Nice-klassen wordt als context getoond, niet in de score verwerkt.
- Fonetisch: merkwoorden worden getranscribeerd in het Internationaal Fonetisch Alfabet, in het Spaans en in het Engels (eSpeak NG); cijfers worden zowel als woord als als letter gelezen, en het beste van maximaal 16 variantparen telt
- Typografisch: bewerkingsafstand (edit distance), plus controles of het ene merk in het andere is opgenomen en op het best overeenkomende woord
- Semantisch: tekstembeddings van Cohere vergelijken de betekenis, zodat vertalingen en synoniemen naar voren komen
- Visueel: de logoafbeelding en het gepubliceerde merk delen één embeddingruimte, zodat een logo met elk merk in het register wordt vergeleken zonder van elk registerlogo een embedding te maken
Zoeken in twee stappen
Elk paar volledig scoren zou traag zijn, daarom verloopt het zoeken in twee stappen. Een goedkoop voorfilter behoudt kandidaten waarvan de Double Metaphone-code of het trigramprofiel dichtbij ligt, met een maximum van 2.000; alleen die krijgen de fonetische, typografische, semantische en visuele scoring. Trigrammatching werd aan het voorfilter toegevoegd nadat Metaphone alleen merken met een toegevoegd achtervoegsel miste, zoals flete tegenover fletex.
Het publicatieblad lezen
De OCR-pipeline werkt op pagina-afbeeldingen. De tekst van het publicatieblad is in zuiver grijs gedrukt, dus elke kleur op de pagina duidt op een logo; kolommen worden gevonden aan de hand van de inktdichtheid over de hoogte van de pagina, en Tesseract leest elke kolom. Vermeldingen worden gesplitst op de genummerde veldcodes van het publicatieblad, over paginagrenzen heen samengevoegd en krijgen een betrouwbaarheidsscore over tien velden.
Er blijft een mens bij betrokken: een beoordelaar bevestigt de opmaak van elke pagina voordat de detectie draait, en werkt de vermeldingen af te beginnen bij de laagste betrouwbaarheid. Automatische correcties, zoals het verwijderen van tekst die uit een naastgelegen vermelding is overgelopen, worden alleen uitgevoerd als de correctie eenduidig is.
Oppositiebrieven met hun bronnen
Wanneer een conflict actie rechtvaardigt, stelt Claude de oppositiebrief op. De verplichte artikelen van Besluit 486 zitten altijd in de context, en via zoektools kan Claude aanvullende artikelen opzoeken in een juridische kennisbank: vectorzoeken plus een kleine graaf van welke artikelen naar welke verwijzen. Elke bronverwijzing in de brief is gekoppeld aan het bronartikel in een audittrail die de advocaat kan controleren, en de brief wordt weergegeven als pdf, klaar voor beoordeling.
De kennisbank zelf is een map met 82 notities in platte tekst in git, die een advocaat kan bewerken en die in één richting met de database wordt gesynchroniseerd. Een grafendatabase is overwogen en afgewezen, omdat die meer biedt dan een corpus van deze omvang nodig heeft.
Werkwijze
Meer dan 3.000 commits in twaalf maanden, geschreven volgens een projectconstitutie en met de specificaties voorop. 858 geautomatiseerde tests en een continuous-integrationpipeline die typecontroles, linting, migraties tegen een echte PostgreSQL-database met pgvector en een SonarQube-quality gate uitvoert die de build laat mislukken. De applicatie en de achtergrondworkers draaien op Railway vanuit één image; de batchworker schaalt naar nul en wordt gestart voor het maandelijkse publicatieblad.
Beveiliging en gegevensbescherming
Gebouwd voor meerdere kantoren op één systeem, met gegevensbescherming onder de Ecuadoraanse LOPDP vanaf het begin.
- Elke query op kantoorgegevens is afgebakend tot de organisatie van het kantoor, afgedwongen in de API-laag
- Gelaagde rate limits op de endpoints voor register, zoeken en brieven, tegen scraping en uit de hand lopende kosten; IP-adressen worden vóór gebruik gehasht
- Betalingswebhooks worden via hun handtekening geverifieerd en één keer verwerkt, ongeacht het aantal retries
- Audittrails voor zaakactiviteit, registercorrecties en de bronverwijzingen achter elke brief
- Geversioneerd privacybeleid en geversioneerde voorwaarden, waarbij per gebruiker de geaccepteerde versie wordt vastgelegd
- Alle AI-modellen draaien op AWS Bedrock, zodat er geen API-sleutels voor modellen bestaan die kunnen uitlekken
Schermafbeeldingen
Markatzy is in Ecuador in productie met een gratis abonnement. Cijfers uit de repository per juli 2026; de schermafbeeldingen gebruiken openbare gegevens uit het publicatieblad.