2015-01-04 2 views
0

Когда я создаю модель RDFS_MEM_RDFS_INF в Йене и читаю некоторый файл RDFS, добавляется ряд операторов, которые явно не указаны в файле. Например. если мы имеем тройнойКак я могу отличить аксиому от выведенного оператора в модели Jena RDFS-INF?

P B

и р является RDFS: subPropertyOf кв, чем

В О Ь

также в модели. Конкретный пример может служить следующее: если

SKOS: родственный б

находится в файле

SKOS: semanticRelation б

также в модели.

Есть ли возможность проверить, является ли утверждение в модели аксиомой или выведенной? Существуют такие методы для моделей OWL, но я использую модель RDFS. Тривиальное решение состоит в том, чтобы построить две модели, одна без которой и с умозаключением, но я предпочел бы меньшее потребление памяти.

+1

У Jena InfModel есть метод 'getRawModel()'. Эта «модель» не содержит выведенных утверждений, она будет содержать только аксиомы в файле. используйте чек против этого. Если вы используете 'OntModel', у него есть метод' getBaseModel() '. –

+0

Спасибо. Это прекрасно работает! Я не нашел этот метод, когда читал документацию на прошлой неделе. –

+0

@djthequest Вы должны опубликовать это как ответ. –

ответ

0

Jena InfModel имеет метод getRawModel(). Этот Model не содержит выводимых операторов, он будет содержать только аксиомы в файле. используйте чек против этого. Если вы используете OntModel, у него есть метод getBaseModel().

0

Чтобы сохранить djthequest's answer from a comment:

Jena InfModel имеет метод getRawModel(). Эта модель не содержит выводных операторов , она будет содержать только аксиомы в файле. используйте чек против этого. Если вы используете OntModel, у него есть метод getBaseModel().

и Christian Wartena's response указывая, что это было решение:

Благодаря. Это прекрасно работает! Я не нашел этот метод, когда читал документацию на прошлой неделе.

(я удалю этот ответ, если djthequest сообщений один.)