diff --git a/RELEASE b/RELEASE index 6d7ff808a..3a87f7a4a 100644 --- a/RELEASE +++ b/RELEASE @@ -1,5 +1,6 @@ EYE release +v10.28.2 (2024-10-29) running rdfproof v10.28.1 (2024-10-27) improving rdflogic performance v10.28.0 (2024-10-26) having RDF Logic with blank node graphs v10.27.9 (2024-10-26) dropping log:univ diff --git a/VERSION b/VERSION index bc559782f..e0e1fcef1 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -10.28.1 +10.28.2 diff --git a/eye.pl b/eye.pl index e6dc3a553..a9a5891e4 100644 --- a/eye.pl +++ b/eye.pl @@ -22,7 +22,7 @@ :- catch(use_module(library(process)), _, true). :- catch(use_module(library(http/http_open)), _, true). -version_info('EYE v10.28.1 (2024-10-27)'). +version_info('EYE v10.28.2 (2024-10-29)'). license_info('MIT License @@ -201,6 +201,7 @@ :- dynamic(''/2). :- dynamic(''/2). :- dynamic(''/2). +:- dynamic(''/2). :- dynamic(''/2). :- dynamic(''/2). @@ -3606,6 +3607,7 @@ ; true ), ( answer(B1, B2, B3), + B1 \= '', relabel([B1, B2, B3], [C1, C2, C3]), djiti_answer(answer(C), answer(C1, C2, C3)), indent, @@ -3628,6 +3630,25 @@ ), fail ; true + ), + ( answer('', _, _) + -> nl, + writeln('#'), + writeln('# rdfproof'), + writeln('#'), + nl, + ( answer('', S, O), + labelvars(''(S, O), 0, _, avar), + indent, + wt(''(S, O)), + ws(''(S, O)), + write('.'), + nl, + cnt(output_statements), + fail + ; true + ) + ; true ). w3 :- @@ -5362,7 +5383,14 @@ % rdftrig ( quad(triple(_, _, _), _) - -> % create trig graphs + -> ( \+flag(nope) + -> assertz(flag(nope)), + retractall(flag(proves)), + assertz(flag(proves)) + ; true + ), + + % create trig graphs ( graphid(G), findall(C, ( quad(triple(S, P, O), G), @@ -5407,30 +5435,61 @@ % create forward rules assertz(implies(( - ''(A, B), - ''(A, C), - ''(B, D) - ), ''(C, D), '<>')), + ''(An, Bn), + ''(An, A), + ''(Bn, B), + ground([A, B]), + conj_list(B, L), + \+last(L, answer('', _, _)), + findvars([A, B], V, alpha), + list_to_set(V, U), + makevars([A, B], [Q, I], beta(U)), + ( flag(proves), + Q \= true, + I \= false + -> conj_append(I, answer('', Q, I), F) + ; F = I + )), ''(Q, F), '<>')), % create backward rules assertz(implies(( - ''(A, B), - ''(A, C), - ''(B, D) - ), ':-'(C, D), '<>')), + ''(Bn, An), + ''(An, A), + ''(Bn, B), + findvars([A, B], V, alpha), + list_to_set(V, U), + makevars([A, B], [Q, I], beta(U)), + ( flag(proves), + Q \= true, + Q \= ! + -> conj_append(Q, remember(answer('', Q, I)), F) + ; F = Q + ), + C = ':-'(I, F), + copy_term_nat(C, CC), + labelvars(CC, 0, _, avar), + ( \+cc(CC) + -> assertz(cc(CC)), + assertz(C), + retractall(brake) + ; true + )), true, '<>')), % create queries assertz(implies(( - ''(A, B), - ''(A, C), - ''(B, D) - ), ''(C, D), '<>')), - - % create rdfsurfaces - assertz(implies(( - ''(A, B), - ''(B, C) - ), ''(A, C), '<>')) + ''(An, Bn), + ''(An, A), + ''(Bn, B), + ( flag(proves), + A \= B + -> F = (''(A, B), B) + ; F = B + ), + djiti_answer(answer(F), J), + findvars([A, F], V, alpha), + list_to_set(V, U), + makevars([A, J], [Q, I], beta(U)) + ), ''(Q, I), '<>')) ; forall( retract(''(A, B)), assertz(':-'(A, B)) diff --git a/eye.zip b/eye.zip index cd64a80eb..779d05331 100644 Binary files a/eye.zip and b/eye.zip differ