Package edu.tufts.hrilab.consultant
Class Consultant<T extends Reference>
java.lang.Object
edu.tufts.hrilab.consultant.Consultant<T>
- All Implemented Interfaces:
ConsultantInterface
- Direct Known Subclasses:
ABBAreaConsultant
,ABBLocationConsultant
,AITVisionConsultant
,CognexConsultant
,CognexConsultant
,ContextConsultant
,ItemConsultant
,MPoseConsultant
,PoseConsultant
,RWSPoseConsultant
,SpotNavGraphLocationConsultant
,TemiV3PoseConsultant
,VisionConsultant
-
Field Summary
FieldsModifier and TypeFieldDescriptionThese properties implicitly apply to every reference in this consultant, even though they will not appear as explicit properties in the reference.protected String
Knowledge base name.protected org.slf4j.Logger
All properties that can be handled by this consultant, excluding the defaultProperties.protected Constructor<T>
Constructor for templated Reference class.All References hashed refId.protected int
Reference counter used to assign unique refIds. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
addPropertiesHandled
(List<Term> properties) Updates consultant and parser if any of the members of @properties are not already handled by the Consultantvoid
addReference
(T ref) Add new reference from some source (file or learning) to the consultantboolean
assertProperties
(Symbol refId, List<Term> properties) Add properties to already existing object ref.boolean
an attempt is made to bring the knowledge base in line with the provided bindings, list of properties, and probability value.final <U> U
convertToType
(Symbol refId, Class<U> type) Convert refId to target class using the specified constraints to filter the results.final <U> U
convertToType
(Symbol refId, Class<U> type, List<? extends Term> constraints) Convert refId to target class using the specified constraints for to filter the results.createReference
(Variable var, List<Term> properties) A convenience method for creating references from with a DIARC component housing a Consultant instance.createReferences
(List<Variable> vars) new representations are created for each free-variable and returned in the binding list.Get a list of currently highly salient entities that should be considered "activated."getAssertedProperties
(Symbol refId) Get the list of properties that have been asserted for a given refId.getInitialDomain
(List<Term> query) Returns a list of currently known refIds (it takes a seq of Properties, to optionally do some pre-processing to return a list of relevant candidates).Returns name of things handles by this consultant (e.g., "objects", "locations", etc).protected Symbol
Helper method to generate next unique reference ID (e.g., object_3).Returns a list of Properties handled by this component.getReference
(Symbol refId) getReferencesWithAllProperties
(List<Term> properties) Get all references that have all of the given propertiesgetReferencesWithAnyProperties
(List<Term> properties) Get all references that have any of the given propertiesprotected abstract <U> U
localConvertToType
(Symbol refId, Class<U> type) protected abstract <U> U
localConvertToType
(Symbol refId, Class<U> type, List<? extends Term> constraints) void
Returns the probability that a property (aka constraint) holds for an entity (specified by a map of free-variable to refId bindings).void
registerForNewPropertyNotification
(ai.thinkingrobots.trade.TRADEServiceInfo callback) boolean
retractProperties
(Symbol refId, List<Term> properties) stripQuotesFromMorpheme
(String input) void
unregisterForNewPropertyNotification
(ai.thinkingrobots.trade.TRADEServiceInfo callback)
-
Field Details
-
log
protected org.slf4j.Logger log -
refNumber
protected int refNumberReference counter used to assign unique refIds. -
propertiesHandled
All properties that can be handled by this consultant, excluding the defaultProperties. -
defaultProperties
These properties implicitly apply to every reference in this consultant, even though they will not appear as explicit properties in the reference. -
references
All References hashed refId. -
kbName
Knowledge base name. -
refConstructor
Constructor for templated Reference class.
-
-
Constructor Details
-
Consultant
- Parameters:
refClass
- - Reference class. Used to construct new instances of Reference.kbName
-
-
Consultant
-
-
Method Details
-
getKBName
Description copied from interface:ConsultantInterface
Returns name of things handles by this consultant (e.g., "objects", "locations", etc).- Specified by:
getKBName
in interfaceConsultantInterface
- Returns:
- knowledge base name
-
getPropertiesHandled
Description copied from interface:ConsultantInterface
Returns a list of Properties handled by this component.- Specified by:
getPropertiesHandled
in interfaceConsultantInterface
- Returns:
- list of Properties.
-
addPropertiesHandled
Updates consultant and parser if any of the members of @properties are not already handled by the Consultant- Parameters:
properties
- list of candidate properties- Returns:
- true if propertiesHandled is modified
-
addReference
Add new reference from some source (file or learning) to the consultant- Parameters:
ref
- new reference to add
-
retractProperties
-
getInitialDomain
Description copied from interface:ConsultantInterface
Returns a list of currently known refIds (it takes a seq of Properties, to optionally do some pre-processing to return a list of relevant candidates).- Specified by:
getInitialDomain
in interfaceConsultantInterface
- Returns:
- list of currently known ids
-
process
Description copied from interface:ConsultantInterface
Returns the probability that a property (aka constraint) holds for an entity (specified by a map of free-variable to refId bindings).TODO: rename method to something more descriptive. how about getProbability or checkProperty?
- Specified by:
process
in interfaceConsultantInterface
- Parameters:
constraint
- Property to checkbindings
- Map of free variables to refIds- Returns:
- probability value [0.0. 1.0]
-
getActivatedEntities
Description copied from interface:ConsultantInterface
Get a list of currently highly salient entities that should be considered "activated."- Specified by:
getActivatedEntities
in interfaceConsultantInterface
- Returns:
- list of refIds and probability pairs
-
getAssertedProperties
Description copied from interface:ConsultantInterface
Get the list of properties that have been asserted for a given refId.- Specified by:
getAssertedProperties
in interfaceConsultantInterface
- Parameters:
refId
- reference resolution id- Returns:
- list of Properties
-
createReference
A convenience method for creating references from with a DIARC component housing a Consultant instance.- Parameters:
var
- Variable associated with new reference (only important if properties contain more than one Variable)properties
- semantic properties of reference- Returns:
-
createReferences
Description copied from interface:ConsultantInterface
new representations are created for each free-variable and returned in the binding list.- Specified by:
createReferences
in interfaceConsultantInterface
- Parameters:
vars
- list of free-variables- Returns:
- list of bindings
-
assertProperties
Description copied from interface:ConsultantInterface
an attempt is made to bring the knowledge base in line with the provided bindings, list of properties, and probability value.- Specified by:
assertProperties
in interfaceConsultantInterface
- Parameters:
bindings
- list of bindings in tuple form (free-variable and refId pair)prob
- probability valueproperties
- list of Properties- Returns:
- whether the updated was successful?
-
assertProperties
Description copied from interface:ConsultantInterface
Add properties to already existing object ref. Each property should contain a connection to the existing ref either by refId or refId's variable.- Specified by:
assertProperties
in interfaceConsultantInterface
- Returns:
-
getNextReferenceId
Helper method to generate next unique reference ID (e.g., object_3).- Returns:
-
getReferenceSummaries
-
getReference
-
getReferencesWithAllProperties
Get all references that have all of the given properties- Parameters:
properties
- property to search for- Returns:
- list of references
-
getReferencesWithAnyProperties
Get all references that have any of the given properties- Parameters:
properties
- property to search for- Returns:
- list of references
-
convertToType
Convert refId to target class using the specified constraints to filter the results. This is to map references onto Java-types. If it's not possible for a refId to be converted to the specified type, null is returned.- Specified by:
convertToType
in interfaceConsultantInterface
- Type Parameters:
U
-- Parameters:
refId
-type
-- Returns:
-
convertToType
Convert refId to target class using the specified constraints for to filter the results. This is to map references onto Java-types. If it's not possible for a refId to be converted to the specified type, null is returned. First-order-logic constraints can be used in some cases to provide additional constraints on the reference.- Specified by:
convertToType
in interfaceConsultantInterface
- Type Parameters:
U
-- Parameters:
refId
-type
-constraints
-- Returns:
-
localConvertToType
-
localConvertToType
-
registerForNewPropertyNotification
public void registerForNewPropertyNotification(ai.thinkingrobots.trade.TRADEServiceInfo callback) - Specified by:
registerForNewPropertyNotification
in interfaceConsultantInterface
-
unregisterForNewPropertyNotification
public void unregisterForNewPropertyNotification(ai.thinkingrobots.trade.TRADEServiceInfo callback) - Specified by:
unregisterForNewPropertyNotification
in interfaceConsultantInterface
-
notifyNewPropertySubscribers
public void notifyNewPropertySubscribers()- Specified by:
notifyNewPropertySubscribers
in interfaceConsultantInterface
-
stripQuotesFromMorpheme
-