-
Notifications
You must be signed in to change notification settings - Fork 7
/
localsparql_test.pl
72 lines (48 loc) · 1.67 KB
/
localsparql_test.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/**
tests direct execution on local triplestore
make bg-run
*/
:- use_module(library(semweb/rdf11)).
:- use_module(library(sparqlprog)).
:- use_module(library(rdf_owl)).
:- use_module(library(sparqlprog)).
:- use_module(library(sparqlprog/endpoints)).
%:- table ??/2.
count(X,G,N) :-
( setof(X,(local ?? G),Xs)
-> length(Xs,N)
; N=0).
jaccard(X,Y,N) :-
count(A,(rdfs_subclass_of(X,A),rdfs_subclass_of(Y,A)),N1),
count(A,(rdfs_subclass_of(X,A);rdfs_subclass_of(Y,A)),N2),
N is N1/N2.
:- begin_tests(localsparql_test,
[]).
wl(L) :-
forall(member(X,L),
format('~w~n', [X])).
run_test_query(N,X,G,L,L1) :-
setof(X,(local ?? G),L1),
format('** ~w~n',[N]),
wl(L1),
assertion(L = L1).
test(direct_subclass_of) :-
run_test_query(direct,X,
( label(C,"nucleus"),
rdf(C,rdfs:subClassOf,X)),[_,_],_).
test(inferred_subclass_of) :-
run_test_query(inferred,X,
( label(C,"nucleus"),
rdfs_subclass_of(C,X)),[_,_,_],_).
test(mrca) :-
run_test_query(mrca_check,t(X,Y,A),
( label(X,"protein complex assembly"),
label(Y,"macromolecular complex assembly"),
label(A,"cellular component assembly"),
mrca(X,Y,A)),
[_],_).
test(jaccard) :-
forall((local ?? owl:class(X),owl:class(Y)),
( jaccard(X,Y,S),
format('~w <-> ~w = ~w~n',[X,Y,S]))).
:- end_tests(localsparql_test).