Hi Tim, For your first question, I think your example falls into what the spec calls "funky looking" keys. See the 3rd bullet point example under http://www.w3.org/TR/xquery-31/#id-lookup: > funky / <looking @string") is equivalent to .("$funky / <looking @string"), > an appropriate lookup for a map with rather odd conventions for keys. In other words, I think you're stuck with the ("@context") approach. As to your second question, it looks like what you're proposing should work - but am I reading you as saying you get an error with your proposed approach? If so, what's the error? Joe
Sent from my iPad _____________________________ From: Tim Thompson <timat...@gmail.com> Sent: Saturday, January 9, 2016 3:11 PM Subject: [basex-talk] Lookups and arrows To: BaseX <basex-talk@mailman.uni-konstanz.de> Hello, I'm testing some XQuery 3.1 features against a JSON-LD[1] document and had a few questions. In the JSON-LD format, the "@" symbol has special semantics in key names, but seems to cause problems with the 3.1 lookup operator. For example: json-doc(" http://lae.princeton.edu/catalog/0bp35.jsonld")("@context") works as expected, but json-doc(" http://lae.princeton.edu/catalog/0bp35.jsonld")?@context throws an error: [XPST0003] No specifier after lookup operator: '@'. Also, when using the "=>" operator, should it be possible to perform a lookup on the last expression in a chain, if that expression returns a map? For example: json-doc(" http://lae.princeton.edu/catalog/0bp35.jsonld")("@context") evaluates to " http://iiif.io/api/presentation/2/context.json" and json-doc(" http://lae.princeton.edu/catalog/0bp35.jsonld")("@context") => json-doc() returns another map object. So, how would one achieve this: json-doc(json-doc(" http://lae.princeton.edu/catalog/0bp35.jsonld")("@context"))("@context") using the arrow operator? Thanks, Tim [1] http://www.w3.org/TR/json-ld/ -- Tim A. Thompson Metadata Librarian (Spanish/Portuguese Specialty) Princeton University Library