- From: Andy Seaborne <andy.seaborne@epimorphics.com>
- Date: Mon, 14 Feb 2011 20:49:33 +0000
- To: SPARQL Working Group <public-rdf-dawg@w3.org>
There is now reworked definitions for :p* and :p+ in rq25. The
formatting needs improving but the content is there.
1/ There are specific operators for each case ("ZeroOrMorePath" and
"OneOrMorepath")
2/ The main algorithm ALP is path tracing (AKA node tracing for each
path possibility)
3/ :p+ is defined as one step of the path, without recording the
results, then as :p*
Test results that change: pp16 & pp25
pp16::
Got: 16 --------------------------------
## i.e. new algorithm
-------------------
| X | Y |
===================
| :a | :a |
| :a | :b |
| :a | :c |
| :a | :c |
| :b | :b |
| :b | :c |
| :c | :c |
| :d | :d |
| :d | :e |
| :d | :f |
| :e | :e |
| :e | :f |
| :f | :e |
| :f | :f |
| :h | :h |
| "test" | "test" |
-------------------
There are two (:a :c) results because there are two different routes
:a->:b->:c
:a->:c
Expected: 19 -----------------------------
# test case manifest results
-------------------
| X | Y |
===================
| :a | :a |
| :a | :b |
| :a | :c |
| :a | :c |
| :b | :b |
| :b | :c |
| :c | :c |
| :d | :d |
| :d | :e | # Lost - was from * => {0} UNION +
| :d | :e |
| :d | :f |
| :e | :e |
| :e | :e | # Lost - was from * => {0} UNION +
| :e | :f |
| :f | :e |
| :f | :f |
| :f | :f | # Lost - was from * => {0} UNION +
| :h | :h |
| "test" | "test" |
-------------------
pp25:
Got: 4 --------------------------------
------
| z |
======
| :b |
| :z | # because of :a->b->:z
| :c |
| :z | # because of :a->c->:z
------
Expected: 5 -----------------------------
------
| z |
======
| :c | # Lost by :a->:c->:z suppressing :c->:c
| :c |
| :z |
| :b |
| :z |
------
Andy
Received on Monday, 14 February 2011 20:50:12 UTC