h07271 s 00003/00003/00064 d D 1.4 94/09/27 15:13:07 buhrmann 4 3 c e s 00048/00005/00019 d D 1.3 94/09/21 15:02:52 buhrmann 3 2 c nope e s 00010/00814/00014 d D 1.2 94/09/20 16:45:22 buhrmann 2 1 c n e s 00828/00000/00000 d D 1.1 94/09/20 14:42:45 buhrmann 1 0 c date and time created 94/09/20 14:42:45 by buhrmann e u U f e 0 t T I 1 D 2

RTPLAST-script

E 2 I 2 The RPPP knowledge bases of the VEGA project E 2 D 2
rfi-l> exec rtplast
E 2
I 2
D 3

The production knowledge base

E 3 I 3

The RPPP knowledge bases of the VEGA project

E 3 E 2 D 2 rfi-l> style prolog rfi-p> rfi-p> %------------------------------------------------------------------------ rfi-p> %| A Declarative Knowledge Base on Recyclable Thermoplastics | rfi-p> %| Using Attribute Terms, Sorts, and Inheritance in RELFUN | rfi-p> %------------------------------------------------------------------------ rfi-p> rfi-p> % April 1994 rfi-p> % (c) Ulrich Buhrmann, Michael Sintek rfi-p> % rfi-p> emul rfe-p> replace rtplast % Reading file "/home/buhrmann/rfm/sampler/kunststoffe/rtplast.rfp" .. rfe-p> % uses the n-ary translation: rfe-p> orf n rfe-p> size (clauses 136) (literals 178) rfe-p> compile rfe-p> size (clauses 138) (literals 466) rfe-p> rfe-p> rfe-p> % Original object-centered version of RTPLAST rfe-p> %------------------------------------------------------------------------ rfe-p> rfe-p> % Two sample instances of one sample class of recyclable novodurs rfe-p> % (attribute-value pairs prefixed by the class name) rfe-p> % novodur-rec-1( rfe-p> % identifier[novodur_r_5320], rfe-p> % yield_stress[38], rfe-p> % yield_elangation[2.1], rfe-p> % tension_module_of_elasticity[2000], rfe-p> % dimensional_stability_hdt/a[90], rfe-p> % dimensional_stability_hdt/b[95]). rfe-p> % novodur-rec-1( rfe-p> % identifier[novodur_r_5322], rfe-p> % yield_stress[40], rfe-p> % yield_elangation[2.3], rfe-p> % tension_module_of_elasticity[2200], rfe-p> % dimensional_stability_hdt/a[96], rfe-p> % dimensional_stability_hdt/b[100]). rfe-p> rfe-p> % Goal retrieving the elasticity modules of both instances rfe-p> novodur-rec-1(identifier[I], tension_module_of_elasticity[E-module]) true I = novodur_r_5320 E-module = 2000 rfe-p> more true I = novodur_r_5322 E-module = 2200 rfe-p> more unknown rfe-p> inter rfi-p> pause() E 2 I 2 D 3

The product knowledge base

E 3 I 3

The production knowledge base

E 3 E 2 D 2 rfi-p> bye true rfi-p> emul rfe-p> rfe-p> % One sample prototype declared below novodur and above novodur-rec-1 rfe-p> % declare(proto-class[novodur-rec-1-prototype, rfe-p> % super[novodur]]). rfe-p> % rfe-p> % novodur-rec-1-prototype( rfe-p> % izod-impact_strength_23[60], rfe-p> % izod-impact_strength_-30[40], rfe-p> % izod-notched-bar_impact_strength_23[12], rfe-p> % izod-notched-bar_impact_strength_-30[6], rfe-p> % ball_thrust_hardness[90], rfe-p> % recycled[true], rfe-p> % additives[[]]). rfe-p> % rfe-p> % declare(indi-class[novodur-rec-1, rfe-p> % super[novodur-rec-1-prototype]]). rfe-p> rfe-p> % Goal additionally inheriting the ball thrust hardness from the prototype rfe-p> novodur-rec-1(identifier[I], tension_module_of_elasticity[E-module], ball_thrust_hardness[Bh]) true I = novodur_r_5320 E-module = 2000 Bh = 90 rfe-p> more true I = novodur_r_5322 E-module = 2200 Bh = 90 rfe-p> inter rfi-p> pause() E 2 I 2 D 3

The materials knowledge base

E 3 I 3

The product knowledge base

E 3 D 2 rfi-p> bye true rfi-p> emul rfe-p> rfe-p> % Querying the same attributes for all instances below thermoplastic rfe-p> % (the variable Indi-class will be bound to their class names) rfe-p> instance>(thermoplastic(), Indi-class(identifier[I], tension_module_of_elasticity[E-module], ball_thrust_hardness[Bh])) true Indi-class = hostalen-rest I = hostalen_ppk_1060_f1 E-module = 1300 Bh = 67 rfe-p> more true Indi-class = hostalen-ppn-1 I = hostalen_ppn_1060 E-module = 1300 Bh = 68 rfe-p> more true Indi-class = hostalen-ppn-1 I = hostalen_ppn_1060_f E-module = 1300 Bh = 68 rfe-p> more true Indi-class = hostalen-ppn-1 I = hostalen_ppn_1060_f1 E-module = 1300 Bh = 68 rfe-p> more true Indi-class = hostalen-ppn-1 I = hostalen_ppn_1060_f3 E-module = 1300 Bh = 68 rfe-p> more true Indi-class = hostalen-ppn-1 I = hostalen_ppn_2060 E-module = 1300 Bh = 68 rfe-p> more true Indi-class = hostalen-ppn-1 I = hostalen_ppn_4160 E-module = 1300 Bh = 68 rfe-p> more true Indi-class = novodur-rec-1 I = novodur_r_5320 E-module = 2000 Bh = 90 rfe-p> more true Indi-class = novodur-rec-1 I = novodur_r_5322 E-module = 2200 Bh = 90 rfe-p> inter rfi-p> pause() E 2 I 2 E 2 D 2 rfi-p> bye true rfi-p> rfi-p> novodur-rec-1(| All) true All = [[], 90, Density1391*6, 90, 95, novodur_r_5320, 40, Izod-impact_strength_01376*8, 60, 6, Izod-notched-bar_impact_strength_01379*8, 12, Melting_index_mfi_11393*6, Melting_index_mfi_1_stress1394*6, Melting_index_mfi_1_temperature1395*6, Melting_index_mfi_21396*6, Melting_index_mfi_2_stress1397*6, Melting_index_mfi_2_temperature1398*6, Melting_index_mfi_31399*6, Melting_index_mfi_3_stress1400*6, Melting_index_mfi_3_temperature1401*6, Notched-bar_impact_strength1381*8, bayer, recyclable-rule, true, Stress-strain1411*10, Tension_module_of_criep_1000_h1382*8, Tension_module_of_criep_1_h1383*8, 2000, Tension_notched-bar_impact_strength1385*8, Used-for1414*12, Vicat_a/501386*8, Vicat_b/501387*8, Volume_per_unit_time_mvr_11404*6, Volume_per_unit_time_mvr_1_stress1405*6, Volume_per_unit_time_mvr_1_temperature1406*6, Volume_per_unit_time_mvr_21407*6, Volume_per_unit_time_mvr_2_stress1408*6, Volume_per_unit_time_mvr_2_temperature1409*6, 2.1, 38] rfi-p> rfi-p> pause() E 2 I 2 D 3

Comments

E 3 I 3

The materials knowledge base

Comments

E 3 E 2 D 2 rfi-p> bye true rfi-p> rfi-p> novodur-rec-1(_, Ball_thrust_hardness, _, _, _, Identifier | _) true Ball_thrust_hardness = 90 Identifier = novodur_r_5320 rfi-p> rfi-p> pause() rfi-p> bye true rfi-p> rfi-p> trace novodur-rec-1 novodur-rec-1-prototype rfi-p> novodur-rec-1(_, Ball_thrust_hardness, _, _, _, Identifier | _) >1 novodur-rec-1(Additives1989*1, Ball_thrust_hardness1990*1, Density1991*1, 90, 95, novodur_r_5320, Izod-impact_strength_-301995*1, Izod-impact_strength_01996*1, Izod-impact_strength_231997*1, Izod-notched-bar_impact_strength_-301998*1, Izod-notched-bar_impact_strength_01999*1, Izod-notched-bar_impact_strength_232000*1, Melting_index_mfi_12001*1, Melting_index_mfi_1_stress2002*1, Melting_index_mfi_1_temperature2003*1, Melting_index_mfi_22004*1, Melting_index_mfi_2_stress2005*1, Melting_index_mfi_2_temperature2006*1, Melting_index_mfi_32007*1, Melting_index_mfi_3_stress2008*1, Melting_index_mfi_3_temperature2009*1, Notched-bar_impact_strength2010*1, Producer2011*1, Recyclable2012*1, Recycled2013*1, Stress-strain2014*1, Tension_module_of_criep_1000_h2015*1, Tension_module_of_criep_1_h2016*1, 2000, Tension_notched-bar_impact_strength2018*1, Used-for2019*1, Vicat_a/502020*1, Vicat_b/502021*1, Volume_per_unit_time_mvr_12022*1, Volume_per_unit_time_mvr_1_stress2023*1, Volume_per_unit_time_mvr_1_temperature2024*1, Volume_per_unit_time_mvr_22025*1, Volume_per_unit_time_mvr_2_stress2026*1, Volume_per_unit_time_mvr_2_temperature2027*1, 2.1, 38) :- >1 novodur-rec-1-prototype(Additives1948*9, 90, Density1950*9, 90, 95, novodur_r_5320, 40, Izod-impact_strength_01955*9, 60, 6, Izod-notched-bar_impact_strength_01958*9, 12, Melting_index_mfi_11960*9, Melting_index_mfi_1_stress1961*9, Melting_index_mfi_1_temperature1962*9, Melting_index_mfi_21963*9, Melting_index_mfi_2_stress1964*9, Melting_index_mfi_2_temperature1965*9, Melting_index_mfi_31966*9, Melting_index_mfi_3_stress1967*9, Melting_index_mfi_3_temperature1968*9, Notched-bar_impact_strength1969*9, Producer1970*9, Recyclable1971*9, true, Stress-strain1973*9, Tension_module_of_criep_1000_h1974*9, Tension_module_of_criep_1_h1975*9, 2000, Tension_notched-bar_impact_strength1977*9, Used-for1978*9, Vicat_a/501979*9, Vicat_b/501980*9, Volume_per_unit_time_mvr_11981*9, Volume_per_unit_time_mvr_1_stress1982*9, Volume_per_unit_time_mvr_1_temperature1983*9, Volume_per_unit_time_mvr_21984*9, Volume_per_unit_time_mvr_2_stress1985*9, Volume_per_unit_time_mvr_2_temperature1986*9, 2.1, 38) :- <1 novodur-rec-1-prototype([], 90, Density1391*20, 90, 95, novodur_r_5320, 40, Izod-impact_strength_01376*22, 60, 6, Izod-notched-bar_impact_strength_01379*22, 12, Melting_index_mfi_11393*20, Melting_index_mfi_1_stress1394*20, Melting_index_mfi_1_temperature1395*20, Melting_index_mfi_21396*20, Melting_index_mfi_2_stress1397*20, Melting_index_mfi_2_temperature1398*20, Melting_index_mfi_31399*20, Melting_index_mfi_3_stress1400*20, Melting_index_mfi_3_temperature1401*20, Notched-bar_impact_strength1381*22, bayer, recyclable-rule, true, Stress-strain1411*24, Tension_module_of_criep_1000_h1382*22, Tension_module_of_criep_1_h1383*22, 2000, Tension_notched-bar_impact_strength1385*22, Used-for1414*26, Vicat_a/501386*22, Vicat_b/501387*22, Volume_per_unit_time_mvr_11404*20, Volume_per_unit_time_mvr_1_stress1405*20, Volume_per_unit_time_mvr_1_temperature1406*20, Volume_per_unit_time_mvr_21407*20, Volume_per_unit_time_mvr_2_stress1408*20, Volume_per_unit_time_mvr_2_temperature1409*20, 2.1, 38) :- <1 novodur-rec-1([], 90, Density1391*20, 90, 95, novodur_r_5320, 40, Izod-impact_strength_01376*22, 60, 6, Izod-notched-bar_impact_strength_01379*22, 12, Melting_index_mfi_11393*20, Melting_index_mfi_1_stress1394*20, Melting_index_mfi_1_temperature1395*20, Melting_index_mfi_21396*20, Melting_index_mfi_2_stress1397*20, Melting_index_mfi_2_temperature1398*20, Melting_index_mfi_31399*20, Melting_index_mfi_3_stress1400*20, Melting_index_mfi_3_temperature1401*20, Notched-bar_impact_strength1381*22, bayer, recyclable-rule, true, Stress-strain1411*24, Tension_module_of_criep_1000_h1382*22, Tension_module_of_criep_1_h1383*22, 2000, Tension_notched-bar_impact_strength1385*22, Used-for1414*26, Vicat_a/501386*22, Vicat_b/501387*22, Volume_per_unit_time_mvr_11404*20, Volume_per_unit_time_mvr_1_stress1405*20, Volume_per_unit_time_mvr_1_temperature1406*20, Volume_per_unit_time_mvr_21407*20, Volume_per_unit_time_mvr_2_stress1408*20, Volume_per_unit_time_mvr_2_temperature1409*20, 2.1, 38) :- true Ball_thrust_hardness = 90 Identifier = novodur_r_5320 rfi-p> nospy rfi-p> rfi-p> pause() rfi-p> bye true rfi-p> rfi-p> rfi-p> % Translated sorted Horn-logic version of RTPLAST rfi-p> %------------------------------------------------------------------------ rfi-p> rfi-p> replace rtplast % Reading file "/home/buhrmann/rfm/sampler/kunststoffe/rtplast.rfp" .. rfi-p> % uses the sorted version: rfi-p> orf 2 rfi-p> size (clauses 136) (literals 178) rfi-p> undeclare rfi-p> unorf rfi-p> size (clauses 265) (literals 342) rfi-p> inter rfi-p> pause() rfi-p> bye true rfi-p> rfi-p> % listing of one sample class of recyclable novodurs rfi-p> % (class name becomes unary predicate) rfi-p> l novodur-rec-1 novodur-rec-1(novodur_r_5320). novodur-rec-1(novodur_r_5322). rfi-p> rfi-p> % `object centered' LISTINGS of the sample instances novodur_r_5320 rfi-p> % and novodur_r_5322 rfi-p> % (attributes become binary predicates, instances copied into first rfi-p> % argument) rfi-p> l Attribute(novodur_r_5320, Value) yield_stress(novodur_r_5320, 38). yield_elangation(novodur_r_5320, 2.1). tension_module_of_elasticity(novodur_r_5320, 2000). dimensional_stability_hdt/a(novodur_r_5320, 90). dimensional_stability_hdt/b(novodur_r_5320, 95). cost(novodur_r_5320, 4.3). rfi-p> l Attribute(novodur_r_5322, Value) yield_stress(novodur_r_5322, 40). yield_elangation(novodur_r_5322, 2.3). tension_module_of_elasticity(novodur_r_5322, 2200). dimensional_stability_hdt/a(novodur_r_5322, 96). dimensional_stability_hdt/b(novodur_r_5322, 100). cost(novodur_r_5322, 4.5). rfi-p> rfi-p> % `attribute centered' LISTING of tension_module_of_elasticity rfi-p> % (`:' associates the sort hostalen-ppn-1-prototype with the Variable X) rfi-p> l tension_module_of_elasticity tension_module_of_elasticity(hostalen_ppk_1060_f1, 1300). tension_module_of_elasticity(X : hostalen-ppn-1-prototype, 1300). tension_module_of_elasticity(novodur_r_5320, 2000). tension_module_of_elasticity(novodur_r_5322, 2200). rfi-p> rfi-p> pause() rfi-p> bye true rfi-p> rfi-p> % meta-information about the attribute dimensional_stability_hdt/a rfi-p> l Attribute(dimensional_stability_hdt/a, Value) method_for_test(dimensional_stability_hdt/a, [iso_75, din_53461]). measurement(dimensional_stability_hdt/a, c). rfi-p> rfi-p> pause() rfi-p> bye true rfi-p> rfi-p> untype rfi-p> uncomma rfi-p> size (clauses 265) (literals 404) rfi-p> rfi-p> % listing of tension_module_of_elasticity after transformation of rfi-p> % `:' sorts to unary predicates rfi-p> l tension_module_of_elasticity tension_module_of_elasticity(hostalen_ppk_1060_f1, 1300). tension_module_of_elasticity(X, 1300) :- hostalen-ppn-1-prototype(X). tension_module_of_elasticity(novodur_r_5320, 2000). tension_module_of_elasticity(novodur_r_5322, 2200). rfi-p> rfi-p> pause() rfi-p> bye true rfi-p> rfi-p> % Earlier object-centered query rfi-p> % novodur-rec-1(identifier[I], tension_module_of_elasticity[E-module]) rfi-p> % becomes equivalent Ident-conjoined Horn query rfi-p> novodur-rec-1(Ident), tension_module_of_elasticity(Ident, E-module) true Ident = novodur_r_5320 E-module = 2000 rfi-p> more true Ident = novodur_r_5322 E-module = 2200 rfi-p> more unknown rfi-p> rfi-p> pause() rfi-p> bye true rfi-p> rfi-p> % The sample protoype Horn-rule-defined above novodur-rec-1 rfi-p> l novodur-rec-1-prototype novodur-rec-1-prototype(X) :- novodur-rec-1(X). rfi-p> rfi-p> % `attribute-centered' listing shows ball_thrust_hardness of the rfi-p> % novodur prototype and of other plastics rfi-p> l ball_thrust_hardness ball_thrust_hardness(hostalen_ppk_1060_f1, 67). ball_thrust_hardness(X, 68) :- hostalen-ppn-1-prototype(X). ball_thrust_hardness(X, 90) :- novodur-rec-1-prototype(X). rfi-p> rfi-p> pause() rfi-p> bye true rfi-p> rfi-p> % Earlier object-centered, inheriting goal rfi-p> % novodur-rec-1(identifier[I], rfi-p> % tension_module_of_elasticity[E-module], rfi-p> % ball_thrust_hardness[Bh]) rfi-p> % becomes equivalent I-conjoined Horn query, inheriting via the above rules rfi-p> novodur-rec-1(I), tension_module_of_elasticity(I, E-module), ball_thrust_hardness(I, Bh) true I = novodur_r_5320 E-module = 2000 Bh = 90 rfi-p> more true I = novodur_r_5322 E-module = 2200 Bh = 90 rfi-p> more unknown rfi-p> rfi-p> pause() rfi-p> bye true rfi-p> rfi-p> % Query of all instances below thermoplastic with fixed ball_thrust_hardness rfi-p> % instance>(thermoplastic(), rfi-p> % Indi-class(identifier[I], rfi-p> % tension_module_of_elasticity[E-module], rfi-p> % ball_thrust_hardness[90])) rfi-p> % becomes Horn conjunction starting with thermoplastic predicate rfi-p> % (no Indi-class variable) rfi-p> thermoplastic(I), tension_module_of_elasticity(I, E-module), ball_thrust_hardness(I, 90) true I = novodur_r_5320 E-module = 2000 rfi-p> more true I = novodur_r_5322 E-module = 2200 rfi-p> more unknown rfi-p>
E 2
D 2 RTPLAST-script | Uli Buhrmann | buhrmann@dfki.uni-kl.de E 2 I 2 The RPPP knowledge bases of the VEGA project | Uli Buhrmann | buhrmann@dfki.uni-kl.de E 2
E 1