Admin User, created Mar 04. 2025
###
# Modern Albufeira Prolog Interpreter
#
# Warranty & Liability
# To the extent permitted by applicable law and unless explicitly
# otherwise agreed upon, XLOG Technologies AG makes no warranties
# regarding the provided information. XLOG Technologies AG assumes
# no liability that any problems might be solved with the information
# provided by XLOG Technologies AG.
#
# Rights & License
# All industrial property rights regarding the information - copyright
# and patent rights in particular - are the sole property of XLOG
# Technologies AG. If the company was not the originator of some
# excerpts, XLOG Technologies AG has at least obtained the right to
# reproduce, change and translate the information.
#
# Reproduction is restricted to the whole unaltered document. Reproduction
# of the information is only allowed for non-commercial uses. Selling,
# giving away or letting of the execution of the library is prohibited.
# The library can be distributed as part of your applications and libraries
# for execution provided this comment remains unchanged.
#
# Restrictions
# Only to be distributed with programs that add significant and primary
# functionality to the library. Not to be distributed with additional
# software intended to replace any components of the library.
#
# Trademarks
# Jekejeke is a registered trademark of XLOG Technologies AG.
##
from nova.core import (
exec_build, exec_unify, add, make_check, deref,
is_provable, is_cache)
################################################################
# kb_is_link/1, ir_is_site/1 and ir_site_name/2 #
################################################################
###
# kb_is_link(Q): internal only
# The built-in succeeds if Q is a provable.
##
def test_kb_is_link(args):
peek = deref(exec_build(args[0]))
return is_provable(peek)
###
# ir_is_site(Q): internal only
# The built-in succeeds if Q is a cache.
##
def test_ir_is_site(args):
cache = deref(exec_build(args[0]))
return is_cache(cache)
###
# ir_site_name(Q, F): internal only
# The built-in succeeds in F with the functor of the cache Q.
##
def test_ir_site_name(args):
cache = deref(exec_build(args[0]))
return exec_unify(args[1], cache.name)
################################################################
# Asm Lib Init #
################################################################
def main():
add("kb_is_link", 1, make_check(test_kb_is_link))
add("ir_is_site", 1, make_check(test_ir_is_site))
add("ir_site_name", 2, make_check(test_ir_site_name))