Hi Ed, Indeed, using FILTER instead works. Thanks!
-- Florent Georges http://fgeorges.org/ http://h2oconsulting.be/ On 16 May 2016 at 17:07, Ed Outhwaite wrote: > Hi Florent, > > Try using FILTER: > > require('/MarkLogic/semantics').sparql('SELECT ?s ?p ?o WHERE { ?s ?p ?o . > FILTER(?s = $v)}', > { 'v': [ sem.iri('#1'), sem.iri('#2') ] } ) > > > Regards, > Ed > > > On 5/16/16, 12:57 PM, "[email protected] on behalf > of Florent Georges" <[email protected] on behalf of > [email protected]> wrote: > >>Hi Tony, >> >>Of course, this would be the easy workaround. But since it is >>possible to evaluate the query all at once, it would be good to be >>able to do so. >> >>Another workaround I thought about, is to use BIND in the query, to >>create another placeholder out of ?s. For instance, change the >>previous SPARQL query into: >> >> SELECT * WHERE { >> ?s ?p ?o . >> BIND(CONCAT(?s, "") as ?v) >> } >> >>This return a "v" in each result row, but it is then always null. The >>following: >> >>require('/MarkLogic/semantics').sparql( >> 'SELECT * WHERE { ?s ?p ?o . BIND(CONCAT(?s, "") as ?v) }', >> { 's': [ sem.iri('#1'), sem.iri('#2') ] }) >> >>returns an iterator to objects of the form: >> >> { p: "#pred", o: "value", v: null } >> >>So it is not even usable either. >> >>Regards, >> >>-- >>Florent Georges >>http://fgeorges.org/ >>http://h2oconsulting.be/ >> >> >>On 16 May 2016 at 10:51, Anthony Coates wrote: >>> Classification: Public >>> >>> Hi Florent. Would it be a problem to just call the query (multiple >>>times) with a single subject for each of the different subjects that you >>>want, and then combine the results? >>> >>> Cheers, Tony. >>> >>> -----Original Message----- >>> From: [email protected] >>>[mailto:[email protected]] On Behalf Of Florent >>>Georges >>> Sent: 15 May 2016 12:42 >>> To: MarkLogic Developer Discussion <[email protected]> >>> Subject: [MarkLogic Dev General] sem.sparql: get bound placeholders in >>>the result >>> >>> Hi, >>> >>> Using `sem.sparql()`, it is possible to bind a SPARQL placeholder to an >>>array, to serve as many alternatives to the placeholder in the triples >>>pattern. For instance, the following query: >>> >>> require('/MarkLogic/semantics').sparql( >>> 'SELECT * WHERE { ?s ?p ?o }', >>> { 's': [ sem.iri('#1'), sem.iri('#2') ] }) >>> >>> returns the predicates and values for al triples with the subject equal >>>to either `#1` or `#2`. >>> >>> Problem is, the bound placeholder is not part of the result (in this >>>example, `?s`). The result is an iterator over objects of the following >>>form: >>> >>> { p: "#pred", o: "value" } >>> >>> So it is not possible to use the result in a way to would need to know >>>which subject each row is attached to (which I believe is generally the >>>case when binding them to arrays, as opposed to scalar values). >>> >>> Is there any way to have `sem.sparql()` include bound placeholders in >>>the result? >>> >>> Regards, >>> >>> -- >>> Florent Georges >>> http://fgeorges.org/ >>> http://h2oconsulting.be/ >>> _______________________________________________ >>> General mailing list >>> [email protected] >>> Manage your subscription at: >>> http://developer.marklogic.com/mailman/listinfo/general >>> >>> >>> --- >>> This e-mail may contain confidential and/or privileged information. If >>>you are not the intended recipient (or have received this e-mail in >>>error) please notify the sender immediately and delete this e-mail. Any >>>unauthorized copying, disclosure or distribution of the material in this >>>e-mail is strictly forbidden. >>> >>> Please refer to http://www.db.com/en/content/eu_disclosures.htm for >>>additional EU corporate and regulatory disclosures and to >>>http://www.db.com/unitedkingdom/content/privacy.htm for information >>>about privacy. >>> _______________________________________________ >>> General mailing list >>> [email protected] >>> Manage your subscription at: >>> http://developer.marklogic.com/mailman/listinfo/general >>_______________________________________________ >>General mailing list >>[email protected] >>Manage your subscription at: >>http://developer.marklogic.com/mailman/listinfo/general > > _______________________________________________ > General mailing list > [email protected] > Manage your subscription at: > http://developer.marklogic.com/mailman/listinfo/general _______________________________________________ General mailing list [email protected] Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general
