What sort of structure we get depends on what we are trying to model. Your starting assumptions may well lead to $\sigma$-algebras, but in computer science we have a certain understanding of "approximate information" which is naturally captured by topology.
Consider the following pieces of information:
- no information
- it is raining
- it is not raining
Clearly, "no information" approximates both "it is raining" and "it is not raining". If we think of "it is raining" as an observation that can be made, then the following assymetry is cruicial: having the information "it is not raining" is not equivalent to not having the information "it is raining". That is, if you don't receive some piece of information saying that $P$ holds, then you simply don't know. It is faulty to presume that you know $\lnot P$. This is the root cause of why the $\sigma$-algebra law of complementation is not valid in this context.
Now, to motivate closure under arbitrary unions and finite intersections (but not under arbitrary intersection), we need to take a slightly different point of view. Let us say that we want verifiable information, i.e., we say that we "have information $A$" if we can reasonably verify that $A$ holds.
- To verify a binary conjunction $A \land B$, we verify both $A$ and $B$.
- To verify an arbitrary disjunction $\bigvee_i A_i$ it is sufficient to verify a single $A_j$.
However:
To verify an infinite conjunction $\bigwedge_i A_i$ we would have to verify all $A_i$'s, and this may not be doable algorithmically (or in a physically realistic manner).
Just because we know how to verify $A$ does not mean that we also know how to verify $\lnot A$.
Example: to verify that a given machine $T$ halts it suffices to run the machine and wait until it stops. At this point we have verified that $T$ stops. (It is irrelevant what would have happened if $T$ did not stop!) But how could we verify that $T$ does not stop? It's not in general verifiable whether $T$ stops.
Another example: "$x > 0$" is a verifiable property of computable reals, but "$x \leq 0$" is not. (Recall that $x \in \mathbb{R}$ is computable if there is an algorithm which, for any given $n \in \mathbb{N}$ gives an interval $[a_n,b_n]$ with rational endpoints such that $a_n < x < b_n$ and $b_n - a_n < 2^{-n}$.) The verification algorithm works as follows: given an algorithm for computing $x$, find $n \in \mathbb{N}$ such that $0 < a_n$. If $x > 0$ then this algorithm will terminate after a finite time, thereby confirm that $x > 0$. If $x \leq 0$ then the algorithm will run forever, but that is OK because we only need to confirm $x > 0$, we are not trying to deny $x > 0$ in case it does not hold. In contrast, we cannot confirm $x \leq 0$ because there is no algorithm which takes as input $x \in \mathbb{R}$ and terminates if, and only if, $x \leq 0$.