One of the extensions is that rdf_meta/1 information can be specified through exported predicates, as in:
:- module(my_module, [ my_predicate(r,t) ]).
Which expands to a call of rdf_meta(my_predicate(r,t))
.
Predicates may further be marked as goals for computable properties, as in:
:- module(my_module, [ my_predicate(r,r) -> onto:my_property ]).
Where my_predicate
is called to compute the relation onto:my_property
between the entities that are bound to the arguments of the predicate.
Finally, a notion of interface is added which is documented below.
__init__.pl
.implements(InterfaceFile)
in the list of exported terms.
file a: :- interface(iface, [ test(r,r) ]). file b: :- module(iface_impl, [ implements(iface), test2(t), test3/2 ]).