<commit_before>================================================================
Logtalk - Open source object-oriented logic programming language
Release 2.42.3

Copyright (c) 1998-2011 <NAME>.        All Rights Reserved.
Logtalk is free software.  You can redistribute it and/or modify
it under the terms of the "Artistic License 2.0" as published by 
The Perl Foundation. Consult the "LICENSE.txt" file for details.
================================================================


To load this example and for sample queries, please see the SCRIPT.txt file.

This folder contains a set of simple examples illustrating how to use B-Prolog
constraint support with Logtalk. These examples are adapted with permission 
from the original author, <NAME>.

The B-Prolog ::/2 finite-domain built-in predicate clashes with the Logtalk 
::/2 message sending operator. The solution is to use instead the alternative
B-Prolog in/2 built-in predicate.

The built-in predicate_property/2 predicate fails to report some of the 
constraint predicates as built-in predicates. The solution is to encapsulate
calls to these predicates using the {}/1 Logtalk control construct.

When compiling objects and categories making use of B-Prolog Action Rules, the
object "action_rules_hook" must be used as a hook object.<commit_msg>Minor documentation updates for the "constraints/bp" example.<commit_after>================================================================
Logtalk - Open source object-oriented logic programming language
Release 2.42.3

Copyright (c) 1998-2011 <NAME>.        All Rights Reserved.
Logtalk is free software.  You can redistribute it and/or modify
it under the terms of the "Artistic License 2.0" as published by 
The Perl Foundation. Consult the "LICENSE.txt" file for details.
================================================================


To load this example and for sample queries, please see the SCRIPT.txt file.

This folder contains a set of simple examples illustrating how to use B-Prolog
constraint support with Logtalk. These examples are adapted with permission 
from the original author, <NAME>.

The B-Prolog ::/2 finite-domain built-in predicate clashes with the Logtalk 
::/2 message sending operator. The solution is to use instead the alternative
B-Prolog in/2 built-in predicate.

The built-in predicate_property/2 predicate fails to report some of the 
constraint predicates as built-in predicates. The solution is to encapsulate
calls to these predicates using the {}/1 Logtalk control construct.

When compiling objects and categories making use of B-Prolog Action Rules, the
object "action_rules_hook" must be used as a hook object. In alternative, you
can simply add the following directive to objects and categories containing
action rules:

	:- annotation('=>'(0,0)).
{'fraction_non_alphanumeric': 0.14041339985744833, 'fraction_numerical': 0.014255167498218105, 'mean_word_length': 4.909473684210527, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 8, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5879377', 'n_tokens_mistral': 698, 'n_tokens_neox': 640, 'n_words': 354}