MCPcopy Index your code
hub / github.com/dbunibas/BART

github.com/dbunibas/BART @1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.0 ↗ · + Follow
3,156 symbols 8,991 edges 313 files 464 documented · 15%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

BART

BART (Benchmarking Algorithms for data Repairing and Translation) is an error-generation tool for data cleaning applications. Its purpose is to introduce errors into clean databases for the purpose of benchmarking data-repairing algorithms. It provides users with the highest possible level of control over the error-generation process, and at the same time scales nicely to large databases. This is far from trivial, since, as we show in our technical papers, the error-generation problem is surprisingly challenging, and in fact, NP-complete. To scale to millions of tuples, the system relies on several non-trivial optimizations, including a new symmetry property of data quality constraints.

Additional material about the project (papers and example datasets) can be found at the following address: http://db.unibas.it/projects/bart/


BART GUI Screenshot

image

How to run the GUI

In order to execute the GUI of Bart, you need to import the project into NetBeans (link), using the following steps:

  1. In NetBeans, File -> Open projects... and select the project folder Bart_GUI
  2. Run the module Bart_GUI

A binary release of GUI indipendent from NetBeans will be released in a few days.


How to run an EGTask on the console

Execute script ./run <egtask.xml>, for example ./run.sh misc/resources/employees/employees-dbms-2k-egtask.xml


How to import BART_Engine project in NetBeans

  1. In NetBeans, File -> Open projects... and select the project folder Bart_Engine
  2. Execute ant target task gfp, either using command-line ant gfp, or using NetBeans (in the projects windows, right click on build.xml -> Run Target -> Other Targets -> gfp)

How to configure an EGTask manually

An EGTask is specified in an .xml file, with 3 main sections:

1. Database configuration:

Is used to specify the JDBC parameters to access the DBMS. PostgreSQL and H2 DBMS are supported. Data can be automatically loaded into the database from XML and CSV files.

2. Dependencies specification:
3. Task configuration:
  • printLog: (default = false)
  • recreateDBOnStart: (default = false) To load DB every time on start
  • applyCellChanges: (default = false) To apply cell changes
  • cloneTargetSchema: (default = true) To apply cell changes on a copy of the original target
  • useDeltaDBForChanges: (default = true) To use an optimized strategy for updates
  • checkChanges: (default = false) To check, at the end of the process, if changes are detectable
  • generateAllChanges: To generate all possible changes (default = false) - slow, only for toy examples
  • avoidInteractions: Avoid interactions among changes. (default = true)
  • errorPercentages: Error percentages for dependencies and comparisons. All percentages are wrt table sizes (# tuples)

Extension points exported contracts — how you extend this code

ISaveStatistics (Interface)
@author Grandinetti Giovanni [4 implementers]
Bart_GUI/EGTaskDataObject/src/it/unibas/bartgui/egtaskdataobject/api/ISaveStatistics.java
IInitializableOperator (Interface)
(no doc) [33 implementers]
Bart_Engine/src/bart/IInitializableOperator.java
Relativizer (Interface)
(no doc) [2 implementers]
Bart_GUI/View/src/it/unibas/bartgui/view/panel/editor/Dependency/tableModel/RelativePainterHighlighter.java
ISave (Interface)
@author Grandinetti Giovanni [4 implementers]
Bart_GUI/EGTaskDataObject/src/it/unibas/bartgui/egtaskdataobject/api/ISave.java
IVioGenQueryExecutor (Interface)
(no doc) [17 implementers]
Bart_Engine/src/bart/model/errorgenerator/operator/IVioGenQueryExecutor.java
ILoadEGTask (Interface)
@author Grandinetti Giovanni [2 implementers]
Bart_GUI/EGTaskDataObject/src/it/unibas/bartgui/egtaskdataobject/api/ILoadEGTask.java
INewValueSelectorStrategy (Interface)
(no doc) [6 implementers]
Bart_Engine/src/bart/model/errorgenerator/operator/valueselectors/INewValueSelectorStrategy.java
IRunEGTask (Interface)
@author Grandinetti Giovanni [2 implementers]
Bart_GUI/EGTaskDataObject/src/it/unibas/bartgui/egtaskdataobject/api/IRunEGTask.java

Core symbols most depended-on inside this repo

add
called by 302
Bart_GUI/CentralLookup/src/it/unibas/centrallookup/CentralLookup.java
equals
called by 204
Bart_Engine/src/bart/model/dependency/SelfJoin.java
getConfiguration
called by 171
Bart_Engine/src/bart/model/errorgenerator/VioGenQuery.java
setName
called by 149
Bart_GUI/EGTaskDataObject/src/it/unibas/bartgui/egtaskdataobject/statistics/Statistic.java
getConfiguration
called by 129
Bart_Engine/src/bart/model/EGTask.java
getName
called by 108
Bart_Engine/src/bart/model/EGTask.java
getPanel
called by 101
Bart_GUI/View/src/it/unibas/bartgui/view/panel/editor/ConfEGTask/ConfEGTaskEditPanel.java
isEmpty
called by 100
Bart_Engine/src/bart/model/dependency/SymmetricAtoms.java

Shape

Method 2,775
Class 361
Interface 20

Languages

Java100%

Modules by API surface

Bart_Engine/src/bart/model/EGTaskConfiguration.java81 symbols
Bart_GUI/EGTaskDataObject/src/it/unibas/bartgui/egtaskdataobject/wrapper/EGTaskConfigurationWrapper.java58 symbols
Bart_GUI/EGTaskDataObject/src/it/unibas/bartgui/egtaskdataobject/wrapper/VioGenQueryConfigurationWrapper.java56 symbols
Bart_Engine/src/bart/model/VioGenQueryConfiguration.java55 symbols
Bart_Engine/src/bart/persistence/parser/output/DependenciesParser.java53 symbols
Bart_GUI/View/src/it/unibas/bartgui/view/panel/editor/ConfEGTask/ConfEGTaskPanel.java46 symbols
Bart_GUI/EGTaskDataObject/src/it/unibas/bartgui/egtaskdataobject/statistics/Statistic.java40 symbols
Bart_GUI/EGTaskDataObject/src/it/unibas/bartgui/egtaskdataobject/EGTaskDataObjectDataObject.java40 symbols
Bart_GUI/View/src/it/unibas/bartgui/view/panel/editor/Dependency/tableModel/RelativePainterHighlighter.java38 symbols
Bart_Engine/src/bart/model/dependency/PositiveFormula.java38 symbols
Bart_GUI/View/src/it/unibas/bartgui/view/panel/editor/dirtyStrategies/DirtyStrategyPanel.java37 symbols
Bart_Engine/src/bart/utility/BartUtility.java37 symbols

For agents

$ claude mcp add BART \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact