module examples.implyclass; /* import factpp reasoner = factpp.Reasoner() top_data = reasoner.data_top() cls = reasoner.concept('A') role = reasoner.data_role('R') reasoner.set_d_domain(role, cls) reasoner.set_d_range(role, reasoner.type_float) rt = reasoner.d_cardinality(1, role, top_data) reasoner.implies_concepts(cls, rt) # a is instance of A due to use of R a = reasoner.individual('a') reasoner.value_of_float(a, role, 1) print('a added, consistent:', reasoner.is_consistent()) print('a instance of A:', reasoner.is_instance(a, cls)) # vim: sw=4:et:ai */ unittest { import std.stdio; import fact; writeln("Test imply-class"); auto reasoner = fact_reasoning_kernel_new(); auto top_data = reasoner.fact_data_top(); auto cls = reasoner.fact_concept("A"); auto role = reasoner.fact_data_role("R"); reasoner.fact_set_d_domain(role,cls); auto real_data_type = reasoner.fact_get_real_data_type(); reasoner.fact_set_d_range(role,real_data_type); auto rt = reasoner.fact_d_cardinality(1, role, top_data); reasoner.fact_implies_concepts(cls, rt); // a is instance of A due to use of R auto a = reasoner.fact_individual("a"); auto value = reasoner.fact_data_value("1", real_data_type); reasoner.fact_value_of(a, role, value); assert(reasoner.fact_is_kb_consistent()); //writeln("a added, consistent:", reasoner.fact_is_kb_consistent()); assert(reasoner.fact_is_instance(a, cls)); //writeln("a instance of A:", reasoner.fact_is_instance(a, cls)); }