Можно ли создать Cyc KBAPI-константы без обращения к серверу Cyc?
В более раннем Java API OpenCyc можно было создать простой термин Cyc, вызвав что-то вроде
new CycConstant("Cat", новый Guid("bd590573-9c29-11b1-9dad-c379636f7270"))
Когда вы делаете это таким образом, не происходит обратного обращения к серверу. С новым KB API ( http://dev.cyc.com/cyc-api/kb-api.html), есть ли способ сделать что-то подобное или требуется обратный вызов на сервер в этом API?
1 ответ
Да, KB API должен сделать хотя бы один вызов Cyc Server.
Все объекты API КБ (за некоторыми исключениями) имеют устаревший метод get, который принимает базовые объекты Base API.
Например, KBCollectionImpl.get(CycObject) относится к понятию "Cat".
CycConstant catHL = новый CycConstant("Cat", новый Guid ("bd590573-9c29-11b1-9dad-c379636f7270"));
KBCollection catEL = KBCollectionImpl.get (catHL);
Это поможет API, найдя термин HL, который должен был бы использовать API, если бы ему была дана только строка.
Но чтобы убедиться, что концепция "Cat" в действительности является коллекцией, и чтобы в дальнейшем сделать ее объектом FirstOrderCollection, API необходим доступ к серверу Cyc.
Потенциально мы могли бы в будущей версии ослабить это требование, если пользователь уверен, и позволить им отключить проверку.