Search in sources :

Example 6 with OWLAnnotationProperty

use of org.semanticweb.owlapi.model.OWLAnnotationProperty in project goci by EBISPOT.

the class DefaultGWASOWLConverter method convertStudy.

protected void convertStudy(Study study, OWLOntology ontology) {
    // get the study class
    OWLClass studyCls = getDataFactory().getOWLClass(IRI.create(OntologyConstants.STUDY_CLASS_IRI));
    // create a new study instance
    OWLNamedIndividual studyIndiv = getDataFactory().getOWLNamedIndividual(getMinter().mint(OntologyConstants.GWAS_ONTOLOGY_BASE_IRI, study));
    // assert class membership
    OWLClassAssertionAxiom classAssertion = getDataFactory().getOWLClassAssertionAxiom(studyCls, studyIndiv);
    getManager().addAxiom(ontology, classAssertion);
    // add datatype properties...
    // get datatype relations
    OWLDataProperty has_author = getDataFactory().getOWLDataProperty(IRI.create(OntologyConstants.HAS_AUTHOR_PROPERTY_IRI));
    OWLDataProperty has_publication_date = getDataFactory().getOWLDataProperty(IRI.create(OntologyConstants.HAS_PUBLICATION_DATE_PROPERTY_IRI));
    OWLDataProperty has_pubmed_id = getDataFactory().getOWLDataProperty(IRI.create(OntologyConstants.HAS_PUBMED_ID_PROPERTY_IRI));
    // get annotation relations
    OWLAnnotationProperty rdfsLabel = getDataFactory().getOWLAnnotationProperty(OWLRDFVocabulary.RDFS_LABEL.getIRI());
    // assert author relation
    // THOR
    OWLLiteral author = getDataFactory().getOWLLiteral(study.getPublicationId().getFirstAuthor().getFullname());
    OWLDataPropertyAssertionAxiom author_relation = getDataFactory().getOWLDataPropertyAssertionAxiom(has_author, studyIndiv, author);
    AddAxiom add_author = new AddAxiom(ontology, author_relation);
    getManager().applyChange(add_author);
    // assert publication_date relation
    if (study.getPublicationId().getPublicationDate() != null) {
        String rfcTimezone = new SimpleDateFormat("Z").format(study.getPublicationId().getPublicationDate());
        String xsdTimezone = rfcTimezone.substring(0, 3).concat(":").concat(rfcTimezone.substring(3, rfcTimezone.length()));
        String xmlDatetimeStr = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(study.getPublicationId().getPublicationDate()) + xsdTimezone;
        OWLLiteral publication_date = getDataFactory().getOWLLiteral(xmlDatetimeStr, OWL2Datatype.XSD_DATE_TIME);
        OWLDataPropertyAssertionAxiom publication_date_relation = getDataFactory().getOWLDataPropertyAssertionAxiom(has_publication_date, studyIndiv, publication_date);
        AddAxiom add_publication_date = new AddAxiom(ontology, publication_date_relation);
        getManager().applyChange(add_publication_date);
    }
    // assert pubmed_id relation
    OWLLiteral pubmed_id = getDataFactory().getOWLLiteral(study.getPublicationId().getPubmedId());
    OWLDataPropertyAssertionAxiom pubmed_id_relation = getDataFactory().getOWLDataPropertyAssertionAxiom(has_pubmed_id, studyIndiv, pubmed_id);
    AddAxiom add_pubmed_id = new AddAxiom(ontology, pubmed_id_relation);
    getManager().applyChange(add_pubmed_id);
    // assert label
    OWLLiteral study_label = getDataFactory().getOWLLiteral(pubmed_id.toString());
    OWLAnnotationAssertionAxiom label_annotation = getDataFactory().getOWLAnnotationAssertionAxiom(rdfsLabel, studyIndiv.getIRI(), study_label);
    AddAxiom add_label = new AddAxiom(ontology, label_annotation);
    getManager().applyChange(add_label);
    // add object properties...
    // get the has_part relation
    OWLObjectProperty has_part = getDataFactory().getOWLObjectProperty(IRI.create(OntologyConstants.HAS_PART_PROPERTY_IRI));
    OWLObjectProperty part_of = getDataFactory().getOWLObjectProperty(IRI.create(OntologyConstants.PART_OF_PROPERTY_IRI));
    // for this study, get all trait associations
    Collection<Association> associations = study.getAssociations();
    // and create an study has_part association assertion for each one
    for (Association association : associations) {
        // get the trait association instance for this association
        IRI traitIRI = getMinter().mint(OntologyConstants.GWAS_ONTOLOGY_BASE_IRI, association);
        OWLNamedIndividual taIndiv = getDataFactory().getOWLNamedIndividual(traitIRI);
        // assert relation
        OWLObjectPropertyAssertionAxiom has_part_relation = getDataFactory().getOWLObjectPropertyAssertionAxiom(has_part, studyIndiv, taIndiv);
        AddAxiom addAxiomChange = new AddAxiom(ontology, has_part_relation);
        getManager().applyChange(addAxiomChange);
        OWLObjectPropertyAssertionAxiom is_part_of_relation = getDataFactory().getOWLObjectPropertyAssertionAxiom(part_of, taIndiv, studyIndiv);
        AddAxiom addAxiomChangeRev = new AddAxiom(ontology, is_part_of_relation);
        getManager().applyChange(addAxiomChangeRev);
    }
}
Also used : OWLAnnotationAssertionAxiom(org.semanticweb.owlapi.model.OWLAnnotationAssertionAxiom) IRI(org.semanticweb.owlapi.model.IRI) AddAxiom(org.semanticweb.owlapi.model.AddAxiom) OWLObjectProperty(org.semanticweb.owlapi.model.OWLObjectProperty) OWLAnnotationProperty(org.semanticweb.owlapi.model.OWLAnnotationProperty) OWLDataPropertyAssertionAxiom(org.semanticweb.owlapi.model.OWLDataPropertyAssertionAxiom) OWLDataProperty(org.semanticweb.owlapi.model.OWLDataProperty) Association(uk.ac.ebi.spot.goci.model.Association) OWLLiteral(org.semanticweb.owlapi.model.OWLLiteral) OWLNamedIndividual(org.semanticweb.owlapi.model.OWLNamedIndividual) OWLObjectPropertyAssertionAxiom(org.semanticweb.owlapi.model.OWLObjectPropertyAssertionAxiom) OWLClass(org.semanticweb.owlapi.model.OWLClass) OWLClassAssertionAxiom(org.semanticweb.owlapi.model.OWLClassAssertionAxiom) SimpleDateFormat(java.text.SimpleDateFormat)

Example 7 with OWLAnnotationProperty

use of org.semanticweb.owlapi.model.OWLAnnotationProperty in project goci by EBISPOT.

the class IRITreeBuilder method getClassLabel.

private String getClassLabel(OWLOntology ontology, OWLClass cls) {
    OWLDataFactory factory = ontology.getOWLOntologyManager().getOWLDataFactory();
    OWLAnnotationProperty label = factory.getOWLAnnotationProperty(OWLRDFVocabulary.RDFS_LABEL.getIRI());
    String className = null;
    for (OWLAnnotation annotation : cls.getAnnotations(ontology, label)) {
        if (annotation.getValue() instanceof OWLLiteral) {
            OWLLiteral val = (OWLLiteral) annotation.getValue();
            className = val.getLiteral();
        }
        if (cls.getAnnotations(ontology, label).size() != 1) {
            throw new UnexpectedOntologyStructureException("More than one label for class " + cls);
        }
    }
    if (className != null) {
        return className;
    } else {
        throw new UnexpectedOntologyStructureException("There is no label for class " + cls);
    }
}
Also used : OWLAnnotationProperty(org.semanticweb.owlapi.model.OWLAnnotationProperty) OWLAnnotation(org.semanticweb.owlapi.model.OWLAnnotation) OWLLiteral(org.semanticweb.owlapi.model.OWLLiteral) UnexpectedOntologyStructureException(uk.ac.ebi.spot.goci.ontology.exception.UnexpectedOntologyStructureException) OWLDataFactory(org.semanticweb.owlapi.model.OWLDataFactory)

Example 8 with OWLAnnotationProperty

use of org.semanticweb.owlapi.model.OWLAnnotationProperty in project goci by EBISPOT.

the class AbstractOntologyLoader method removeExcludedClasses.

protected Set<OWLClass> removeExcludedClasses(OWLOntology ontology, Set<OWLClass> allClasses, SubclassCollector subclassCollector) {
    // remove excluded classes from allClasses by subclass
    if (getExclusionClassURI() != null) {
        OWLClass excludeClass = getFactory().getOWLClass(IRI.create(getExclusionClassURI()));
        subclassCollector.collect(excludeClass).forEach(allClasses::remove);
    }
    // remove excluded classes from allClasses by annotation property
    if (getExclusionAnnotationURI() != null) {
        OWLAnnotationProperty excludeAnnotation = getFactory().getOWLAnnotationProperty(IRI.create(getExclusionAnnotationURI()));
        Iterator<OWLClass> allClassesIt = allClasses.iterator();
        while (allClassesIt.hasNext()) {
            OWLClass owlClass = allClassesIt.next();
            Collection<OWLAnnotation> annotations = owlClass.getAnnotations(ontology, excludeAnnotation);
            if (!annotations.isEmpty()) {
                allClassesIt.remove();
            }
        }
    }
    // and return
    return allClasses;
}
Also used : OWLAnnotationProperty(org.semanticweb.owlapi.model.OWLAnnotationProperty) OWLAnnotation(org.semanticweb.owlapi.model.OWLAnnotation) OWLClass(org.semanticweb.owlapi.model.OWLClass)

Example 9 with OWLAnnotationProperty

use of org.semanticweb.owlapi.model.OWLAnnotationProperty in project stanbol by apache.

the class ConversionTester method testAnnotationPropJenaToOwl.

public void testAnnotationPropJenaToOwl() {
    JenaToOwlConvert j2o = new JenaToOwlConvert();
    OntModel model = ModelFactory.createOntologyModel();
    AnnotationProperty jp = model.createAnnotationProperty(label.toString());
    OWLAnnotationProperty wp = null;
    try {
        wp = j2o.AnnotationPropJenaToOwl(jp, RDFXML);
        if (wp == null) {
            fail("Some errors occur");
        } else {
            assertEquals(wp.getIRI().toURI().toString(), jp.getURI());
        }
    } catch (Exception e) {
        e.printStackTrace();
        fail("Exception caugth");
    } finally {
        assertNotNull(wp);
    }
}
Also used : OWLAnnotationProperty(org.semanticweb.owlapi.model.OWLAnnotationProperty) AnnotationProperty(com.hp.hpl.jena.ontology.AnnotationProperty) OWLAnnotationProperty(org.semanticweb.owlapi.model.OWLAnnotationProperty) OntModel(com.hp.hpl.jena.ontology.OntModel) OWLOntologyCreationException(org.semanticweb.owlapi.model.OWLOntologyCreationException)

Example 10 with OWLAnnotationProperty

use of org.semanticweb.owlapi.model.OWLAnnotationProperty in project stanbol by apache.

the class ConversionTester method testEntityOwlToJenaResource.

public void testEntityOwlToJenaResource() {
    JenaToOwlConvert j2o = new JenaToOwlConvert();
    OWLOntologyManager mgr = OWLManager.createOWLOntologyManager();
    OWLOntology ont = null;
    StmtIterator resource = null;
    try {
        ont = mgr.createOntology();
    } catch (OWLOntologyCreationException e) {
        e.printStackTrace();
        fail("Could not load ontology");
    }
    OWLDataFactory factory = mgr.getOWLDataFactory();
    OWLClass cls = factory.getOWLClass(IRI.create(CLAZZ));
    OWLDataProperty dp = factory.getOWLDataProperty(IRI.create(DP));
    OWLObjectProperty op = factory.getOWLObjectProperty(IRI.create(OP));
    OWLAnnotationProperty oa = factory.getOWLAnnotationProperty(IRI.create(label));
    OWLAnnotation oav = factory.getOWLAnnotation(oa, factory.getOWLStringLiteral(clazzlabel, "en"));
    OWLDatatype dt = factory.getOWLDatatype(IRI.create(DATATYPE));
    OWLNamedIndividual sub = factory.getOWLNamedIndividual(IRI.create(SUBJECT));
    OWLNamedIndividual obj = factory.getOWLNamedIndividual(IRI.create(OBJECT));
    OWLLiteral literal1 = factory.getOWLTypedLiteral(VALUE, dt);
    // Classe
    OWLDeclarationAxiom daxiomcls = factory.getOWLDeclarationAxiom(cls);
    // obj prop
    OWLDeclarationAxiom daxiomop = factory.getOWLDeclarationAxiom(op);
    // data prop
    OWLDeclarationAxiom daxiomdp = factory.getOWLDeclarationAxiom(dp);
    // subject
    OWLDeclarationAxiom daxiomsub = factory.getOWLDeclarationAxiom(sub);
    // object
    OWLDeclarationAxiom daxiomobj = factory.getOWLDeclarationAxiom(obj);
    // Istanza
    OWLClassAssertionAxiom axiomsub = factory.getOWLClassAssertionAxiom(cls, sub);
    // Istanza
    OWLClassAssertionAxiom axiomobj = factory.getOWLClassAssertionAxiom(cls, obj);
    // Obj
    OWLObjectPropertyAssertionAxiom axiomop = factory.getOWLObjectPropertyAssertionAxiom(op, sub, obj);
    // prop
    // tra
    // individui
    OWLDataPropertyAssertionAxiom axiomvalue = factory.getOWLDataPropertyAssertionAxiom(dp, sub, // Dataprop all'istanza;
    literal1);
    // Annotazione
    OWLAnnotationAssertionAxiom axioman = factory.getOWLAnnotationAssertionAxiom(cls.getIRI(), oav);
    mgr.addAxiom(ont, daxiomcls);
    mgr.addAxiom(ont, daxiomop);
    mgr.addAxiom(ont, daxiomdp);
    mgr.addAxiom(ont, daxiomsub);
    mgr.addAxiom(ont, daxiomobj);
    mgr.addAxiom(ont, axiomsub);
    mgr.addAxiom(ont, axiomobj);
    mgr.addAxiom(ont, axiomop);
    mgr.addAxiom(ont, axiomvalue);
    mgr.addAxiom(ont, axioman);
    Set<OWLIndividualAxiom> ind = ont.getAxioms(sub);
    try {
        resource = j2o.EntityOwlToJenaResource(daxiomsub.getEntity(), ont, RDFXML);
        if (resource == null) {
            fail("Some errors accour");
        } else {
            int cont = 0;
            while (resource.hasNext()) {
                Statement stm = resource.nextStatement();
                IRI subres = IRI.create(stm.getSubject().getURI());
                if (("<" + subres + ">").equals(daxiomsub.getEntity().toString()))
                    cont++;
            }
            assertEquals(ind.size(), (cont - 1));
        }
    } catch (Exception e) {
        e.printStackTrace();
        fail("Exception caugth");
    } finally {
        assertNotNull(resource);
    }
}
Also used : IRI(org.semanticweb.owlapi.model.IRI) OWLDeclarationAxiom(org.semanticweb.owlapi.model.OWLDeclarationAxiom) OWLDatatype(org.semanticweb.owlapi.model.OWLDatatype) OWLAnnotationProperty(org.semanticweb.owlapi.model.OWLAnnotationProperty) OWLDataPropertyAssertionAxiom(org.semanticweb.owlapi.model.OWLDataPropertyAssertionAxiom) OWLDataProperty(org.semanticweb.owlapi.model.OWLDataProperty) OWLOntologyCreationException(org.semanticweb.owlapi.model.OWLOntologyCreationException) OWLOntology(org.semanticweb.owlapi.model.OWLOntology) OWLNamedIndividual(org.semanticweb.owlapi.model.OWLNamedIndividual) OWLOntologyManager(org.semanticweb.owlapi.model.OWLOntologyManager) OWLClassAssertionAxiom(org.semanticweb.owlapi.model.OWLClassAssertionAxiom) StmtIterator(com.hp.hpl.jena.rdf.model.StmtIterator) OWLAnnotationAssertionAxiom(org.semanticweb.owlapi.model.OWLAnnotationAssertionAxiom) OWLAnnotation(org.semanticweb.owlapi.model.OWLAnnotation) Statement(com.hp.hpl.jena.rdf.model.Statement) OWLIndividualAxiom(org.semanticweb.owlapi.model.OWLIndividualAxiom) OWLObjectProperty(org.semanticweb.owlapi.model.OWLObjectProperty) OWLOntologyCreationException(org.semanticweb.owlapi.model.OWLOntologyCreationException) OWLLiteral(org.semanticweb.owlapi.model.OWLLiteral) OWLObjectPropertyAssertionAxiom(org.semanticweb.owlapi.model.OWLObjectPropertyAssertionAxiom) OWLClass(org.semanticweb.owlapi.model.OWLClass) OWLDataFactory(org.semanticweb.owlapi.model.OWLDataFactory)

Aggregations

OWLAnnotationProperty (org.semanticweb.owlapi.model.OWLAnnotationProperty)12 OWLClass (org.semanticweb.owlapi.model.OWLClass)8 OWLAnnotationAssertionAxiom (org.semanticweb.owlapi.model.OWLAnnotationAssertionAxiom)7 OWLLiteral (org.semanticweb.owlapi.model.OWLLiteral)7 OWLObjectProperty (org.semanticweb.owlapi.model.OWLObjectProperty)7 OWLClassAssertionAxiom (org.semanticweb.owlapi.model.OWLClassAssertionAxiom)6 OWLDataFactory (org.semanticweb.owlapi.model.OWLDataFactory)6 OWLDataProperty (org.semanticweb.owlapi.model.OWLDataProperty)6 OWLNamedIndividual (org.semanticweb.owlapi.model.OWLNamedIndividual)6 OWLObjectPropertyAssertionAxiom (org.semanticweb.owlapi.model.OWLObjectPropertyAssertionAxiom)6 OWLOntologyCreationException (org.semanticweb.owlapi.model.OWLOntologyCreationException)6 IRI (org.semanticweb.owlapi.model.IRI)5 OWLAnnotation (org.semanticweb.owlapi.model.OWLAnnotation)5 OWLDataPropertyAssertionAxiom (org.semanticweb.owlapi.model.OWLDataPropertyAssertionAxiom)5 OWLOntology (org.semanticweb.owlapi.model.OWLOntology)5 OWLOntologyManager (org.semanticweb.owlapi.model.OWLOntologyManager)5 StmtIterator (com.hp.hpl.jena.rdf.model.StmtIterator)3 AddAxiom (org.semanticweb.owlapi.model.AddAxiom)3 OWLDatatype (org.semanticweb.owlapi.model.OWLDatatype)3 AnnotationProperty (com.hp.hpl.jena.ontology.AnnotationProperty)2