►
From YouTube: IETF-JSONPATH-20230207-0800
Description
JSONPATH meeting session at IETF
2023/02/07 0800
https://datatracker.ietf.org/meeting//proceedings/
B
E
We
can
do
that
I'll.
Do
the
the
usual
starting
point
for
the
YouTube
later
so
for
the
recording
later.
This
is
the
Json
path,
February
2023
interim,
as
this
isn't
ietf
meeting
please
know
well
and
then
the
rules
of
the
ITF
apply
to
this
meeting,
as
it
does
to
other
meetings.
E
Ministravio
note,
takers,
I,
think
Carson's
put
the
notes.
Link
in.
Thank
you,
blue
sheets
are
automatic,
I
guess
we'll
keep
an
eye
out
for
the
chat.
There's
not
that
many
of
us
is
there
any
agenda.
Batching
is
there
anything
specifically?
We
want
to
bring
up
today.
A
A
D
E
A
Can
do
this
and
whatever
you'd
like
folks,
actually
Kirsten
Kirsten
is
right.
Sorry
I
should
have
I'm
in
the
middle
of
the
night
for
me
I'm
having
a
little
trouble
getting
swiped
in
here,
so
yeah
look
I
would
like
to
informally
see
if
we
can
set
some
goals.
I
think
that
we
are
very
near
the
Finish
Line
If.
You
find
the
Finish
Line
as
getting
the
sent
off
to
the
isg
and
starting
the
Fairly
lenses
set
of
steps
from
there
to
the
to
the
real
Finish
Line.
A
So
it
would
make
me
very
very
happy
if
we
could
at
in
the
course
of
this
meeting
nail
anything
down
that
needs
it
and
send
it
off
to
the
isg.
Ideally
sometime
like
tomorrow,
for
both
of
our
drafts
I
think
we're
within
the
reach
on
both
of
those.
H
F
H
A
Right,
okay,
so
so
I,
so,
first
of
all,
you
know:
I
have
reviewed
Carson's
most
recent
update
to
to
the
reggae.
Thank
you
for
catching
those
Corner
cases
on
on
the
ecma
expressions
and
so
on.
I
think
it's
ready
to
go.
Does
anybody
want
to
do?
We
have
consensus
that
we
could
send
that
one
off
foreign
James?
You
have
your
your
Shepherd
document.
It
looked
like
in
reasonably
good
order.
Last
time,
I
looked
at
it.
E
Yeah
I
think
they
need
to
update
the
document
Shepherd
right
up
for
that.
So
that's
something:
I
can
take
care
of
offline
and
then
yeah
I
think
we
can
just
ship.
A
It
excellent
I'm
not
hearing
any
objections
to
updating
the
document,
Shepard
Doc
and
then
just
shipping,
it
yeah
great
great
okay.
So
then
our
objective
should
be
that
to
take
to
get
ourselves
in
a
position
to
do
the
working
group
Last
Call
on
the
base
draft.
F
A
Okay,
so
that's
I
think
where
we
stand
I,
don't
anybody
want
to
disagree
with
that
snapshot
of
the
progress
fair
enough
now,
let's
now
that
I'm
kind
of
swapped
in
let's
go
back
to
where
we
were
and
and
start
looking
at
Karsten,
do
you
want
to
get
in
and
comment
on
the
agenda
first
or
should
we
go
to
the
issues
now.
A
G
Well,
I'm
hesitant
to
start
at
the
top,
because
I
haven't
even
read
the
first
one.
We
could
go
from
the
bottom,
get
the
historical
ones
out
of
the
way.
First,
so
obviously
one
five
one
is
irrelevant.
F
Yeah,
so
in
this
one,
if
you
look
at
table
13,
it
appears
to
me
reading
this
that
we're
using
the
word
value
and
type
the
type
column
you
just
had
it.
F
F
That's
the
table:
yeah
there
you
go.
So
if
you
go
to
the
type
column
right
in
the
middle,
it
says
value
and
that's
the
type
in
our
type
system
and
then
also
in
abstract
instance
instances
you
have
value
with
parentheses
and
some
kind
of
parameter
there
and
I
think
that's
meant
to
stand
in
for
the
Json
value
of
some
sort
and
the
using
the
word
value
both
in
our
type
system
and
for
the
abstraction
of
of
what
that
means.
I
think
is
confusing.
F
Glenn
pointed
out
in
the
issue.
I
think
Glenn
pointed
out
in
the
issue
that
we
do
use
value
for
Json
value
throughout
the
document
and
so
I
think
that's
what
it
should
should
be.
But
that
means
I
think
that
we
need
to
rename
the
type
of
value,
because
I
think
it's
I
I
think
it's
a
little
bit
confusing.
F
F
F
G
Mean
they're
not
the
same
thing
at
all,
because
value
in
the
left
column
is
a
time
and
value
in
the
middle
column
is
an
abstract
instance.
So
there's
but
you're
right.
They
they
do
Collide,
as
it
were.
The
terms
collide.
A
G
And
we
did
talk
in
the
issue
about
renaming
one
of
them
to
Jason
value,
so
that
I
guess
that
would
be
the
type,
but
then
we'd
probably
have
to
rename
optional
node
or
value
to
optional
node.o.json
value.
The
consistency.
D
No
underscore
no
underscore
yeah
I
mean
we're
using
Pascal
case
here.
We
are
not
using
snake
case
so
yeah.
We
could
just
add
an
uppercase
t
at
the
end,
foreign.
A
Yeah
I
agree
with
Greg's
and
I
would
say
the
if
you're
going
to
do
that.
Then
you
need
a
note
about
the
table.
Saying
the
trailing.
T
stands
for
type
yeah.
A
F
I
can
go
ahead
and
create
a
PR
for
that
it'll
probably
be
tomorrow.
H
B
H
H
D
A
Except
for
oh
yeah,
okay,
okay
368.,
you.
A
A
lot
of
discussion
here:
where
did
we
get
to
yeah?
So
oh
I
I,
remember
this
one.
So
it's
to
potentially
tighten
it
up
to
allow
greater
syntactic,
compile
time
checking
and
now
we're
talking
about
options
yeah.
So
what
would
what
would
the
spec
would
there
be
a
change
to
the
spec
then.
F
No,
what
we
ended
up,
at
least
with
these
last
few
comments.
F
What
we
ended
on
was
leaving
at
the
white
leaving
the
spec
the
way
it
is,
and
then
in
my
Implement,
my
implementation
I'll
have
like
a
a
strict
parsing
option
that
if
they
turn
it
on
then
it'll
check
for
things
like
this,
where
input
values
aren't
the
right
type
or
stuff
like
that,
it
won't
be
spec
behavior,
but
I
think
that's
understood
from
enabling
an
option.
F
Generally,
we
have
a
spec
implementation
and
you
enable
an
option.
That's
understood
that
you
might
not
be
spec
compliant
anymore,
but
I'm
fine
with
that
just
being
an
option
if
we
want
to
be
tolerant
by
default.
D
I
think
the
important
observation
is
that
we
we
have
well-defined
semantics
with
the
type
system
we
have
and
anything
we
we
add
to
that
is
probably
going
to
be
very
specific
to
the
the
specific
extensions
that
are
being
defined.
So
it's
hard
to
come
up
with
a
general
type
system
in
the
the
base
document.
That
then,
will
be
useful
for
any
further
function.
Extension
that
people
will
be
coming
up
with
so
I
think
Greg's
approach
to
to
say
this.
D
This
is
something
that
an
implementation
can
do
as
a
quality
of
implementation
feature
is
useful,
and
my
comment
was
just
to
to
remind
people
that
this
is
not
changing
the
normative
semantics
so
that
that
will
stay
in
place.
But
it's
just
a
useful
service
station
implementation
you
can
offer
so
I,
don't
think
we
actually
need
to
change
any
texts
here.
D
A
Agree
yep,
in
fact
you
know
you
can
imagine
you
can
imagine
implementations
that
do
all
sorts
of
linting
somebody,
somebody
wrote
the
word
linta
and
and
be
super
smart
and
in
fact
you
can
even
imagine
things
that
are
that.
Are
you
know
in
systems
that
are
known
they
know
the
shape
of
the
of
the
of
the
Json
instances
that
they're
that
are
going
to
be
processed
and
can
be
even
even
smarter
on
that
so
I,
don't
think,
there's
anything
in
the
specs
that
constrains
implementations
from
being
super
aggressive
in
type
checking.
F
Yeah
I
left
it
open
because
it's
attached
to
the
test,
Suite
changes
I,
wanted
to
close
it
once
we've
merged
that,
so
that
that
those
those
new
tests
will
act
once
we
merge
that
VR,
then
probably
several
issues
can
be
closed.
Okay,
excellent.
G
G
A
G
This
is
just
an
editorial
correction.
Actually,
at
the
starting
point,
we
got
a
little
bit
sidetracked
in
the
discussion
about
sub
attacks
by
coercion.
It's
up
to
custom,
whether
we
want
to
discuss
that
now.
D
D
We
allow
a
node
to
be
cursed
into
a
value.
So
if,
if
a
function
requires
a
value
as
an
argument
and
gets
a
note,
then
the
the
value
will
be
extracted
from
the
node
and
that
only
works
for
optional,
because
everything,
but
so
this
is
something
that
that
I
have
been
called
calling
coercion
and
the
same
thing
happens
if
function
returns
a
node
and
that
is
used
in
a
comparison
environment
so
like
we.
D
We
handle
singular
paths
by
by
essentially
taking
out
the
the
node
to
to
affect
the
comparison,
the
value
of
the
node
to
affect
the
comparison.
We
would
take
out
the
the
value
of
the
node
returned
by
the
function,
so
we
have
some
coercions
that
are
essentially
already
implied
by
the
grammar.
We
have
the
the
coercion
in
the
function,
argument,
position
and
I
think
we.
We
only
differ
in
the
use
of
the
term
subtype,
where
I
consider
this
to
be
distinct
from
coercion.
D
Why
Glenn
considers
a
coercion
to
be
a
part
of
the
subtype
hierarchy,
and
my
problem
with
that
is
that
that
essentially,
the
the
hierarchy
gets
trivial
pretty
quickly
once
you
do
that.
G
When
you
say
trivial,
do
you
mean
Turtle,
you
know
complete.
Every
every
type
is
a
subtype
of
every
other.
D
Yeah
not
not
totally
complete,
but
yes,
so
so
essentially
it
will
be.
There
will
be
an
edge
almost
everywhere.
H
A
G
D
H
G
But
the
prop
the
problem:
there
is
that
elsewhere
in
the
spec
we
say
things
like
this
is
valid,
providing
the
function,
returns,
X
or
a
subtract
of
x,
and
if
we
have
to
then
say
or
a
value
which
can
be
converted
to
a
subtype
of
X,
it
gets
a
bit
wordy.
F
I
have
no
problem
with
that.
I
have
no
problem
with,
but
value
conversion
I
think
I
prefer
that,
rather
than
rather
than
claiming
that
it's
a
snub
pipe.
C
E
G
We
only
Define
two
coercions,
actually
and
I,
don't
think
empty
node
list
fits
in
either
of
them.
D
So
in
in
the
grammar,
we
have
a
separation
between
singular
paths
and
and
general
paths,
which
we
call
Future
paths
and
the
the
functional
argument
position
can
be
filled
in
by
either.
D
So
what
does
this
I
mean?
Essentially,
you
need
to
direct
the
parser
to
one
of
those
cases.
G
Well,
yeah,
there's
two:
we
talk
about
a
well-formness
and
validity,
don't
we
in
terms
of
yes,
what
makes
it
correct,
Json
path
and
the
parser
I
think
will
be
doing
the
well-formness
check,
checking
that
the
Json
path
conforms
to
the
a
b
and
F,
and
then
on
top
of
that
there
is
a
set
of
validity
checks
to
do
with
I,
Json
values
and
and
function
types,
so
I
think
it
from.
From
my
perspective,
that's
kind
of
post
parsing,
but
it
still
gives
an
issue.
G
An
error
before
the
you
know
before
the
path
is
run.
D
Are
you
just
search
for
the
the
word
function
argument.
H
F
D
That's
a
literal,
Json
video
or
a
singular
path
or
a
functioning
expression,
while
future
pulse
is
road
path
of
Json
path
or
a
function
expression.
So
this
is
all
ambiguous,
which
is
not
fundamentally
a
problem.
I
mean
we
can't
have
ambiguous
derivations
in
in
a
BNF.
D
It's
just
that
we
we
do
provide
some
some
guidance
here
that
the
function
expression
that
goes
into
comparable
is
supposed
to
be
an
optional
node
of
AU
and
the
function.
Expression
that
goes
into
a
filter
path
is
an
optional
nodes
or
subtype.
B
D
G
Oh
okay,
yeah
I
mean
I.
Think
that
comment
is
it's
pointing
out.
It's
the
validity
checks
to
do
with
subtyping.
Isn't
it
do
with
typing?
G
G
Then
the
second
bullet
in
262
says
the
function.
Expression
which
occurs
is
a
comparable
is
correctly
tough
if
it
occurs
as
a
comparable
in
a
comparison,
and
the
function
is
defined
to
have
result
type
option
loader
value
of
one
of
its
subtypes.
So
that's
that's
amplifying
the
the
comment
in
the
ABN
F.
If
you
like,.
D
G
H
G
A
C
F
C
Comparable
is
number
string,
literal,
true,
false
null
singular
paths
or
function
expression.
For
my
understanding,
the
result
of
a
function.
Expression
should
be
one
of
the
values
above,
but
if
function
expression
is
an
empty
note
list,
it
doesn't
fit
because
a
singular
path
in
my
understanding
cannot
be
an
empty
note.
List
am
I
right.
Yes,
yes,
a
singular
path.
D
H
C
Be
can
be
oh,
okay,
so
so
it
should
be
no
problem
because
function
expression
will
be
or
can
be
coerced
to.
One
of
the
above
now.
F
F
G
D
Yeah
I
don't
have
a
solution
off
the
top
of
my
head.
I
I
would
prefer
the
the
parsing
to
enable
prioritize
choice,
so
this
can
be
implemented
using
a
positive
expression.
Hi
Grandma,
so
I
I
have
a
greater
aversion
against
the
grammar
and
ambiguity
than
than
most
of
you.
But
I
also
need
to
to
understand
whether
we
are
making
some
some
semantic
Assumption
of
lack
of
ambiguity
where
we
don't
have
it.
G
Can
I
just
check
my
understanding
if
we,
if
we
take
something
like
a
a
numeric
literal,
that's
outside
the
ijson
range,
sorry
say
a
step
and
a
step
value
in
a
an
index.
Expression
that's
outside
the
adjacent
range,
then
that's
valid
in
the
abnf.
G
You
know
the
the
Json
path
is
well
formed,
but
it's
not
valid
in
the
spec,
because
it's
outside
the
adjacent
range.
Okay.
Now,
where
does
that
sit
relative
to
your
passing
expression,
grammar
concern?
D
G
So
can
we
come
up
with
a
particular
example
where
the
the
current
abnf
doesn't
decide
the
syntax.
D
A
It's
going
to
be
a
little
bit
more
verbose
at
what.
G
I
haven't
quite
got
there
yet
yeah
I
see
what
you're
saying
but
I
don't
see
what
the
problem
is.
D
The
the
problem
really
is
just
that
when
we,
when
we
pass
this,
we
have
two
different
derivations
and
I'm,
not
sure
that
we
actually
account
for
this
possibility
in
all
of
our
thinking.
Okay.
So
if
you
look
at
the
comment
behind
function,
expert
right
at
the
top
of
the
screen,
this
essentially
is
telling
you
that
the
filter
path
accommodates
functional
Expressions
that
result
in
optional
nodes
or
subtype,
or
some
type
of
that
and
down
at
the
definition
of
comparable.
D
It
says
it
accommodates
a
functioning
expression
that
is
an
optional
node
of
a
U
or
subtype
of
that
and,
first
of
all,
depending
on
how
we
Define
subtype.
That
actually
is
maybe
overlapping,
but
it's
definitely
not
something
that
that
can
be
used
to
resolve
this
housing
ambiguity.
D
So
we
we
cannot
really,
in
other
cases,
we're
using
the
syntax
to
to
clean
the
distinguish
between
filter
paths
and
and
their
their
derived
Boolean
semantics
and
comparables,
which
have
an
explicit
Boolean
semantics,
and
to
hear
this,
this
kind
of
breaks
down
so
I'm
just
trying
to
make
sure
that
we
can
live
with
this
breakdown.
D
D
C
You
look
at
the
very
top,
it's
it's
also
in
the
definition
section
I
don't
know.
Is
it
also
in
the
definition
section?
No.
F
Scroll
up
just
a
little
bit
in
the
in
the
text:
okay,
so
that
top
ABN
F
block
defines
filter
path.
Well,
too
far
too
far,.
G
But
what
I'm
struggling
with
is
the
difference
between
a
an
existence
test
and
a
test
expression
parable
can
be
determined
by
context
in
the
by
the
parser
can't
it.
So
if
it's,
if
it
looks
ahead
and
sees
a
comparison
operation-
and
he
knows
the
the
term
is
meant
to
be
a
comparison.
D
G
D
Well,
in
Peg,
if
you
make
a
choice
and
the
choice
actually
works,
you
are
stuck
with
that.
Okay,
so
at
some
point,
I
will
probably
make
a
PR
that
reorders
some
of
these
in
such
such
a
way
that
that
working
parsers
always
can
can
be
stuck
with.
D
But
that's
not
my
problem
right
now.
My
problem
is,
is
that
the
the
grammar
itself,
of
course,
is
a
grammar,
but
there
is
a
comment
in
there.
That
seems
to
explain
that
we
are
expecting
certain
types
to
occur
here
and
it's
a
bit
weird
to
have
different
derivations
that
differ
in
the
expectations.
G
Okay,
so
playing
that
back
in
different
words,
if
we
stripped
out
these
comments
from
the
a
b
and
F,
then
we'd
allow
function
expression
in
multiple
places,
intestinal
expression
and
filter
path,
Etc,
and
that
would
get
through
the
the
parsing,
regardless
of
the
type
of
the
function-
expression,
yes
yeah,
and
then
we
get
onto
validity
checks
and
that
might
then
cause
a
failure.
G
F
Okay,
so
Glenn
just
for
my
sanity
here
are
you.
It
seems
like
you're
making
the
distinction
between
the
parsing
and
a
compiling,
so
I
can
C,
sharp
I
can
say
true
equals
one
and
that
would
probably
parse
correctly
you'd
get
you
get
symbols
for
true
and
equals,
and
one,
but
then,
when
the
compiler
comes
through
and
checks
those
checks
that
syntax
tree
it
would
see
that
true
is
a
Boolean.
One
is
an
integer
and
it
would
say
you're
not
allowed
to
do
that.
G
But
into
the
way
it's
frozen
in
the
spec,
we
talk
about
well-formness
and
validity
and
I
think
they're.
Both
syntactic
issues,
but
wealth
formless,
is
determined
by
the
abnf
and
validity
is
determined
by
determined
by
some
extra
rules
that
we
layer
on
top
of
your
compilation
phase.
In
your
terms,
right.
B
D
F
So
the
the
reason
I
bring
this
up
is
because,
if
we're
talking
about
well-formedness
I
think
above
way
earlier
in
the
spec
and
I
can
look
at
this
later.
I
do
believe
that
we
say
that
well-formed
paths
need
to
need
to
execute,
but
not
necessarily
semantically,
valid
or
well-formedness.
G
G
D
Yeah,
so
the
the
true
validity
requires
that
we
have
is
that
the
integer
numbers
that
we
are
using
well
I,
don't
know
what
are
relevant
to
the
Json
processing
actually
means,
but
we
can
discuss
this,
but
the
integer
numbers
must
must
be
same
and
the
the
function.
Extensions
must
be
correctly
typed
and
that
that
is
then
delegated
to
section.
2.6
and
261
actually
has
the
the
text.
That
explains
that,
can
we
get
rid
of
these
unnamed
sections?
These
are
actually
driving
me
crazy.
G
No
I
mean
262
is
where
we
actually
Define
the
validity
requirements.
Yes,.
D
D
C
H
D
G
G
G
I
kind
of
feel
as
if
we
need
to
go
away,
wrap
a
cold
towel
around
our
heads
and
write
down
some
of
these
issues.
It's
going
to
be
hard
to
come
up
with
it
on
the
Fly
in
the
precise
text,
I
think,
there's
something
there
is
a
problem
here.
A
E
D
D
F
D
A
Okay,
let's,
let's
give
it
a
try,
why
don't
we
push
this
on
the
stack
and
and
see
what
what
Greg
suggests
do
what
Greg
suggests
here.
A
Which
is
387
Greg
yep.
F
Okay,
so
I've
got
some
issues
linked.
We
have
previously
decided
that
the
match
function
is
not
a
comparable.
It
is
not
allowed
to
be
compared
with
compared
using
the
equals
or
greater
than
or
whatever
functions
it
is.
It
returns
a
Boolean
and
that
was
decided
in
360
and
I
codified,
that
in
a
PR
in
365.
A
G
Can
I
just
yeah
I
know
that
we
decided
that
you
could
use
a
match
on
its
own
without
a
comparison?
Where
did
we
say
that
you
couldn't
use
it
in
a
comparison.
F
B
F
D
D
Yeah
but
you
you
are
now
trying
to
transfer
some
of
the
things
that
we're
doing
with
syntax
into
the
type
system,
and
that
is
neither
needed.
Nor
does
it
work,
because
one
equals
two
really
doesn't
have
a
type.
A
comparison
can
only
occur
in
in
certain
places
and
in
those
places
it
doesn't
have
a
function.
Extension
I.
F
D
F
The
comparison
is
the
case.
If
that's
the
case,
please
James,
please
go
back
to
360.
A
H
F
Here's
my
thing:
if
the
second,
if
the
second
one
is
valid,
then
the
first
one
cannot
be
valid,
because
the
second
one
says
that
matches
returning
true
as
a
Json
as
a
Json,
comparable
value
and
then
the
first
one
says
that
it's
a
test
expression,
but
a
test
expression
cannot
have
a
comparable
value
in
it.
According
to
the
and
b
f.
D
D
F
G
Yeah
you
see
it,
my
recollection
is
that
we
we
want.
We
we
allow
the
equality
option,
the
second
option,
but
we
didn't
like
the
verbosity
of
it.
So
we
added
a
special
some
special
cases
so
that
you
could
write
the
match
without
the
equality.
Exactly
the
quality
is
incredible.
Correct
means
it's
not
needed.
F
D
G
F
G
D
Yeah,
so
you
essentially
are
saying
that
that
the
Boolean
value
that
match
returns
is
not
a
Json,
true
or
false,
but
is
is
a
different
category
of
things
like
nothing?
Nothing
is
already
one
value
that
we
allow.
That
is
not
among
the
set
of
Json
values,
and
we
would
have
a
function
true
and
the
function,
Falls
or
gesture
test
walls.
Whatever.
F
H
F
A
I'd
like
to
Crow
on
the
sentiment
of
people
looking
at
the
screen
right
now
that
last
one
that
currently
is
declared
to
be
invalid
are
people.
What
do
people
think
about
that?
It
looks
gross
to
me,
like
the
the
literal
truth.
Just
feels
like
a
different
flavor
of
thing
than
what
comes
out
of
a
test
test
expression.
But
what
do
other
people
think.
C
This
comes
like
a
consequence
of
this
would
be
to
substitute
the
nothing
Thing
by
expression,
tool
or
expression,
false
which,
which
I
do
like
a
bit
more
The
Proposal.
F
There's
another
weird
consequence
that
comes
out
of
this:
if
we,
if
we
take
that
last
example,
there
the
invalid
one
and
replace
true
with
an
at
dot
a
then
hang
on
where'd,
you
go
sorry.
Okay,
thank.
H
You,
if
you
do
an
at.
F
D
That's
a
valid
use
case
for
this.
Yes,
I
mean
it's
only
weird.
If
you
already
have
decided
that
the
test
booleans
are
different
from
Json
volumes,
but
if
you
accept
test
booleans
as
as
equivalent
to
Json
booleans,
then
it
becomes
possible
to
say
equals,
add
dot
a.
F
Okay,
so
then
you
would
have
to
say
that
test
booleans
are
yeah,
that
tests
being
a
comparable
with
being
a
comparison
or
a
function,
expression
or
an
ex
ists
expression,
and
one
of
those
tests
would
produce
a
Boolean
adjacent
Boolean
value,
which
is
the
the
true
or
false.
F
And
then
that
would
make
the
the
expression
true
and
false
a
valid
Json
expression,
which
we
decided
not
to
do,
because
we
didn't
want
the
Jason
liberals
to
be
valid
in
valid
operands
for
the
the
logic
operators.
D
G
G
So
I
don't
really
see
a
distinction
between
an
optional
production
of
value
which
returns
an
integer
and
an
optional
Boolean
returning,
true
or
false.
B
F
G
F
Okay,
optional
note
or
value
so.
F
F
So
in
implementing
all
of
this,
which
I
have
gone
in
through
and
done
implemented
all
of
this
in
order
to
support
the
test
cases
that
I'm
writing
I
had
to
make
this
distinction
in
order
to
check
syntax
I
had
to
come
up
with,
because
I'm
an
object,
oriented
I
had
to
come
up
with
classes
and
everything
that
represent
the
the
test.
Boolean
and
a
value
I
had
to
come
up
with
all
these
things
in
order
to
get
this
to
work
properly,
but
it
only
works
properly
if
it
only
works
properly
with
all
those
syntax
checks.
F
If
we
make
a
distinction
between
Boolean
and
value.
F
I
could
not
implement
it
with
the
syntax
checking
no
I
had
it
implemented
without
syntax
checking
and
when
I
went
to
go
put
in
some
text
checking
those
two
last
those
those
two
last
examples
conflicted
with
each
other.
I
could
not
have
both
of
them.
G
Two
possibilities:
either
it's
the
spec
is
inconsistent
or
the
implementation
has
a
problem.
D
So
to
to
pull
the
type
system
into
the
syntax
check,
you
have
to
know
all
the
types
of
function,
extensions.
F
In
terms
of
where
it
can
appear
in
the
the
expression,
those
are
the
only
two
options
for
syntax
checking.
You
only
occur.
You
only
care
where
it
appear
where
it
can
appear
in
the
options
or
in
the
expression.
You
don't
care
if
it
can
return
nothing
or
if
it
can
return
a
node
list,
is
it
valid
in
a
comparable
or
is
it
valid
being
being
operated
on
by
the
and
by
one
of
the
logical
operators?
D
The
the
syntax
that
is
defined
by
the
a
b
and
F
right
now
allows
function.
Expressions
in
three
places,
and
one
of
them
is
the
the
one
where
you
only
get
valid
by
returning
an
optional
Boolean.
F
G
D
F
G
Yeah
I
mean
I,
think
I
think
what
you're
saying
Greg
is
that
the
philosophy
was
that
that
direction
for
literals
and
we've
chosen
a
different
Philosophy
for
the
function.
Expressions,
correct,
yeah
and
I
agree
and
I
did
point
that
out
when
we
went
when
we
put
in
that
shorthand
and
said
this
will
cause
issues
to
come
out
of
the
woodwork,
because
it's
a
different
philosophy,
I
didn't
use
those
words,
but
you
know
see
this
was
coming,
but
nevertheless
it's
what
we've
got
is
consistent,
even
though
it's
you
know
sorry,
it's
not
consistent.
G
It's
it
works,
it
can
be
implemented,
even
though
it's
kind
of
slightly
inconsistent
the
way
it's
phrased.
D
F
D
A
F
F
G
Yeah
I
mean
that's
interesting
if
you,
if
you
flip
things
around
a
bit-
and
you
say
that
we
essentially
writing
a
an
a
BNF
template
and
depending
on
what
function,
extensions
are
available.
The
that
fleshes
out
the
ABN
F
concretely
in
different
ways.
G
D
Yeah
they're
also
almost
no
tools
that
can
do
that
so
yeah
generally,
you,
you
fix
the
the
syntax
at
the
BNF
level
and
then
then
do
all
the
the
consistency
processing
at
this
first
semantics
level.
That
is
sometimes
also
called
syntax,
and
that's
what
tools
do
so
I
I,
don't
think
we
can
have
the
a
b
and
F
changed
dynamically
with
new
function,
extensions.
D
A
H
A
H
A
D
D
So
if
we
had
scissors
or
something
like
that,
that
would
clearly
separate
functions
that
can
be
used
as
test
expressions
from
functions
that
can
be
used
as
as
variable
expressions
and
from
functions
that
can
be
used
as
node
expressions.
A
A
D
The
validity
to
take
into
account
the
the
function
types,
both
the
return
type
and
the
argument
types.
F
A
D
F
F
D
Well,
actually,
if
it
returns
something
that
that
has
the
properties
of
a
singular
path,
then
it
connect
this
either
yeah.
G
A
chance
to
flash
this
out
a
bit
in
the
function,
extension
section
the
type
system
and
talk
about
the
representation
yeah
there
in
the
notes
there
I'll
talk
about
optional
node
is
an
abstraction
of
a
singular
path
and
optional.
Node
of
value
is
an
abstraction
of
a
comparable.
So
the
philosophy
was
to
try
and
make
functions
returning
those
types,
optional
load
of
value
fit
anywhere
in
the
syntax,
where
comparables
fit
and
same
for
singular
path,
and
that
was
what
was
behind
us
comments
in
the
ABN
f.
F
F
D
And
we
also
in
the
current
text,
we
also
have
functions
that
return
optional,
booleans
that
have
that
property.
But
even
if
you
take
that
away,
we
still
have
singular
posh
style
functions,
function
returns
that
can
access
both.
D
A
H
F
A
D
G
G
Okay
Kirsten:
can
you
take
an
action
to
add
the
description
to
both
those
issues?
Please.
D
G
Doesn't
have
to
be
today,
but
I
feel
that
we
have
to
capture
that
your
your
understanding
of
the
the
parsing
ambiguity
stuff,
because
I
haven't
quite
grasped
that
yet
and
I'm
not
sure
anybody
else
has.
H
D
D
You're
right
you're,
right
yeah.
So
all
these
fall
issues
from
385
to
389
are
deeply
interrelated.
A
C
F
C
C
With
with
trace
and
path
is,
do
we
have
what
there
was
a
noise
there,
versioning
I
there
are.
Some
comments
were
where
there
was
talked
about
Json
path,
version,
2.,
2.0
or
something
like
that.
Do
we
have
versioning
with
Json
path
or
not.
E
In
the
traditional
sense
of
version
we
can
look
to
in
the
future
re
redo
the
specification,
but
we
have
to
accept
that
rfcs
are
immutable.
D
A
So
I,
you
know
you
can
imagine
doing
things
like
having
you
know
in
Jason's
path
version
two,
the
Expressions
begin
with
two
dollar
signs
right.
D
Yeah,
so
this
would
strictly
be
versioning
in
the
sense
of
preventing
false
intermability,
which
is
so
always
something
that
that's
worth
doing.
But.
H
D
Mostly,
when
people
think
about
versioning,
they
think
about
something
that
has
some
levels
of
both
backwards
and
forwards.
Compatibility
and
I
have
I'm
having
a
hard
time
imagining
how
that
would
work.
C
C
Another
question
is
about
that
index
function.
There
was
an
issue
I'm,
not
sure
what
was
the
reason
to
to
close
this
issue.
I
think
that
would
be
a
very
useful
function.
D
D
D
So
we
we
I
think
we
we
do
have
agreement,
even
even
though
we
didn't
state
that
explicitly
that
we
do
not
want
to
make
this
step
at
this
point
in
time.
Yes,
we
agree.
So
this
this
would
be
significant
Innovation,
although
there
are
other
people
who
have
something
like
the
tilde
operator
and
all
that,
putting
that
in
a
way
that
it
fits
into
our
current
framework
would
be
a
significant
step
so
back
to
the
filter.
D
Expression
case
I
think
that
there
aren't
that
many
convincing
use
cases,
because,
generally
you
can
just
restructure
your
your
expression
in
such
a
way
that
that
you
use
selectors
to
go
there
again.
The
problem
is
that
you
only
can
filter
on
the
things
so
in
in
the
end,
you
will
have
a
Boolean
value
and
and
the
question
whether
a
path
with
some
selectors
in
it
returns,
a
value,
is
usually
as
good
as
going
through
an
index
function
in
a
function
extension.
D
So
you
would
need
to
to
construct
a
pretty
elaborate
example
that
that
has
that
doesn't
have
that
property,
so
I
also
defined
how
we
could
add
something
like
indexing
to
index
access
to
the
functional
extension
framework,
because
essentially
the
the
index
function
gives
you
the
last
segment
of
the
normalized
path,
representation
of
the
node
that
you
are
looking
at.
Yes,.
D
If,
if
you,
if
you
agree
to
the
fact
that
a
function
should
have
access
to
the
normalized
path,
well,
it
already
has
access
to
to
the
node
itself,
but
right
now
we
essentially
don't
have
in
our
model
that
the
function
can
get
at
the
normalized
path
of
of
this.
No
that
node,
and
that
would
be
a
new
thing.
D
We
currently
are
completely
mute
about
that,
so
so
I
we
would
have
to
forgive
implementers
who
think
they
can
do
that,
but
I
think
we.
We
need
to
make
up
our
mind
whether
that's
a
good
thing
or
not.
C
C
Getting
a
value
you
will,
the
implementation
will
build
successfully
the
normalized
Parts
internally,
because
it's
Unique
to
get
to
that
value
and
the
last
step
before
getting
the
value
will
be
to
get
the
key
the
index,
the
name,
because
that's
the
key
to
get
the
value.
So
you
you
you
have
it
without
formally
being
allowed
to
access
or
build
the
normalized
path.
You
you
you
did
it
already
so.
F
The
the
use
case
in
that
last
comment,
there
I
think,
is
very
compelling
where
the
person
who
wants
to
be
able
to
write
a
path
that
does
this
doesn't
actually
have
access
to
the
processing
lot
to
the
logic,
that's
processing
the
Json
path
they
own.
They
are
interacting
with
an
API
that
says
all
right.
F
Give
me
a
Json
path,
that's
supposed
to
return
a
value
and
I'm
going
to
use
that
value
this
way,
and
they
want
to
be
able
to
get
the
key
as
that
value
currently,
because
Jason
path
doesn't
have
that
capability
in
the
syntax.
They
can't
do
what
they
want
to
do
through
this
API.
C
Just
to
be
clear,
I
don't
want
to
to
use
this
index
access
outside
of
filters.
I
just
can
imagine
to
to
to
think
about
this
very
useful
index
function,
whatever
it's
called.
C
F
Okay,
yeah
I,
don't
think
that
adding
a
an
index
function,
that's
only
usable
within
filter.
Expressions
addresses
any
of
the
issues
that
we've
seen
from
users.
C
C
A
Inside
so
so,
I
think
that
I
think
that,
as
Glenn
said,
you
know
adding
that
kind
of
new
syntax
is
outside
of
our
scope
at
the
moment.
Yes,
we
could
meet
these
use
cases
through
the
existing
function
mechanism.
That
would
be
great,
but
we're
not
going
to
go
further
than
that.
I,
don't
think.
C
A
Okay,
folks,
what
are
we
then
done
or
so
I
think
we
know
what
we're
going
to
do
with
these
we're
going
to
take
them
to
a
deeper
discussion.
E
If
and
or
when
we
plan
any
interim
mating.
A
A
E
No
I'm
not
I'm,
not
advocating
we,
we
do
it,
but
I'm
just
sort
of
wanting
to
get
a
sense
of
where
to
go
now,
because
if
we
think
that
this
is
these
are
the
last
outstanding
issues,
the
ones
that
were
these.
These
issues
that
we'll
talk
through
today,
then,
actually,
we
probably
don't
need
an
a
Cadence
Spectrum
meetings,
provided
that
we
can
get
these
addressed
in
a
timely
manner.
A
C
A
G
So,
just
to
just
to
be
clear
suppose
we
do
get
these
issues
resolved
to
our
satisfaction
and
we've
got
clear
consensus.
We
don't
need
an
interim
meeting
to
trigger
a
last
call.
Is
that
correct.