Subquery is the best option:

CONSTRUCT { ?s ?p ?o }
WHERE {
 SELECT ?s ?p ?o
 {
   GRAPH x-arq:UnionGraph {
    ?s rex:text "Taliban" .
    ?r rdf:subject ?s .
    ?r rdf:object ?o .
    ?r rdf:predicate ?p .
    FILTER ( ?p IN (
  <http://www.basistech.com/ontologies/2010/12/rules#acquired>,
  <http://www.basistech.com/ontologies/2010/12/rules#acquired>,
  <http://www.basistech.com/ontologies/2010/12/rules#costOfObject>,
  <http://www.basistech.com/ontologies/2010/12/rules#nameChangeTo>,
  <http://www.basistech.com/ontologies/2010/12/rules#locatedAt>,
  <http://www.basistech.com/ontologies/2010/12/rules#phoneNumber>,
  <http://www.basistech.com/ontologies/2010/12/rules#releasedProduct>,
  <http://www.basistech.com/ontologies/2010/12/rules#supplierOf>,
  <http://www.basistech.com/ontologies/2010/12/rules#subsidiaryOf>
   ) )
   }
  }
  GROUP BY ?s ?p ?o
}



On 06/01/11 23:07, Benson Margulies wrote:
Here's a working query with SELECT

SELECT  ?s ?p ?o (count(*) AS ?relCount)
WHERE {
  GRAPH x-arq:UnionGraph {
   ?s rex:text "Taliban" .
   ?r rdf:subject ?s .
   ?r rdf:object ?o .
   ?r rdf:predicate ?p .
   FILTER ( ?p IN (
<http://www.basistech.com/ontologies/2010/12/rules#acquired>,
<http://www.basistech.com/ontologies/2010/12/rules#acquired>,
<http://www.basistech.com/ontologies/2010/12/rules#costOfObject>,
<http://www.basistech.com/ontologies/2010/12/rules#nameChangeTo>,
<http://www.basistech.com/ontologies/2010/12/rules#locatedAt>,
<http://www.basistech.com/ontologies/2010/12/rules#phoneNumber>,
<http://www.basistech.com/ontologies/2010/12/rules#releasedProduct>,
<http://www.basistech.com/ontologies/2010/12/rules#supplierOf>,
<http://www.basistech.com/ontologies/2010/12/rules#subsidiaryOf>
) )
  }
}
GROUP BY ?s ?p ?o


How does all this work with CONSTRUCT? Can I do something like

CONSTRUCT { ?s ?p ?o .
                        ?s me:count (COUNT(*) as ?c) .
}

Reply via email to