1 package DX::Proposition;
3 use Types::Standard qw(HashRef ArrayRef Str);
6 has predicate => (is => 'ro', isa => Str, required => 1);
8 has args => (is => 'ro', isa => ArrayRef, required => 1);
10 has introduced_names => (is => 'ro', isa => HashRef, required => 1);
12 has required_names => (is => 'ro', isa => HashRef, required => 1);
15 my ($self, $scope) = @_;
16 my $predicate = $scope->lookup_predicate($self->predicate);
17 my @args = map { ref($_) ? $_ : $scope->lookup($_) } @{$self->args};
18 #if (my $step = $scope->known_facts->resolution_step_for($predicate, @args)) {
21 return $predicate->resolution_step_for($self, @args);