2013-03-06 2 views
1

Как вернуть все свойства в модели с указанным ресурсом (в качестве объекта или объекта) ...?Как вернуть свойство ресурса с помощью jena API в Java?

Метод, который возвращает строку [] свойств, связанных с этим ресурсом.

+2

Я бы посоветовал преждевременное сопоставление объектов RDF с строками, а коллекции Java гораздо полезнее, чем массивы. Я предлагаю вам подумать в терминах 'Collection ', а не 'String []' для хранения предикатов, которые вы хотите. –

ответ

2

AFAIK нет эквивалента listSubjectsWithProperty, чтобы вернуть все предикаты в модели или все предикаты для данного объекта. Это довольно легко реализовать:

С помощью Jena SimpleSelector вы можете пересечь модель и ограничить переход к определенным условиям. В этом случае я фильтровать только оператор, которые имеют в качестве предмета someRelevantSubject:

SimpleSelector selector = new SimpleSelector(null, null, (RDFNode)null) { 
    public boolean selects(Statement st) 
     { return st.getSubject().equals(someRelevantSubject);} 
} 

Использования селектора, итерации модели и добавить предикаты и добавить предикаты в стандартный Java набор:

StmtIterator iter = model.listStatements(selector); 
while(it.hasNext()) { 
    Statement stmt = iter.nextStatement(); 
    some_set.add(stmt.getPredicate().toString()); 
} 

Если вы хотите, чтобы все четкие предикаты, независимо от того, как только объект возвратил true в селектор.

+0

Спасибо ... .... – user2057437

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