Добавление нескольких меток в класс OWL (аналогично SKOS: altLabel) - PullRequest
0 голосов
/ 10 января 2020

Я редактирую онтологии для проекта в JAVA с org.semanticweb.owlapi.model.OWLOntology. Мне нужно найти решение о добавлении нескольких ярлыков в класс совы.

Для любого класса c из OWL-API я могу получить его метку через c.getIRI(). Но как я могу добавить второй ярлык к этому классу?

import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLClass;
import org.semanticweb.owlapi.model.OWLDataFactory;
import org.semanticweb.owlapi.model.OWLOntologyManager;
    private static void addMultipleLabel() {
    OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
    OWLDataFactory factory = manager.getOWLDataFactory();

    IRI iri_1 = IRI.create("my_first_label");
    IRI iri_2 = IRI.create("my_second_label");
    OWLClass myClass = factory.getOWLClass(iri_1);
    // how to assign also iri_2 to myClass

}

Я обнаружил в SKOS, есть возможность добавить несколько ярлыков для класса. Но использование SKOS:altLabel требует, чтобы я определил свой класс совы как концепцию SKOS, что поставило перед собой задачу изменить все мои используемые модели в проекте.

Есть ли какая-нибудь подсказка, как я могу добавить несколько меток для класса OWL-API ?

Заранее спасибо за ваше предложение и помощь.

1 Ответ

0 голосов
/ 11 января 2020

Благодаря Игнацио,
, поэтому я исправляю это так:

    private static void addMultipleLabel() throws OWLOntologyCreationException {
    OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
    OWLDataFactory factory = manager.getOWLDataFactory();
    OWLOntology myOnt = manager.createOntology(IRI.create("C:\\LOCAL_FOLDER_\\ontName.owl"));

    IRI iri_1 = IRI.create("my_first_label");
    IRI iri_2 = IRI.create("my_second_label");
    OWLClass myClass = factory.getOWLClass(iri_1);

    OWLAnnotationProperty labels = factory.getRDFSLabel();

    OWLAnnotation pA1 = factory.getOWLAnnotation(labels, iri_1);
    OWLAnnotationAssertionAxiom myAxiom1 = factory.getOWLAnnotationAssertionAxiom(myClass.getIRI(), pA1);
    manager.addAxiom(myOnt, myAxiom1);

    OWLAnnotation pA2 = factory.getOWLAnnotation(labels, iri_2);
    OWLAnnotationAssertionAxiom myAxiom2 = factory.getOWLAnnotationAssertionAxiom(myClass.getIRI(), pA2);
    manager.addAxiom(myOnt, myAxiom2);

}
...