Don;  I am not clear on what you mean by "...whenever I try to use a
predicate as the subject of a query".  SPARQL uses triple patterns to
match a graph, such as:
  ?subj ?pred ?obj

If you then try in the same query to do
  ?pred ?x ?y

...you won't find a match because the first pattern bound ?pred to a
predicate and the second is looking for ?pred as a subject of a
triple.

So for example, if you had the following:
  :xyz vocab:ObjTitles_Title :abc
  :xyz vocab:ObjTitles_Title :uvw

then a query with the following:
 ?obj ?outPred ?outObj .

The result would be bound in two result sets:
 ?obj=:xyz ?outPred=vocab:ObjTitles_Title ?outObj=:abc
 ?obj=:xyz ?outPred=vocab:ObjTitles_Title ?outObj=:uvw

If you tried a query with the following:
 ?obj ?outPred ?outObj .
 ?outPred ?x ?outPredProps .

It won't match anything because vocab:ObjTitles_Title is defined in
the data as a predicate and cannot appear as a subject or an object.

If that's not the issue you are getting at, then maybe some sample
data would help.  I'm also not clear what purpose the CONSTRUCT
triples are serving, given that you seem to just want to get data, not
map it to another structure.

-- Scott

On Oct 15, 12:27 pm, donundeen <[EMAIL PROTECTED]> wrote:
> Hi,
> I'm trying to do some queries, to gather all data "around" some
> resource.
> Basically, questions like "Get me all triples pointing in and out of
> this resource, and all triples connected to THOSE resources."
>
> So I put together a query like:
> CONSTRUCT {
> ?obj ?outPred ?outObj .
> ?inObj ?inPred ?obj .} WHERE  {
>
> ?x vocab:ObjTitles_Title ?objTitle .
> FILTER fn:matches(?objTitle, 'madame x' ,'i') .
> ?x vocab:ObjTitles_ObjectID ?obj .
> ?obj ?outPred ?outObj .
> ?inObj ?inPred ?obj .
>
> }
>
> That query works fine.
> However, Now I want to do two additional things:
> 1. go an additional hop out, in either direction (ie, get all triples
> connected to the ?outObj and ?inObj resources)
> 2. Get all triples connected to the PREDICATES themselves. (this would
> usually be ontological information, like domain, subproperty, etc)
>
> Attempting to add either 1 or 2, leads to queries that don't seem to
> ever complete.
> Here's the query I have now:
>
> CONSTRUCT {
> ?obj ?outPred ?outObj .
> ?inObj ?inPred ?obj .
> ?inPred ?y ?inPredProps .
> ?outPred ?x ?outPredProps .
> ?outObj ?outOutPred ?outOutObj .
> ?inObj ?inOutPred ?inOutObj .} WHERE  {
>
> ?x vocab:ObjTitles_Title ?objTitle .
> FILTER fn:matches(?objTitle, 'madame x' ,'i') .
> ?x vocab:ObjTitles_ObjectID ?obj .
> ?obj ?outPred ?outObj .
> ?inObj ?inPred ?obj .
> OPTIONAL {?outPred ?x ?outPredProps}.
> OPTIONAL {?inPred ?y ?inPredProps } .
> OPTIONAL { ?outObj ?outOutPred ?outOutObj } .
> OPTIONAL { ?inObj ?inOutPred ?inOutObj . }
>
> }
>
> I'm wondering if my querying is creating loops somehow, and that's why
> trying to go extra hops on the graph is making the query fail to
> complete?
> Or is it just that there's too much data to sift through?
>
> Also, I seem to notice a big reduction in performance whenever I try
> to use a predicate as the subject in a query. Is there a difference
> internally (Sesame/Mulgara) in how predicates are indexed, that would
> be the cause of it?
>
> perhaps there's a better approach to this problem, which is that I
> want to extract a connected graph, centered around some node or group
> of nodes.
>
> thanks!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TopBraid Composer Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/topbraid-composer-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to