/**
* Copyright CSIRO Australian e-Health Research Centre (http://aehrc.com).
* All rights reserved. Use is subject to license terms and conditions.
*/
package au.csiro.snorocket.core.benchmark;
import java.io.File;
import java.util.Iterator;
import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.model.AxiomType;
import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.model.OWLOntologyCreationException;
import org.semanticweb.owlapi.model.OWLOntologyManager;
import au.csiro.ontology.Ontology;
import au.csiro.ontology.classification.IReasoner;
import au.csiro.ontology.importer.owl.OWLImporter;
import au.csiro.ontology.util.NullProgressMonitor;
import au.csiro.snorocket.core.SnorocketReasoner;
/**
* @author Alejandro Metke
*
*/
public class OntologyStats {
/**
*
*/
public OntologyStats() {
}
public static void main(String[] args) {
OWLOntologyManager man = OWLManager.createOWLOntologyManager();
// loading the root ontology
OWLOntology root = null;
try {
root = man.loadOntologyFromOntologyDocument(new File(
"C:\\dev\\ontologies\\AMT\\amt3v.owl\\amt3v.owl"));
} catch (OWLOntologyCreationException e) {
e.printStackTrace();
return;
}
int numClasses = root.getClassesInSignature().size();
int numProps = root.getObjectPropertiesInSignature().size();
int numData = root.getDataPropertiesInSignature().size();
int numEqClasses = root.getAxiomCount(AxiomType.EQUIVALENT_CLASSES);
int numSubClasses = root.getAxiomCount(AxiomType.SUBCLASS_OF);
int numEqRoles = root.getAxiomCount(AxiomType.EQUIVALENT_OBJECT_PROPERTIES);
int numSubRoles = root.getAxiomCount(AxiomType.SUB_OBJECT_PROPERTY);
int numPropChains = root.getAxiomCount(AxiomType.SUB_PROPERTY_CHAIN_OF);
int numRefRoles = root.getAxiomCount(AxiomType.REFLEXIVE_OBJECT_PROPERTY);
int numDatatypes = root.getAxiomCount(AxiomType.DATATYPE_DEFINITION);
System.out.println("numClasses: "+numClasses);
System.out.println("numProps: "+numProps);
System.out.println("numData: "+numData);
System.out.println("numEqClasses: "+numEqClasses);
System.out.println("numSubClasses: "+numSubClasses);
System.out.println("numEqRoles: "+numEqRoles);
System.out.println("numSubRoles: "+numSubRoles);
System.out.println("numPropChains: "+numPropChains);
System.out.println("numRefRoles: "+numRefRoles);
System.out.println("numDatatypes: "+numDatatypes);
OWLImporter oi = new OWLImporter(root);
Iterator<Ontology> it = oi.getOntologyVersions(new NullProgressMonitor());
while(it.hasNext()) {
Ontology ont = it.next();
IReasoner r = new SnorocketReasoner();
r.loadAxioms(ont);
r = r.classify();
Ontology co = r.getClassifiedOntology();
int numConcepts = co.getNodeMap().keySet().size();
System.out.println("numConcepts: "+numConcepts);
}
}
}