2016-12-01 1 views
1

Мне нужно прочитать онтологию, используя OWLAPI; Я использую этот JAVA код:OWLOntology readOntology создает AnnotationProperty

public class OwlApi { 

public static void main(String[] args) throws OWLOntologyCreationException, FileNotFoundException { 
     OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); 
     File file = new File("myfile"); 
     InputStream targetStream = new FileInputStream(file); 
     OWLOntology ontology = manager.loadOntologyFromOntologyDocument(targetStream);  
} 
} 

Мой файл представляет собой простой файл черепахи, как это:

@prefix xml: <http://www.w3.org/XML/1998/namespace> . 
@prefix : <platform:/resource/test/OWL/prova#> . 
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . 
@prefix owl: <http://www.w3.org/2002/07/owl#> . 
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . 
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . 

<platform:/resource/test/OWL/prova> a owl:Ontology . 

:proprietao a owl:ObjectProperty ; 
rdfs:domain :classeuno ; 
rdfs:range <http://dbpedia.org/ontology/PopulatedPlace> . 

:proprietad a owl:DatatypeProperty ; 
rdfs:domain <http://dbpedia.org/ontology/PopulatedPlace> ; 
rdfs:range xsd:string . 

:classeuno a owl:Class . 

outuput загрузки файла является этот:

Ontology(OntologyID(OntologyIRI(<platform:/resource/test/OWL/prova>) VersionIRI(<null>))) [Axioms: 7 Logical Axioms: 3] First 20 axioms: {DataPropertyRange(<platform:/resource/test/OWL/prova#proprietad> xsd:string) DataPropertyRange(<platform:/resource/test/OWL/prova#proprietao> <http://dbpedia.org/ontology/PopulatedPlace>) Declaration(ObjectProperty(<platform:/resource/test/OWL/prova#proprietao>)) Declaration(DataProperty(<platform:/resource/test/OWL/prova#proprietad>)) Declaration(Class(<platform:/resource/test/OWL/prova#classeuno>)) AnnotationPropertyDomain(<platform:/resource/test/OWL/prova#proprietad> <http://dbpedia.org/ontology/PopulatedPlace>) ObjectPropertyDomain(<platform:/resource/test/OWL/prova#proprietao> <platform:/resource/test/OWL/prova#classeuno>) } 

Я надеваю Не понимаю, почему появляется AnnotationPropertyDomain о DataProperty.

Я что-то не так? Большое спасибо.

ответ

2

Это происходит потому, что http://dbpedia.org/ontology/PopulatedPlace не объявлен как owl:Class, и синтаксический анализатор очень строгий. В OWL вы должны вводить все объекты явно.

+0

Спасибо за ваш ответ, вы правы! Поэтому, если мне также нужно использовать сову: ObjectProperty или owl: DatatypeProperty из внешней онтологии (например, DBpedia) в моей пользовательской онтологии, я должен объявить это так же, правильно? А что, например, импорт онтологии? Достаточно ли объявлять пространство имен и повторное использование класса или свойств из импортированных онтологий? –

+0

Да, для каждого объекта рекомендуется явно объявить его тип. Если вы импортируете онтологию «A», ее следует покрыть в «A» и, следовательно, достаточно, чтобы просто «использовать» ее в своей онтологии. – AKSW

Смежные вопросы