Я не провел здесь полный анализ соответствующего кода, но, грубо говоря, выполняются следующие операции:
- С учетом онтологии и сущности
- получить аннотации для сущности
- итерация ищет подходящее свойство аннотации
- получить буквальное значение
Аксиомы индексируются по типу, поэтому получение аксиом аннотации равно O (1). Выбор аксиом, релевантных для сущности, также использует индекс, так что это снова O (1).
Итерация и поиск подходящего свойства - это O (N), где N - количество аннотаций - 1 в вашем примере, и снова O (1). Само сравнение разрешается в сравнении строк для свойства IRI. rdfs:label
сам по себе является синглтоном, так как он часто используется, поэтому сравнение производительности незначительно.
Извлечение буквенного значения - простой доступ, поэтому в целом процесс должен быть O (1).
По сравнению с базой данных, порядок О был бы таким же; но реализация OWLAPI по умолчанию ConcurrentHashMaps
в памяти. Доступ к удаленной базе данных по сети, при условии, что нет необходимости открывать новое соединение, все еще, вероятно, будет доминировать в фактических измерениях времени.