Nart remove problem

Help
Lixia Zhou
2014-05-20
2014-08-18
  • Lixia Zhou
    Lixia Zhou
    2014-05-20

    Dear Sir,
    I have tested the code within the OpenCyc package.
    For the nart handling testing function.
    I found that the 'access.kill(CycFort fort)' cannot delete the nart actually.

    For the code below:
    "
    CycNart elmFruit = new CycNart(
    access.getKnownConstantByName("FruitFn"),
    access.getKnownConstantByName("ElmTree"));
    access.assertIsa(elmFruit, CycAccess.collection, CycAccess.baseKB);
    System.out.println("====The concept " + elmFruit.cyclify()
    + " can be referred to in English as '"
    + access.getGeneratedPhrase(elmFruit) + "'.");

    access.kill(elmFruit);
    System.out.println("====The concept " + elmFruit.cyclify()
    + " can be referred to in English as '"
    + access.getGeneratedPhrase(elmFruit) + "'.");
    "

    I can get the same result even I delete the nart.
    And I search (FruitFn ElmTree) in the KB browser, I still can get result.
    So I'm wondering what the 'kill' really do for nart?

    I find that for CycConstants, 'kill' function really delete the constant, and I cannot get answer in the KB Browser.

    Thanks very much~~

     
  • Vijay Raj
    Vijay Raj
    2014-08-18

    Non Atomic Terms have everything to define them specified in the term itself. So, when you send a NAT to any Cyc function, it will just create it, if its not found. Since Cyc knows about the NAT from its construction.

    Just to verify if this is the case, check the "(ephemeral, internal) ID Number" under Advanced -> Internal Data. Everytime the term is killed and recreated, it should get a different "ID Number".

    Please refer to: http://dev.cyc.com/ for additional resources to program with Cyc.