2 ms·
While you implicitly state this, the AI system is not wrong when it states that: Know(John,Phone(Bill)). The only problem stems from our human projection of wha
by pierrebai 10y ago
While you implicitly state this, the AI system is not wrong when it states that: Know(John,Phone(Bill)). The only problem stems from our human projection of what Know means. We assume that Know means to know it belongs to someone, while the system merely claim that John knows a number and that number belongs to Bill.
As you state, that meaning really maps to something like KnowBelongTo(John,Phone(Bill)), which doesn't become true when Phone(Mary) = Phone(Bill), as its definition would not be tied to Phone(X) but to BelongTo(X).
- lisper 10y ago> The only problem stems from our human projection of what Know means. It's a little trickier than that. If you allow substitution of equals (the technical term for this is that your logic is "extensional" rather than "intensional") then you get this: Phone(Mary) = Phone(Bill) = 555-1212 Knows(John, Phone(Mary)) ==> Knows(John, 555-1212) > KnowBelongTo(John,Phone(Bill)) You mean: KnowsPhoneNumberBelongsTo(John, 555-1212, Mary) And yes, that works, but it gets rather unwieldly. You can try to fix this using second-order logic: KnowsRelation(John, phone-of, Mary, 555-1212) or third-order: Knows(John, relation, phone-of, Mary, 555-1212) but then your inference rules start to get rather hairy.