public boolean equiv(BasicPattern other, NodeIsomorphismMap isoMap) { if ( this.triples.size() != other.triples.size() ) return false ; for ( int i = 0 ; i < this.triples.size() ; i++ ) { Triple t1 = get(i) ; Triple t2 = other.get(i) ; if ( !Iso.tripleIso(t1, t2, isoMap) ) return false ; } return true ; }
public Node getMatchSubject(){ return pattern.get(0).getMatchSubject(); }
public Node getSubject(){ return pattern.get(0).getSubject(); }
public boolean equivalent(OpBGP opBGP) { BasicPattern bgp = opBGP.getPattern() ; if ( bgp.size() != 1 ) return false ; Triple t = bgp.get(0) ; return triple.equals(t) ; }
/** Return a new basic pattern with the same triples as the input, * but ordered as per the index list of this reorder processor. */ @Override public BasicPattern reorder(BasicPattern bgp) { if ( indexes.length != bgp.size() ) { String str = String.format("Expected size = %d : actual basic pattern size = %d", indexes.length, bgp.size()) ; Log.error(this, str) ; throw new ARQException(str) ; } BasicPattern bgp2 = new BasicPattern() ; for ( int idx : indexes ) { Triple t = bgp.get( idx ); bgp2.add( t ); } return bgp2 ; }
private void initVars() { _vars = new LinkedHashSet<>(); for (int i = 0; i < _pattern.size(); i++) { final Triple t = _pattern.get(i); if (ARQParser.isDistinguishedVariable(t.getSubject())) _vars.add(t.getSubject().getName()); if (t.getPredicate().isVariable()) _vars.add(t.getPredicate().getName()); if (ARQParser.isDistinguishedVariable(t.getObject())) _vars.add(t.getObject().getName()); } }
private void initVars() { _vars = new LinkedHashSet<>(); for (int i = 0; i < _pattern.size(); i++) { final Triple t = _pattern.get(i); if (ARQParser.isDistinguishedVariable(t.getSubject())) _vars.add(t.getSubject().getName()); if (t.getPredicate().isVariable()) _vars.add(t.getPredicate().getName()); if (ARQParser.isDistinguishedVariable(t.getObject())) _vars.add(t.getObject().getName()); } }
private void initVars() { _vars = new LinkedHashSet<>(); for (int i = 0; i < _pattern.size(); i++) { final Triple t = _pattern.get(i); if (ARQParser.isDistinguishedVariable(t.getSubject())) _vars.add(t.getSubject().getName()); if (t.getPredicate().isVariable()) _vars.add(t.getPredicate().getName()); if (ARQParser.isDistinguishedVariable(t.getObject())) _vars.add(t.getObject().getName()); } }
/** * Attempts to parse a given string into a Jena Path. * Throws an Exception if the string cannot be parsed. * @param string the string to parse * @param model the Model to operate on (for prefixes) * @return a Path or a Resource if this is a URI */ public static Object getJenaPath(String string, Model model) throws QueryParseException { Query query = ARQFactory.get().createQuery(model, "ASK { ?a \n" + string + "\n ?b }"); Element element = query.getQueryPattern(); if(element instanceof ElementGroup) { Element e = ((ElementGroup)element).getElements().get(0); if(e instanceof ElementPathBlock) { Path path = ((ElementPathBlock) e).getPattern().get(0).getPath(); if(path instanceof P_Link && ((P_Link)path).isForward()) { return model.asRDFNode(((P_Link)path).getNode()); } else { return path; } } else if(e instanceof ElementTriplesBlock) { return model.asRDFNode(((ElementTriplesBlock) e).getPattern().get(0).getPredicate()); } } throw new QueryParseException("Not a SPARQL 1.1 Path expression", 2, 1); }
/** * Attempts to parse a given string into a Jena Path. * Throws an Exception if the string cannot be parsed. * @param string the string to parse * @param model the Model to operate on (for prefixes) * @return a Path or a Resource if this is a URI */ public static Object getJenaPath(String string, Model model) throws QueryParseException { Query query = ARQFactory.get().createQuery(model, "ASK { ?a \n" + string + "\n ?b }"); Element element = query.getQueryPattern(); if(element instanceof ElementGroup) { Element e = ((ElementGroup)element).getElements().get(0); if(e instanceof ElementPathBlock) { Path path = ((ElementPathBlock) e).getPattern().get(0).getPath(); if(path instanceof P_Link && ((P_Link)path).isForward()) { return model.asRDFNode(((P_Link)path).getNode()); } else { return path; } } else if(e instanceof ElementTriplesBlock) { return model.asRDFNode(((ElementTriplesBlock) e).getPattern().get(0).getPredicate()); } } throw new QueryParseException("Not a SPARQL 1.1 Path expression", 2, 1); }
@Test public void bNodeSPARQL_Query_2() { String qs = "SELECT * { ?s ?p <_:BCD>}"; Query query = QueryFactory.create(qs); Op op = Algebra.compile(query); BasicPattern bp = ((OpBGP)op).getPattern(); Triple t = bp.get(0); assertEquals("BCD", t.getObject().getBlankNodeLabel()); }
List<Element> elements = sourceConcept.getElements(); ElementTriplesBlock etb = (ElementTriplesBlock) elements.get(0); Triple triple = etb.getPattern().get(0);
Assert.assertEquals(3, basicPattern.size()); Triple t = basicPattern.get(0); Assert.assertEquals(NodeFactory.createVariable("foo"), t.getSubject()); Assert.assertEquals(RDF.type.asNode(), t.getPredicate()); t.getObject()); t = basicPattern.get(1); Assert.assertEquals(NodeFactory.createVariable("foo"), t.getSubject()); Assert.assertTrue("Should have been blank", t.getPredicate().isBlank()); Assert.assertEquals(NodeFactory.createVariable("bar"), t.getObject()); t = basicPattern.get(2); Assert.assertEquals(NodeFactory.createVariable("bar"), t.getSubject()); Assert.assertTrue("Should have been blank", t.getPredicate().isBlank());