public StatementMetadata getMetadata() { // try to deserialize the value, if not assume that there was // no explicit metadata try { return new StatementMetadata(value); } catch (final Exception ex){ return null; } }
public byte[] toBytes() { // convert the map to a json string if (metadataMap.isEmpty()) { return null; } // TODO may want to cache this for performance reasons try { return toString().getBytes("UTF8"); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } }
public void setStatementMetadata(final StatementMetadata metadata){ this.value = metadata.toBytes(); }
@Override public long executeNext() throws ForwardChainException { if (!initialized.get()) { return 0; } Rule rule = getNextRule(); if (rule == null) { return 0; } StatementMetadata metadata = new StatementMetadata(); metadata.addMetadata(ForwardChainConstants.RYA_DERIVATION_TIME, new RyaType(XMLSchema.INT, Integer.toString(iteration))); long inferences = rule.execute(ruleStrategy, metadata); inferencesThisIteration += inferences; if (inferences > 0) { for (Rule successor : ruleset.getSuccessorsOf(rule)) { // If we'll handle the triggered rule in the current iteration, // it may not need to be checked in the next one. if (!activeNow.contains(successor)) { activeNextIteration.add(successor); } } } prepareQueue(); return inferences; }
@Test public void simpleTests() throws Exception { StatementMetadata empty = new StatementMetadata(); byte[] emptyData = empty.toBytes(); Assert.assertArrayEquals(emptyData, new StatementMetadata(emptyData).toBytes()); StatementMetadata single = new StatementMetadata(); single.addMetadata(new RyaIRI("http://uri"), new RyaType("http://type")); byte[] singleData = single.toBytes(); Assert.assertArrayEquals(singleData, new StatementMetadata(singleData).toBytes()); } }
@Override public long execute(AbstractRuleExecutionStrategy strategy, StatementMetadata metadata) throws ForwardChainException { metadata.addMetadata(ForwardChainConstants.RYA_DERIVATION_RULE, RdfToRyaConversions.convertResource(ruleId)); return super.execute(strategy, metadata); }
+ "_:blankNode <http://createdOn> ?z }\n"; StatementMetadata metadata1 = new StatementMetadata(); metadata1.addMetadata(new RyaIRI("http://createdBy"), new RyaIRI("http://Dave")); metadata1.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-02")); StatementMetadata metadata2 = new StatementMetadata(); metadata2.addMetadata(new RyaIRI("http://createdBy"), new RyaIRI("http://Dave")); metadata2.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-02-04")); StatementMetadata metadata3 = new StatementMetadata(); metadata3.addMetadata(new RyaIRI("http://createdBy"), new RyaIRI("http://Fred")); metadata3.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-03-08"));
+ "_:blankNode <http://hasTimeStamp> ?y }\n"; StatementMetadata metadata = new StatementMetadata(); metadata.addMetadata(new RyaIRI("http://hasTimeStamp"), new RyaType(XMLSchema.TIME, "09:30:10.5")); new RyaType("http://UnitedStates"), new RyaIRI("http://context"), "", new StatementMetadata());
public StatementMetadata getMetadata() { // try to deserialize the value, if not assume that there was // no explicit metadata try { return new StatementMetadata(value); } catch (final Exception ex){ return null; } }
public byte[] toBytes() { // convert the map to a json string if (metadataMap.isEmpty()) { return null; } // TODO may want to cache this for performance reasons try { return toString().getBytes("UTF8"); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } }
public void setStatementMetadata(final StatementMetadata metadata){ this.value = metadata.toBytes(); }
+ "_:blankNode <http://createdOn> '2017-02-04'^^xsd:date }\n"; StatementMetadata metadata1 = new StatementMetadata(); metadata1.addMetadata(new RyaIRI("http://createdBy"), new RyaIRI("http://Dave")); metadata1.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-02")); StatementMetadata metadata2 = new StatementMetadata(); metadata2.addMetadata(new RyaIRI("http://createdBy"), new RyaIRI("http://Dave")); metadata2.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-02-04")); StatementMetadata metadata3 = new StatementMetadata(); metadata3.addMetadata(new RyaIRI("http://createdBy"), new RyaIRI("http://Fred")); metadata3.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-03-08"));
public RyaStatement(final RyaURI subject, final RyaURI predicate, final RyaType object, final RyaURI context, final String qualifier) { this(subject, predicate, object, context, qualifier, new StatementMetadata()); }
@Override public void apply(Document doc) { final DBObject dbo = (DBObject) JSON.parse(doc.toJson()); RyaStatement rstmt = storageStrategy.deserializeDBObject(dbo); if (!statementExists(rstmt)) { count.increment(); doc.replace(SimpleMongoDBStorageStrategy.STATEMENT_METADATA, metadata.toString()); try { batchWriter.addObjectToQueue(doc); } catch (MongoDbBatchWriterException e) { logger.error("Couldn't insert " + rstmt, e); } } } });
public RyaStatement(final RyaURI subject, final RyaURI predicate, final RyaType object, final RyaURI context, final String qualifier, final StatementMetadata metadata, final byte[] columnVisibility) { this(subject, predicate, object, context, qualifier, columnVisibility, metadata.toBytes()); }
+ "_:blankNode2 <http://createdOn> ?a }\n"; StatementMetadata metadata1 = new StatementMetadata(); metadata1.addMetadata(new RyaIRI("http://createdBy"), new RyaIRI("http://Dave")); metadata1.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-02")); StatementMetadata metadata2 = new StatementMetadata(); metadata2.addMetadata(new RyaIRI("http://createdBy"), new RyaIRI("http://Dave")); metadata2.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-02-04")); StatementMetadata metadata3 = new StatementMetadata(); metadata3.addMetadata(new RyaIRI("http://createdBy"), new RyaIRI("http://Fred")); metadata3.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-03-08")); StatementMetadata metadata4 = new StatementMetadata(); metadata4.addMetadata(new RyaIRI("http://createdBy"), new RyaIRI("http://Dave")); metadata4.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-04-16"));
public RyaStatement(final RyaIRI subject, final RyaIRI predicate, final RyaType object, final RyaIRI context, final String qualifier) { this(subject, predicate, object, context, qualifier, new StatementMetadata()); }
.append(OBJECT_TYPE, statement.getObject().getDataType().toString()) .append(CONTEXT, context) .append(STATEMENT_METADATA, statement.getMetadata().toString()) .append(DOCUMENT_VISIBILITY, dvObject.get(DOCUMENT_VISIBILITY)) .append(TIMESTAMP, statement.getTimestamp());
public RyaStatement(final RyaIRI subject, final RyaIRI predicate, final RyaType object, final RyaIRI context, final String qualifier, final StatementMetadata metadata, final byte[] columnVisibility) { this(subject, predicate, object, context, qualifier, columnVisibility, metadata.toBytes()); }
@Override protected void addStatementInternal(final Resource subject, final IRI predicate, final Value object, final Resource... contexts) throws SailException { try { final String cv_s = conf.getCv(); final byte[] cv = cv_s == null ? null : cv_s.getBytes(StandardCharsets.UTF_8); final List<RyaStatement> ryaStatements = new ArrayList<>(); if (contexts != null && contexts.length > 0) { for (final Resource context : contexts) { final RyaStatement statement = new RyaStatement( RdfToRyaConversions.convertResource(subject), RdfToRyaConversions.convertIRI(predicate), RdfToRyaConversions.convertValue(object), RdfToRyaConversions.convertResource(context), null, new StatementMetadata(), cv); ryaStatements.add(statement); } } else { final RyaStatement statement = new RyaStatement( RdfToRyaConversions.convertResource(subject), RdfToRyaConversions.convertIRI(predicate), RdfToRyaConversions.convertValue(object), null, null, new StatementMetadata(), cv); ryaStatements.add(statement); } ryaDAO.add(ryaStatements.iterator()); } catch (final RyaDAOException e) { throw new SailException(e); } }