Skip to content

Commit

Permalink
having functional terms as reifiedtriples << functor func:args (argum…
Browse files Browse the repository at this point in the history
…ents) >>
  • Loading branch information
josd committed Oct 17, 2024
1 parent 208dd32 commit 761753c
Show file tree
Hide file tree
Showing 8 changed files with 1,204 additions and 770 deletions.
1 change: 1 addition & 0 deletions RELEASE
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
EYE release

v10.25.2 (2024-10-17) having functional terms as reifiedtriples << functor func:args (arguments) >>
v10.25.1 (2024-10-17) having functional terms as triple terms <<( functor func:args (arguments) )>>
v10.25.0 (2024-10-17) introducing (^ functor args) functional terms
v10.24.23 (2024-10-16) adding list:reverse built-in and rdfdatasets lee example
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
10.25.1
10.25.2
70 changes: 35 additions & 35 deletions eye.pl
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
:- catch(use_module(library(process)), _, true).
:- catch(use_module(library(http/http_open)), _, true).

version_info('EYE v10.25.1 (2024-10-17)').
version_info('EYE v10.25.2 (2024-10-17)').

license_info('MIT License

Expand Down Expand Up @@ -119,7 +119,6 @@
:- dynamic(cc/1).
:- dynamic(cpred/1).
:- dynamic(data_fuse/0).
:- dynamic(edge/2).
:- dynamic(evar/3).
:- dynamic(exopred/3). % exopred(Predicate, Subject, Object)
:- dynamic(fact/1).
Expand Down Expand Up @@ -160,6 +159,7 @@
:- dynamic(query/2).
:- dynamic(quvar/3).
:- dynamic(recursion/1).
:- dynamic(reifiedtriple/4).
:- dynamic(retwist/3).
:- dynamic(rule_uvar/1).
:- dynamic(scope/1).
Expand Down Expand Up @@ -1700,7 +1700,7 @@
tr_tr(A, A) :-
number(A),
!.
tr_tr(edge(N, triple(A, B, C)), edge(N, triple(D, E, F))) :-
tr_tr(reifiedtriple(A, B, C, N), reifiedtriple(D, E, F, N)) :-
G =.. [B, A, C],
\+sub_atom(B, 0, _, _, '_e_'),
!,
Expand Down Expand Up @@ -1799,26 +1799,26 @@
% inspired by http://code.google.com/p/km-rdf/wiki/Henry
%

annotation(edge(N, Triple), Triples) -->
edgename(N),
annotation(reifiedtriple(S, P, O, N), Triples) -->
reifiedtriplename(N),
[lb_pipe],
!,
propertylist(edge(N, Triple), Triples1),
propertylist(reifiedtriple(S, P, O, N), Triples1),
{ ( Triples1 \= []
-> true
; nb_getval(line_number, Ln),
throw('empty_triple_annotation'(after_line(Ln)))
)
},
[pipe_rb],
annotation(edge(_, Triple), Triples2),
annotation(reifiedtriple(S, P, O, _), Triples2),
{ append(Triples1, Triples2, Triples)
}.
annotation(edge(N, Triple), Triples) -->
annotation(reifiedtriple(S, P, O, N), Triples) -->
['~'],
expression(N, []),
!,
annotation(edge(_, Triple), Triples).
annotation(reifiedtriple(S, P, O, _), Triples).
annotation(_, []) -->
[].

Expand Down Expand Up @@ -1926,11 +1926,11 @@
},
[].

edgename(N) -->
reifiedtriplename(N) -->
['~'],
expression(N, []),
!.
edgename(N) -->
reifiedtriplename(N) -->
{ gensym('bne_', B),
( ( nb_getval(entail_mode, false),
nb_getval(fdepth, 0)
Expand Down Expand Up @@ -2011,11 +2011,11 @@
!,
object(Object, Triples1),
{ ( Verb = isof(Vrb)
-> Edge = edge(_, triple(Object, Vrb, Subject))
; Edge = edge(_, triple(Subject, Verb, Object))
-> Reifiedtriple = reifiedtriple(Object, Vrb, Subject, _)
; Reifiedtriple = reifiedtriple(Subject, Verb, Object, _)
)
},
annotation(Edge, Triples2),
annotation(Reifiedtriple, Triples2),
objecttail(Subject, Verb, Triples3),
{ append([Triples1, Triples2, Triples3], Triples),
( Verb = isof(V)
Expand Down Expand Up @@ -2152,13 +2152,13 @@
verb(P, []),
object(O, []),
[rp_gt_gt].
pathitem(edge(N, triple(S, P, O)), T) -->
pathitem(reifiedtriple(S, P, O, N), T) -->
[lt_lt],
!,
subject(S, Ts),
verb(P, Tp),
object(O, To),
edgename(N),
reifiedtriplename(N),
{ ( flag('trig-output')
-> append([['\'<http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies>\''(N, triple(S, P, O))], Ts, Tp, To], T)
; append([Ts, Tp, To], T)
Expand Down Expand Up @@ -2320,11 +2320,11 @@
!,
object(Object, Triples2),
{ ( Verb = isof(Vrb)
-> Edge = edge(_, triple(Object, Vrb, Subject))
; Edge = edge(_, triple(Subject, Verb, Object))
-> Reifiedtriple = reifiedtriple(Object, Vrb, Subject, _)
; Reifiedtriple = reifiedtriple(Subject, Verb, Object, _)
)
},
annotation(Edge, Triples3),
annotation(Reifiedtriple, Triples3),
objecttail(Subject, Verb, Triples4),
propertylisttail(Subject, Triples5),
{ append([Triples1, Triples2, Triples3, Triples4, Triples5], Triples),
Expand Down Expand Up @@ -3776,10 +3776,10 @@
write(' '),
( C = rule(_, _, Rl),
Rl =.. [P, S, O],
'<http://www.w3.org/2000/10/swap/reason#source>'(edge(_, triple(S, P, O)), Src)
'<http://www.w3.org/2000/10/swap/reason#source>'(reifiedtriple(S, P, O, _), Src)
-> wt(Src)
; ( C =.. [P, S, O],
'<http://www.w3.org/2000/10/swap/reason#source>'(edge(_, triple(S, P, O)), Src)
'<http://www.w3.org/2000/10/swap/reason#source>'(reifiedtriple(S, P, O, _), Src)
-> wt(Src)
; wt(A)
)
Expand Down Expand Up @@ -4438,20 +4438,6 @@
nb_setval(keep_ng, false),
retractall(keep_ng(graph(X, Y))),
wg(Y).
wt2(edge(N, triple(S, P, O))) :-
!,
write('<< '),
wg(S),
write(' '),
wp(P),
write(' '),
wg(O),
( findvar(N, beta)
-> true
; write(' ~ '),
wg(N)
),
write(' >>').
wt2(is(O, T)) :-
!,
( number(T),
Expand Down Expand Up @@ -4518,6 +4504,20 @@
write(' '),
wg(O),
write(' )>>').
wtn(reifiedtriple(S, P, O, N)) :-
!,
write('<< '),
wg(S),
write(' '),
wp(P),
write(' '),
wg(O),
( findvar(N, beta)
-> true
; write(' ~ '),
wg(N)
),
write(' >>').
wtn(X) :-
X =.. [B|C],
( atom(B),
Expand Down
Binary file modified eye.zip
Binary file not shown.
4 changes: 2 additions & 2 deletions reasoning/good-cobbler/cobbler.n3
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
@prefix : <urn:example:>.

# some x is a good cobbler
_:x a <<( :good func:args (:Cobbler) )>>.
_:x a << :good func:args (:Cobbler) >>.

# is there some x which is good at some y
{
?x a <<( :good func:args (?y) )>>.
?x a << :good func:args (?y) >>.
} =^ {
:test :is true.
}.
2 changes: 1 addition & 1 deletion reasoning/peano/peano-answer.n3
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@prefix : <http://example.org/#>.
@prefix func: <http://www.w3.org/2000/10/swap/func#>.

<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (0) )>>) )>>) )>>) )>>) )>> :factorial <<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (<<( :s func:args (0) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>) )>>.
<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (0) >>) >>) >>) >>) >> :factorial << :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (<< :s func:args (0) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>) >>.
Loading

0 comments on commit 761753c

Please sign in to comment.