Package au.csiro.snorocket.core.benchmark

Source Code of au.csiro.snorocket.core.benchmark.OntologyStats

/**
* 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);
        }
       
    }

}
TOP

Related Classes of au.csiro.snorocket.core.benchmark.OntologyStats

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.