Elke succesvolle nieuwe businesspropositie komt voort uit een goed inzicht in de doelgroep. Als u dit vertaalt naar een app of een SaaS-service die u wilt lanceren, dan is diepgaande kennis van wat belangrijk is voor uw potentiële gebruikers essentieel voor succes. Dit is waarom tijd investeren in de definitie van personas, Agile user stories en solide user-centric UX-design zo belangrijk is.
Dit alles maakt natuurlijk onderdeel uit van het creatieve proces, gevoerd door intelligentie mensen, die allemaal hun kennis en expertise toepassen om tot een optimale oplossing te komen. Als eindgebruiker kunt u heel snel zien of een app voldoet aan de eisen. Zelfs als u het niet exact onder woorden kunt brengen, voelt u als gebruiker heel duidelijk het verschil tussen een app waarbij alles klopt en eentje die het eenvoudigweg niet heeft. Maar intelligentie zou daar niet moeten stoppen, en dan refereer ik niet aan apps die u relevantere advertenties laten zien naarmate ze meer over u te weten komen…
Meer en meer apps reageren slim op gebruikspatronen en creëren daarmee een betere gebruikerservaring. Spotify en Netflix bijvoorbeeld passen hun suggesties aan op uw gedrag, en worden daar beter in naarmate u de app langer gebruikt. Ze gebruiken daarvoor een combinatie van big data analytics en deep learning, en beide apps lopen voorop in deze zeer trendy aspecten van softwareontwikkeling.
Iets minder trendy, maar net zo belangrijk, is het injecteren van menselijke kennis in software. Ik heb het daarbij niet over voorgekookte als/dan-routines, die natuurlijk nog steeds een groot stuk uitmaken van iedere app die er te krijgen is. Nee, ik heb het over het gebruik van een uitgebreide structuur van onderling gerelateerde begrippen, ook wel bekend als ontologie (of als ‘knowledge graph’).
“[…] een ontologie is het product van een poging een uitputtend en strikt conceptueel schema te formuleren over een bepaald domein. Een ontologie is typisch een datastructuur die alle relevante entiteiten en hun onderlinge relaties en regels binnen dat domein bevat” – Wikipedia.
– Denk bij Ontologie eenvoudig aan geformaliseerde, computer-leesbare kennis –
Leercurve
Domeinontologiën proberen zo veel mogelijk menselijke kennis te vatten in een formaat dat computers kunnen lezen en gebruiken, op allerlei manieren. Een domein-ontologie opbouwen kan in het begin een complexe onderneming lijken. Er is een steile leercurve als u echt wilt begrijpen hoe ontologiën intern gestructureerd zijn, maar gelukkig zijn er heel veel inspanningen geweest die het denken over ontologiën verder gebracht hebben. Het Semantische Web is daarvan één van de meest prominente. Met goed gedocumenteerde formaten zoals RDF en OWL, en een schat aan geavanceerde tooling en bibliotheken in veel programmeertalen, hebben ontwikkelaars geen excuus meer.
Wat kunnen ontologieën doen voor software?
Zoals ik al zei, ontologieën zijn bedoeld voor het vastleggen en structureren van kennis en het machinaal leesbaar maken ervan.
1. Query verrijking
Neem een marktplaats SaaS-app, waar vraag en aanbod bij elkaar komen. Wanneer iemand naar dingen op zoek is, kan een ontologie ervoor zorgen dat synoniemen, acroniemen, spellingsvarianten en verwante termen in aanmerking worden genomen om de aanpassing uit te voeren, bijvoorbeeld door queryverrijking uit te voeren. Bij query-verrijking wordt de zoekopdracht eerst langs een domein-ontologie gehaald, waarna de gevonden synoniemen, acroniemen, spellingsvarianten en verwante termen gezocht worden, in plaats van alleen de oorspronkelijke zoekterm.
2. Suggestion Engine
Neem een winkelsite. Bij het plaatsen van artikelen in het winkelwagentje, zal de suggestion-engine, die veel e-commerce sites hebben, suggereren wat anderen hebben gekocht met het zojuist toegevoegde item:
Het probleem is dat veel suggestion-engines slechts statistiek bedrijven op basis van big data (massale data m.b.t. koopgedrag).
Met een goede productontologie zou een e-commerce app waarschijnlijk veel meer relevante suggesties kunnen bedenken.
3. Classificatie
Neem een ict-vacaturesite waarin we een zoekfunctie implementeren. Uit ervaring weet ik dat die vaak heel slecht zijn in het presenteren van de juiste vacatures, ook al heeft u in uw profiel heel veel gegevens staan die aangeven waarnaar u op zoek bent.
Terwijl iedere ict’er onmiddellijk een beeld heeft van de verschillen tussen de rollen van developer, Agile coach, tester, DevOps en cto, is dat voor een stuk software nog niet zo eenvoudig, blijkt.
Het opbouwen van een kennisgrafiek van functietitels en gerelateerde termen kan een gigantische onderneming zijn, maar het zal zeker lonen. De ontologie van uw domein kan in de praktijk een stuk kleiner zijn, afhankelijk van uw niche, maar als u op de schaal van een wereldwijde carrièresite werkt, beschikt u waarschijnlijk over de middelen om uw huiswerk te maken. En trouwens, er zijn specialisten, zoals Sovren, Textkernel en RChilli die kunnen helpen.
Conclusie
Hoewel het vrij duidelijk is dat grote spelers zoals Google en Microsoft tegenwoordig kennisgrafieken gebruiken voor zoeken, missen vele anderen een goed ‘gedigitaliseerd begrip’ van hun domein. In sommige gevallen maakt hun software dit goed door uit te blinken in andere gebieden, in andere is de resulterende gebruikerservaring zo slecht dat ik me soms afvraag waarom mensen ze toch nog steeds gebruiken. Nadenken over het structureren van uw domeinkennis in een ontologie- of kennisgrafiek, om uw software intelligenter te maken, zou veel vanzelfsprekender moeten zijn dan het nu is.