Thanks, now I understand it better.

I'm not sure I need a reasoner, I just need to be able to do queries
which don't rely on explicit relations and properties.

To be honest, I didn't read much about SPARQL so maybe it can do
everything I need without reasoning... I asked just to be sure I can
implement the user queries I need.

I guess I'll see when I get there and start using actual queries.



Anatoly



On ב', 2013-06-10 at 16:40 -0700, Ivan Frade wrote:
> Hi Anatoly,
> 
> 
> 
> On Mon, Jun 10, 2013 at 3:56 PM, אנטולי קרסנר <tomback...@gmail.com>
> wrote:
>         Hello Tracker team,
>         
>         I'm writing software which needs to be able to do queries over
>         the data
>         it generates. It needs to be able to test all the RDF data
>         entered to
>         the database, including inferred data.
> 
>  Tracker is just as store and doesn't have any reasoner, but it is not
> completely stupid:
>  
>         
>         For example, if class B is a subclass of A, then I need the
>         query
>         resolver to be able to detect that "subClassOf" is inverse of
>         "superClassOf" 
> 
>   It understands subclasses. In this case, for example, asking for
> instances of A return instances of A and B.
>  
>         and answer queries like "which subclasses does A have".
> 
> 
>  Yes, that query is easy, the information is in the ontology but ONLY
> for direct subclasses, no transitivity.
> 
>  
>         And also for transitive relations, if the relation is
>         A->B->C->D, be
>         able to detect that A->D.
> 
> 
>  This is not done by Tracker. You need to manually write your queries
> to follow the hierarchy. Tracker doesn't add any transitivity, you
> need to query it explicitely.
> 
>  
>         
>         Can Tracker do this reasoning? I mean, does it just store data
>         "as is"
>         or it detects and understands inverse relations, transitive
>         relations,
>         object types implied by relatio domain/range, etc.?
> 
> 
>  Tracker understands those relations and can solve direct queries, but
> doesn't add any magic to follow transitivity. In other words, the
> SparQL query need to mention explicitely each relation it follows (but
> not the classes).
> 
> 
>  Example:
> 
> class A with property aToB
> 
> class B with property bToC
> 
> 
>  you can do a query like:
> 
> SELECT ?a ?c WHERE {
> 
>   ?a a A;
> 
>       aToB ?x;
> 
>       cToC ?c.
> }
> 
> 
> 
>  Note how the properties are mentioned, but the class of ?x or ?c is
> not relevant.
> 
>  
> 
>         If not, how can I do reasoning (necessary for user-defined
>         queries)?
> 
> 
>  Not sure why do you need the reasoner. What kind of queries do you
> want to solve? Our approach is to take the user parameters and
> translate it into a SparQl query. That query can be very complex but
> that is invisible to the user.
> 
> 
>  For example, "Give me all possible details of a contact" is one
> "click" to the user, but internally is is complex query full of
> optionals... still is solved without a reasoner.
> 
> 
> 
>  Hope this has helped,
> 
> 
>  Ivan
> 
> 
> 


_______________________________________________
tracker-list mailing list
tracker-list@gnome.org
https://mail.gnome.org/mailman/listinfo/tracker-list

Reply via email to