本文整理汇总了Java中org.openrdf.query.algebra.StatementPattern.getPredicateVar方法的典型用法代码示例。如果您正苦于以下问题:Java StatementPattern.getPredicateVar方法的具体用法?Java StatementPattern.getPredicateVar怎么用?Java StatementPattern.getPredicateVar使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.openrdf.query.algebra.StatementPattern
的用法示例。
在下文中一共展示了StatementPattern.getPredicateVar方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: apply
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
/**
* Transform a statement pattern according to OWL-2 subclass axiom.
*
* @param node the node to transform
* @return list of nodes to visit next
*/
@Override
public List<QueryModelNode> apply(StatementPattern node) {
List<QueryModelNode> next = newNextList();
StatementPattern left = node.clone();
// replace the object with the subclass
StatementPattern right
= new StatementPattern(
node.getSubjectVar(),
node.getPredicateVar(),
new ConstVar(vf.createURI(ce1)),
node.getContextVar());
node.replaceWith(
new Union(left, right));
next.add(left);
next.add(right);
return next;
}
示例2: apply
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
/**
* Transform a statement pattern according to OWL-2 inverse properties
* axiom.
*
* @param node the node to transform
* @return list of nodes to visit next
*/
@Override
public List<QueryModelNode> apply(StatementPattern node) {
List<QueryModelNode> next = newNextList();
Var s = node.getSubjectVar();
Var p = node.getPredicateVar();
Var o = node.getObjectVar();
Var c = node.getContextVar();
URI uri = (URI) p.getValue();
String op = uri.stringValue();
Var p2;
// check if need to replace with op1 or op2
if (op.equals(op1)) {
p2 = new ConstVar(vf.createURI(op2));
} else {
p2 = new ConstVar(vf.createURI(op1));
}
StatementPattern left = node.clone();
// switch subject and object and replace predicate
StatementPattern right = new StatementPattern(o, p2, s, c);
node.replaceWith(new Union(left, right));
next.add(left);
next.add(right);
return next;
}
示例3: meet
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
@Override
public void meet(StatementPattern sp) throws Exception {
if (!include) {
return;
}
if (sp instanceof FixedStatementPattern || sp instanceof TransitivePropertySP || sp instanceof DoNotExpandSP) {
return; //already inferred somewhere else
}
final Var predVar = sp.getPredicateVar();
//we do not let timeRange preds be inferred, not good
if (predVar == null || predVar.getValue() == null
// || RdfCloudTripleStoreUtils.getTtlValueConverter(conf, (URI) predVar.getValue()) != null
) {
return;
}
meetSP(sp);
}
示例4: meetSP
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
@Override
protected void meetSP(final StatementPattern node) throws Exception {
final StatementPattern sp = node.clone();
final Var predVar = sp.getPredicateVar();
final URI pred = (URI) predVar.getValue();
final String predNamespace = pred.getNamespace();
final Var objVar = sp.getObjectVar();
final Var cntxtVar = sp.getContextVar();
if (objVar != null &&
!RDF.NAMESPACE.equals(predNamespace) &&
!SESAME.NAMESPACE.equals(predNamespace) &&
!RDFS.NAMESPACE.equals(predNamespace)
&& !EXPANDED.equals(cntxtVar)) {
final URI transPropUri = (URI) predVar.getValue();
if (inferenceEngine.isTransitiveProperty(transPropUri)) {
node.replaceWith(new TransitivePropertySP(sp.getSubjectVar(), sp.getPredicateVar(), sp.getObjectVar(), sp.getContextVar()));
}
}
}
示例5: meetSP
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
/**
* Check whether any solution for the {@link StatementPattern} could be derived from
* reflexive property inference, and if so, replace the pattern with a union of itself and the
* reflexive solution.
*/
@Override
protected void meetSP(StatementPattern node) throws Exception {
// Only applies when the predicate is defined and reflexive
final Var predVar = node.getPredicateVar();
if (predVar.getValue() != null && inferenceEngine.isReflexiveProperty((URI) predVar.getValue())) {
final StatementPattern originalSP = node.clone();
// The reflexive solution is a ZeroLengthPath between subject and
// object: they can be matched to one another, whether constants or
// variables.
final Var subjVar = node.getSubjectVar();
final Var objVar = node.getObjectVar();
final ZeroLengthPath reflexiveSolution = new ZeroLengthPath(subjVar, objVar);
node.replaceWith(new InferUnion(originalSP, reflexiveSolution));
}
}
示例6: canApply
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
/**
* Returns true if this rule is applicable to a node.
*
* @param node to a node
* @return true if the rule is applicable, false otherwise
*/
@Override
public boolean canApply(StatementPattern node) {
Var p = node.getPredicateVar();
// check if predicate is variable
return !(predicates.isEmpty() || p.isConstant());
}
示例7: meetSP
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
@Override
protected void meetSP(StatementPattern node) throws Exception {
StatementPattern sp = node.clone();
final Var predVar = sp.getPredicateVar();
URI pred = (URI) predVar.getValue();
String predNamespace = pred.getNamespace();
final Var objVar = sp.getObjectVar();
final Var cntxtVar = sp.getContextVar();
if (objVar != null &&
!RDF.NAMESPACE.equals(predNamespace) &&
!SESAME.NAMESPACE.equals(predNamespace) &&
!RDFS.NAMESPACE.equals(predNamespace)
&& !EXPANDED.equals(cntxtVar)) {
/**
*
* { ?a ?pred ?b .}\n" +
" UNION " +
" { ?b ?pred ?a }
*/
URI predUri = (URI) predVar.getValue();
URI invPropUri = inferenceEngine.findInverseOf(predUri);
if (invPropUri != null) {
Var subjVar = sp.getSubjectVar();
Union union = new InferUnion();
union.setLeftArg(sp);
union.setRightArg(new StatementPattern(objVar, new Var(predVar.getName(), invPropUri), subjVar, cntxtVar));
node.replaceWith(union);
}
}
}
示例8: meetSP
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
@Override
protected void meetSP(final StatementPattern node) throws Exception {
final StatementPattern currentNode = node.clone();
final Var subVar = node.getSubjectVar();
final Var predVar = node.getPredicateVar();
final Var objVar = node.getObjectVar();
final Var conVar = node.getContextVar();
if (predVar != null && objVar != null && objVar.getValue() != null && RDF.TYPE.equals(predVar.getValue()) && !EXPANDED.equals(conVar)) {
final List<Set<Resource>> intersections = inferenceEngine.getIntersectionsImplying((URI) objVar.getValue());
if (intersections != null && !intersections.isEmpty()) {
final List<TupleExpr> joins = new ArrayList<>();
for (final Set<Resource> intersection : intersections) {
final Set<Resource> sortedIntersection = new TreeSet<>(new ResourceComparator());
sortedIntersection.addAll(intersection);
// Create a join tree of all statement patterns in the
// current intersection.
final TupleExpr joinTree = createJoinTree(new ArrayList<>(sortedIntersection), subVar, conVar);
if (joinTree != null) {
joins.add(joinTree);
}
}
if (!joins.isEmpty()) {
// Combine all the intersection join trees for the type
// together into a union tree. This will be a join tree if
// only one intersection exists.
final TupleExpr unionTree = createUnionTree(joins);
// Union the above union tree of intersections with the
// original node.
final Union union = new InferUnion(unionTree, currentNode);
node.replaceWith(union);
log.trace("Replacing node with inferred intersection union: " + union);
}
}
}
}
示例9: meet
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
public void meet(StatementPattern sp) throws Exception {
if (!include) {
return;
}
if (sp instanceof FixedStatementPattern || sp instanceof TransitivePropertySP || sp instanceof DoNotExpandSP) {
return; //already inferred somewhere else
}
final Var predVar = sp.getPredicateVar();
//do not know when things are null
if (predVar == null) {
return;
}
meetSP(sp);
}
示例10: meetSP
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
/**
* Checks whether the StatementPattern is a type query whose solutions could be inferred by
* someValuesFrom inference, and if so, replaces the node with a union of itself and any
* possible inference.
*/
@Override
protected void meetSP(StatementPattern node) throws Exception {
final Var subjVar = node.getSubjectVar();
final Var predVar = node.getPredicateVar();
final Var objVar = node.getObjectVar();
// Only applies to type queries where the type is defined
if (predVar != null && RDF.TYPE.equals(predVar.getValue()) && objVar != null && objVar.getValue() instanceof Resource) {
final Resource typeToInfer = (Resource) objVar.getValue();
Map<Resource, Set<URI>> relevantSvfRestrictions = inferenceEngine.getSomeValuesFromByRestrictionType(typeToInfer);
if (!relevantSvfRestrictions.isEmpty()) {
// We can infer the queried type if it is to a someValuesFrom restriction (or a
// supertype of one), and the node in question (subjVar) is the subject of a triple
// whose predicate is the restriction's property and whose object is an arbitrary
// node of the restriction's value type.
final Var valueTypeVar = new Var("t-" + UUID.randomUUID());
final Var svfPredVar = new Var("p-" + UUID.randomUUID());
final Var neighborVar = new Var("n-" + UUID.randomUUID());
neighborVar.setAnonymous(true);
final StatementPattern membershipPattern = new DoNotExpandSP(neighborVar,
new Var(RDF.TYPE.stringValue(), RDF.TYPE), valueTypeVar);
final StatementPattern valuePattern = new StatementPattern(subjVar, svfPredVar, neighborVar);
final InferJoin svfPattern = new InferJoin(membershipPattern, valuePattern);
// Use a FixedStatementPattern to contain the appropriate (predicate, value type)
// pairs, and check each one against the general pattern.
final FixedStatementPattern svfPropertyTypes = new FixedStatementPattern(svfPredVar,
new Var(OWL.SOMEVALUESFROM.stringValue(), OWL.SOMEVALUESFROM), valueTypeVar);
for (Resource svfValueType : relevantSvfRestrictions.keySet()) {
for (URI svfProperty : relevantSvfRestrictions.get(svfValueType)) {
svfPropertyTypes.statements.add(new NullableStatementImpl(svfProperty,
OWL.SOMEVALUESFROM, svfValueType));
}
}
final InferJoin svfInferenceQuery = new InferJoin(svfPropertyTypes, svfPattern);
node.replaceWith(new InferUnion(node.clone(), svfInferenceQuery));
}
}
}
示例11: meetSP
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
/**
* Checks whether the StatementPattern is a type query whose solutions could be inferred
* by allValuesFrom inference, and if so, replaces the node with a union of itself and any
* possible inference.
*/
@Override
protected void meetSP(StatementPattern node) throws Exception {
final Var subjVar = node.getSubjectVar();
final Var predVar = node.getPredicateVar();
final Var objVar = node.getObjectVar();
// Only applies to type queries where the type is defined
if (predVar != null && RDF.TYPE.equals(predVar.getValue()) && objVar != null && objVar.getValue() instanceof Resource) {
final Resource typeToInfer = (Resource) objVar.getValue();
Map<Resource, Set<URI>> relevantAvfRestrictions = inferenceEngine.getAllValuesFromByValueType(typeToInfer);
if (!relevantAvfRestrictions.isEmpty()) {
// We can infer the queried type if, for an allValuesFrom restriction type
// associated with the queried type, some anonymous neighboring node belongs to the
// restriction type and has the node in question (subjVar) as a value for the
// restriction's property.
final Var avfTypeVar = new Var("t-" + UUID.randomUUID());
final Var avfPredVar = new Var("p-" + UUID.randomUUID());
final Var neighborVar = new Var("n-" + UUID.randomUUID());
neighborVar.setAnonymous(true);
final StatementPattern membershipPattern = new DoNotExpandSP(neighborVar,
new Var(RDF.TYPE.stringValue(), RDF.TYPE), avfTypeVar);
final StatementPattern valuePattern = new StatementPattern(neighborVar, avfPredVar, subjVar);
final InferJoin avfPattern = new InferJoin(membershipPattern, valuePattern);
// Use a FixedStatementPattern to contain the appropriate (restriction, predicate)
// pairs, and check each one against the general pattern.
final FixedStatementPattern avfPropertyTypes = new FixedStatementPattern(avfTypeVar,
new Var(OWL.ONPROPERTY.stringValue(), OWL.ONPROPERTY), avfPredVar);
for (Resource avfRestrictionType : relevantAvfRestrictions.keySet()) {
for (URI avfProperty : relevantAvfRestrictions.get(avfRestrictionType)) {
avfPropertyTypes.statements.add(new NullableStatementImpl(avfRestrictionType,
OWL.ONPROPERTY, avfProperty));
}
}
final InferJoin avfInferenceQuery = new InferJoin(avfPropertyTypes, avfPattern);
node.replaceWith(new InferUnion(node.clone(), avfInferenceQuery));
}
}
}
示例12: meet
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
@Override
public void meet(StatementPattern node) {
Var predicate = node.getPredicateVar();
Value val = predicate.getValue();
if (val != null && val instanceof URI) {
RyaURI ryaVal = new RyaURI(val.stringValue());
if (uriList.contains(ryaVal) || properties.contains(ryaVal)) {
nodes.add(node);
}
}
super.meet(node);
}
示例13: meetSP
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
@Override
protected void meetSP(final StatementPattern node) throws Exception {
final Var subVar = node.getSubjectVar();
final Var predVar = node.getPredicateVar();
final Var objVar = node.getObjectVar();
final Var conVar = node.getContextVar();
if (predVar != null && objVar != null && objVar.getValue() != null && objVar.getValue() instanceof Resource && RDF.TYPE.equals(predVar.getValue()) && !EXPANDED.equals(conVar)) {
final Resource object = (Resource) objVar.getValue();
if (inferenceEngine.isEnumeratedType(object)) {
final Set<BindingSet> solutions = new LinkedHashSet<>();
final Set<Resource> enumeration = inferenceEngine.getEnumeration(object);
for (final Resource enumType : enumeration) {
final QueryBindingSet qbs = new QueryBindingSet();
qbs.addBinding(subVar.getName(), enumType);
solutions.add(qbs);
}
if (!solutions.isEmpty()) {
final BindingSetAssignment enumNode = new BindingSetAssignment();
enumNode.setBindingSets(solutions);
node.replaceWith(enumNode);
log.trace("Replacing node with inferred one of enumeration: " + enumNode);
}
}
}
}
示例14: removeInvalidProperties
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
private Set<StatementPattern> removeInvalidProperties(Collection<StatementPattern> patterns) {
Set<StatementPattern> finalPatterns = new HashSet<>();
for (StatementPattern pattern : patterns) {
Var var = pattern.getPredicateVar();
if (var.getValue() != null && var.getValue() instanceof URI) {
RyaURI uri = RdfToRyaConversions.convertURI((URI) var.getValue());
if(expectedURI.contains(uri) || metadataProperties.contains(uri)) {
finalPatterns.add(pattern);
}
}
}
return finalPatterns;
}
示例15: getMatchExpression
import org.openrdf.query.algebra.StatementPattern; //导入方法依赖的package包/类
/**
* Given a StatementPattern, generate an object representing the arguments
* to a "$match" command that will find matching triples.
* @param sp The StatementPattern to search for
* @param path If given, specify the field that should be matched against
* the statement pattern, using an ordered list of field names for a nested
* field. E.g. to match records { "x": { "y": <statement pattern } }, pass
* "x" followed by "y".
* @return The argument of a "$match" query
*/
private static BasicDBObject getMatchExpression(StatementPattern sp, String ... path) {
final Var subjVar = sp.getSubjectVar();
final Var predVar = sp.getPredicateVar();
final Var objVar = sp.getObjectVar();
final Var contextVar = sp.getContextVar();
RyaURI s = null;
RyaURI p = null;
RyaType o = null;
RyaURI c = null;
if (subjVar != null && subjVar.getValue() instanceof Resource) {
s = RdfToRyaConversions.convertResource((Resource) subjVar.getValue());
}
if (predVar != null && predVar.getValue() instanceof URI) {
p = RdfToRyaConversions.convertURI((URI) predVar.getValue());
}
if (objVar != null && objVar.getValue() != null) {
o = RdfToRyaConversions.convertValue(objVar.getValue());
}
if (contextVar != null && contextVar.getValue() instanceof URI) {
c = RdfToRyaConversions.convertURI((URI) contextVar.getValue());
}
RyaStatement rs = new RyaStatement(s, p, o, c);
DBObject obj = strategy.getQuery(rs);
// Add path prefix, if given
if (path.length > 0) {
StringBuilder sb = new StringBuilder();
for (String str : path) {
sb.append(str).append(".");
}
String prefix = sb.toString();
Set<String> originalKeys = new HashSet<>(obj.keySet());
originalKeys.forEach(key -> {
Object value = obj.removeField(key);
obj.put(prefix + key, value);
});
}
return (BasicDBObject) obj;
}