:- op(701,xfx, has).
:- op(701,xfx, of).

:- discontiguous exists/1, oav/3.
:- index(oav(1,1,0)).

term_expansion(This has That,[exists(This)|Out]) :- 
    findall(Triples, xpand(This,That,Triples),Out).

xpand(Object,Values,oav(Object,Attribute,Value)) :- 
      member(Attribute=Value,Values).
