public static void main(String[] args) throws Exception { String catalog = args[0]; String file = args[1]; final ParserWrapper pw = new ParserWrapper(); pw.addIRIMapper(new CatalogXmlIRIMapper(catalog)); final OWLOntology ontology = pw.parse(file); final OWLGraphWrapper g = new OWLGraphWrapper(ontology); OWLObjectProperty part_of = g.getOWLObjectPropertyByIdentifier("part_of"); OWLObjectProperty has_part = g.getOWLObjectPropertyByIdentifier("has_part"); OWLObjectProperty regulates = g.getOWLObjectPropertyByIdentifier("regulates"); OWLObjectProperty negatively_regulates = g.getOWLObjectPropertyByIdentifier("negatively_regulates"); OWLObjectProperty positively_regulates = g.getOWLObjectPropertyByIdentifier("positively_regulates"); final OWLClassFilter filter = new OWLClassFilter() { @Override public boolean use(OWLClass cls) { String id = g.getIdentifier(cls.getIRI()); return id.startsWith("GO:"); } }; Set<OWLObjectProperty> props = Sets.newHashSet(part_of); Map<OWLClass, Set<OWLObjectSomeValuesFrom>> expressions = getExpressions(ontology, props, filter); List<OWLClass> classes = new ArrayList<OWLClass>(expressions.keySet()); Collections.sort(classes); OWLPrettyPrinter pp = new OWLPrettyPrinter(g); int count = 0; for (OWLClass cls : classes) { Set<OWLObjectSomeValuesFrom> svfs = expressions.get(cls); for (OWLObjectSomeValuesFrom svf : svfs) { StringBuilder sb = new StringBuilder(); sb.append(pp.render(cls)).append("\t"); sb.append(pp.render(svf.getProperty())).append("\t"); sb.append(pp.render(svf.getFiller())); System.out.println(sb); count += 1; } } System.out.println("Count: " + count); }