Code Monkey home page Code Monkey logo

Comments (3)

cmungall avatar cmungall commented on June 2, 2024 1

I'm also playing with some code in python that uses networkx to break cliques.

The algorithm is:

PartitionCliques(G):
  for clique in cliques(G):
    if size(clique) > N:
        SG = subgraph(clique, G)
        E = sort(SG.edge, key=confidence)
        while |E|:
            e = pop(E)
            SG.remove(e)
            subcliques = cliques(SG)
            if len(subcliques) > 1:
                  PartitionCliques(subgraph(c), SG) for c in subcliques
                  break

there are possibly more efficient ways. The way this is written it works for bidi and unidi graphs. For boomer we would use diagraphs and asserted edges both directions for equivalence. The existing boomer clique extract should just swap in here.

In theory this could quite brutally remove a lot of informative edges, but this is worth it not to have boomer run forever. So long as broken cliques are reported a curator can handle accordingly. We could also just reduce the overall confidence in any broken cliques. Even a crude measure like reducing confidence by 50% in any clique that was broken from a larger one should be sufficient

from boomer.

cmungall avatar cmungall commented on June 2, 2024

Two steps:

1 additional local probability refinement (optional, but will help avoid throwing out things accidentally in next step)
2 for each clique, gradually raise a threshold and throw out any axioms from the clique with Pr < threshold until clique is broken. recursively apply to each sub clique until below desired size.

I think there are some other tickets for step 1. I will add more detail later. A very simple naive approach is to simply look for parallel structures

E.g. given:

  • A' eq A
  • B' eq B.

then the following reinforce one another:

  1. A r B
  2. A' r B'

Boost the weight of both by a constant factor if both present. If only one is present then decrease the weight of the other

This can be done in a more formal way with a probabilistic open world approach with priors for missing information but as a heuristic this can help modify local probs to help bust cliques than are then tractable with global calculations

from boomer.

matentzn avatar matentzn commented on June 2, 2024

Does this make sense to you @balhoff? I think it does to me!

from boomer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.