Hi Chris,

I’m glad to hear you found a solution.

I was surprised to hear that functx:is-value-in-sequence did the job,
though. The body of this function is nothing else than a general
comparison: $value = $seq [1] (and I would even have guessed that your
query will be eventually rewritten to a representation in which the
function body is completely inlined).

The query should be even faster if the import of the FunctX library
can be avoided. If the data is confidential, feel free to send us the
output of the Info View panel of the GUI.

Cheers,
Christian

[1] http://www.xqueryfunctions.com/xq/functx_is-value-in-sequence.html


On Tue, Mar 26, 2019 at 1:48 PM Christopher Yocum <cyo...@gmail.com> wrote:
>
> Hi Bridger,
>
> The solution was indeed using is-value-in-sequence:
>
> import module namespace functx = 'http://www.functx.com';
> let $biblFull := distinct-values(collection('edil/Prologue Merged
> 2013.xml')//biblFull/@id)
> let $biblStruct := distinct-values(collection('edil/Prologue Merged
> 2013.xml')//biblStruct/@id)
> let $bibl := distinct-values(collection('edil/Prologue Merged
> 2013.xml')//bibl/@id)
> for $title in collection('edil/eDIL-A.xml')//entry//title
> where not(functx:is-value-in-sequence($title/@target, $biblFull))
> and not(functx:is-value-in-sequence($title/@target, $biblStruct))
> and not(functx:is-value-in-sequence($title/@target, $bibl))
> return $title
>
> It is also pretty speedy as well.
>
> All the best,
> Chris
>
> On Tue, Mar 26, 2019 at 12:47 PM Bridger Dyson-Smith
> <bdysonsm...@gmail.com> wrote:
> >
> > Chris,
> >
> > please don't leave us hanging :). What was your solution?
> >
> > Best,
> > Bridger
> >
> > On Tue, Mar 26, 2019 at 8:40 AM Christopher Yocum <cyo...@gmail.com> wrote:
> >>
> >> Hi,
> >>
> >> Of course the instant you say that, you fix it.  Thanks for everyone's 
> >> support.
> >>
> >> All the best,
> >> Chris
> >>
> >> On Tue, Mar 26, 2019 at 12:35 PM Christopher Yocum <cyo...@gmail.com> 
> >> wrote:
> >> >
> >> > Hi Everyone,
> >> >
> >> > I just tried using functx:is-value-in-sequence: where
> >> > not(functx:is-value-in-sequence($title/@id, $biblFull)).  I am still
> >> > getting erroneous results.  At this point, I very near offering money
> >> > for someone to help me fix this.  It looks like a bug though to me.  I
> >> > should not be getting the results that I am.
> >> >
> >> > All the best,
> >> > Chris
> >> >
> >> > On Tue, Mar 26, 2019 at 12:13 PM Christopher Yocum <cyo...@gmail.com> 
> >> > wrote:
> >> > >
> >> > > Hi,
> >> > >
> >> > > > If you are allowed to share some snippets of the actual documents, it
> >> > > > will be easier to see how the query needs to be phrased.
> >> > > >
> >> > >
> >> > > Sadly, probably not.  I can probably do something off list but even
> >> > > then I would hesitate.
> >> > >
> >> > > I tried your proposal from your other email and I am getting the same
> >> > > results as with all other attempts.  I feel like this should be very
> >> > > straightforward and I am just missing something small.
> >> > >
> >> > > > Have you verified that $biblFull and $biblStruct actually contain
> >> > > > strings? If not, do you need to declare a default namespace? The
> >> > > > vocabulary looks like TEI, so
> >> > > >
> >> > > > declare default element namespace "http://www.tei-c.org/ns/1.0";;
> >> > > >
> >> > >
> >> > > It is TEI-like.  It is not exactly TEI and I very much doubt it would 
> >> > > validate.
> >> > >
> >> > > > may be necessary. And if it is TEI, the ID attributes are probably
> >> > > > called @xml:id rather than @id.
> >> > > >
> >> > >
> >> > > No, the XML documents are explicit about the @id as I checked.
> >> > >
> >> > > Thank you for your help.
> >> > >
> >> > > All the best,
> >> > > Chris

Reply via email to