[ 
https://issues.apache.org/jira/browse/JENA-1093?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15068795#comment-15068795
 ] 

ASF GitHub Bot commented on JENA-1093:
--------------------------------------

Github user afs commented on a diff in the pull request:

    https://github.com/apache/jena/pull/112#discussion_r48303531
  
    --- Diff: 
jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java ---
    @@ -210,44 +212,36 @@ private QueryIterator variableSubject(Binding 
binding, Node s, Node score, Node
                 return bmap;
             } ;
             
    -        Iterator<Binding> bIter = Iter.map(r.iterator(), converter);
    +        Iterator<Binding> bIter = Iter.map(results.iterator(), converter);
             QueryIterator qIter = new QueryIterPlainWrapper(bIter, execCxt);
             return qIter ;
         }
     
    +    private QueryIterator variableSubject(Binding binding, Node s, Node 
score, Node literal, StrMatch match, ExecutionContext execCxt) {
    +        List<TextHit> r = query(match.getProperty(), 
match.getQueryString(), match.getLimit(), execCxt) ;
    +        return resultsToQueryIterator(binding, s, score, literal, r, 
execCxt);
    +    }
    +
         private QueryIterator concreteSubject(Binding binding, Node s, Node 
score, Node literal, StrMatch match, ExecutionContext execCxt) {
             if (!s.isURI()) {
                 log.warn("Subject not a URI: " + s) ;
                 return IterLib.noResults(execCxt) ;
             }
     
    -        Var scoreVar = (score==null) ? null : Var.alloc(score) ;
    -        Var literalVar = (literal==null) ? null : Var.alloc(literal) ;
             String qs = match.getQueryString() ;
             List<TextHit> x = query(match.getProperty(), 
match.getQueryString(), -1, execCxt) ;
             
             if ( x == null ) // null return value - empty result
                 return IterLib.noResults(execCxt) ;
             
    +        List<TextHit> r = new LinkedList();
    --- End diff --
    
    Even if you plan to replace this, it would be good to get the fix in so the 
functionality is correct in master.  It gives work on the cache it's own space 
to happen.


> jena-text query doesn't return all matching literals
> ----------------------------------------------------
>
>                 Key: JENA-1093
>                 URL: https://issues.apache.org/jira/browse/JENA-1093
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: Text
>    Affects Versions: Jena 3.0.1
>            Reporter: Osma Suominen
>            Assignee: Osma Suominen
>
> After the optimizations in JENA-999, the text:query property function, when 
> asked for stored literal values, no longer returns all matching literals. 
> Instead, each subject is returned with a random TextHit (i.e. score+literal 
> pair). This is a problem for me because I want to show to the user the most 
> relevant reason why the search matched a particular SKOS concept (there may 
> be many matching labels in various languages), or in some cases all the 
> reasons. 
> Also the returned match may not have the highest score, which could be a 
> problem if one is interested in the score (I'm not).
> For example, with storeLiterals enabled and this data:
> {noformat}
> ex:subject rdfs:label "one reason", "another reason" .
> {noformat}
> this query
> {noformat}
> (?s ?score ?literal) text:query "reason" .
> {noformat}
> will return a single binding where ?literal is bound to either "one reason" 
> or "another reason".
> Before JENA-999 it returned two bindings, one per literal.
> The culprit is the post-JENA-999 code in the TextQueryPF.exec method, 
> particularly around this line that suppresses subsequent hits with the same 
> subject URI:
> https://github.com/apache/jena/blob/master/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java#L188
> I already have a failing unit test that shows what I'd like to accomplish. I 
> will try to make a PR at some point.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to