once a variable defines a starting point, relative to this path expressions can be applied

$m / is-author-of / author / bn
  • this works for structural variables: path expression is sensitive to what item we have
  • this also works for string variables if they are id (topic or association id); Note: this is unkosher

path expressions are movements along the following axes:

  • vertical: drill into a map, drill into a topic to extract characteristics, drill into an association to get roles, players, etc.
  • lateral: move from a topic via a role to an association
  • reification: move between a maplet and its reification
  • scope: move between a maplet and its scope

forall [ $d is-a document ]
return
    ($d -> opus \ is-author-of / author / bn @ brockhaus)

Evaluation:

  • path expressions always operate on a list (of values)
  • they always return a list of values
  • if particular movements do not make sense for a particular value, then this does not contribute to the result list