private int statementSize(final RyaStatement ryaStatement) { final RyaURI subject = ryaStatement.getSubject(); final RyaURI predicate = ryaStatement.getPredicate(); final RyaType object = ryaStatement.getObject(); final RyaURI context = ryaStatement.getContext(); int size = 3 + subject.getData().length() + predicate.getData().length() + object.getData().length(); if (!XMLSchema.ANYURI.equals(object.getDataType())) { size += 2 + object.getDataType().toString().length(); } if (context != null) { size += context.getData().length(); } return size; }
private int statementSize(final RyaStatement ryaStatement) { final RyaIRI subject = ryaStatement.getSubject(); final RyaIRI predicate = ryaStatement.getPredicate(); final RyaType object = ryaStatement.getObject(); final RyaIRI context = ryaStatement.getContext(); int size = 3 + subject.getData().length() + predicate.getData().length() + object.getData().length(); if (!XMLSchema.ANYURI.equals(object.getDataType())) { size += 2 + object.getDataType().toString().length(); } if (context != null) { size += context.getData().length(); } return size; }
public TriplePatternStrategy retrieveStrategy(final RyaStatement stmt) { return retrieveStrategy(stmt.getSubject(), stmt.getPredicate(), stmt.getObject(), stmt.getContext()); }
public static void ryaStatementsEqualIgnoresBlankNode(Set<RyaStatement> statements1, Set<RyaStatement> statements2) { Map<String, RyaIRI> bNodeMap = new HashMap<>(); statements1.forEach(x-> bNodeMap.put(x.getPredicate().getData(), x.getSubject())); statements2.forEach(x -> x.setSubject(bNodeMap.get(x.getPredicate().getData()))); ryaStatementSetsEqualIgnoresTimestamp(statements1, statements2); }
public static void ryaStatementsEqualIgnoresBlankNode(Set<RyaStatement> statements1, Set<RyaStatement> statements2) { Map<String, RyaIRI> bNodeMap = new HashMap<>(); statements1.forEach(x-> bNodeMap.put(x.getPredicate().getData(), x.getSubject())); statements2.forEach(x -> x.setSubject(bNodeMap.get(x.getPredicate().getData()))); ryaStatementSetsEqualIgnoresTimestamp(statements1, statements2); }
public TriplePatternStrategy retrieveStrategy(final RyaStatement stmt) { return retrieveStrategy(stmt.getSubject(), stmt.getPredicate(), stmt.getObject(), stmt.getContext()); }
private static boolean isResultForQuery(final RyaStatement query, final RyaStatement result) { return isResult(query.getSubject(), result.getSubject()) && isResult(query.getPredicate(), result.getPredicate()) && isResult(query.getObject(), result.getObject()) && isResult(query.getContext(), result.getContext()); }
private static boolean isResultForQuery(final RyaStatement query, final RyaStatement result) { return isResult(query.getSubject(), result.getSubject()) && isResult(query.getPredicate(), result.getPredicate()) && isResult(query.getObject(), result.getObject()) && isResult(query.getContext(), result.getContext()); }
private static String prettyFormat(final RyaStatement statement) { final RyaIRI s = statement.getSubject(); final RyaIRI p = statement.getPredicate(); final RyaType o = statement.getObject(); return "<" + s.getData() + "> <"+ p.getData() + "> <" + o.getData() + ">"; }
public static String getTripleString(final RyaStatement rs) { checkNotNull(rs); final String subj = rs.getSubject().getData() + TYPE_DELIM + URI_TYPE; final String pred = rs.getPredicate().getData() + TYPE_DELIM + URI_TYPE; final String objData = rs.getObject().getData(); final String objDataType = rs.getObject().getDataType().stringValue(); return subj + DELIM + pred + DELIM + objData + TYPE_DELIM + objDataType; }
public static String getTripleString(final RyaStatement rs) { checkNotNull(rs); final String subj = rs.getSubject().getData() + TYPE_DELIM + URI_TYPE; final String pred = rs.getPredicate().getData() + TYPE_DELIM + URI_TYPE; final String objData = rs.getObject().getData(); final String objDataType = rs.getObject().getDataType().stringValue(); return subj + DELIM + pred + DELIM + objData + TYPE_DELIM + objDataType; }
public static Statement convertStatement(RyaStatement statement) { assert statement != null; if (statement.getContext() != null) { return new ContextStatementImpl(convertURI(statement.getSubject()), convertURI(statement.getPredicate()), convertValue(statement.getObject()), convertURI(statement.getContext())); } else { return new StatementImpl(convertURI(statement.getSubject()), convertURI(statement.getPredicate()), convertValue(statement.getObject())); } }
private static RyaStatement updateRyaStatementColumnVisibility(final RyaStatement ryaStatement, final ColumnVisibility newCv) { final RyaStatement newCvRyaStatement = new RyaStatement(ryaStatement.getSubject(), ryaStatement.getPredicate(), ryaStatement.getObject(), ryaStatement.getContext(), ryaStatement.getQualifer(), newCv.getExpression(), ryaStatement.getValue(), ryaStatement.getTimestamp()); return newCvRyaStatement; }
/** * Converts a {@link RyaStatement} into a {@link Statement} representation * of the {@code ryaStatement}. * @param ryaStatement the {@link RyaStatement} to convert. * @return the {@link Statement} representation of the {@code ryaStatement}. */ public static Statement convertStatement(final RyaStatement ryaStatement) { assert ryaStatement != null; if (ryaStatement.getContext() != null) { return VF.createStatement(convertIRI(ryaStatement.getSubject()), convertIRI(ryaStatement.getPredicate()), convertValue(ryaStatement.getObject()), convertIRI(ryaStatement.getContext())); } else { return VF.createStatement(convertIRI(ryaStatement.getSubject()), convertIRI(ryaStatement.getPredicate()), convertValue(ryaStatement.getObject())); } } }
@Override public Tuple getNext() throws IOException { try { if (reader.nextKeyValue()) { Key key = reader.getCurrentKey(); org.apache.accumulo.core.data.Value value = reader.getCurrentValue(); ByteArrayDataInput input = ByteStreams.newDataInput(key.getRow().getBytes()); RyaStatement ryaStatement = ryaContext.deserializeTriple(layout, new TripleRow(key.getRow().getBytes(), key.getColumnFamily().getBytes(), key.getColumnQualifier().getBytes())); Tuple tuple = TupleFactory.getInstance().newTuple(7); tuple.set(0, ryaStatement.getSubject().getData()); tuple.set(1, ryaStatement.getPredicate().getData()); tuple.set(2, ryaStatement.getObject().getData()); tuple.set(3, (ryaStatement.getContext() != null) ? (ryaStatement.getContext().getData()) : (null)); tuple.set(4, ryaStatement.getSubject().getDataType()); tuple.set(5, ryaStatement.getPredicate().getDataType()); tuple.set(6, ryaStatement.getObject().getDataType()); return tuple; } } catch (Exception e) { throw new IOException(e); } return null; } }
private Set<RyaStatement> getRyaStatements(RyaStatement statement, int numTriples) { Set<RyaStatement> statements = new HashSet<>(); final String subject = "urn:subject_"; final String predicate = "urn:predicate_"; final String object = "urn:object_"; for (int i = 0; i < numTriples; i++) { RyaStatement stmnt = new RyaStatement(statement.getSubject(), statement.getPredicate(), statement.getObject()); if (stmnt.getSubject() == null) { stmnt.setSubject(new RyaIRI(subject + i)); } if (stmnt.getPredicate() == null) { stmnt.setPredicate(new RyaIRI(predicate + i)); } if (stmnt.getObject() == null) { stmnt.setObject(new RyaIRI(object + i)); } statements.add(stmnt); } return statements; }
@Override public DBObject getQuery(final RyaStatement stmt) { final RyaURI subject = stmt.getSubject(); final RyaURI predicate = stmt.getPredicate(); final RyaType object = stmt.getObject(); final RyaURI context = stmt.getContext(); final BasicDBObject query = new BasicDBObject(); if (subject != null){ query.append(SUBJECT_HASH, hash(subject.getData())); } if (object != null){ query.append(OBJECT_HASH, hash(object.getData())); query.append(OBJECT_TYPE, object.getDataType().toString()); } if (predicate != null){ query.append(PREDICATE_HASH, hash(predicate.getData())); } if (context != null){ query.append(CONTEXT, context.getData()); } return query; }
/** * Turn a single StatementPattern into a Range. * @param conf * @throws IOException if the range can't be resolved */ private Map.Entry<TABLE_LAYOUT, ByteRange> getRange(final StatementPattern sp) throws IOException { final Var context = sp.getContextVar(); final Statement stmt = new NullableStatementImpl((Resource) sp.getSubjectVar().getValue(), (IRI) sp.getPredicateVar().getValue(), sp.getObjectVar().getValue(), context == null ? null : (Resource) context.getValue()); final RyaStatement rs = RdfToRyaConversions.convertStatement(stmt); final TriplePatternStrategy strategy = ryaContext.retrieveStrategy(rs); final Map.Entry<TABLE_LAYOUT, ByteRange> entry = strategy.defineRange(rs.getSubject(), rs.getPredicate(), rs.getObject(), rs.getContext(), conf); return entry; }
@Override public DBObject getQuery(final RyaStatement stmt) { final RyaIRI subject = stmt.getSubject(); final RyaIRI predicate = stmt.getPredicate(); final RyaType object = stmt.getObject(); final RyaIRI context = stmt.getContext(); final BasicDBObject query = new BasicDBObject(); if (subject != null){ query.append(SUBJECT_HASH, hash(subject.getData())); } if (object != null){ query.append(OBJECT_HASH, hash(object.getData())); query.append(OBJECT_TYPE, object.getDataType().toString()); query.append(OBJECT_LANGUAGE, object.getLanguage()); } if (predicate != null){ query.append(PREDICATE_HASH, hash(predicate.getData())); } if (context != null){ query.append(CONTEXT, context.getData()); } return query; }
/** * Comparison method for natural ordering. Compares based on the logical * triple (the s/p/o/context information in the underlying RyaStatement) * and then by the metadata contained in the RyaStatement if the triples are * the same. * @return Zero if both RyaStatementWritables contain equivalent statements * or both have null statements; otherwise, an integer whose sign * corresponds to a consistent ordering. */ @Override public int compareTo(RyaStatementWritable other) { CompareToBuilder builder = new CompareToBuilder(); RyaStatement rsThis = this.getRyaStatement(); RyaStatement rsOther = other.getRyaStatement(); // should throw NPE if other is null, as per Comparable contract builder.append(rsThis == null, rsOther == null); if (rsThis != null && rsOther != null) { builder.append(rsThis.getSubject(), rsOther.getSubject()); builder.append(rsThis.getPredicate(), rsOther.getPredicate()); builder.append(rsThis.getObject(), rsOther.getObject()); builder.append(rsThis.getContext(), rsOther.getContext()); builder.append(rsThis.getQualifer(), rsOther.getQualifer()); builder.append(rsThis.getColumnVisibility(), rsOther.getColumnVisibility()); builder.append(rsThis.getValue(), rsOther.getValue()); builder.append(rsThis.getTimestamp(), rsOther.getTimestamp()); } return builder.toComparison(); }