1:- module(allie_sflf, 2 [ 3 cluster_member/2, 4 long_form_representation/2, 5 long_form/2, 6 short_form/2, 7 long_form_list/4 8 ]). 9 10:- sparql_endpoint(allie, 'https://data.allie.dbcls.jp/sparql'). 11 12:- rdf_register_prefix(allie, 'http://purl.org/allie/ontology/201108#'). 13 14cluster_member(A, B) :- rdf_path(A, ( (allie:contains) / (allie:hasMemberOf) ), B). 15long_form_representation(A, B) :- rdf(A, allie:hasLongFormRepresentationOf, B). 16long_form(A, B) :- rdf(A, allie:hasLongFormOf, B). 17short_form(A, B) :- rdf(A, allie:hasShortFormOf, B). 18 19long_form_list(S, L1, L2, LANG) :- 20 cluster_member(A, B), 21 short_form(B, F), 22 label_of(S, F, "en"), 23 optional( 24 (long_form_representation(A, D), 25 rdf(D,rdfs:label,L1),lang(L1)=LANG)), 26 optional( 27 (long_form(B, E), 28 rdf(E,rdfs:label,L2),lang(L2)=LANG))