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

Reply via email to