=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class(X, _).
=====result
[{"X":"Todo"}]
=====query
subject_class("Todo", C), constructor(C, Actions).
=====result
[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"c"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:construct%20test", "todo://state", "todo://ready").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://ready", 1706790526903, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:construct%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:construct%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class("Todo", C), instance(C, "literal://string:construct%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:construct%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:construct%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), constructor(C, Actions).
=====result
[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"c"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:construct%20test", "todo://state", "todo://ready").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://ready", 1706790526903, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_getter(C, "literal://string:get%20proxy%20test", "state", Value).
=====result
[{"C":"c","Value":"todo://ready"}]
=====query
subject_class("Todo", C), property_getter(C, "literal://string:get%20proxy%20test", "title", Value).
=====result
false
=====query
subject_class("Todo", C), constructor(C, Actions).
=====result
[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"c"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:construct%20test", "todo://state", "todo://ready").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://ready").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://ready", 1706790526903, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://ready", 1706790527417, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class("Todo", C), instance(C, "literal://string:construct%20test").
=====result
[{"C":"c"},{"C":"c"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:construct%20test").
=====result
[{"C":"c"},{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_getter(C, "literal://string:construct%20test", "state", Value).
=====result
[{"C":"c","Value":"todo://ready"},{"C":"c","Value":"todo://ready"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class("Todo", C), property_getter(C, "literal://string:construct%20test", "state", Value).
=====result
[{"C":"c","Value":"todo://done"}]
=====query
subject_class("Todo", C), property_getter(C, "literal://string:construct%20test", "title", Value).
=====result
false
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class("Todo", C), property_getter(C, "literal://string:construct%20test", "title", Value).
=====result
[{"C":"c","Value":"literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"}]
=====query
subject_class("Todo", C), collection_getter(C, "literal://string:construct%20test", "comments", Value).
=====result
[{"C":"c","Value":[""]}]
=====query
subject_class("Todo", C), collection_getter(C, "literal://string:construct%20test", "comments", Value).
=====result
[{"C":"c","Value":[""]}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:comment%201").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:comment%201", 1706790527721, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:comment%201", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:comment%201", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:comment%201", "string:comment%201").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class("Todo", C), collection_getter(C, "literal://string:construct%20test", "comments", Value).
=====result
[{"C":"c","Value":["literal://string:comment%201"]}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:comment%202").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:comment%201", 1706790527721, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:comment%202", 1706790527762, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:comment%201", "literal").
languageAddress("literal://string:comment%202", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:comment%201", "literal").
languageName("literal://string:comment%202", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:comment%201", "string:comment%201").
expressionAddress("literal://string:comment%202", "string:comment%202").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class("Todo", C), collection_getter(C, "literal://string:construct%20test", "comments", Value).
=====result
[{"C":"c","Value":["literal://string:comment%201","literal://string:comment%202"]}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class("Todo", C), collection_getter(C, "literal://string:construct%20test", "comments", Value).
=====result
[{"C":"c","Value":[""]}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class("Todo", C), collection_getter(C, "literal://string:construct%20test", "comments", Value).
=====result
[{"C":"c","Value":["literal://string:new%20comment%201"]}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class("Todo", C), collection_getter(C, "literal://string:construct%20test", "comments", Value).
=====result
[{"C":"c","Value":["literal://string:new%20comment%201","literal://string:new%20comment%202"]}]
=====query
subject_class("Todo", C), instance(C, X).
=====result
[{"C":"c","X":"literal://string:get%20proxy%20test"},{"C":"c","X":"literal://string:construct%20test"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test").
=====query
subject_class("Todo", C), instance(C, "literal://string:construct%20test").
=====result
[{"C":"c"}]
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:construct%20test").
=====query
subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test").
=====result
[{"C":"c"}]
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_getter(C, "literal://string:construct%20test", "state", Value).
=====result
[{"C":"c","Value":"todo://done"}]
=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), collection(C, "comments"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class(Class, C), property(C, "name"), property(C, "x"), property_setter(C, "top", _).
=====result
false
=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), collection(C, "comments"), property_setter(C, "state", _), property_setter(C, "title", _), property_setter(C, "top", _), collection_adder(C, "comments", _).
=====result
false
=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), collection(C, "comments"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), instance(C, X).
=====result
[{"C":"c","X":"literal://string:get%20proxy%20test"},{"C":"c","X":"literal://string:construct%20test"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test").
=====query
subject_class("Todo", C), instance(C, "literal://string:construct%20test").
=====result
[{"C":"c"}]
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:construct%20test").
=====query
subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test").
=====result
[{"C":"c"}]
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_getter(C, "literal://string:construct%20test", "state", Value).
=====result
[{"C":"c","Value":"todo://done"}]
=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), constructor(C, Actions).
=====result
[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"c"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://ready").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://ready", 1706790528552, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test").
=====result
[{"C":"c"}]
=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test").
=====result
[{"C":"c"}]
=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test").
=====result
[{"C":"c"}]
=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_getter(C, "literal://string:Decorated%20class%20construction%20test", "state", Value).
=====result
[{"C":"c","Value":"todo://ready"}]
=====query
subject_class("Todo", C), property_getter(C, "literal://string:Decorated%20class%20construction%20test", "title", Value).
=====result
false
=====query
subject_class("Todo", C), collection_getter(C, "literal://string:Decorated%20class%20construction%20test", "comments", Value).
=====result
[{"C":"c","Value":[""]}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class("Todo", C), property_getter(C, "literal://string:Decorated%20class%20construction%20test", "state", Value).
=====result
[{"C":"c","Value":"todo://review"}]
=====query
subject_class("Todo", C), collection_getter(C, "literal://string:Decorated%20class%20construction%20test", "comments", Value).
=====result
[{"C":"c","Value":[""]}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class("Todo", C), collection_getter(C, "literal://string:Decorated%20class%20construction%20test", "comments", Value).
=====result
[{"C":"c","Value":["literal://string:new%20comment"]}]
=====query
subject_class("Todo", C), instance(C, Instance).
=====result
[{"C":"c","Instance":"literal://string:get%20proxy%20test"},{"C":"c","Instance":"literal://string:construct%20test"},{"C":"c","Instance":"literal://string:Decorated%20class%20construction%20test"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:construct%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), instance(C, Instance), property_getter(C, Instance, "state", "todo://ready").
=====result
[{"C":"c","Instance":"literal://string:get%20proxy%20test"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_getter(C, "literal://string:get%20proxy%20test", "state", Value).
=====result
[{"C":"c","Value":"todo://ready"}]
=====query
subject_class("Todo", C), instance(C, Instance), property_getter(C, Instance, "state", "todo://done").
=====result
[{"C":"c","Instance":"literal://string:construct%20test"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:construct%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_getter(C, "literal://string:construct%20test", "state", Value).
=====result
[{"C":"c","Value":"todo://done"}]
=====query
subject_class("Todo", C), instance(C, Instance), triple("ad4m://self", _, Instance).
=====result
false
=====query
subject_class("Todo", C), instance(C, Instance).
=====result
[{"C":"c","Instance":"literal://string:get%20proxy%20test"},{"C":"c","Instance":"literal://string:construct%20test"},{"C":"c","Instance":"literal://string:Decorated%20class%20construction%20test"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:construct%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class("Todo", C), instance(C, Instance), triple("ad4m://self", _, Instance).
=====result
[{"C":"c","Instance":"literal://string:get%20proxy%20test"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), instance(C, Instance).
=====result
[{"C":"c","Instance":"literal://string:get%20proxy%20test"},{"C":"c","Instance":"literal://string:construct%20test"},{"C":"c","Instance":"literal://string:Decorated%20class%20construction%20test"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:construct%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_getter(C, "literal://string:get%20proxy%20test", "title", Value).
=====result
false
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

=====query
subject_class("Todo", C), property_getter(C, "literal://string:get%20proxy%20test", "title", Value).
=====result
[{"C":"c","Value":"literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"}]
=====query
subject_class(Class, C), property(C, "number").
=====result
false
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), constructor(C, Actions).
=====result
[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"c"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:Collection%20where%20test%20with%20prolog%20condition").
=====result
[{"C":"c"}]
=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:Collection%20where%20test%20with%20prolog%20condition").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


=====query
subject_class("Todo", C), collection_getter(C, "literal://string:Collection%20where%20test%20with%20prolog%20condition", "entries", Value).
=====result
[{"C":"c","Value":["literal://string:test%20message"]}]
=====query
subject_class("Todo", C), collection_getter(C, "literal://string:Collection%20where%20test%20with%20prolog%20condition", "likedMessages", Value).
=====result
false
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


=====query
subject_class("Todo", C), collection_getter(C, "literal://string:Collection%20where%20test%20with%20prolog%20condition", "likedMessages", Value).
=====result
[{"C":"c","Value":["literal://string:test%20message"]}]
=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), constructor(C, Actions).
=====result
[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"c"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:Custom%20getter%20test").
=====result
[{"C":"c"}]
=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:Custom%20getter%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_getter(C, "literal://string:Custom%20getter%20test", "isLiked", Value).
=====result
false
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


=====query
subject_class("Todo", C), property_getter(C, "literal://string:Custom%20getter%20test", "isLiked", Value).
=====result
[{"C":"c","Value":true}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


=====query
subject_class("Message", C), instance(C, Instance).
=====result
false
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


=====query
subject_class("Message", C), instance(C, Instance).
=====result
[{"C":"mqvvfluy","Instance":"test://message"}]
=====query
subject_class("Message", C), instance(C, "test://message").
=====result
[{"C":"mqvvfluy"}]
=====query
subject_class("Message", C), property(C, Property).
=====result
[{"C":"mqvvfluy","Property":"type"},{"C":"mqvvfluy","Property":"body"}]
=====query
subject_class("Message", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Message", C), property_resolve(C, "body").
=====result
false
=====query
subject_class("Message", C), property_setter(C, Property, Setter).
=====result
[{"C":"mqvvfluy","Property":"body","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"}]
=====query
subject_class("Message", C), property_resolve_language(C, "body", Language).
=====result
false
=====query
subject_class("Message", C), collection(C, Collection).
=====result
false
=====query
subject_class("Message", C), collection_adder(C, Collection, Adder).
=====result
false
=====query
subject_class("Message", C), collection_remover(C, Collection, Remover).
=====result
false
=====query
subject_class("Message", C), collection_setter(C, Collection, Setter).
=====result
false
=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), constructor(C, Actions).
=====result
[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"c"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:Collection%20where%20test").
=====result
[{"C":"c"}]
=====query
subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _).
=====result
[{"C":"c","Class":"Todo"}]
=====query
subject_class("Todo", C), instance(C, "literal://string:Collection%20where%20test").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property(C, Property).
=====result
[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}]
=====query
subject_class("Todo", C), property_resolve(C, "state").
=====result
false
=====query
subject_class("Todo", C), property_resolve(C, "title").
=====result
[{"C":"c"}]
=====query
subject_class("Todo", C), property_resolve(C, "isLiked").
=====result
false
=====query
subject_class("Todo", C), property_setter(C, Property, Setter).
=====result
[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), property_resolve_language(C, "state", Language).
=====result
false
=====query
subject_class("Todo", C), property_resolve_language(C, "title", Language).
=====result
[{"C":"c","Language":"literal"}]
=====query
subject_class("Todo", C), collection(C, Collection).
=====result
[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}]
=====query
subject_class("Todo", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}]
=====query
subject_class("Todo", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====query
subject_class("Todo", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


=====query
subject_class("Todo", C), collection_getter(C, "literal://string:Collection%20where%20test", "entries", Value).
=====result
[{"C":"c","Value":["literal://string:test%20message"]}]
=====query
subject_class("Todo", C), collection_getter(C, "literal://string:Collection%20where%20test", "messages", Value).
=====result
false
=====query
subject_class(Class, C), property(C, "type"), property(C, "body"), property_setter(C, "body", _).
=====result
[{"C":"mqvvfluy","Class":"Message"}]
=====query
subject_class("Message", C), constructor(C, Actions).
=====result
[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"ad4m://type\", target: \"ad4m://message\"}, {action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"mqvvfluy"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


=====query
subject_class(Class, C), property(C, "type"), property(C, "body"), property_setter(C, "body", _).
=====result
[{"C":"mqvvfluy","Class":"Message"}]
=====query
subject_class("Message", C), instance(C, "literal://string:test%20message").
=====result
[{"C":"mqvvfluy"}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "body"), property_setter(C, "body", _).
=====result
[{"C":"mqvvfluy","Class":"Message"}]
=====query
subject_class("Message", C), instance(C, "literal://string:test%20message").
=====result
[{"C":"mqvvfluy"}]
=====query
subject_class("Message", C), property(C, Property).
=====result
[{"C":"mqvvfluy","Property":"type"},{"C":"mqvvfluy","Property":"body"}]
=====query
subject_class("Message", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Message", C), property_resolve(C, "body").
=====result
false
=====query
subject_class("Message", C), property_setter(C, Property, Setter).
=====result
[{"C":"mqvvfluy","Property":"body","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"}]
=====query
subject_class("Message", C), property_resolve_language(C, "body", Language).
=====result
false
=====query
subject_class("Message", C), collection(C, Collection).
=====result
false
=====query
subject_class("Message", C), collection_adder(C, Collection, Adder).
=====result
false
=====query
subject_class("Message", C), collection_remover(C, Collection, Remover).
=====result
false
=====query
subject_class("Message", C), collection_setter(C, Collection, Setter).
=====result
false
=====query
subject_class("Todo", C), collection_getter(C, "literal://string:Collection%20where%20test", "messages", Value).
=====result
[{"C":"c","Value":["literal://string:test%20message"]}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), constructor(C, Actions).
=====result
[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"ad4m://type\", target: \"ad4m://recipe\"}]","C":"nzkpcwbu"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_setter(C, Property, Setter).
=====result
[{"C":"nzkpcwbu","Property":"name","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"},{"C":"nzkpcwbu","Property":"local","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://local\", target: \"value\", local: true}]"}]
=====query
subject_class("Recipe", C), property_resolve_language(C, "name", Language).
=====result
false
=====query
subject_class("Recipe", C), property_resolve_language(C, "local", Language).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"ingredientss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]","C":"nzkpcwbu","Collection":"commentss"}]
=====query
subject_class("Recipe", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"nzkpcwbu","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}]
=====query
subject_class("Recipe", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"nzkpcwbu","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), property_setter(C, "name", Setter).
=====result
[{"C":"nzkpcwbu","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"}]
=====query
subject_class("Recipe", C), property_resolve_language(C, "name", Language).
=====result
false
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test", 1706790532505, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class("Recipe", C), property_setter(C, "entries", Setter).
=====result
false
=====query
subject_class("Recipe", C), property_setter(C, "comments", Setter).
=====result
false
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://test"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://test"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), property_setter(C, "name", Setter).
=====result
[{"C":"nzkpcwbu","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"}]
=====query
subject_class("Recipe", C), property_resolve_language(C, "name", Language).
=====result
false
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class("Recipe", C), property_setter(C, "entries", Setter).
=====result
false
=====query
subject_class("Recipe", C), property_setter(C, "comments", Setter).
=====result
false
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://test1"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://test1"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class(Class, C), property(C, "className"), property(C, "generateSDNA").
=====result
false
=====query
subject_class("Recipe", C), instance(C, X).
=====result
[{"C":"nzkpcwbu","X":"literal://string:Active%20record%20implementation%20test"}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://test1"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), constructor(C, Actions).
=====result
[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"ad4m://type\", target: \"ad4m://recipe\"}]","C":"nzkpcwbu"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_setter(C, Property, Setter).
=====result
[{"C":"nzkpcwbu","Property":"name","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"},{"C":"nzkpcwbu","Property":"local","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://local\", target: \"value\", local: true}]"}]
=====query
subject_class("Recipe", C), property_resolve_language(C, "name", Language).
=====result
false
=====query
subject_class("Recipe", C), property_resolve_language(C, "local", Language).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"ingredientss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]","C":"nzkpcwbu","Collection":"commentss"}]
=====query
subject_class("Recipe", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"nzkpcwbu","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}]
=====query
subject_class("Recipe", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"nzkpcwbu","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), property_setter(C, "name", Setter).
=====result
[{"C":"nzkpcwbu","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"}]
=====query
subject_class("Recipe", C), property_resolve_language(C, "name", Language).
=====result
false
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class("Recipe", C), property_setter(C, "entries", Setter).
=====result
false
=====query
subject_class("Recipe", C), collection_setter(C, "commentss", Setter).
=====result
[{"C":"nzkpcwbu","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://collection_test"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://collection_test"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), constructor(C, Actions).
=====result
[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"ad4m://type\", target: \"ad4m://recipe\"}]","C":"nzkpcwbu"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test%20local%20link").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test%20local%20link").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_setter(C, Property, Setter).
=====result
[{"C":"nzkpcwbu","Property":"name","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"},{"C":"nzkpcwbu","Property":"local","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://local\", target: \"value\", local: true}]"}]
=====query
subject_class("Recipe", C), property_resolve_language(C, "name", Language).
=====result
false
=====query
subject_class("Recipe", C), property_resolve_language(C, "local", Language).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"ingredientss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]","C":"nzkpcwbu","Collection":"commentss"}]
=====query
subject_class("Recipe", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"nzkpcwbu","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}]
=====query
subject_class("Recipe", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"nzkpcwbu","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), property_setter(C, "name", Setter).
=====result
[{"C":"nzkpcwbu","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"}]
=====query
subject_class("Recipe", C), property_resolve_language(C, "name", Language).
=====result
false
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class("Recipe", C), property_setter(C, "entries", Setter).
=====result
false
=====query
subject_class("Recipe", C), property_setter(C, "comments", Setter).
=====result
false
=====query
subject_class("Recipe", C), property_setter(C, "local", Setter).
=====result
[{"C":"nzkpcwbu","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://local\", target: \"value\", local: true}]"}]
=====query
subject_class("Recipe", C), property_resolve_language(C, "local", Language).
=====result
false
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test%20local%20link").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://locallink"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "local", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://test"}]
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test%20local%20link").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://locallink"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "local", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://test"}]
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class(Class, C), property(C, "className"), property(C, "generateSDNA").
=====result
false
=====query
findall([Timestamp, Base], (subject_class("Recipe", C), instance(C, Base), link("ad4m://self", Predicate, Base, Timestamp, Author)), AllData), sort(AllData, SortedData), length(SortedData, DataLength).
=====result
[{"AllData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]],"DataLength":3,"SortedData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]]}]
=====query
findall([Timestamp, Base], (subject_class("Recipe", C), instance(C, Base), link("ad4m://self", Predicate, Base, Timestamp, Author)), AllData), sort(AllData, SortedData), reverse(SortedData, ReverseSortedData), paginate(ReverseSortedData, 1, 2, PageData).
=====result
[{"AllData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]],"PageData":[[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"]],"ReverseSortedData":[[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790532420,"literal://string:Active%20record%20implementation%20test"]],"SortedData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test%20local%20link").
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test").
=====result
[{"C":"nzkpcwbu"}]
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "type", Value).
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://locallink"}]
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://collection_test"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "local", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://test"}]
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "entries", Value).
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "ingredients", Value).
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "ingredients", Value).
=====result
false
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class(Class, C), property(C, "className"), property(C, "generateSDNA").
=====result
false
=====query
findall([Timestamp, Base], (subject_class("Recipe", C), instance(C, Base), link("ad4m://self", Predicate, Base, Timestamp, Author)), AllData), sort(AllData, SortedData), length(SortedData, DataLength).
=====result
[{"AllData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]],"DataLength":3,"SortedData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]]}]
=====query
findall([Timestamp, Base], (subject_class("Recipe", C), instance(C, Base), link("ad4m://self", Predicate, Base, Timestamp, Author)), AllData), sort(AllData, SortedData), reverse(SortedData, ReverseSortedData), paginate(ReverseSortedData, 2, 1, PageData).
=====result
[{"AllData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]],"PageData":[[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"]],"ReverseSortedData":[[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790532420,"literal://string:Active%20record%20implementation%20test"]],"SortedData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://collection_test"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}]
=====query
subject_class(Class, C), property(C, "className"), property(C, "generateSDNA").
=====result
false
=====query
subject_class("Recipe", C), instance(C, X).
=====result
[{"C":"nzkpcwbu","X":"literal://string:Active%20record%20implementation%20test"},{"C":"nzkpcwbu","X":"literal://string:Active%20record%20implementation%20collection%20test"},{"C":"nzkpcwbu","X":"literal://string:Active%20record%20implementation%20test%20local%20link"}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://test1"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://collection_test"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test%20local%20link").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://locallink"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "local", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://test"}]
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), destructor(C, Actions).
=====result
[{"Actions":"[{action: \"removeLink\", source: \"this\", predicate: \"ad4m://type\", target: \"ad4m://recipe\"}]","C":"nzkpcwbu"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class(Class, C), property(C, "className"), property(C, "generateSDNA").
=====result
false
=====query
subject_class("Recipe", C), instance(C, X).
=====result
[{"C":"nzkpcwbu","X":"literal://string:Active%20record%20implementation%20collection%20test"},{"C":"nzkpcwbu","X":"literal://string:Active%20record%20implementation%20test%20local%20link"}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://collection_test"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test%20local%20link").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://locallink"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "local", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://test"}]
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":[""]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), constructor(C, Actions).
=====result
[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"ad4m://type\", target: \"ad4m://recipe\"}]","C":"nzkpcwbu"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe", 1706790536140, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "string:Active%20record%20implementation%20collection%20test%20with%20where").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_setter(C, Property, Setter).
=====result
[{"C":"nzkpcwbu","Property":"name","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"},{"C":"nzkpcwbu","Property":"local","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://local\", target: \"value\", local: true}]"}]
=====query
subject_class("Recipe", C), property_resolve_language(C, "name", Language).
=====result
false
=====query
subject_class("Recipe", C), property_resolve_language(C, "local", Language).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_adder(C, Collection, Adder).
=====result
[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"ingredientss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]","C":"nzkpcwbu","Collection":"commentss"}]
=====query
subject_class("Recipe", C), collection_remover(C, Collection, Remover).
=====result
[{"C":"nzkpcwbu","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}]
=====query
subject_class("Recipe", C), collection_setter(C, Collection, Setter).
=====result
[{"C":"nzkpcwbu","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe", 1706790536140, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", 1706790536360, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "string:Active%20record%20implementation%20collection%20test%20with%20where").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), property_setter(C, "name", Setter).
=====result
[{"C":"nzkpcwbu","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"}]
=====query
subject_class("Recipe", C), property_resolve_language(C, "name", Language).
=====result
false
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe", 1706790536140, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", 1706790536360, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test", 1706790536453, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "string:Active%20record%20implementation%20collection%20test%20with%20where").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class("Recipe", C), collection_setter(C, "entriess", Setter).
=====result
[{"C":"nzkpcwbu","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://entries", "literal://string:test%20recipes").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe", 1706790536140, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", 1706790536360, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test", 1706790536453, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://entries", "literal://string:test%20recipes", 1706790536538, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal").
languageAddress("literal://string:test%20recipes", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal").
languageName("literal://string:test%20recipes", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "string:Active%20record%20implementation%20collection%20test%20with%20where").
expressionAddress("literal://string:test%20recipes", "string:test%20recipes").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class("Recipe", C), collection_setter(C, "commentss", Setter).
=====result
[{"C":"nzkpcwbu","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://entries", "literal://string:test%20recipes").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test1").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe", 1706790536140, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", 1706790536360, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test", 1706790536453, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://entries", "literal://string:test%20recipes", 1706790536538, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test", 1706790536620, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test1", 1706790536620, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal").
languageAddress("literal://string:test%20recipes", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal").
languageName("literal://string:test%20recipes", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "string:Active%20record%20implementation%20collection%20test%20with%20where").
expressionAddress("literal://string:test%20recipes", "string:test%20recipes").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://collection_test"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":["literal://string:test%20recipes"]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ingredients", Value).
=====result
false
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}]
=====consult
:- discontiguous(triple/3).
:- discontiguous(link/5).
triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready").
triple("literal://string:construct%20test", "todo://state", "todo://done").
triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201").
triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202").
triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review").
triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment").
triple("ad4m://self", "", "literal://string:get%20proxy%20test").
triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready").
triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup").
triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
triple("test://message", "ad4m://type", "ad4m://undefined").
triple("test://message", "ad4m://type", "ad4m://message").
triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready").
triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message").
triple("literal://string:test%20message", "ad4m://type", "ad4m://message").
triple("literal://string:test%20message", "todo://state", "todo://ready").
triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test").
triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink").
triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe").
triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://entries", "literal://string:test%20recipes").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test").
triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test1").
triple("literal://string:test%20recipes", "recipe://has_ingredient", "recipe://test").
link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe", 1706790536140, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", 1706790536360, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test", 1706790536453, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://entries", "literal://string:test%20recipes", 1706790536538, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test", 1706790536620, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test1", 1706790536620, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
link("literal://string:test%20recipes", "recipe://has_ingredient", "recipe://test", 1706790536809, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp").
:- discontiguous(reachable/2).
reachable(A,B) :- triple(A,_,B).
reachable(A,B) :- triple(A,_,X), reachable(X,B).
:- discontiguous(hiddenExpression/1).
:- discontiguous(languageAddress/2).
languageAddress("literal://string:Todo", "literal").
languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:get%20proxy%20test", "literal").
languageAddress("literal://string:construct%20test", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:new%20comment%201", "literal").
languageAddress("literal://string:new%20comment%202", "literal").
languageAddress("literal://string:Decorated%20class%20construction%20test", "literal").
languageAddress("literal://string:new%20comment", "literal").
languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageAddress("literal://string:Test", "literal").
languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageAddress("literal://string:test%20message", "literal").
languageAddress("literal://string:Custom%20getter%20test", "literal").
languageAddress("literal://string:Message", "literal").
languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageAddress("literal://string:Collection%20where%20test", "literal").
languageAddress("literal://string:Recipe", "literal").
languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
languageAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal").
languageAddress("literal://string:test%20recipes", "literal").
:- discontiguous(languageName/2).
languageName("literal://string:Todo", "literal").
languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:get%20proxy%20test", "literal").
languageName("literal://string:construct%20test", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:new%20comment%201", "literal").
languageName("literal://string:new%20comment%202", "literal").
languageName("literal://string:Decorated%20class%20construction%20test", "literal").
languageName("literal://string:new%20comment", "literal").
languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal").
languageName("literal://string:Test", "literal").
languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal").
languageName("literal://string:test%20message", "literal").
languageName("literal://string:Custom%20getter%20test", "literal").
languageName("literal://string:Message", "literal").
languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal").
languageName("literal://string:Collection%20where%20test", "literal").
languageName("literal://string:Recipe", "literal").
languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal").
languageName("literal://string:Active%20record%20implementation%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal").
languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal").
languageName("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal").
languageName("literal://string:test%20recipes", "literal").
:- discontiguous(expressionAddress/2).
expressionAddress("literal://string:Todo", "string:Todo").
expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test").
expressionAddress("literal://string:construct%20test", "string:construct%20test").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201").
expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202").
expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test").
expressionAddress("literal://string:new%20comment", "string:new%20comment").
expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D").
expressionAddress("literal://string:Test", "string:Test").
expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition").
expressionAddress("literal://string:test%20message", "string:test%20message").
expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test").
expressionAddress("literal://string:Message", "string:Message").
expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A").
expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test").
expressionAddress("literal://string:Recipe", "string:Recipe").
expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A").
expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test").
expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link").
expressionAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "string:Active%20record%20implementation%20collection%20test%20with%20where").
expressionAddress("literal://string:test%20recipes", "string:test%20recipes").
:- discontiguous(register_sdna_flow/2).
:- discontiguous(flowable/2).
:- discontiguous(flow_state/3).
:- discontiguous(start_action/2).
:- discontiguous(action/4).
:- discontiguous(subject_class/2).
:- discontiguous(constructor/2).
:- discontiguous(destructor/2).
:- discontiguous(instance/2).
:- discontiguous(property/2).
:- discontiguous(property_getter/4).
:- discontiguous(property_setter/3).
:- discontiguous(property_resolve/2).
:- discontiguous(property_resolve_language/3).
:- discontiguous(property_named_option/4).
:- discontiguous(collection/2).
:- discontiguous(collection_getter/4).
:- discontiguous(collection_setter/3).
:- discontiguous(collection_remover/3).
:- discontiguous(collection_adder/3).
:- discontiguous(p3_class_icon/2).
:- discontiguous(p3_class_color/2).
:- discontiguous(p3_instance_color/3).
:- use_module(library(lists)).

:- discontiguous(paginate/4).
paginate(Data, PageNumber, PageSize, PageData) :-
    PageNumber > 0,
    PageSize > 0,
    length(Data, DataLength),
    MaxSkip is max(0, DataLength - PageSize),
    SkipCount is min((PageNumber - 1) * PageSize, MaxSkip),
    skipN(Data, SkipCount, SkippedData),
    takeN(SkippedData, PageSize, PageData).

:- discontiguous(skipN/3).
skipN(Data, 0, Data).
skipN([_|Rest], N, SkippedData) :-
    N > 0,
    NextN is N - 1,
    skipN(Rest, NextN, SkippedData).

:- discontiguous(takeN/3).
takeN(_, 0, []).
takeN([Item|Rest], N, [Item|PageRest]) :-
    N > 0,
    NextN is N - 1,
    takeN(Rest, NextN, PageRest).        
        
subject_class("Todo", c).
constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(c, Base) :- triple(Base, "todo://state", _).

destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(c, "state").
property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value).
property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').

property(c, "title").
property_resolve(c, "title").
property_resolve_language(c, "title", "literal").
property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value).
property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]').

property(c, "isLiked").
property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true.

collection(c, "comments").
collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List).
collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]').
collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]').

collection(c, "entries").
collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List).
collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "messages").
collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List).
collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

collection(c, "likedMessages").
collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List).
collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]').
collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]').

subject_class("Test", srksdbln).
constructor(srksdbln, '[]').
destructor(srksdbln, '[]').

property(srksdbln, "number").
property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value).


subject_class("Message", mqvvfluy).
constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').
instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message").

destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]').

property(mqvvfluy, "type").
property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(mqvvfluy, "body").
property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value).
property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]').


subject_class("Recipe", nzkpcwbu).
constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').
instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe").

destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]').

property(nzkpcwbu, "type").
property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value).

property(nzkpcwbu, "name").
property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value).
property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]').

property(nzkpcwbu, "local").
property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value).
property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]').

collection(nzkpcwbu, "entries").
collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List).
collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "ingredients").
collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List).
collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]').
collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]').

collection(nzkpcwbu, "comments").
collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List).
collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]').
collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]').

=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://collection_test"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":["literal://string:test%20recipes"]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ingredients", Value).
=====result
[{"C":"nzkpcwbu","Value":["literal://string:test%20recipes"]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}]
=====query
subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _).
=====result
[{"C":"nzkpcwbu","Class":"Recipe"}]
=====query
subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where").
=====result
[{"C":"nzkpcwbu"}]
=====query
subject_class("Recipe", C), property(C, Property).
=====result
[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}]
=====query
subject_class("Recipe", C), property_resolve(C, "type").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "type", Value).
=====result
[{"C":"nzkpcwbu","Value":"ad4m://recipe"}]
=====query
subject_class("Recipe", C), property_resolve(C, "name").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "name", Value).
=====result
[{"C":"nzkpcwbu","Value":"recipe://collection_test"}]
=====query
subject_class("Recipe", C), property_resolve(C, "local").
=====result
false
=====query
subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "local", Value).
=====result
false
=====query
subject_class("Recipe", C), collection(C, Collection).
=====result
[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "entries", Value).
=====result
[{"C":"nzkpcwbu","Value":["literal://string:test%20recipes"]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ingredients", Value).
=====result
[{"C":"nzkpcwbu","Value":["literal://string:test%20recipes"]}]
=====query
subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "comments", Value).
=====result
[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}]
