owlcollab / owlcollab/owltools

lego plugin feature request: generate minimal model

Open
#80 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug imported
Dominant language
Java
Stars
115
Forks
34
PR merge metrics
No merged PRs in 30d

Description

From cmung...@gmail.com on October 07, 2013 11:39:33

Add option under "Edit" menu, called "generated entailed individuals",
to be called when a class is selected

(See Jim B's obsoletion plugin - could easily be cloned for this)

Selecting this will call

generateNecessaryIndividuals(selectedClass, true)

On a MinimalModelGenerator object. If no such object exists (not sure
how plugins deal with state?), then create one:

MinimalModelGenerator(ontology, ontology, reasoner)

Where 'ontology' is the current ontology. Note that by passing the
same ontology as both arguments, the individuals will be generated in
the same ontology as the "tbox" ontology.

The reasoner should already have been selected.

After calling, the ontology should be populated with new
individuals. It would be nice to highlught these somehow, but this is
optional.

The idea is that users can selected some GO class that is rich in
axioms (see x-cellular.owl for examples) and generate a template lego
model.

See testGeneratePathway and basic-tbox.omn in core for simple
examples.

Additional notes:

Subsequent to the generateNecessaryIndividuals call, the tool should
call:

    Set<OWLClass> occs = new HashSet<OWLClass>();
    occs.add(getOboClass("GO_0003674"));
    occs.add(getOboClass("GO_0008150"));
    mmg.anonymizeIndividualsNotIn(occs);

This is necessary to work with the current version of the lego plugin,
which complains if there are individuals not processes or functions.

This will take 2 triples:

Individual: activity_individual_1
Facts: occurs_in named_location_individual_1
Individual: named_location_individual_1
Type: GO:nucleus

And turn it into:

Individual: activity_individual_1
Type: occurs_in SOME named_location_individual_1

However, this code or something analagous should be moved to the lego
visualizer itself. The idea is that you configure that classes you
"care" about the individuals, and then all others are invisible as
nodes but instead rendered as existential Type axioms on other nodes.

Original issue: http://code.google.com/p/owltools/issues/detail?id=80

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the lego plugin's Edit-menu actions and the MinimalModelGenerator API, then review testGeneratePathway and core/basic-tbox.omn. Implement generation for the selected class using the current ontology and reasoner, followed by anonymizeIndividualsNotIn with the specified GO classes. Done means the ontology contains the generated individuals and the current lego plugin can use them without unsupported individuals.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.