@Override public void visit(P_NegPropSet path) { P_NegPropSet tmp = new P_NegPropSet(); for(Node node : path.getFwdNodes()) { tmp.add(new P_ReverseLink(node)); } for(Node node : path.getBwdNodes()) { tmp.add(new P_Link(node)); } result = tmp; }
@Override public void visit(P_NegPropSet pathNotOneOf) { P_NegPropSet retval = new P_NegPropSet(); for (Path p : pathNotOneOf.getNodes()) { p.visit(this); retval.add((P_Path0) pop()); } push(retval); }
@Override public Path transform(P_NegPropSet path, List<Node> fwdNodes, List<Node> bwdNodes) { Path result = path.getFwdNodes() == fwdNodes && path.getBwdNodes() == bwdNodes ? path : createNegPropSet(fwdNodes, bwdNodes) ; return result; }
@Override public Path transform(P_NegPropSet path, List<Node> fwdNodes, List<Node> bwdNodes) { P_NegPropSet result = new P_NegPropSet(); for(Node node : fwdNodes) { result.add(new P_ReverseLink(node)); } for(Node node : bwdNodes) { result.add(new P_Link(node)); } return result; }
@Override public void visit(P_NegPropSet pathNotOneOf) { List<P_Path0> props = pathNotOneOf.getNodes() ; if ( props.size() == 0 ) throw new ARQException("Bad path element: NotOneOf found with no elements") ; out.print("!") ; if ( props.size() == 1 ) output(props.get(0)) ; else { out.print("(") ; boolean first = true ; for ( P_Path0 p : props ) { if ( !first ) out.print("|") ; first = false ; output(p) ; } out.print(")") ; } }
@Override public void visit(P_NegPropSet path) { List<Node> newFwdNodes = path.getFwdNodes(); List<Node> newBwdNodes = path.getBwdNodes(); Path newPath = pathTransform.transform(path, newFwdNodes, newBwdNodes); stack.push(newPath); }
public static P_NegPropSet createNegPropSet(List<Node> fwdNodes, List<Node> bwdNodes) { P_NegPropSet result = new P_NegPropSet(); for(Node node : fwdNodes) { result.add(new P_Link(node)); } for(Node node : bwdNodes) { result.add(new P_ReverseLink(node)); } return result; }
@Override public void visit(P_NegPropSet pathNotOneOf) { out.print("(") ; out.print(Tags.tagPathNotOneOf) ; for ( P_Path0 p : pathNotOneOf.getNodes() ) { out.print(" ") ; output(p) ; } out.print(")") ; }
public static PredicateClass toPredicateClass(P_NegPropSet path) { // If the set of nodes is empty, the valueset gets positive polarity, otherwise its negative ValueSet<Node> f = ValueSet.create(path.getFwdNodes().isEmpty(), path.getFwdNodes()); ValueSet<Node> b = ValueSet.create(path.getBwdNodes().isEmpty(), path.getBwdNodes()); PredicateClass result = new PredicateClass(f, b); return result; }
@Override public void visit(P_NegPropSet pathNotOneOf) { P_NegPropSet retval = new P_NegPropSet(); for (Path p : pathNotOneOf.getNodes()) { p.visit(this); retval.add((P_Path0) pop()); } push(retval); }
@Override public Path make(ItemList list) { BuilderLib.checkLengthAtLeast(1, list, "path: negative property set: must be at least one element") ; P_NegPropSet pNegClass = new P_NegPropSet() ; for ( int i = 1 ; i < list.size() ; i++ ) { Item item = list.get(i) ; // Node or reverse? Path p = build(item) ; if ( ! ( p instanceof P_Path0 ) ) BuilderLib.broken(item, "Not a property or reverse property") ; pNegClass.add((P_Path0)p) ; } return pNegClass ; } } ;
@Override protected void doNegatedPropertySet(P_NegPropSet pathNotOneOf, Node node, Collection<Node> output) { // X !(:a|:b|^:c|^:d) Y = { X !(:a|:b) Y } UNION { Y !(:c|:d) X } if ( pathNotOneOf.getFwdNodes().size() > 0 ) { Iterator<Node> nodes1 = stepExcludeForwards(node, pathNotOneOf.getFwdNodes()) ; fillUnique(nodes1, output) ; } if ( pathNotOneOf.getBwdNodes().size() > 0 ) { Iterator<Node> nodes2 = stepExcludeBackwards(node, pathNotOneOf.getBwdNodes()) ; fillUnique(nodes2, output) ; } }
List<P_Path0> backwards = new ArrayList<>() ; for ( P_Path0 p : pathNotOneOf.getNodes() ) P_NegPropSet pFwd = new P_NegPropSet() ; for ( P_Path0 p : forwards ) pFwd.add(p) ; opFwd = make(subject, pFwd, object) ; P_NegPropSet pBwd = new P_NegPropSet() ; for ( P_Path0 p : backwards ) pBwd.add(p) ; opBwd = make(subject, pBwd, object) ;
final public Path PathNegatedPropertySet() throws ParseException { P_Path0 p ; P_NegPropSet pNegSet ; pNegSet = new P_NegPropSet() ; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IRIref: case CARAT: p = PathOneInPropertySet(); pNegSet.add(p) ; break; case LPAREN: case CARAT: p = PathOneInPropertySet(); pNegSet.add(p) ; label_28: while (true) { pNegSet.add(p) ;
@Override protected void doNegatedPropertySet(P_NegPropSet pathNotOneOf, Node node, Collection<Node> output) { // X !(:a|:b|^:c|^:d) Y = { X !(:a|:b) Y } UNION { Y !(:c|:d) X } if ( pathNotOneOf.getFwdNodes().size() > 0 ) { Iterator<Node> nodes1 = stepExcludeForwards(node, pathNotOneOf.getFwdNodes()) ; fill(nodes1, output) ; } if ( pathNotOneOf.getBwdNodes().size() > 0 ) { Iterator<Node> nodes2 = stepExcludeBackwards(node, pathNotOneOf.getBwdNodes()) ; fill(nodes2, output) ; } }
final public Path PathNegatedPropertySet() throws ParseException { P_Path0 p ; P_NegPropSet pNegSet ; pNegSet = new P_NegPropSet() ; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IRIref: case CARAT: p = PathOneInPropertySet(); pNegSet.add(p) ; break; case LPAREN: case CARAT: p = PathOneInPropertySet(); pNegSet.add(p) ; label_34: while (true) { pNegSet.add(p) ;
@Override public void visit(P_NegPropSet path) { if(!path.getFwdNodes().isEmpty()) { Expr expr = new E_NotOneOf(new ExprVar(Vars.p), ExprListUtils.nodesToExprs(path.getFwdNodes())); rsb.nav(expr, reverse); } if(!path.getBwdNodes().isEmpty()) { Expr expr = new E_NotOneOf(new ExprVar(Vars.p), ExprListUtils.nodesToExprs(path.getBwdNodes())); rsb.nav(expr, !reverse); } }
@Override protected void doNegatedPropertySet(P_NegPropSet pathNotOneOf, Node node, Collection<Node> output) { List<Node> fwdSteps = pathNotOneOf.getFwdNodes(); List<Node> bwkSteps = pathNotOneOf.getBwdNodes(); // Flip lists processed - flips calls of stepExcludeForwards/stepExcludeBackwards if ( ! forwardMode ) { List<Node> tmp = fwdSteps; fwdSteps = bwkSteps; bwkSteps = tmp; } if ( fwdSteps.size() > 0 ) { Iterator<Node> nodes1 = stepExcludeForwards(node, fwdSteps) ; fill(nodes1, output) ; } if ( bwkSteps.size() > 0 ) { Iterator<Node> nodes2 = stepExcludeBackwards(node, bwkSteps) ; fill(nodes2, output) ; } }