The vocabulary is published by the W3C Notation-3 Community Group.
Concatenates separate lists into a single list
schema:
($a_1 .. $a_n) list:append $a_s
definition:
true
if and only if the subject is a list of lists and the concatenation of all those lists
is $a_s
.
$a_s
can be calculated as a function of the subject.
requires:
all $a_1, .., $a_n
to be lists with all constituent members bound.
example:
( (1 2) (3 4) ) list:append (1 2 3 4).
Extracts the first member of a list.
schema:
($a_1 .. $a_n) list:first $a_s
definition:
true
if and only the subject is a list and $a_s
is the first member of that list.
$a_s
can be calculated as a function of the subject.
requires:
all $a_1, .., $a_n
to be bound.
Determines if an subject is a member of the object list or binds every member of the object list to the subject.
schema:
$a_1 list:in $a_2
definition:
true
if and only $a_2
is a list and $a_1
is in that list.
$a_1
can be calculated from $a_2
.
requires:
$a_2
to be a bound list.
Iterates over index/value pairs of the subject list
schema:
($a_1 .. $a_n) list:iterate ($i $v)
definition:
Gets the matching pair of list index and list value for every member of the subject.
If the object is a variable, it will create a solution for each member of the subject list.
If any member of the object list is a variable, it will create a solution for all matching
members of the subject list.
If the object is ground and the entry at the specified index matches the specified value,
it evaluates to true
; otherwise, false
.
requires:
$i
is an integer.
example:
( 1 2 3 ) list:iterate ($i $v).
Extracts the first member of a list.
schema:
($a_1 .. $a_n) list:last $a_s
definition:
true
if and only the subject is a list and $a_s
is the last member of that list.
$a_s
can be calculated as a function of the subject.
requires:
all $a_1, .., $a_n
to be bound.
Calculates the length of a list.
schema:
($a_1 .. $a_n) list:length $a_s
definition:
true
if and only the subject is a list and $a_s
is integer length of that list.
$a_s
can be calculated as a function of the subject.
requires:
$a_1, .., $a_n
to be bound.$a_s
: unbound, xs:integer
(or its derived types) (see note on type promotion, and casting from string)Determines if an object is a member of the subject list or binds every member of the subject list to the object.
schema:
$a_1 list:member $a_2
definition:
true
if and only $a_1
is a list and $a_2
is in that list.
$a_2
can be calculated from $a_1
.
requires:
$a_1
to be a bound list.
Gets the member of a list at a given position (where the position of the first element is 1)
schema:
(($a_1 .. $a_n) $a_i) list:memberAt $a_m
definition:
Iff ($a_1 .. $a_n)
has an element at position $a_i
,
and if that element and $a_m
can unify.
requires:
$a_i
or $a_m
(or both) must be bound.
Note that if $a_i
is a variable, this builtin may bind it to more than one value
(e.g. ((“A” “B” “A”) ?i) list:memberAt "A"
).
literal domains:
$a_1 .. $a_n
, $a_m
: unconstrained$a_i
: xs:decimal
, xs:float
, xs:double
within the value space of xs:integer
(see also note on type promotion and substitution).
I.e., in case the double/float/decimal's literal's value is within the value space of integers,
the literal will match the domain.
In case of a negative integer, the index will count backwards from the length of the list.Removes the second component of the subject list from the first component of that list.
schema:
($a_1 $a_2) list:remove $a_3
definition:
Iff the subject is a list of two lists $a_1
and $a_2
, $a_2
is a subset of $a_1
and $a_3
is a list composed of the members of the $a_1
with
all members of $a_2
removed, matching left to right.
$a_3
can be calculated as a function of the subject.
requires:
$a_1
and $a_2
must be bound lists.
example:
( (1 2 3 4) (2 3) ) list:remove (1 4).
This is an ontology for computable list functions.