Other word for 'scope' (in the programming sense) that is non-ambiguous to non-programmers
The title says it all, really.
For a Philosophy essay, I would like to describe scope, in its programming sense of being:
- Nestable: you can have a scope within a scope
- Hierarchical: a child scope knows everything something outside the scope knows, but not vice-versa necessarily
- Carries information, beyond just a 'point-of-view' or 'frame of reference' - the scope is the information, as far as the observer is considered (sort of a physics-y relativity sense)
As aforementioned, I've thought of a few common idioms, but none of them reflect what I'm looking for: when I've tried to use 'scope' or any of the above examples while trying to explain my concepts to someone, they either misunderstood or simply did not get what I was trying to say: this is where I started to suspect that my usage of the word 'scope', as I first learned it and have always used it - in the programming sense - does not really translate to the lay-person usage, since 'scope' also has quite different meanings, most typically:
the extent of the area or subject matter that something deals with or to which it is relevant.
"we widened the scope of our investigation"
That's why I'm looking for an alternative to this otherwise perfect word, but one which doesn't have alternative meanings, and is unambiguous to non-programmers. I'm fine with using obscure words/terminology, I just want something that doesn't have conflating meanings I need to separate. (idioms/figures of speech, like those mentioned, are also fine)
One possibility is layer. This has been used successfully in the OSI model: https://en.m.wikipedia.org/wiki/OSI_model
The advantage of drawing from the literature on OSI is that you avoid the term know, which is only relevant to human beings and other sentient creatures. In OSI, as in any formalized model in computing or communication, there are states, messages, rules and protocols, which can be observed externally. Components don’t “know” about each other. They merely execute their programs, i.e. they follow the rules that govern their operation.
The association of a component with a given layer provides information to the observer, who can reason about the component’s potential operation without having to know the details of its specific operation.
The observer’s knowledge of a component at one layer can provide knowledge of the adjacent layers, but not beyond. However, one could easily imagine a protocol whereby a component reports its set of states, rules, etc. to a component in a higher layer.
If layers seem overly hierarchical, there are also rings and shells. However, the key idea is that the “knowing” takes place outside the system.
Broadly speaking, if you can make a clear distinction between the “knower” and the “known”, I think that your problem will solve itself.
"Jurisdiction" , although relating specifically to the law, comes close conceptually to scope. In computer language terms scope defines the context within which a variable is valid. Outside the scope the variable may be undefined or have a different meaning.
In law, jurisdiction defines the context within which a body has authority. Outside the jurisdiction the body has no authority, for example a parking inspector from Nairobi can't fine a library user in New York for late returns.
The two terms are metaphorically similar, although they come from different practises.