steve@0: package org.qmul.eecs.c4dm.sia; steve@0: steve@0: import java.util.Vector; steve@0: steve@0: import org.qmul.eecs.c4dm.sia.model.DimensionValue; steve@0: steve@0: import com.hp.hpl.jena.ontology.OntModel; steve@0: import com.hp.hpl.jena.rdf.model.Literal; steve@0: import com.hp.hpl.jena.rdf.model.Property; steve@0: import com.hp.hpl.jena.rdf.model.RDFNode; steve@0: import com.hp.hpl.jena.rdf.model.Resource; steve@0: import com.hp.hpl.jena.rdf.model.Statement; steve@0: import com.hp.hpl.jena.rdf.model.StmtIterator; steve@0: steve@0: public class SiaDimensionValueFactory { steve@0: steve@0: public static Vector getDimensionValuesForResource( steve@0: OntModel ontModel, Resource subject) { steve@0: DimensionValue dimVal; steve@0: StmtIterator dimValStmtIter; steve@0: Property dimValProperty = ontModel.getOntProperty(DimensionValue.PROPERTY_URI); steve@0: Property dimensionProperty = ontModel.getOntProperty(DimensionValue.DIMENSION_URI); steve@0: Property valueProperty = ontModel.getOntProperty(DimensionValue.VALUE_URI); steve@0: dimValStmtIter = ontModel.listStatements(subject, dimValProperty, (RDFNode)null); steve@0: steve@0: Vector dimValsList = new Vector(); steve@0: StmtIterator dimValDimensionStmtIter; steve@0: StmtIterator dimValValueStmtIter; steve@0: steve@0: while (dimValStmtIter.hasNext()) steve@0: { stevenh@12: Statement dimValStmt = dimValStmtIter.next(); steve@0: Resource dimValResource = dimValStmt.getResource(); steve@0: steve@0: dimValDimensionStmtIter = ontModel.listStatements(dimValResource, dimensionProperty, (RDFNode)null); steve@0: dimValValueStmtIter = ontModel.listStatements(dimValResource, valueProperty, (RDFNode)null); steve@0: dimVal = new DimensionValue(); steve@0: steve@0: Statement dimValDimensionStmt = dimValDimensionStmtIter.next(); steve@0: Statement dimValValueStmt = dimValValueStmtIter.next(); steve@0: Literal dimension = dimValDimensionStmt.getObject().asLiteral(); steve@0: dimVal.setDimension(dimension.getInt()); steve@0: steve@0: Literal value = dimValValueStmt.getObject().asLiteral(); steve@0: steve@0: dimVal.setValue(value.getDouble()); steve@0: stevenh@12: dimValsList.add(dimVal); steve@0: } steve@0: return dimValsList; steve@0: } steve@0: steve@0: }