Ok, I got it figured out from this page: http://docs.basex.org/wiki/Database_%26_Collection. So, in my return concat, I need to use the “base-uri” of $song to get the actual file path.  So, my query will look something like:

 

for $song in collection("OpenSongSearch")

where $song/song/lyrics[ . contains text  "baloche"] or $song/song/title[ . contains text  "baloche"]  or $song/song/author[ . contains text  "baloche"]

order by $song/song/title

return concat(base-uri($song),string('|'), $song/song/title,string('|'),$song/song/author,string('|'),replace(replace($song/song/lyrics,'\n','^line^'),'\[\w+\]',''),string('
'))

 

Yep, that works!  Sorry to bug you all with a question that’s documented!

 

Are there other options than base-uri?  For instance, base-uri has the file name.  Is there a function like that with just the path but not the file name?  If not, I can certainly work with base-uri.  (I couldn’t find any, but thought I’d ask)

Thanks!