2014-12-25 1 views
2

«dbpedia_2014.owl» - это файл совы, который создает разные концепции, которые не содержат отдельных. Это можно скачать по http://data.dws.informatik.uni-mannheim.de/dbpedia/2014/dbpedia_2014.owl.bz2Список методовИндивидуальный() занимает более 15 минут с «DBPedia_2014.owl» (файл размером 2 МБ)

Дело в том, когда я использую метод listIndividual() в Йене, потребовалось более 15 минут, чтобы справиться с такой файл небольшого размера (2MB). код ниже:

import com.hp.hpl.jena.ontology.OntModel; 
import com.hp.hpl.jena.rdf.model.ModelFactory; 

public class OntModelTest 
{ 
    public static void main(String[] args) 
    { 
     String fileName1 = new String("owl_qiwang_test/vc-db-1.rdf"); 
     String fileName2 = new String("owl_qiwang_test/dbpedia_2014.owl"); 

     OntModel ontModel = ModelFactory.createOntologyModel(); 

     ontModel.read(fileName2); 

     long startMil = System.currentTimeMillis(); 
     System.out.println("Start: " + startMil); 

     ontModel.listIndividuals(); 

     long endMil = System.currentTimeMillis(); 
     System.out.println("Duration: " + (endMil - startMil)); 

    } 
} 

Я задаюсь вопросом, почему это занимает так много времени, чтобы сделать это. Есть идеи?

ответ

0

javadoc для используемого вами метода говорит, что он предоставляет некоторые возможности рассуждения. Вероятно, это связано с возникновением проблем с производительностью, поскольку сложность рассуждений не сильно связана с размером: более крупные онтологии, как правило, сложнее рассуждать, чем более мелкие онтологии, однако для небольших онтологий очень трудно рассуждать.

https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/ModelFactory.html#createOntologyModel--

public static OntModel createOntologyModel() 

Ответ новую модель онтологии, которая будет обрабатывать в памяти модели онтологий выражены языком онтологии по умолчанию (OWL). Менеджер документов по умолчанию будет использоваться для загрузки документов, включенных в онтологию.

Примечание. Модель по умолчанию, выбранная для OWL и RDFS, включает в себя слабый аргумент, который включает некоторые вхождения (такие как переходное закрытие в иерархиях подкласса и под-свойств). Пользователи, которые не хотят вообще ни одного вывода или, альтернативно, более полные рассуждения, должны использовать один из других методов createOntologyModel, которые позволяют указать предпочтительную спецификацию OntModel.