En inferensmotor er et program, der udfører inferens fra en forudbygget base af fakta og regler i overensstemmelse med lovene for formel logik .
Formelle sprog bruges til at opbygge en base af fakta og regler, der normalt ligner naturligt sprog, men meget mere stringent og begrænset.
En inferensmotor kan typisk udføre en eller begge af følgende operationer:
I det første tilfælde, et spørgsmål som "Er A sandt?" inferensmotoren giver svaret "Ja" eller "Nej", i det andet - til et spørgsmål som "For hvad X er reglen A (X) sand?" maskinen beregner alle mulige værdier af X, som, når den erstattes med regel A, gør denne regel til en sand kendsgerning.
I teorien om at bygge inferensmaskiner har det såkaldte problem med logisk negation , problemet med, hvordan man bestemmer ikke-sandheden af en kendsgerning, ikke en entydig løsning. I de fleste tilfælde udleder slutningsmotoren, at en kendsgerning ikke er sand, hvis sandheden om kendsgerningen ikke udledes af en base af fakta og regler, men dette kan føre til fejlfortolkning af viden, da resultaterne "A er falsk" og " En ubeviselig" adskiller sig ikke.
En inferensmotor er den grundlæggende byggesten i ekspertsystemer og programafviklingssystemer skrevet i logiske programmeringssprog som Prolog .
En slutningsmekanisme er en generaliseret procedure til at finde en løsning på et problem, som baseret på vidensbasen og i overensstemmelse med brugerens informationsbehov opbygger en kæde af ræsonnementer (logisk forbundne vidensenheder), der fører til et specifikt resultat .