logic-and-learning-lab/Popper

Timeout error on dataset

navdeepkjohal opened this issue · 8 comments

Hello I ran Popper on a Knowledge Graph dataset which is a pretty large dataset. I turned recursion on. I got the following error. Could you please suggestion some changes so that Popper can be run on large datasets

PopperError

Hello,

Thank you for replying back to me.

I have tried the following setting in bias.pl

max_body(3).
enable_recursion.

Also, the bk.pl has 2.1M facts. There are 1900 pos examples and 3800 neg examples.

ismarriedto.zip

Hello Andrew,

Sorry about the delay in the response. We wanted to take some more time to set different flags to see if we could run the model on our own. The timeout error is not showing anymore and the Popper model runs on the data without error.

The entire dataset including the bias file is attached with this message. This is data extracted from YaGo11k dataset which is temporal dataset. As you know the KGs are huge and, at times, noisy, that's why we have not been able to learn rules from the model. We ran the model for 12 hours by setting the --timeout flag to 43200 but the model did not learn any rules. With lesser timeout value it returns 'no rule' and completes. We ran the code on Ubuntu installed on a VMWare. Please suggest any settings in the bias that could help us in obtaining rules on this dataset.

Many Thanks
Navdeep

Hello Andrew,

Thank you for replying back to me. Your makes sense.

Before using Popper, I used the ILP model available at https://github.com/starling-lab/BoostSRL/tree/development/src/edu/wisc/cs/will/ILP to learn the rules. It learnt the following rule as one of the rule for the ismarriedto predicate:

ismarriedto(A, B, C) :- wasbornin(A, D, E), before(E, C), diedin(B, F, G), diedin(A, F, H), finishes(H, C)

But I had hard time extracting the recursive rules from the above software, that's why I decided to move to Popper. I will try Aleph next.

Thank you for your help.

Best
Navdeep

I agree with you that it is not a very strong rule. According to that software, the rule does not have to satisfy all the positive examples. If the coverage of the rule is above a certain threshold, then the model generates the rule as output.