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))