scify / jedai-ui

UI for JedAI Toolkit
http://jedai.scify.org
Apache License 2.0
16 stars 5 forks source link

NullPointerException with GridSearch #4

Open GabrielePisciotta opened 6 years ago

GabrielePisciotta commented 6 years ago

It raises this exception:

java.lang.NullPointerException
    at org.scify.jedai.blockbuilding.SortedNeighborhoodBlocking.getNumberOfGridConfigurations(SortedNeighborhoodBlocking.java:111)
    at org.scify.jedai.gui.utilities.WorkflowManager.runStepByStepWorkflow(WorkflowManager.java:658)
    at org.scify.jedai.gui.utilities.WorkflowManager.executeWorkflow(WorkflowManager.java:308)
    at org.scify.jedai.gui.controllers.steps.CompletedController.lambda$runAlgorithmBtnHandler$6(CompletedController.java:302)
    at java.lang.Thread.run(Thread.java:748)

Using AbtBuy Clean-Clean serialized dataset and the following configuration:

GabrielePisciotta commented 6 years ago

I can bypass this bug selecting a block cleaning method.

leots commented 6 years ago

Hi, I tried to reproduce this but can't, it takes a while but the workflow completes successfully. Maybe it was fixed accidentally by some other change (or some update of the library)? Could you try again?

To test this I put the following code at the end of the WizardController.initialize() method:

model.setErType(JedaiOptions.CLEAN_CLEAN_ER);
model.setEntityProfilesD1Type(JedaiOptions.SERIALIZED);
model.setEntityProfilesD2Type(JedaiOptions.SERIALIZED);
model.setGroundTruthType(JedaiOptions.SERIALIZED);
model.setEntityProfilesD1Parameters(FXCollections.observableArrayList(
        new JPair<>("File Path", "YOUR_PATH_TO_JEDAI/JedAIToolkit/jedai-core/data/cleanCleanErDatasets/abtProfiles")
));
model.setEntityProfilesD2Parameters(FXCollections.observableArrayList(
        new JPair<>("File Path", "YOUR_PATH_TO_JEDAI/JedAIToolkit/jedai-core/data/cleanCleanErDatasets/buyProfiles")
));
model.setGroundTruthParameters(FXCollections.observableArrayList(
        new JPair<>("File Path", "YOUR_PATH_TO_JEDAI/JedAIToolkit/jedai-core/data/cleanCleanErDatasets/abtBuyIdDuplicates")
));
model.getBlockBuildingMethods().get(0).setEnabled(false);
model.getBlockBuildingMethods().get(2).setEnabled(true);
model.getBlockBuildingMethods().get(2).setConfigurationType(JedaiOptions.AUTOMATIC_CONFIG);
model.setComparisonCleaning(JedaiOptions.COMPARISON_PROPAGATION);
model.setComparisonCleaningConfigType(JedaiOptions.AUTOMATIC_CONFIG);
model.setEntityMatching(JedaiOptions.PROFILE_MATCHER);
model.setEntityMatchingConfigType(JedaiOptions.AUTOMATIC_CONFIG);
model.setEntityClusteringConfigType(JedaiOptions.AUTOMATIC_CONFIG);
model.setAutoConfigType(JedaiOptions.AUTOCONFIG_STEPBYSTEP);
model.setSearchType(JedaiOptions.AUTOCONFIG_GRIDSEARCH);

Thanks!