Отображения WordNet и prettyStrings в OpenCyc - получение информации от GAF
Мне просто интересно, как я могу получить сопоставления wordnet и prettyString из Java-API openCyc.
Например, для #$AdultFemaleHuman
, Я хочу получить:
prettyString: "женщины", "взрослые женщины", "взрослые женщины", "взрослые женщины", "взрослые женщины", "дамы", "леди", "младенцы", "детка", "дамы", "дама"
отображение wordnet: "synset-woman-noun-1"
Но я не могу найти способ получить его из API Java. Буду очень признателен, если кто-нибудь сможет помочь. Или мне нужно перейти на ResearchCyc, чтобы сделать это?
1 ответ
API-интерфейсы одинаковы для всех платформ. Некоторые вызовы API могут возвращать разные значения в зависимости от содержимого базы знаний и типа Cyc (OpenCyc vs ResearchCyc).
В вашем случае OpenCyc имеет контент.
Скоро мы выпустим новый OpenCyc, который будет работать с нашими последними API Java. Сами API можно найти здесь: http://dev.cyc.com/ Поскольку у вас есть OpenCyc, работающий с более старой версией Java API, я приведу пример, использующий это, но, пожалуйста, обновите его до новых API, когда они будут доступны, так как мы не будем поддерживать старые API после выпуска OpenCyc.
CycAccess cyc = <SET YOUR="" CYC="" ACCESS="">;
CycConstant prettyStr = cyc.getLookupTool().find("prettyString");
CycConstant adultFem = cyc.getLookupTool().find("UnixOS");
List<Object> strings = cyc.getLookupTool().getArg2s(prettyStr, adultFem);
System.out.println("Pretty strings: " + strings);
В новых API вы должны сделать следующее:
KBPredicate prettyStr = KBPredicateImpl.get("prettyString");
KBCollection col = KBCollectionImpl.get("UnixOS");
Collection<String> strs = col.<String>getValues(prettyStr, 1, 2, ContextImpl.get("EnglishMt"));
System.out.println("Strings: " + strs);
Строки: [операционная система UNIX]
Пожалуйста, не стесняйтесь использовать http://dev.cyc.com/ для размещения вопросов.