Find a concept in the knowledge base. There are two variants, string and integer. The string variant finds and returns the concept with name nameString under the parent concept parentConcept. If a number is passed instead of nameString, the concept with that sibling order number is returned.
returnedConcept = findconcept(parentConcept, nameString);
returnedConcept - type: con
parentConcept - type: con
nameString - type: str
returnedConcept = findconcept(parentConcept,number)
returnedConcept - type: con
parentConcept - type: con
number - type: int
String version: findconcept returns a concept if the parentConcept does have a child concept with name nameString. If parentConcept does not have child with name nameString, findconcept returns 0.
Numerical version: If a number is passed in instead of a string, the concept with that number is returned. Child concepts are numbered from 1 to N, where 1 is the first child added to a concept, and N is the last one added.
If parentConcept is not in the KB, that is, if you don't have a handle on a valid concept, an error is thrown in the output log window: "Arg must be Sem object." If an index is chosen outside of the set of existing concepts, findconcept returns 0.
# get a handle on the root
G("the root") = findroot();
# make the child concept
makeconcept(G("the root"),"child");
# do something else ...
# later on, get the string variant
G("the child") = findconcept(G("the root"),"child");
# fetch the numeric variant
G("same concept") = findconcept(G("the root"), 1);