diff options
| author | yzhou <yzhou@krr-linux.cs.ox.ac.uk> | 2015-04-30 17:36:35 +0100 |
|---|---|---|
| committer | yzhou <yzhou@krr-linux.cs.ox.ac.uk> | 2015-04-30 17:36:35 +0100 |
| commit | 0d8f240c9c0a64f2285324e5a517161e45c698fc (patch) | |
| tree | f4b4f7078e3be02011b9812cd8791c657a135993 /test/uk/ac/ox/cs/data/sample/RandomWalk.java | |
| parent | 68ae342b2a4923bc7b3f378c6a489f2355d85279 (diff) | |
| download | ACQuA-0d8f240c9c0a64f2285324e5a517161e45c698fc.tar.gz ACQuA-0d8f240c9c0a64f2285324e5a517161e45c698fc.zip | |
downgrade owl api and reorganised src files
Diffstat (limited to 'test/uk/ac/ox/cs/data/sample/RandomWalk.java')
| -rw-r--r-- | test/uk/ac/ox/cs/data/sample/RandomWalk.java | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/test/uk/ac/ox/cs/data/sample/RandomWalk.java b/test/uk/ac/ox/cs/data/sample/RandomWalk.java deleted file mode 100644 index d9f5107..0000000 --- a/test/uk/ac/ox/cs/data/sample/RandomWalk.java +++ /dev/null | |||
| @@ -1,88 +0,0 @@ | |||
| 1 | package uk.ac.ox.cs.data.sample; | ||
| 2 | |||
| 3 | import java.util.HashSet; | ||
| 4 | import java.util.Iterator; | ||
| 5 | import java.util.List; | ||
| 6 | import java.util.Random; | ||
| 7 | import java.util.Set; | ||
| 8 | import java.util.Stack; | ||
| 9 | |||
| 10 | import org.openrdf.rio.RDFHandlerException; | ||
| 11 | import org.openrdf.rio.turtle.TurtleWriter; | ||
| 12 | |||
| 13 | import uk.ac.ox.cs.pagoda.util.Utility; | ||
| 14 | |||
| 15 | public class RandomWalk extends Sampler { | ||
| 16 | |||
| 17 | public RandomWalk(RDFGraph graph, TurtleWriter writer) { | ||
| 18 | super(graph, writer); | ||
| 19 | } | ||
| 20 | |||
| 21 | protected Random rand = new Random(); | ||
| 22 | |||
| 23 | protected int noOfStatements = 0, statementLimit = 0; | ||
| 24 | protected Set<Integer> visited = new HashSet<Integer>(); | ||
| 25 | |||
| 26 | @Override | ||
| 27 | public void setLimit(int limit) { | ||
| 28 | statementLimit = limit; | ||
| 29 | } | ||
| 30 | |||
| 31 | @Override | ||
| 32 | public void sample() throws RDFHandlerException { | ||
| 33 | int u, v, pick, index; | ||
| 34 | RDFEdge edge; | ||
| 35 | List<RDFEdge> edges; | ||
| 36 | Stack<Integer> stack = new Stack<Integer>(); | ||
| 37 | while (true) { | ||
| 38 | if (noOfStatements >= statementLimit) { | ||
| 39 | return ; | ||
| 40 | } | ||
| 41 | if (stack.isEmpty()) { | ||
| 42 | stack.add(v = rand.nextInt(m_graph.numberOfIndividuals)); | ||
| 43 | Utility.logInfo("A new start: " + m_graph.getRawString(v)); | ||
| 44 | visit(v); | ||
| 45 | } | ||
| 46 | u = stack.peek(); | ||
| 47 | if (rand.nextInt(100) < 15) { | ||
| 48 | stack.pop(); | ||
| 49 | continue; | ||
| 50 | } | ||
| 51 | if ((edges = m_graph.edges.get(u)) == null || edges.size() == 0) { | ||
| 52 | stack.clear(); | ||
| 53 | continue; | ||
| 54 | } | ||
| 55 | |||
| 56 | index = 0; | ||
| 57 | pick = rand.nextInt(edges.size()); | ||
| 58 | for (Iterator<RDFEdge> iter = edges.iterator(); iter.hasNext(); ++index) { | ||
| 59 | edge = iter.next(); | ||
| 60 | if (index == pick) { | ||
| 61 | stack.add(v = edge.m_dst); | ||
| 62 | visit(v); | ||
| 63 | m_writer.handleStatement(m_graph.getStatement(u, edge.m_label, edge.m_dst)); | ||
| 64 | ++noOfStatements; | ||
| 65 | iter.remove(); | ||
| 66 | } | ||
| 67 | |||
| 68 | } | ||
| 69 | } | ||
| 70 | } | ||
| 71 | |||
| 72 | protected void visit(int node) throws RDFHandlerException { | ||
| 73 | if (visited.contains(node)) return ; | ||
| 74 | visited.add(node); | ||
| 75 | List<Integer> list = m_graph.labels.get(node); | ||
| 76 | if (list == null) return ; | ||
| 77 | for (Iterator<Integer> iter = list.iterator(); iter.hasNext(); ) | ||
| 78 | m_writer.handleStatement(m_graph.getStatement(node, iter.next())); | ||
| 79 | noOfStatements += list.size(); | ||
| 80 | } | ||
| 81 | |||
| 82 | @Override | ||
| 83 | public void dispose() { | ||
| 84 | visited.clear(); | ||
| 85 | } | ||
| 86 | |||
| 87 | |||
| 88 | } | ||
