В настоящее время я работаю над реализацией стандартной семантической сети, и я не потерян.
У меня есть глобальный список assc:
(define *database* '())
и пытаюсь заполнить список стандартной формой как
((hellipcopter (isa (air-vehicle))
(has-part (propeller door)))
.
.
.
Из заявлений
(has-part helicopter propeller)
(has-part helicopter door)
(isa helicopter air-vehicle)
Вот моя попытка
(define (process-relation rel)
(set! *database* (cons (cons (cons (cadr rel) (car rel)) (caddr rel))*database*)))
который печатает таким ужасным образом
((helicopter . has-part) . propeller)
((propeller . has-part) . blade)
Я новичок в схеме, как вы можете сказать, поэтому у меня есть несколько вопросов.
- Почему минусы образуют утверждение так, как оно? (х. у)
- Как бы вы добавили несколько частей, например, к одному и тому же объекту?
- Что бы сделать, чтобы это исправить?