I have to memorize a lot of stuff, so I've been thinking about how to
make a tool that'll make me answer questions based on little quiz
databases I make.

I was thinking about something like this:
atomic number:name:symbol:family
1:hydrogen:H:nm
2:helium:He:nm

and so forth, a little like CSV.  But the part I'm confused about is
that the questioning system should work on a directed graph system, as
in some questions might be
1's name?
1's symbol?
1's family?
hydrogen's atomic number?
hydrogen's symbol?

and so forth.  However, I *can't* ask
nm's name?

because the designation 'nonmetal' shouldn't point back to the other
fields.  It is a one way mapping.  So I think I have to establish a
directed graph system between the fields so that the quiz application
knows what questions to ask.

I'm confused about how to describe these mappings in the little quiz
database files.  It'd be nice for it to be human-editable and stuff.

If someone would give their general impressions of how such an
application should be designed and what data structures would be best,
I'd appreciate it.  Like some aspects of what I'm talking about
suggest a hash, but is this thing an array of hashes, or a hash of
hashes, or..?  I'm having trouble.  TIA.