use of com.inova8.intelligentgraph.model.Resource in project com.inova8.intelligentgraph by peterjohnlawrence.
the class IntelligentGraphConnection method getFacts.
/**
* Gets the facts.
*
* @param thingresource the thingresource
* @param pathQLValue the path QL value
* @param contexts the contexts
* @return the facts
* @throws PathPatternException the path pattern exception
*/
private CloseableIteration<? extends IntelligentStatement, SailException> getFacts(Resource thingresource, String pathQLValue, Value obj, Resource... contexts) throws PathPatternException {
IntelligentGraphRepository source = IntelligentGraphRepository.create(this);
String pathQL = pathQLValue;
PathElement pathElement = PathParser.parsePathPattern(source.getRepositoryContext(), pathQL);
Thing thing = null;
if (thingresource != null) {
thing = Thing.create(source, thingresource, null);
pathElement.getSourceVariable().setValue(thing.getValue());
}
return getThingFacts(source, thing, pathElement, contexts);
}
use of com.inova8.intelligentgraph.model.Resource in project com.inova8.intelligentgraph by peterjohnlawrence.
the class IntelligentGraphConnection method deleteThingFacts.
/**
* Delete thing facts.
*
* @param modify the modify
* @param source the source
* @param thing the thing
* @param pathElement the path element
* @param contexts the contexts
* @throws PathPatternException the path pattern exception
*/
private void deleteThingFacts(UpdateContext modify, IntelligentGraphRepository source, Thing thing, PathElement pathElement, Resource... contexts) throws PathPatternException {
CloseableIteration<BindingSet, QueryEvaluationException> resultsIterator = getResultsIterator(source, thing, pathElement, 0, contexts);
if (((PredicateElement) pathElement).getIsReified()) {
String reified = ((PredicateElement) pathElement).getReifiedVariable().getName();
while (resultsIterator.hasNext()) {
BindingSet bindingSet = resultsIterator.next();
super.removeStatements((Resource) bindingSet.getBinding(reified).getValue(), null, null, contexts);
}
} else {
String subj = pathElement.getTargetSubject().getName();
String pred = pathElement.getTargetPredicate().getName();
String obj = pathElement.getTargetVariable().getName();
while (resultsIterator.hasNext()) {
BindingSet bindingSet = resultsIterator.next();
IRI predicate = (IRI) bindingSet.getBinding(pred).getValue();
super.removeStatements((Resource) bindingSet.getBinding(subj).getValue(), (IRI) bindingSet.getBinding(pred).getValue(), bindingSet.getBinding(obj).getValue(), contexts);
checkReificationsChanged(predicate);
}
}
}
use of com.inova8.intelligentgraph.model.Resource in project com.inova8.intelligentgraph by peterjohnlawrence.
the class IntelligentGraphConnection method getResultsIterator.
/**
* Gets the results iterator.
*
* @param source the source
* @param thing the thing
* @param pathElement the path element
* @param pathTupleExpr the path tuple expr
* @param contexts the contexts
* @return the results iterator
* @throws IllegalArgumentException the illegal argument exception
* @throws QueryEvaluationException the query evaluation exception
*/
CloseableIteration<BindingSet, QueryEvaluationException> getResultsIterator(IntelligentGraphRepository source, Thing thing, PathElement pathElement, PathTupleExpr pathTupleExpr, Resource... contexts) throws IllegalArgumentException, QueryEvaluationException {
TupleExpr tupleExpr = pathTupleExpr.getTupleExpr();
SimpleDataset dataset = prepareDataset(pathElement, source, contexts);
BindingSet bindings = new QueryBindingSet();
EvaluationStrategy evaluationStrategy = new StrictEvaluationStrategy(source.getTripleSource(), dataset, null);
CloseableIteration<BindingSet, QueryEvaluationException> resultsIterator = evaluationStrategy.evaluate(tupleExpr, bindings);
return resultsIterator;
}
use of com.inova8.intelligentgraph.model.Resource in project com.inova8.intelligentgraph by peterjohnlawrence.
the class IntelligentGraphConnection method addStatement.
/**
* Adds the statement.
*
* @param modify the modify
* @param subj the subj
* @param pred the pred
* @param obj the obj
* @param contexts the contexts
* @throws SailException the sail exception
*/
@Override
public void addStatement(UpdateContext modify, Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException {
try {
String[] predicateParts;
if (pred != null) {
// predicateParts= pred.stringValue().split(IntelligentGraphConstants.PATH_QL_REGEX);
predicateParts = decodePredicate(pred);
switch(predicateParts[0]) {
case PATHQL.addFact:
addFact(modify, subj, predicateParts[1], obj, contexts);
break;
default:
super.addStatement(modify, subj, pred, obj, contexts);
checkReificationsChanged(pred);
}
} else
super.addStatement(modify, subj, pred, obj, contexts);
this.intelligentGraphSail.clearCache();
} catch (Exception e) {
throw new SailException(e);
}
}
use of com.inova8.intelligentgraph.model.Resource in project com.inova8.intelligentgraph by peterjohnlawrence.
the class ResourceResults method toString.
/**
* To string.
*
* @return the string
*/
public String toString() {
String toString = "[";
while (hasNext()) {
Resource resource = (Resource) next();
toString += resource.toString() + ";";
}
return toString + "]";
}
Aggregations