From dmiles@teknowledge.com Sun Feb 24 12:30:05 2002
Received: from helium.teknowledge.com (promethium.teknowledge.com [128.136.192.50])
	by swi.psy.uva.nl (8.11.6/8.11.2) with ESMTP id g1OBU4u22309
	for <prolog@swi.psy.uva.nl>; Sun, 24 Feb 2002 12:30:04 +0100 (MET)
Received: by helium.teknowledge.com with Internet Mail Service (5.5.2653.19)
	id <195H0MKA>; Sun, 24 Feb 2002 03:32:52 -0800
Message-ID: <EE25484266A64A47AE06CFC47C64232B9EEF9D@helium.teknowledge.com>
From: "Douglas R. Miles" <dmiles@teknowledge.com>
To: "'prolog@swi.psy.uva.nl'" <prolog@swi.psy.uva.nl>
Date: Sun, 24 Feb 2002 03:32:24 -0800
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: text/plain;
	charset="iso-8859-1"
Subject: [SWIPL] Looking for a way to record a variables reference

Hi,

I am looking for a way to record a variable's reference.. 
For example the way block/3 allows a variable to be used as a 'key'.

I could term_to_atom/2 a varable and gets its '_G325' 
and use that.. But I am trying to find a 

variable_reference(-Var,+VarRefInteger)  
	and perhaps even make an unsafe 
	  variable_reference(?Var,?Integer)


Should is start by ussing valTermRef(vt) ?

Is there any way to go the other way arround?
Just how quickly do things change?


I'd liketo attach  a disjuntive set of arbitrary properties to be put on a
variable.
recorda(VarRefInteger,isa(human))
recorda(VarRefInteger,isa(animal))

What would be the complications of allowing a variable to work as a 'Key' in
flags/3 and record*/N

I would see problems trying to access then back with current_flags/1 and
current_key/1.

But what if there was a '$variable' wrap of some sort or an alternate form
of access?


Thank you, Douglas






