|
From: Bc. Š. P. <xp...@vs...> - 2014-04-22 13:43:02
|
Hi, I'm working with Silk to find links within a dataset. I have several graphs, each with tens of thousands of resources for linking in a Virtuoso instance. When given Virtuoso SPARQL endpoint parameters to Silk it is able to load in batches (default by 1000) all resources needed, even though the total number exceeds MaxSortedTopRows directive. As the name suggests, I assume, it applies only when using ORDER BY and not using it avoids the need for nested query as described in http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtTipsAndTricksHowToHandleBandwidthLimitExceed. As far as I've been able to find out, the result set ordering when omitting ORDER BY is unspecified, but my attempts (and Silk's assumption) point to some implicit ordering in Virtuoso so that repeated query like: SELECT * WHERE { ?s ?p ?o . } OFFSET 100000 LIMIT 1000 returns the same results again and again. Am I right in thinking that it is just coincidence resulting from use of some data structure in Virtuoso? Is it possible to describe this implicit order (like most RDBMS return records in order of creation when no specific order applied)? Do operations modifying data between two same queries alter the implicit order? Thanks Štěpán Pilař |