neurolang.frontend package¶
- class neurolang.frontend.ExplicitVBR(voxels, affine_matrix, image_dim=None, prebuild_tree=False)¶
Bases:
VolumetricBrainRegion
- Attributes:
- aabb_tree
- bounding_box
- center
- width
Methods
to_ijk
(affine)return ijk voxels coordinates corresponding to the affine matrix transform
to_xyz
([affine])return world coordinates of the region corresponding to the affine matrix transform
build_tree
from_spatial_image_label
generate_bounding_box
remove_empty_bounding_boxes
spatial_image
to_explicit_vbr
to_ijk_set
to_xyz_set
- property aabb_tree¶
- property bounding_box¶
- build_tree()¶
- generate_bounding_box(voxels_ijk)¶
- spatial_image(out=None, value=1)¶
- to_ijk(affine)¶
return ijk voxels coordinates corresponding to the affine matrix transform
- to_xyz(affine=None)¶
return world coordinates of the region corresponding to the affine matrix transform
- class neurolang.frontend.ExplicitVBROverlay(voxels, affine_matrix, overlay, image_dim=None, prebuild_tree=False)¶
Bases:
ExplicitVBR
- Attributes:
- aabb_tree
- bounding_box
- center
- width
Methods
to_ijk
(affine)return ijk voxels coordinates corresponding to the affine matrix transform
to_xyz
([affine])return world coordinates of the region corresponding to the affine matrix transform
build_tree
from_spatial_image_label
generate_bounding_box
remove_empty_bounding_boxes
spatial_image
to_explicit_vbr
to_ijk_set
to_xyz_set
- spatial_image(out=None, background_value=0)¶
- class neurolang.frontend.NeurolangDL(program_ir=None)¶
Bases:
QueryBuilderDatalog
Deterministic Datalog Frontend for Neurolang. QueryBuilderDatalog with a RegionFrontendDatalogSolver program intermediate representation
- Attributes:
current_program
Returns the list of expressions that have currently been
environment
Dynamic context that can be used to create symbols to write a Datalog program.
functions
Returns the list of symbols corresponding to callables
region_names
Returns the list of symbol names with Region type
region_set_names
Returns the list of symbol names with set_type
scope
Dynamic context that can be used to create symbols to write a Datalog program.
symbol_table
Projector to the program_ir’s symbol_table
symbols
Iterator through the symbol’s names
types
Returns a list of the types of the symbols currently
Methods
add_atlas_set
(name, atlas_labels, spatial_image)Creates an atlas set: 1- for each region specified by a label and name in atlas_labels, creates associated ExplicitVBR and symbols Tuple[region_name: str, Region] 2- groups regions in an AbstractSet[Tuple[str, Region]] symbol with specified name
add_constraint
(antecedent, consequent)Creates an right implication of the consequent by the antecedent and adds the rule to the current program: antecedent -> consequent
add_region
(region[, name])Adds region fe.Symbol to symbol_table
add_region_set
(region_set[, name])Creates an AbstractSet fe.Symbol containing the elements specified in the iterable with a List[Tuple[Region]] format
add_symbol
(value[, name, type_])Creates a symbol with given value and adds it to the current symbol_table.
add_tuple_set
(iterable[, type_, name])Creates an AbstractSet fe.Symbol containing the elements specified in the iterable with a List[Tuple[Any, ...]] format (see examples).
all
(quantified_variable, body)Universal predicate on the body.
create_region
(spatial_image[, label, ...])Creates an ExplicitVBR out of the voxels of a dense spatial_image with specified label
del_symbol
(name)Deletes the symbol with parameter name from the symbol_table
execute_datalog_program
(code)Execute a Datalog program in classical syntax.
exists
(quantified_variable, body)Existential predicate on the body.
get_symbol
(symbol_name)Retrieves symbol via its name, either providing a fe.Expression with the correct name or the name itself
load_neurosynth_mni_peaks_reported
(data_dir)Load the coordinates for the peaks reported by studies in the Neurosynth dataset.
load_neurosynth_study_ids
(data_dir[, name, ...])Load all study ids (PMIDs) that are part of the Neurosynth database.
load_neurosynth_term_study_associations
(data_dir)Load TF-IDF values for each (term, study) association within the Neurosynth database.
make_implicit_regions_explicit
(affine, dim)Raises NotImplementedError for now
new_region_symbol
([name])Returns symbol with type Region
new_symbol
([type_, name])Creates a symbol and associated expression, optionally specifying it's type and/or name
predicate_parameter_names
(predicate_name)Get the names of the parameters for the given predicate
query
(*args)Performs an inferential query on the database.
reset_program
()Clears current symbol table
solve_all
()Returns a dictionary of "predicate_name": "Content" for all elements in the solution of the Datalog program.
sphere
(center, radius[, name])Creates a Region symbol associated with the spherical volume described by its center and volume
magic_sets_rewrite_program
- class neurolang.frontend.NeurolangPDL(chase_class: ~typing.Type[~neurolang.datalog.chase.Chase] = <class 'neurolang.datalog.chase.Chase'>, probabilistic_solvers: ~typing.Tuple[~typing.Callable] = (<function solve_succ_query>, <function solve_succ_query>, <function solve_succ_query_sdd_direct>), probabilistic_marg_solvers: ~typing.Tuple[~typing.Callable] = (<function solve_marg_query>, <function solve_marg_query>, <function solve_marg_query>), check_qbased_pfact_tuple_unicity=False)¶
Bases:
QueryBuilderDatalog
Complements QueryBuilderDatalog class with probabilistic capabilities 1- add extensional probabilistic facts and choices 2- sove probabilistic queries
- Attributes:
current_program
Returns the list of Front End Expressions that have
environment
Dynamic context that can be used to create symbols to write a Datalog program.
functions
Returns the list of symbols corresponding to callables
region_names
Returns the list of symbol names with Region type
region_set_names
Returns the list of symbol names with set_type
scope
Dynamic context that can be used to create symbols to write a Datalog program.
symbol_table
Projector to the program_ir’s symbol_table
symbols
Iterator through the symbol’s names
types
Returns a list of the types of the symbols currently
Methods
add_atlas_set
(name, atlas_labels, spatial_image)Creates an atlas set: 1- for each region specified by a label and name in atlas_labels, creates associated ExplicitVBR and symbols Tuple[region_name: str, Region] 2- groups regions in an AbstractSet[Tuple[str, Region]] symbol with specified name
add_constraint
(antecedent, consequent)Creates an right implication of the consequent by the antecedent and adds the rule to the current program: antecedent -> consequent
add_probabilistic_choice_from_tuples
(iterable)Add probabilistic choice from tuples whose first element contains the probability label attached to that tuple.
add_probabilistic_facts_from_tuples
(iterable)Add probabilistic facts from tuples whose first element contains the probability label attached to that tuple.
add_region
(region[, name])Adds region fe.Symbol to symbol_table
add_region_set
(region_set[, name])Creates an AbstractSet fe.Symbol containing the elements specified in the iterable with a List[Tuple[Region]] format
add_symbol
(value[, name, type_])Creates a symbol with given value and adds it to the current symbol_table.
add_tuple_set
(iterable[, type_, name])Creates an AbstractSet fe.Symbol containing the elements specified in the iterable with a List[Tuple[Any, ...]] format (see examples).
Add uniform probabilistic choice over values in the iterable.
all
(quantified_variable, body)Universal predicate on the body.
create_region
(spatial_image[, label, ...])Creates an ExplicitVBR out of the voxels of a dense spatial_image with specified label
del_symbol
(name)Deletes the symbol with parameter name from the symbol_table
execute_datalog_program
(code)Execute a Datalog program in classical syntax.
exists
(quantified_variable, body)Existential predicate on the body.
get_symbol
(symbol_name)Retrieves symbol via its name, either providing a fe.Expression with the correct name or the name itself
load_neurosynth_mni_peaks_reported
(data_dir)Load the coordinates for the peaks reported by studies in the Neurosynth dataset.
load_neurosynth_study_ids
(data_dir[, name, ...])Load all study ids (PMIDs) that are part of the Neurosynth database.
load_neurosynth_term_study_associations
(data_dir)Load TF-IDF values for each (term, study) association within the Neurosynth database.
load_ontology
(paths[, connector_symbol_name])Loads and parses ontology stored at the specified paths, and store them into attributes
make_implicit_regions_explicit
(affine, dim)Raises NotImplementedError for now
new_region_symbol
([name])Returns symbol with type Region
new_symbol
([type_, name])Creates a symbol and associated expression, optionally specifying it's type and/or name
predicate_parameter_names
(predicate_name)Get the names of the parameters for the given predicate
query
(*args)Performs an inferential query on the database.
reset_program
()Clears current symbol table
Returns a dictionary of "predicate_name": "Content" for all elements in the solution of the Datalog program.
sphere
(center, radius[, name])Creates a Region symbol associated with the spherical volume described by its center and volume
magic_sets_rewrite_program
- add_probabilistic_choice_from_tuples(iterable: ~typing.Iterable[~typing.Tuple[~typing.Any, ...]], type_: ~typing.Type = <class 'neurolang.type_system.Unknown'>, name: str | None = None) Symbol ¶
Add probabilistic choice from tuples whose first element contains the probability label attached to that tuple. In the tuple (p, a, b, …), p is the float probability of tuple (a, b, …) to be True and all remaining tuples to be False in any possible world.
Note that, contrary to a list of probabilistic facts, this represents a choice among possible values for the predicate, meaning that tuples in the set are mutually exclusive. See example for details.
- Parameters:
- iterableIterable[Tuple[Any, …]]
the first float number represents the probability of the tuple constituted of the remaining elements Note that the float probabilities must sum to 1.
- type_Type, optional
type for resulting AbstractSet if None will be inferred from the data, by default ir.Unknown
- nameOptional[str], optional
name for the resulting fe.Symbol, if None will be fresh, by default None
- Returns:
- fe.Symbol
see description
- Raises:
- DistributionDoesNotSumToOneError
if float probabilities do not sum to 1.
- add_probabilistic_facts_from_tuples(iterable: ~typing.Iterable[~typing.Tuple[~typing.Any, ...]], type_: ~typing.Type = <class 'neurolang.type_system.Unknown'>, name: str | None = None) Symbol ¶
Add probabilistic facts from tuples whose first element contains the probability label attached to that tuple. In the tuple (p, a, b, …), p is the float probability of tuple (a, b, …) to be True in any possible world.
Note that each tuple from the iterable is independant from the others, meaning that multiple tuples can be True in the same possible world, contrary to a probabilistic choice. See example for details.
- Parameters:
- iterableIterable[Tuple[Any, …]]
the first float number represents the probability of the tuple constituted of the remaining elements
- type_Type, optional
type for resulting AbstractSet if None will be inferred from the data, by default ir.Unknown
- nameOptional[str], optional
name for the resulting fe.Symbol, if None will be fresh, by default None
- Returns:
- fe.Symbol
see description
- add_uniform_probabilistic_choice_over_set(iterable: ~typing.Iterable[~typing.Tuple[~typing.Any, ...]], type_: ~typing.Type = <class 'neurolang.type_system.Unknown'>, name: str | None = None) Symbol ¶
Add uniform probabilistic choice over values in the iterable.
Every tuple in the iterable will be assigned the same probability to be True, with all remaning tuples False, in any possible world.
Note that, contrary to a list of probabilistic facts, this represents a choice among possible values for the predicate, meaning that tuples in the set are mutually exclusive.
See example for details.
- Parameters:
- iterableIterable[Tuple[Any, …]]
typically List[Tuple[Any, …]], other types of Iterable will be cast as lists
- type_Type, optional
type for resulting AbstractSet if None will be inferred from the data, by default ir.Unknown
- nameOptional[str], optional
name for the resulting fe.Symbol, if None will be fresh, by default None
- Returns:
- fe.Symbol
see description
- property current_program: List[Expression]¶
Returns the list of Front End Expressions that have currently been declared in the program, or through the program’s constraints
- Returns:
- List[fe.Expression]
see description
- load_ontology(paths: str | List[str], connector_symbol_name=None) None ¶
Loads and parses ontology stored at the specified paths, and store them into attributes
- Parameters:
- pathstyping.Union[str, List[str]]
where the ontology files are stored
- connector_symbol_namestr
name to be used in the connector_symbol. if None, the name is randomly generated
- Returns:
- Expression
the new connector_symbol, to be used in the query program.
- solve_all() Dict[str, NamedRelationalAlgebraFrozenSet] ¶
Returns a dictionary of “predicate_name”: “Content” for all elements in the solution of the Datalog program. Typically, probabilities are abstracted and processed similar to symbols, though of different nature (see examples)
- Returns:
- Dict[str, NamedRelationalAlgebraFrozenSet]
extensional and intentional facts that have been derived through the current program, optionally with probabilities
- class neurolang.frontend.Symbol(query_builder: QueryBuilderBase, symbol_name: str)¶
Bases:
Expression
A Symbol represents an atomic Expression. Its is the most recurrent element of queries
- Attributes:
expression
Projects to symbol property
neurolang_symbol
Returns backend symbol
symbol
Returns backend symbol from symbol_table
type
Returns expression’s type
value
If any, returns value corresponding to the symbol
Methods
__call__
(*args, **kwargs)Returns a FunctionApplication expression, applied to the *args cast as Constant if not Symbol or Expression **kwargs are ignored
help
()Returns help based on Expression's subclass
do
- property expression: Symbol¶
Projects to symbol property
- property neurolang_symbol: Symbol¶
Returns backend symbol
- property symbol: Symbol¶
Returns backend symbol from symbol_table
Subpackages¶
- neurolang.frontend.datalog package
- neurolang.frontend.drs package
Submodules¶
- neurolang.frontend.ast module
- neurolang.frontend.ast_lark module
- neurolang.frontend.deterministic_frontend module
- neurolang.frontend.frontend_extensions module
- neurolang.frontend.neurolang module
ExistentialPredicate
NeuroLangException
NeuroLangIntermediateRepresentation
NeuroLangIntermediateRepresentation.and_test()
NeuroLangIntermediateRepresentation.assignment()
NeuroLangIntermediateRepresentation.comparison()
NeuroLangIntermediateRepresentation.dotted_identifier()
NeuroLangIntermediateRepresentation.function_application()
NeuroLangIntermediateRepresentation.integer()
NeuroLangIntermediateRepresentation.negated_argument()
NeuroLangIntermediateRepresentation.point_float()
NeuroLangIntermediateRepresentation.power()
NeuroLangIntermediateRepresentation.predicate()
NeuroLangIntermediateRepresentation.product()
NeuroLangIntermediateRepresentation.projection()
NeuroLangIntermediateRepresentation.query()
NeuroLangIntermediateRepresentation.statement()
NeuroLangIntermediateRepresentation.string()
NeuroLangIntermediateRepresentation.sum()
NeuroLangIntermediateRepresentation.tuple()
NeuroLangIntermediateRepresentation.value()
NeuroLangIntermediateRepresentationCompiler
PatternMatcher
add_match()
parser()
- neurolang.frontend.neurosynth_utils module
- neurolang.frontend.probabilistic_frontend module
- Probabilistic Frontend
NeurolangPDL
RegionFrontendCPLogicSolver
RegionFrontendCPLogicSolver.function_anatomical_anterior_of()
RegionFrontendCPLogicSolver.function_anatomical_inferior_of()
RegionFrontendCPLogicSolver.function_anatomical_posterior_of()
RegionFrontendCPLogicSolver.function_anatomical_superior_of()
RegionFrontendCPLogicSolver.function_anterior_of()
RegionFrontendCPLogicSolver.function_inferior_of()
RegionFrontendCPLogicSolver.function_left_of()
RegionFrontendCPLogicSolver.function_overlapping()
RegionFrontendCPLogicSolver.function_posterior_of()
RegionFrontendCPLogicSolver.function_right_of()
RegionFrontendCPLogicSolver.function_superior_of()
RegionFrontendCPLogicSolver.protected_keywords
RegionFrontendCPLogicSolver.type
- neurolang.frontend.query_resolution module
- Query Builder Base, Region and Neurosynth Mixins
NeuroSynthMixin
QueryBuilderBase
QueryBuilderBase.add_symbol()
QueryBuilderBase.add_tuple_set()
QueryBuilderBase.all()
QueryBuilderBase.del_symbol()
QueryBuilderBase.environment
QueryBuilderBase.exists()
QueryBuilderBase.functions
QueryBuilderBase.get_symbol()
QueryBuilderBase.new_symbol()
QueryBuilderBase.scope
QueryBuilderBase.symbol_table
QueryBuilderBase.symbols
QueryBuilderBase.types
QuerySymbolsProxy
RegionMixin
- neurolang.frontend.query_resolution_datalog module
- Query Builder Datalog
QueryBuilderDatalog
QueryBuilderDatalog.add_constraint()
QueryBuilderDatalog.add_tuple_set()
QueryBuilderDatalog.current_program
QueryBuilderDatalog.execute_datalog_program()
QueryBuilderDatalog.magic_sets_rewrite_program()
QueryBuilderDatalog.predicate_parameter_names()
QueryBuilderDatalog.query()
QueryBuilderDatalog.reset_program()
QueryBuilderDatalog.solve_all()
- neurolang.frontend.query_resolution_expressions module
- Query Resolution Expression
All
Exists
Expression
Fact
Implication
Operation
Query
RightImplication
Symbol
TranslateExpressionToFrontEndExpression
TranslateExpressionToFrontEndExpression.conjunction()
TranslateExpressionToFrontEndExpression.constant()
TranslateExpressionToFrontEndExpression.exists()
TranslateExpressionToFrontEndExpression.fact()
TranslateExpressionToFrontEndExpression.forall()
TranslateExpressionToFrontEndExpression.implication()
TranslateExpressionToFrontEndExpression.negation()
TranslateExpressionToFrontEndExpression.right_implication()
TranslateExpressionToFrontEndExpression.symbol()
TranslateExpressionToFrontEndExpression.type
TranslateExpressionToFrontEndExpression.walk_function_application()
op_bind()
rop_bind()