> How can I help solving this issue ?

The test case at the moment is quite long and complex. Reducing to a simpler one would be helpful.

- does it need both graph and multiple predicate on the same field to cause a problem? What about no entMap.set calls now we have resolved the EntityDefinition problem?

- Are there test cases on the test suite that are similar?

    Andy

On 18/08/17 08:42, Jean-Marc Vanel wrote:
I agree (of course) with the observation.

I would add that it's suspect that for Lucene search '*:* ,'
there are 3 Score Docs,
and for search 'test1' (added by me),
there are 2 Score Docs for URI x:/thing .

DEBUGGING:

I put a breakpoint in class TextQueryPF in method
     private ListMultimap<String,TextHit> query(Node property, String
queryString, String lang, int limit, ExecutionContext execCxt) {

at line 257.

It is called for evering graph in the TDB,
and the passed ExecutionContext is are respectively:
activeGraph     GraphNonTxnTDB  (id=73)
  {x:/thing @http://www.w3.org/2000/01/rdf-schema#label "test1"; x:/thing @
http://xmlns.com/foaf/0.1/givenName "test1"}

and
  {x:/thing @http://www.w3.org/2000/01/rdf-schema#label "extra-data"}

Is it normal that the activeGraph is a non transactional GraphNonTxnTDB ?

How can I help solving this issue ?



2017-08-17 21:12 GMT+02:00 Andy Seaborne <[email protected]>:

Please check my cleaned up and simplified version of your test case.

https://github.com/afs/jena-reports/blob/master/src/dev/Test
TextIndex2_v3.java

As as as I can see, both order of input data are wrong: either 0 returns
or 6, and note there are 3 quads so the 6 is 2*3.

But not the right answers either way round.

     Andy



On 15/08/17 16:46, Jean-Marc Vanel wrote:

Sorry I didn't notice your answer on august 6th.
See interleaved answers.

2017-08-14 20:21 GMT+02:00 Andy Seaborne <[email protected]>:

Hi Jean-Marc - did changing the EntityDefinition help?



Alas NO !
I commited the changed test with EntityDefinition changed as suggested:
https://github.com/jmvanel/semantic_forms/commit/23bab3fd9fa
e2b36f776cee082dad0163ff902c4#diff-82d2f8cd2ba172deb83b9b0d7297704cR216



On 06/08/17 18:08, Andy Seaborne wrote:

Thanks.

Part of the problem is this:

EntityDefinition entMap =
      new EntityDefinition("uri", "text", rdfs + "label");

The third argument as a string is the graph field. You wnat to use a
Node
here of the 4 argument form:

Node pred = makeUri(rdfs + "label");
EntityDefinition entMap = new EntityDefinition("uri", "text", "graph",
pred);

Sorry , and the API was clear about that .



then I'm not sure that multiple use of the "text" field for different
predicates works.  The code has

public void set(String field, Node predicate) {
           predicateToField.put(predicate, field) ;
           // Add uniquely.
           Collection<Node> c = fieldToPredicate.get(field) ;
           if (c == null || !c.contains(predicate))
               fieldToPredicate.put(field, predicate) ;
       }

so if field has been used, fieldToPredicate is not changed.


And, regarding the code of the set() method,
I would paraphase it like this:
"when the multimap "fieldToPredicate" does not contain given predicate,
then add it with put(),
whose implementation allows duplicate key-value pairs, and put() always
adds a new key-value pair and increases the multimap size by 1.
I debugged this part, and followed the calls to method put() in
abstract class AbstractMapBasedMultimap<K, V> extends AbstractMultimap<K,
V>
in jena-shaded-guava-3.3.0
where indeed a key has multiple values.

Anyway commenting out all the calls to set() does not remove the issue.

HOWEVER, *interchanging the creation of both named graphs* makes for a
correct result, that is interchanging calls to
populateExtraGraph();
populateRelevantGraph();




       Andy


On 05/08/17 21:27, Jean-Marc Vanel wrote:

This is done !

Here:
https://github.com/jmvanel/semantic_forms/blob/master/scala/
jena_only/src/main/java/TestTextIndex2.java



2017-08-04 19:38 UTC+02:00, Andy Seaborne <[email protected]>:



On 30/07/17 11:05, Jean-Marc Vanel wrote:

I can help you with compile and run the test in Scala, or even
translate
it
in Java,
or any other help :) .


java would help - I've had to remove my scala/eclipse environment.

        Andy










Reply via email to