All Downloads are FREE. Search and download functionalities are using the official Maven repository.

it.unife.ml.probowlapi.utilities.OntologyUtils Maven / Gradle / Ivy

Go to download

This package encapsulates OWL API adding tools for managing DISPONTE probabilistic semantics. Used by the reasoner BUNDLE.

The newest version!
package it.unife.ml.probowlapi.utilities;

import it.unife.ml.probowlapi.constants.UniFeIRI;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLAnnotationProperty;
import org.semanticweb.owlapi.model.OWLAxiom;
import org.semanticweb.owlapi.model.OWLOntology;

import java.util.Set;

public class OntologyUtils {

    public static void printInfoOntology(OWLOntology ontology) {
        int numIndividuals = ontology.getIndividualsInSignature(true).size();
        System.out.println("Number of individuals: " + numIndividuals);
        // migliorare ques'ultimo comando per poter contare anche gli assiomi importati
        int numAxioms = ontology.getLogicalAxiomCount();
        System.out.println("Number of logical axioms: " + numAxioms);
        numAxioms = ontology.getAxiomCount();
        System.out.println("Number of axioms: " + numAxioms);
    }

    public static Boolean isProbabilisticAxiom(OWLAxiom ax) {
        Set anns = ax.getAnnotationPropertiesInSignature();
        for(OWLAnnotationProperty ann : anns) {
            IRI iriAnn = ann.getIRI();
            if (iriAnn.equals(IRI.create(UniFeIRI.DISPONTE + "#probability")) ||
                    iriAnn.equals(IRI.create(UniFeIRI.DISPONTE_HTTP + "#probability")) ||
                    iriAnn.equals(IRI.create(UniFeIRI.DISPONTE_OLD + "#probability")) ||
                    iriAnn.equals(IRI.create(UniFeIRI.DISPONTE_ML_HTTP + "#probability"))||
                    iriAnn.equals(IRI.create(UniFeIRI.DISPONTE_ML + "#probability"))) {
                return true;
            }
        }
        return false;
    }

    public static Boolean isProbabilisticOntology(OWLOntology ontology) {
        Set axioms = ontology.getAxioms();
        for (OWLAxiom axiom : axioms) {
            if (isProbabilisticAxiom(axiom)) {
                return true;
            }
        }
        return false;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy