当我删除NART并在KB中搜索NART字符串时,我仍然可以看到它。 NART与常量有何不同。为什么我不能删除它们。
答案 0 :(得分:0)
以下代码创建了三个NART和一个NAUT,演示了各种方法。如果取消注释最后一行,您将看到我们不再使用revenueForPeriodByAccountingCOC进行断言。这表明NART已被删除。但请注意,如果您在浏览器中搜索术语(FiscalYearFn Walmart-CommericalOrganization 2012),您将看到基本的NAUT及其#$ isa,但它不会有任何断言。对于常量,您将看到一个明确的通知,它不在KB中。这是因为非原子术语只能由于它们的句法表示而显示非常基本的信息。不是因为它们在KB中。
@Test public void testUnreifiableFunctionWithDateInput2() throws KBApiException { KBFunctionImpl f1 = KBFunctionImpl.get ("USDollarFn"); KBFunctionImpl f2 = f1.findOrCreateFunctionalTerm(KBFunctionImpl.class, 2012); f2.addResultIsa(KBCollectionImpl.get("MonetaryValue"), ContextImpl.get("UniversalVocabularyMt")); FactImpl.findOrCreate(new SentenceImpl(KBPredicateImpl.get("argsIsa"), f2, KBCollectionImpl.get("NumericInterval"))); KBIndividual i1 = f2.findOrCreateFunctionalTerm(KBIndividualImpl.class, 10000000); KBPredicate p = KBPredicateImpl.get("revenueForPeriodByAccountingCOC"); KBIndividualImpl w = KBIndividualImpl.get("Walmart-CommercialOrganization"); KBFunctionImpl fy = KBFunctionImpl.get("FiscalYearFn"); KBIndividual i2 = fy.findOrCreateFunctionalTerm(KBIndividualImpl.class, w, 2012); KBIndividual coc = KBIndividualImpl.findOrCreate("(#$AccountingCodeOfTypeTypicallyUsedByAgentFn #$GenerallyAcceptedAccountingPrinciples #$Walmart-CommercialOrganization)"); w.addFact(Constants.uvMt(), p, 1, i1, i2, coc); // i2.delete(); }
答案 1 :(得分:0)