? There is no `scheme_eval` in the snippet of code that you just posted.

You can get all atoms (links and nodes, at the same time) by saying

atomspace.get_atoms_by_type(types.Atom)

which will return both.  That way, you don't need the call to `

traverse_atomspace_helper`


There are two bugs in

traverse_atomspace_helper

One bug is that it will print many atoms more than once (potentially
duplicating thousands or millions of times).   The other bug is that there
are links with no outgoing sets that are perfectly valid -- e.g. (TrueLink)
or the empty set (SetLink) and so on.

You don't need the pattern matcher to "traverse the whole atomspace". the
get-atoms-by-type will return all of them, without any missing, without any
duplicates.

(I mean, you can write a pattern matcher query that will run on the entire
atomspace, but this is usually undesirable, since .. it eats cpu time.)

--linas

On Mon, Jan 6, 2020 at 5:20 AM Xabush Semrie <hsami...@gmail.com> wrote:

> I want to traverse the whole atomspace loaded using Python API. So far I
> have tried this:
>
>
> from opencog.atomspace import types
>
> links = atomspace.get_atoms_by_type(types.Link)
> #nodes = atomspace.get_atoms_by_type(types.Node)
>
> def traverse_atomspace(lns):
>   for link in lns:
>     link_arr = []
>     traverse_atomspace_helper(link, link_arr)
>
> def traverse_atomspace_helper(link, container):
>   if len(link.out) == 0:
>     return
>   for atom  in link.out:
>     if len(atom.out) != 0: # it is a link by itself
>       traverse_atomspace_helper(atom, container)
>     else:
>       print(atom)
>
> traverse_atomspace(links)
>
>
> This prints the all the atoms as it traverses through each link. But I was
> wondering if there is a better way to do it? Can we use pattern matcher
> functions “natively”? i.e without going through scheme_eval madness?
>
> --
> You received this message because you are subscribed to the Google Groups
> "opencog" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to opencog+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/opencog/CA%2B0j2108ZrGFwqrdZcuLAMwy0FDAbE18_ic67dk1WVgRmTiyxA%40mail.gmail.com
> <https://groups.google.com/d/msgid/opencog/CA%2B0j2108ZrGFwqrdZcuLAMwy0FDAbE18_ic67dk1WVgRmTiyxA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>


-- 
cassette tapes - analog TV - film cameras - you

-- 
You received this message because you are subscribed to the Google Groups 
"opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to opencog+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/opencog/CAHrUA37guXXdZzoA9fco%2BU1ms0k9MyE-JQnqUPmqnF82nGTeDg%40mail.gmail.com.

Reply via email to