Yes, it can get a bit confusing with the terminology and the sources of information. Let me try to clarify.
An origin code of i does indeed mean IGP, as in interior gateway protocol. Why is that term used even though it refers to networks added using the
network command? Well, it comes from the fact that in order for a prefix to appear in the BGP table and be advertised, it must first exist in the local routing table. And how are prefixes placed in the local routing table? Via an IGP (or via static or directly connected routers of course). So if you enter the
network command on R1, a prerequisite of that network being advertised to R2 is that it must be in the local (R1’s) routing table. I know it’s not a completely airtight argument, but that’s where the choice of the origin code name comes from.
Alternatively, when redistributing, the source could be anything. An IGP, a route map, directly connected networks, or another instance of BGP, so the ? is appropriate to use there.
I hope this has been helpful!