LightJason - AgentSpeak(L++)
org.lightjason.agentspeak.language.unify.CUnifier Class Reference

unification algorithm More...

+ Inheritance diagram for org.lightjason.agentspeak.language.unify.CUnifier:
+ Collaboration diagram for org.lightjason.agentspeak.language.unify.CUnifier:

Public Member Functions

 CUnifier ()
 ctor More...
 
 CUnifier ( @Nonnull final IUnifier.IAlgorithm p_hashbased, @Nonnull final IUnifier.IAlgorithm p_recursive)
 ctor More...
 
final boolean equals (final Object p_object)
 
final int hashCode ()
 
final String toString ()
 
final Set< IVariable<?> > unify ( @Nonnull final ILiteral p_source, @Nonnull final ILiteral p_target)
 unifies a literal More...
 
IFuzzyValue< Boolean > unify ( @Nonnull final IContext p_context, @Nonnull final ILiteral p_literal, final long p_variables, @Nonnull final IExpression p_expression, final boolean p_parallel)
 unifies the literal with the expression More...
 

Private Member Functions

List< Set< IVariable<?> > > variables (final IAgent<?> p_agent, final ILiteral p_literal, final long p_variablenumber)
 search all relevant literals within the agent beliefbase and unifies the variables More...
 

Static Private Member Functions

static boolean evaluateexpression (final IContext p_context, final IExpression p_expression, final Set< IVariable<?>> p_variables)
 evaluate expression More...
 
static< T > Stream< T > parallelstream (final Stream< T > p_stream, final boolean p_parallel)
 execute stream in parallel More...
 

Private Attributes

final IAlgorithm m_hashbased
 hash-based unify algorithm More...
 
final IAlgorithm m_recursive
 recursive unify algorithm More...
 

Additional Inherited Members

- Public Attributes inherited from org.lightjason.agentspeak.language.unify.IUnifier
IUnifier EMPTY
 empty unifier More...
 

Detailed Description

Definition at line 50 of file CUnifier.java.

Constructor & Destructor Documentation

◆ CUnifier() [1/2]

org.lightjason.agentspeak.language.unify.CUnifier.CUnifier ( )

Definition at line 64 of file CUnifier.java.

◆ CUnifier() [2/2]

org.lightjason.agentspeak.language.unify.CUnifier.CUnifier ( @Nonnull final IUnifier.IAlgorithm  p_hashbased,
@Nonnull final IUnifier.IAlgorithm  p_recursive 
)
Parameters
p_hashbasedhash-based unification algorithm
p_recursiverecursive-based unification algorithm

Definition at line 75 of file CUnifier.java.

Member Function Documentation

◆ equals()

final boolean org.lightjason.agentspeak.language.unify.CUnifier.equals ( final Object  p_object)

Definition at line 141 of file CUnifier.java.

References org.lightjason.agentspeak.language.unify.CUnifier.hashCode().

+ Here is the call graph for this function:

◆ evaluateexpression()

static boolean org.lightjason.agentspeak.language.unify.CUnifier.evaluateexpression ( final IContext  p_context,
final IExpression  p_expression,
final Set< IVariable<?>>  p_variables 
)
staticprivate
Parameters
p_contextexecution context (will be duplicated)
p_expressionexpression
p_variablescurrent variables
Returns
boolean for correct evaluation

Definition at line 173 of file CUnifier.java.

References org.lightjason.agentspeak.language.execution.IContext.duplicate(), org.lightjason.agentspeak.language.execution.IExecution.execute(), and org.lightjason.agentspeak.language.CCommon.updatecontext().

Referenced by org.lightjason.agentspeak.language.unify.CUnifier.unify().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hashCode()

final int org.lightjason.agentspeak.language.unify.CUnifier.hashCode ( )

Definition at line 134 of file CUnifier.java.

Referenced by org.lightjason.agentspeak.language.unify.CUnifier.equals().

+ Here is the caller graph for this function:

◆ parallelstream()

static <T> Stream<T> org.lightjason.agentspeak.language.unify.CUnifier.parallelstream ( final Stream< T >  p_stream,
final boolean  p_parallel 
)
staticprivate
Parameters
p_streamstream
p_parallelparallel
Template Parameters
Tstream elements
Returns
modified stream

Definition at line 160 of file CUnifier.java.

Referenced by org.lightjason.agentspeak.language.unify.CUnifier.unify().

+ Here is the caller graph for this function:

◆ toString()

final String org.lightjason.agentspeak.language.unify.CUnifier.toString ( )

Definition at line 147 of file CUnifier.java.

◆ unify() [1/2]

final Set<IVariable<?> > org.lightjason.agentspeak.language.unify.CUnifier.unify ( @Nonnull final ILiteral  p_source,
@Nonnull final ILiteral  p_target 
)
Parameters
p_sourcesource literal (with data)
p_targettarget literal (with variables)
Returns
set with allocated variables
Note
check input literal and result of correct unification

Implements org.lightjason.agentspeak.language.unify.IUnifier.

Definition at line 85 of file CUnifier.java.

References org.lightjason.agentspeak.language.CCommon.flattenrecursive(), and org.lightjason.agentspeak.language.unify.IUnifier.IAlgorithm.unify().

Referenced by org.lightjason.agentspeak.language.unify.CUnifier.variables().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unify() [2/2]

IFuzzyValue<Boolean> org.lightjason.agentspeak.language.unify.CUnifier.unify ( @Nonnull final IContext  p_context,
@Nonnull final ILiteral  p_literal,
final long  p_variables,
@Nonnull final IExpression  p_expression,
final boolean  p_parallel 
)
Parameters
p_contextrunning context
p_literalliteral with variables (creates a deep-copy)
p_variablesnumber of unified variables
p_expressionexpression
p_parallelparallel executon
Returns
boolean if a unify can be done

Implements org.lightjason.agentspeak.language.unify.IUnifier.

Definition at line 109 of file CUnifier.java.

References org.lightjason.agentspeak.language.unify.CUnifier.evaluateexpression(), org.lightjason.agentspeak.language.fuzzy.CFuzzyValue< T >.from(), org.lightjason.agentspeak.language.unify.CUnifier.parallelstream(), org.lightjason.agentspeak.language.CCommon.updatecontext(), and org.lightjason.agentspeak.language.unify.CUnifier.variables().

+ Here is the call graph for this function:

◆ variables()

List<Set<IVariable<?> > > org.lightjason.agentspeak.language.unify.CUnifier.variables ( final IAgent<?>  p_agent,
final ILiteral  p_literal,
final long  p_variablenumber 
)
private
Parameters
p_agentagent
p_literalliteral search
p_variablenumbernumber of unified variables
Returns
list of literal sets

Definition at line 193 of file CUnifier.java.

References org.lightjason.agentspeak.agent.IAgent< T extends IAgent<?>.beliefbase(), org.lightjason.agentspeak.language.IDeepCopy< T >.deepcopy(), org.lightjason.agentspeak.language.ILiteral.emptyValues(), org.lightjason.agentspeak.language.ITerm.fqnfunctor(), org.lightjason.agentspeak.language.ILiteral.negated(), org.lightjason.agentspeak.beliefbase.view.IView.stream(), and org.lightjason.agentspeak.language.unify.CUnifier.unify().

Referenced by org.lightjason.agentspeak.language.unify.CUnifier.unify().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_hashbased

final IAlgorithm org.lightjason.agentspeak.language.unify.CUnifier.m_hashbased
private

Definition at line 55 of file CUnifier.java.

◆ m_recursive

final IAlgorithm org.lightjason.agentspeak.language.unify.CUnifier.m_recursive
private

Definition at line 59 of file CUnifier.java.