Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

slow classification through ROBOT #9

Open
mikebada opened this issue Dec 13, 2018 · 9 comments
Open

slow classification through ROBOT #9

mikebada opened this issue Dec 13, 2018 · 9 comments

Comments

@mikebada
Copy link
Collaborator

Hi @cmungall -- @msinclair2 and I have been trying to figure out why invoking classification through ROBOT is so much slower than that invoked, e.g., within Protege. For example, MSO-SO_merged.owl, in the repository, takes 4-5 minutes to classify with HermiT within Protege but takes a whopping ~50 minutes to classify with HermiT invoked through ROBOT. We've been asking around, including Rebecca Tauber, but no one seems to be able to come up with much of any explanation. Have you observed this, and do you have any ideas?

Thanks,
Mike

@msinclair2
Copy link
Collaborator

msinclair2 commented Dec 13, 2018

@cmungall It takes longer than 4-5 minutes in Protege but the time is still much less than ROBOT. Nevertheless, it's too long using either program.

Take SO_unreasoned.owl, import MSO_unreasoned.owl, and then reason. Why so long and is there anything we can do?

Thanks in advance.

@cmungall
Copy link

I believe this was answered on the robot tracker, or somewhere. Dynamic vs. Materialized?

@msinclair2
Copy link
Collaborator

Yes but I don't really know what that means.

What is Protege is doing under the hood vs ROBO? Aren't both just calling the reasoner through OWL API? Does it depend on configuration settings? The types of inferences precomputed?

What can we do to reduce reasoning time in general, or is that not possible given the number and type of axioms we have?

@cmungall
Copy link

Let's follow up on the original ticket, rather than retreading here: ontodev/robot#368

@msinclair2
Copy link
Collaborator

I asked at ontodev/robot#368 if there is a way to reduce reasoning time for SO_unreasoned.owl with MSO_unreasoned.owl imported (the merged file). @cmungall said:

you know my opinions here: staying in EL is good for machine reasoning and good for human reasoning

And @dosumis said:

judging from your screenshot, the patterns themselves don't look very scalable and I wonder if they are capturing what you really need.

I would expect to see universal restriction combined with existential in a closure pattern, otherwise the genus (sequence molecular entity extent) doesn't have to have any parts (of the specified kind) in order to fulfil the restriction .
Universal restriction doesn't really make sense with a transitive object property. In this case, all parts of parts would need to be of the specified type.
Only, OR and NOT are all outside of EL, so scaling will be worst-case intractable.

I'll also report that @lschriml at DiseaseOntology has said that MSO has to classify properly with ELK before she decides to use it in DO.

Mike, I'd like to bring you back in here as far as the architecture of the ontology is concerned.

@dosumis
Copy link

dosumis commented Dec 14, 2018

For reference - here's the screenshot discussed:

image

@dosumis
Copy link

dosumis commented Dec 14, 2018

My points here are also made in discussion on ticket #6 . Looks like some productive discussion happening there.

@msinclair2
Copy link
Collaborator

Yes, Mike had done a bunch of work on the nucleotide extent classes. And when he did that, it did reduce reasoning time.

@cmungall
Copy link

cmungall commented Dec 14, 2018 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants