Thanks for that example. It looks to be very useful. I did a similar test on one of the Bio2RDF databases ( http://obo.bio2rdf.org/sparql ) and I am just wondering what it means to have the predicate is unbound in one of the result sets, as I don't necessarily just want to find paths using a particular predicate for every step in the path.
http://tinyurl.com/yl2nj78 SELECT ?x ?predicate ?y ?via ?dist ?path WHERE { { SELECT * WHERE { ?x ?predicate ?y } } OPTION ( TRANSITIVE, T_NO_CYCLES, t_in(?x), t_out(?y), t_max(6), t_step('path_id') as ?path, t_step(?x) as ?via, t_step('step_no') AS ?dist, T_DIRECTION 1 ) . FILTER ( ?x = <http://bio2rdf.org/po:0009045> && ?y = <http://bio2rdf.org/po:0009011> ) } Cheers, Peter ----- Original Message ---- > From: Nathan <[email protected]> > Cc: Virtuoso Users List <[email protected]> > Sent: Wed, 3 February, 2010 9:23:10 AM > Subject: Re: [Virtuoso-users] Get all paths between two URIs with > transitivity. > > Nathan wrote: > > Hi, > > > > Please see: http://bit.ly/9Gli76 > > > > it always seems to show the T_SHORTEST_ONLY (shortest path) between two > > nodes; any way to see all paths? > > > > SELECT ?x ?y ?via ?dist WHERE > > { > > { SELECT * WHERE { ?x skos:broader ?y } } > > OPTION ( TRANSITIVE, t_distinct, t_in(?x), t_out(?y), t_max(10), > > t_step(?x) as ?via, t_step('step_no') AS ?dist ) . > > FILTER ( ?x = > > && ?y = > > ) > > } > > > > I'm getting good at doing this.. figured it out; T_DISTINCT was limiting > the results, thus I removed it, added in T_NO_CYCLES and then forced the > direct to be the right way using T_DIRECTION 1, (which speeded up the > query massively & stopped it running out of memory) - new query is as > follows: > > SELECT ?x ?y ?via ?dist ?path WHERE > { > { SELECT * WHERE { ?x skos:broader ?y } } > OPTION ( TRANSITIVE, T_NO_CYCLES, t_in(?x), t_out(?y), t_max(6), > t_step('path_id') as ?path, t_step(?x) as ?via, t_step('step_no') AS > ?dist, T_DIRECTION 1 ) > . FILTER ( ?x = > && ?y = > ) > } > > also has additional max steps / distance of 6 and path identifier added > in so we can analyse each specific route. > > loving virtuoso! - still trying to get to the following end; so if you > know a quicker way, do let me know. > > ps: docs on transitivity here: > http://docs.openlinksw.com/virtuoso/transitivityinsQL.html > > nathan > > > whilst an "issue" this is only an interim query en-route to what I'm > > trying to do; in reality what I want to do is find all paths between > > multiple nodes and a route node which i specify (all paths between > > ?category in(x,y,z) and Category:Main_topic_classifications) then find > > the intersections with the shortest route; ie that if you follow the > > skos:broader of the cat tree up you'll find that Category:Semantic_Web > > and Category:HTML intersect at Category:World_Wide_Web so that one can > > infer that when something has these two categories it is in the broader > > topic of World_Wide_Web. > > > > If the aforementioned isn't an easy hit then just how to find all paths > > will do the trick and I can UNION up some results and filter to get what > > I want. > > > > Many Regards, > > > > Nathan > > > > ------------------------------------------------------------------------------ > > The Planet: dedicated and managed hosting, cloud storage, colocation > > Stay online with enterprise data centers and the best network in the > > business > > Choose flexible plans and management services without long-term contracts > > Personal 24x7 support from experience hosting pros just a phone call away. > > http://p.sf.net/sfu/theplanet-com > > _______________________________________________ > > Virtuoso-users mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/virtuoso-users > > > > > > > ------------------------------------------------------------------------------ > The Planet: dedicated and managed hosting, cloud storage, colocation > Stay online with enterprise data centers and the best network in the business > Choose flexible plans and management services without long-term contracts > Personal 24x7 support from experience hosting pros just a phone call away. > http://p.sf.net/sfu/theplanet-com > _______________________________________________ > Virtuoso-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/virtuoso-users __________________________________________________________________________________ Yahoo!7: Catch-up on your favourite Channel 7 TV shows easily, legally, and for free at PLUS7. www.tv.yahoo.com.au/plus7
