- From: Aymeric Brisse <aymeric.brisse@gmail.com>
- Date: Fri, 4 Nov 2016 23:44:04 +0100
- To: Marios Avgeris <avgeris.marios@gmail.com>
- Cc: W3C Ruby RDF mailing list <public-rdf-ruby@w3.org>
- Message-ID: <CANURzhiFybhHV85By1WK39eAE8QYbcLefXaKPaxS8YUzQ8psBw@mail.gmail.com>
Hi Marios, On Mon, Oct 31, 2016 at 10:33 PM, Marios Avgeris <avgeris.marios@gmail.com> wrote: > Hello, > > 1) one can search the respective repository using properties with data > (String, Integer, Boolean etc.) like this: > > adam = Person.for(“adam”) > adam.age = 67 > p = Person.find(:all, :conditions => { :age => 67} ) > > that will return an array containing objects of class People, matching the > given conditions (obviously only adam in this case). > Is there a way to search the repo using object properties? I was imagining > something like this: > > beetle = Car.for(“beetle”).save > adam.drives = beetle > adam.save > p = Person.find(:all, :conditions => { :drives => beetle} ) > > However this doesn’t seem to work. > I am not familiar with the find method, but from what you can find in the source code <https://github.com/ruby-rdf/spira/blob/5fcdfba464321e9a977e5bb852157656531a02bc/lib/spira/persistence.rb#L252> something like : Person.find(:all, :conditions => { VOCAB.drives => beetle.uri }) # VOCAB = RDF::Vocabulary.new('http://example.org/vocab/ <http://example.org/vocab/drives>’) should work. > > 2) This one is separate from the above. Is there a way in which a property > could support more than one spira class/object type? what I’m trying to > achieve would seem like this: > > class Person < Spira::Base > ... > property :drives, :predicate => RDF::URI.new(' > http://example.org/vocab/drives’), :type => [:Car, :Spaceship] > ... > end > > Obviously this doesn’t work either. > > Any ideas? > That's not possible with Spira. You can define a superclass Vehicle and uses that type as the range of the *drives *property > Thanks in advance, > Marios > > Cheers!
Received on Friday, 4 November 2016 22:44:57 UTC