You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by Claude Warren <cl...@xenei.com> on 2017/12/26 13:46:18 UTC
QueryTripleIterator not accept Node_Variables
QueryTripleIterator at line 87 calls Var.isVar(node) which throws an
exception if the node is a Node_Variable. But based code following line 87
I think that Node_Variable should be accepted.
{noformat}
private static Node substitute(Node node, Binding binding)
{
if ( Var.isVar(node) ) // <---- line 87
{
Node x = binding.get(Var.alloc(node)) ;
if ( x != null )
return x ;
}
return node ;
}
{noformat}
I think that perhaps the if check should be
if (node instanceof Node_Variable)
As with a lot of this code I am not certain and want to verify before I
change anything.
Claude
--
I like: Like Like - The likeliest place on the web
<http://like-like.xenei.com>
LinkedIn: http://www.linkedin.com/in/claudewarren
Re: QueryTripleIterator not accept Node_Variables
Posted by Claude Warren <cl...@xenei.com>.
I thought that might be the case.
It got in via the UpdateBuilder. I have added code to the UpdateBuilder
and checks elsewhere in the builder package to try and ensure that it does
not happen again.
Claude
On Tue, Dec 26, 2017 at 5:34 PM, Andy Seaborne <an...@apache.org> wrote:
>
>
> On 26/12/17 14:24, Claude Warren wrote:
>
>> if this method does not have to account for null node values then
>>
>> node.isVariable() would suffice.
>>
>> On Tue, Dec 26, 2017 at 1:46 PM, Claude Warren <cl...@xenei.com> wrote:
>>
>> QueryTripleIterator at line 87 calls Var.isVar(node) which throws an
>>> exception if the node is a Node_Variable.
>>>
>>
> QueryIterTriplePattern?
> Or some class you have created?
>
> QueryIterTriplePattern is used for solving a single step of a basic graph
> pattern.
>
> Var is a subclass of Node_Variable. ARQ works with Var, not Node_Variable.
>
> The exception captures an internal error condition.
>
> How did it get in?
>
> But based code following line 87
>>> I think that Node_Variable should be accepted.
>>>
>>
> Andy
>
>
>>> {noformat}
>>> private static Node substitute(Node node, Binding binding)
>>> {
>>> if ( Var.isVar(node) ) // <---- line 87
>>> {
>>> Node x = binding.get(Var.alloc(node)) ;
>>> if ( x != null )
>>> return x ;
>>> }
>>> return node ;
>>> }
>>> {noformat}
>>>
>>> I think that perhaps the if check should be
>>>
>>> if (node instanceof Node_Variable)
>>>
>>> As with a lot of this code I am not certain and want to verify before I
>>> change anything.
>>>
>>> Claude
>>> --
>>> I like: Like Like - The likeliest place on the web
>>> <http://like-like.xenei.com>
>>> LinkedIn: http://www.linkedin.com/in/claudewarren
>>>
>>>
>>
>>
>>
--
I like: Like Like - The likeliest place on the web
<http://like-like.xenei.com>
LinkedIn: http://www.linkedin.com/in/claudewarren
Re: QueryTripleIterator not accept Node_Variables
Posted by Andy Seaborne <an...@apache.org>.
On 26/12/17 14:24, Claude Warren wrote:
> if this method does not have to account for null node values then
>
> node.isVariable() would suffice.
>
> On Tue, Dec 26, 2017 at 1:46 PM, Claude Warren <cl...@xenei.com> wrote:
>
>> QueryTripleIterator at line 87 calls Var.isVar(node) which throws an
>> exception if the node is a Node_Variable.
QueryIterTriplePattern?
Or some class you have created?
QueryIterTriplePattern is used for solving a single step of a basic
graph pattern.
Var is a subclass of Node_Variable. ARQ works with Var, not
Node_Variable.
The exception captures an internal error condition.
How did it get in?
>> But based code following line 87
>> I think that Node_Variable should be accepted.
Andy
>>
>> {noformat}
>> private static Node substitute(Node node, Binding binding)
>> {
>> if ( Var.isVar(node) ) // <---- line 87
>> {
>> Node x = binding.get(Var.alloc(node)) ;
>> if ( x != null )
>> return x ;
>> }
>> return node ;
>> }
>> {noformat}
>>
>> I think that perhaps the if check should be
>>
>> if (node instanceof Node_Variable)
>>
>> As with a lot of this code I am not certain and want to verify before I
>> change anything.
>>
>> Claude
>> --
>> I like: Like Like - The likeliest place on the web
>> <http://like-like.xenei.com>
>> LinkedIn: http://www.linkedin.com/in/claudewarren
>>
>
>
>
Re: QueryTripleIterator not accept Node_Variables
Posted by Claude Warren <cl...@xenei.com>.
if this method does not have to account for null node values then
node.isVariable() would suffice.
On Tue, Dec 26, 2017 at 1:46 PM, Claude Warren <cl...@xenei.com> wrote:
> QueryTripleIterator at line 87 calls Var.isVar(node) which throws an
> exception if the node is a Node_Variable. But based code following line 87
> I think that Node_Variable should be accepted.
>
> {noformat}
> private static Node substitute(Node node, Binding binding)
> {
> if ( Var.isVar(node) ) // <---- line 87
> {
> Node x = binding.get(Var.alloc(node)) ;
> if ( x != null )
> return x ;
> }
> return node ;
> }
> {noformat}
>
> I think that perhaps the if check should be
>
> if (node instanceof Node_Variable)
>
> As with a lot of this code I am not certain and want to verify before I
> change anything.
>
> Claude
> --
> I like: Like Like - The likeliest place on the web
> <http://like-like.xenei.com>
> LinkedIn: http://www.linkedin.com/in/claudewarren
>
--
I like: Like Like - The likeliest place on the web
<http://like-like.xenei.com>
LinkedIn: http://www.linkedin.com/in/claudewarren