Ah, confusion in terminology. Properties do have "properties", but
only those defined by RDFS/OWL (type, subPropertyOf, domain, range,
etc.).
As Holger states, the performance of any query starting with ?p ?s ?o
will depend on how many triples are in the data store.
-- Scott
On Oct 15, 2:52 pm, donundeen <[EMAIL PROTECTED]> wrote:
> well, ultimately I'd export all those triples, hence the construct.
>
> hmm, maybe I'm confused, but a predicate can be the subject of a
> triple, like
> ?predicate rdfs:domain ?domain
>
> this query works:
> CONSTRUCT{
> ?subj ?pred ?obj .
> ?pred rdfs:domain ?type}WHERE{
>
> ?subj ?pred ?obj .
> ?pred rdfs:domain ?type .
> FILTER(?pred = vocab:Objects_Type)
>
> }
>
> but takes forever to return.
> Is there a reason these kinds of queries are so slow? it just seems to
> perform significantly worse than similar queries that don't use
> predicates as subjects.
>
> thanks
>
> don
>
> On Oct 15, 2:48 pm, Scott Henninger <[EMAIL PROTECTED]>
> wrote:
>
> > 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
-~----------~----~----~----~------~----~------~--~---