Thanks a lot , we really got what we want.<br><br><div class="gmail_quote">On Wed, Dec 23, 2009 at 4:53 AM, Alex Mizrahi <span dir="ltr"><<a href="mailto:killerstorm@newmail.ru">killerstorm@newmail.ru</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">> 2. What we have decided is to make separate persistent class for each<br>

> predicate.<br>
<br>
</div>So, class is a predicate, right?<br>
<div class="im"><br>
>3. (defpclass dependson ()<br>
>             ((subject :accessor subject)<br>
>             (predicate :accessor predicate)<br>
>             (object :accessor object)))<br>
<br>
</div>Why do you need a predicate slot then? Predicate for dependson class is<br>
dependson.<br>
<div class="im"><br>
> 4. How do I index a slot so that later if I have a query where I have been<br>
provided with two slot values I should be able to get the third slot value.<br>
For example: Force-dependson-? should return "mass" and "acceleration".<br>
<br>
</div>Elephant implements (on a low level) key-value pair store rather than a<br>
triple store.<br>
If you want a triple store, there are basically two way to do it -- either<br>
use<br>
compound keys, e.g. (subject, predicate)->object.<br>
Or use nested key-value stores, something like<br>
subject->(predicate->object).<br>
<br>
Class-per-predicate essentially implements later approach with nested<br>
key-value stores -- because each class in Elephant has its own btrees<br>
for indices.<br>
<br>
So, just use get-instances-by-value.  Like<br>
<br>
(ele:get-instances-by-value 'dependson 'object value)<br>
<br>
or<br>
<br>
(ele:get-instances-by-value 'dependson 'subject value)<br>
<br>
Pretty obvious, no?<br>
Either you've got confused by your own constructs, or I've misunderstood<br>
something.<br>
<div><div></div><div class="h5"><br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
elephant-devel site list<br>
<a href="mailto:elephant-devel@common-lisp.net">elephant-devel@common-lisp.net</a><br>
<a href="http://common-lisp.net/mailman/listinfo/elephant-devel" target="_blank">http://common-lisp.net/mailman/listinfo/elephant-devel</a><br>
</div></div></blockquote></div><br>