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) .
}