Stel je hebt een bepaald probleem (een stelling) en wil dit oplossen met logica. Dan kun je een heleboel logische regels op vele plekken in het probleem toepassen. Het aantal mogelijke redeneringen met daarin logische stappen kan dan heel erg groot worden. Je zult met andere technieken (zeg diepe neurale netwerken, waarover hieronder meer) de keuze moeten maken welk stukje van het probleem met welke logische regel aangepakt moet worden.
Hoe kunnen we menselijke kennis representeren zodat deze gebruikt kan worden voor automatisch redeneren en zoeken? Kennis moet op een bepaalde manier gestructureerd zijn, bijvoorbeeld in een Ontologie taal. Op dit moment is het voor mensen makkelijker kennis in context te zien dan voor de computer.
De uitspraak ‘zo vrij als een vogel’ snappen we doordat we het idee dat de meeste vogels kunnen vliegen makkelijk met een gevoel van vrijheid verbinden. Logisch gezien is er niks mis met ‘zo vrij als een pinguïn’ zijn, toch weten wij dat het niet kunnen vliegen van de pinguïn deze minder vrij maakt dan de gemiddelde vogel. Door onze algemene kennis, redenatie- en inlevingsvermogen is dit intuïtief duidelijk, maar een computer struikelt hierover. Pinguïn is een vogel dus ‘zo vrij als een pinguïn’ impliceert ‘zo vrij als een vogel’.
Bepalen welke doelen nagestreefd moeten worden en deze prioriteren. Moeilijkheden hierbij ontstaan als er ook anderen agents (andere computers of mensen) in hetzelfde domein acteren. Een van die andere agents kan eerder gemaakte plannen door de war sturen en zorgen dat een (deel van het) plan herzien moet worden. Zeker bij erg complexe taken waarbij veel spelers aanwezig zijn, is communicatie en algemeen begrip van het domein en de mogelijkheden nodig om tot een goed plan te komen.
Hierbij leert het algoritme door grote hoeveelheden trainingsdata, waarbij voor elk trainingsitem het antwoord wordt gegeven. Een voorbeeld, we geven het algoritme duizenden plaatjes met en zonder verkeersborden en geven daarbij aan welk plaatje wel of geen verkeersbord bevat. Dan leert het algoritme om verkeersborden te herkennen op een plaatje. Deze vorm van leren is het meest uitgewerkt in de verschillende zwakke AI systemen en diensten.