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_set(...)

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

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

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

property value: Any

If any, returns value corresponding to the symbol

Returns:
Any

see description

Raises:
ValueError

if Symbol doesn’t have a python value

Subpackages

Submodules