Разбор строки в TurtleSyntax для OWLClass - PullRequest
0 голосов
/ 22 мая 2018

В настоящее время я пытаюсь создать OWLClass из строки в синтаксисе Turtle, сначала создав Jena OntModel и посетив каждый оператор в классе.Есть ли лучший способ создать OWL Class с использованием OWL API из синтаксиса Turtle?Ниже приведена строка, которую я пытаюсь разобрать.

@prefix p0:    <http://rdf.test.com/dl_reasoning/> .
@prefix p1:    <http://rdf.test.com/ns/test_rm#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .

p0:safetyGoal_1  a       rdfs:Class , p1:SafetyGoal ;
    rdfs:subClassOf  p1:SafetyGoal ;
    p1:fulfilledBy   p0:fsr_fuel , p0:fsr_coo .

p0:safetyGoal_3  a       rdfs:Class , p1:SafetyGoalVersion ;
    rdfs:subClassOf  p1:SafetyGoal ;


p0:safetyGoal_2  a       rdfs:Class , p1:SafetyGoalVersion ;
    rdfs:subClassOf  p1:SafetyGoal ;
    p1:fulfilledBy   p0:fsr_fuel ;
    p1:fulfills      p0:fsr_coo .

1 Ответ

0 голосов
/ 22 мая 2018

Строка, которую вы пытаетесь проанализировать, содержит не только классы, но и аксиомы.Чтобы быть полной онтологией, в ней отсутствует только декларация онтологии.Должна быть возможность проанализировать это прямо в онтологии - которая была бы анонимной - путем ее синтаксического анализа одним из парсеров Turtle в OWLAPI.

Вы пытались разобрать это до OWLOntology?

String in = "...";
StringDocumentSource input = new StringDocumentSource(in);
OWLOntologyManager m = OWLManager.createOWLOntologyManager();
OWLOntology o = m.loadOntologtFromOntologyDocument(input);

Перечисление аксиом или повторение подписи онтологии должно предоставить вам достаточно структуры для продвижения вперед в вашей работе.

Примечание: эти две строки, кажется, пропускают точку:

p0:safetyGoal_3  a       rdfs:Class , p1:SafetyGoalVersion ;
rdfs:subClassOf  p1:SafetyGoal ;

Должна быть полная остановка, чтобы разрешить анализ:

p0:safetyGoal_3  a       rdfs:Class , p1:SafetyGoalVersion ;
rdfs:subClassOf  p1:SafetyGoal .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...