$pg->add_fact( owns => ('Ovid', 'Cheap Whiskey')); #### [0]{2}[1]{3} = {} [1]{3} = {} #### # object ids are hashes and argument positions are arrays $self->{_arg_levels}{2}[0]{2}[1]{3}; #### $_ = $self->_get_vertex( $_ ) foreach @args; # @important is a list of argument positions that are # not null (e.g, undef, empty string, or '_') my $a = shift @important; while( my $z = shift @important ) { return if !$self->_check_path($predicate_id,$a,$z,@args[$a,$z]); $a = $z; } return 1; #### $pg->add_fact( gnarfle => qw/ foo bar baz / ); $pg->add_fact( gnarfle => qw/ foo tac toe / ); $pg->add_fact( gnarfle => qw/ tic tac toe / ); my $results = gnarfle( qw/ $one _ $two / ); # or my $results = gnarfle( qw/ $one tac $two / ); #### foo baz foo toe tic toe #### foo toe tic toe