Получение объекта и предиката для субъекта без sparql

Я получил субъект через модель, используя getSubject(), и для этого субъекта я хочу создать отношение для их соответствующего объекта и предиката. Как получить объект и предикат для конкретного субъекта через jena и без sparql?


person randomxyz    schedule 23.07.2015    source источник
comment
См. javadoc для Resource.   -  person AndyS    schedule 24.07.2015
comment
если мы возьмем ресурс, то мы можем получить индивидуально, но я хочу знать предикат и объект конкретного субъекта   -  person randomxyz    schedule 24.07.2015


Ответы (1)


Чтобы получить все предикаты и объекты конкретного предмета по заданной модели m:

// The resource you already had:
Resource subject; // = m.getResource(NAMESPACE + "subject");

// This creates a 'list' (iterator) over all the satements containing your subject
StmtIterator stmtIterator = m.listStatements(subject, null, (RDFNode) null);

// While you have not processed all these statements:
while (stmtIterator.hasNext()){

     // Grab the next statement
     Statement s = stmtIterator.next();

     // Retrieve the predicate(property) and the object from the statement
     Property predicate = s.getPredicate();
     Resource object = s.getObject();

     // Do something with your predicate
     // Do something with your object
}

Однако, если вы хотите получить предикат и субъект из модели, чтобы добавить их к полученному субъекту:

Property property = m.getProperty(NAMESPACE + "propertyName");
Resource object = m.getResource(NAMESPACE + "objectName");
subject.addProperty(property, object);
person Laurens Koppenol    schedule 27.07.2015