I do not have a clear idea about the special values. My idea:
unavailable: when the value/object does not exist(out of scope/deleted), or exception occured while retrieving the value....
unknown: when the object/variable is not initialized (no default value, not null) , or rule engine does not know how to determine if object is even available (exception occured somewhere in the flow before even trying to retrieve value of object)
The above is my understanding. Can anyone clarify please ?