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

Copyright (c) 1998-2010 <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.
================================================================


% start by loading the example:

| ?- logtalk_load(engines(loader)).
...


% both cars provide the same interface, declared in the protocol
% that is implemented by the categories imported by each object:

| ?- sedan::current_predicate(P).

P = reference/1 ;
P = capacity/1 ;
P = cylinders/2 ;
P = horsepower_rpm/2 ;
P = bore_stroke/2 ;
P = fuel/1
yes


| ?- coupe::current_predicate(P).

P = reference/1 ;
P = capacity/1 ;
P = cylinders/2 ;
P = horsepower_rpm/2 ;
P = bore_stroke/2 ;
P = fuel/1 ;
yes


% the sedan engine properties are the ones defined in the corresponding 
% imported category (classic):

| ?- sedan::(reference(Name), cylinders(Cylinders), horsepower_rpm(HP, RPM)).

Name = 'M180.940'<commit_msg>Corrected some typos in the sample queries. Thanks to <NAME> for the bug report.<commit_after>================================================================
Logtalk - Open source object-oriented logic programming language
Release 2.39.1

Copyright (c) 1998-2010 <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.
================================================================


% start by loading the example:

| ?- logtalk_load(engines(loader)).
...


% both cars provide the same interface, declared in the protocol
% that is implemented by the categories imported by each object:

| ?- sedan::current_predicate(P).

P = reference/1 ;
P = capacity/1 ;
P = cylinders/1 ;
P = horsepower_rpm/2 ;
P = bore_stroke/2 ;
P = fuel/1
yes


| ?- coupe::current_predicate(P).

P = reference/1 ;
P = capacity/1 ;
P = cylinders/1 ;
P = horsepower_rpm/2 ;
P = bore_stroke/2 ;
P = fuel/1 ;
yes


% the sedan engine properties are the ones defined in the corresponding 
% imported category (classic):

| ?- sedan::(reference(Name), cylinders(Cylinders), horsepower_rpm(HP, RPM)).

Name = 'M180.940'
{'fraction_non_alphanumeric': 0.20089104900769542, 'fraction_numerical': 0.025921425678412314, 'mean_word_length': 4.346320346320346, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 6, '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': '330374', 'n_tokens_mistral': 770, 'n_tokens_neox': 700, 'n_words': 256}