Skip to content

Commit b4502da

Browse files
author
lukas.molzberger
committed
- work on setInstantiable
1 parent 517250f commit b4502da

File tree

12 files changed

+65
-48
lines changed

12 files changed

+65
-48
lines changed

core/src/main/java/network/aika/elements/activations/CategoryActivation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public CategoryActivation(int id, Document doc, CategoryNeuron neuron) {
3737

3838
@Override
3939
public CategoryInputLink getActiveCategoryInputLink() {
40-
throw new UnsupportedOperationException();
40+
return null;
4141
}
4242

4343
@Override

core/src/main/java/network/aika/elements/neurons/CategoryNeuron.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public CategoryNeuron(Model m, RefType rt) {
3636
}
3737

3838
@Override
39-
public CategoryInputSynapse makeAbstract() {
39+
public CategoryInputSynapse makeAbstract(boolean instantiable) {
4040
throw new UnsupportedOperationException();
4141
}
4242

core/src/main/java/network/aika/elements/neurons/Neuron.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ public boolean isAbstract() {
303303
return getCategoryInputSynapse() != null;
304304
}
305305

306-
public abstract CategoryInputSynapse makeAbstract();
306+
public abstract CategoryInputSynapse makeAbstract(boolean instantiable);
307307

308308
public abstract CategoryInputSynapse getCategoryInputSynapse();
309309

core/src/main/java/network/aika/elements/neurons/types/BindingNeuron.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,16 @@ public static BindingNeuron create(Model m, String label) {
9090
}
9191

9292
@Override
93-
public BindingCategoryInputSynapse makeAbstract() {
93+
public BindingCategoryInputSynapse makeAbstract(boolean instantiable) {
94+
setInstantiable(true);
95+
9496
BindingCategoryNeuron bindingCategory = new BindingCategoryNeuron(getModel(), CATEGORY)
97+
.setInstantiable(instantiable)
9598
.setLabel(getLabel() + CATEGORY_LABEL);
9699

97100
BindingCategoryInputSynapse s = new BindingCategoryInputSynapse()
98-
.link(bindingCategory, this);
101+
.link(bindingCategory, this)
102+
.setInstantiable(instantiable, instantiable);
99103

100104
s.setInitialCategorySynapseWeight(1.0);
101105

core/src/main/java/network/aika/elements/neurons/types/InhibitoryNeuron.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,16 @@ public InhibitoryNeuron(Model m, RefType rt) {
5555
}
5656

5757
@Override
58-
public InhibitoryCategoryInputSynapse makeAbstract() {
58+
public InhibitoryCategoryInputSynapse makeAbstract(boolean instantiable) {
59+
setInstantiable(true);
60+
5961
InhibitoryCategoryNeuron inhibCategory = new InhibitoryCategoryNeuron(getModel(), CATEGORY)
62+
.setInstantiable(instantiable)
6063
.setLabel(getLabel() + CATEGORY_LABEL);
6164

6265
InhibitoryCategoryInputSynapse s = new InhibitoryCategoryInputSynapse()
63-
.link(inhibCategory, this);
66+
.link(inhibCategory, this)
67+
.setInstantiable(instantiable, instantiable);
6468

6569
s.setInitialCategorySynapseWeight(1.0);
6670

core/src/main/java/network/aika/elements/neurons/types/PatternNeuron.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,16 @@ public static PatternNeuron create(Model m, String label) {
7878
}
7979

8080
@Override
81-
public PatternCategoryInputSynapse makeAbstract() {
81+
public PatternCategoryInputSynapse makeAbstract(boolean instantiable) {
82+
setInstantiable(true);
83+
8284
PatternCategoryNeuron patternCategory = new PatternCategoryNeuron(getModel(), CATEGORY)
85+
.setInstantiable(instantiable)
8386
.setLabel(getCategoryLabel(getLabel()));
8487

8588
PatternCategoryInputSynapse s = new PatternCategoryInputSynapse()
86-
.link(patternCategory, this);
89+
.link(patternCategory, this)
90+
.setInstantiable(instantiable, instantiable);
8791

8892
s.setInitialCategorySynapseWeight(1.0);
8993

core/src/main/java/network/aika/queue/steps/Instantiation.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import network.aika.queue.ElementStep;
2323
import network.aika.queue.Phase;
2424

25+
import java.util.stream.Stream;
26+
2527
import static network.aika.queue.Phase.INSTANTIATION;
2628

2729

@@ -31,12 +33,17 @@
3133
*/
3234
public class Instantiation extends ElementStep<Activation> {
3335

34-
public static void add(Activation act) {
36+
public static void add(Activation<?> act) {
3537
if(act.instantiationIsQueued)
3638
return;
3739

3840
act.instantiationIsQueued = true;
3941

42+
if(act.getTemplateInstances()
43+
.anyMatch(Activation::isActiveTemplateInstance)
44+
)
45+
return;
46+
4047
add(new Instantiation(act));
4148
}
4249

text/src/main/java/network/aika/meta/Dictionary.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public void initStaticNeurons() {
6666
.setTargetNet(INPUT_TOKEN_NET_TARGET)
6767
.setPersistent(true);
6868

69-
inputToken.makeAbstract()
69+
inputToken.makeAbstract(false)
7070
.setWeight(3.0)
7171
.setPropagable(true)
7272
.adjustBias();

text/src/main/java/network/aika/meta/entities/EntityModel.java

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -130,21 +130,18 @@ public void initTemplateNeurons() {
130130
.setPersistent(true)
131131
.setTypeDescription("Abstract Entity Pattern Neuron");
132132

133-
entityPattern.makeAbstract()
133+
entityPattern.makeAbstract(true)
134134
.setWeight(getDefaultInputCategorySynapseWeight(entityPattern.getType()))
135135
.adjustBias()
136-
.setInstantiable(true, true)
137136
.getInput()
138-
.setPersistent(true)
139-
.setInstantiable(true);
137+
.setPersistent(true);
140138

141139
addInputObjectSynapse(
142140
entityPattern,
143141
topicModel.getTopicBindingNeuron(),
144142
10.0,
145143
true
146-
)
147-
.setInstantiable(false, false);
144+
);
148145

149146
entityBN = addBindingNeuron(
150147
phraseModel.getPatternNeuron(),
@@ -155,12 +152,10 @@ public void initTemplateNeurons() {
155152
)
156153
.setTypeDescription("Abstract Phrase -> Entity BN");
157154

158-
entityBN.makeAbstract()
155+
entityBN.makeAbstract(true)
159156
.setWeight(getDefaultInputCategorySynapseWeight(entityBN.getType()))
160157
.adjustBias()
161-
.setInstantiable(true, true)
162-
.getInput()
163-
.setInstantiable(true);
158+
.getInput();
164159

165160
addPositiveFeedbackLoop(
166161
entityBN,
@@ -177,11 +172,9 @@ public void initTemplateNeurons() {
177172
.setPersistent(true)
178173
.setTypeDescription("Abstract Phrase -> Entity InhibN");
179174

180-
inhibitoryN.makeAbstract()
181-
.setInstantiable(true, true)
175+
inhibitoryN.makeAbstract(true)
182176
.setWeight(1.0)
183-
.getInput()
184-
.setInstantiable(true);
177+
.getInput();
185178

186179
addInhibitoryLoop(
187180
entityBN,
@@ -196,12 +189,10 @@ public void initTemplateNeurons() {
196189
BINDING_NET_TARGET
197190
).setTypeDescription("Abstract Topic -> Entity BN");
198191

199-
topicBN.makeAbstract()
192+
topicBN.makeAbstract(true)
200193
.setWeight(getDefaultInputCategorySynapseWeight(topicBN.getType()))
201194
.adjustBias()
202-
.setInstantiable(true, true)
203-
.getInput()
204-
.setInstantiable(true);
195+
.getInput();
205196

206197
disable();
207198
}

text/src/main/java/network/aika/meta/sequences/PhraseModel.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,12 @@ public BindingNeuron getEntityBN() {
5959
return entityBN;
6060
}
6161

62+
@Override
6263
public void setInstantiable(boolean instantiable) {
64+
super.setInstantiable(instantiable);
65+
6366
entityBN.setInstantiable(instantiable);
64-
sequencePatternN.setInstantiable(instantiable);
65-
inhibitoryN.setInstantiable(instantiable);
67+
entityBN.setInputSynapsesInstantiable(instantiable, instantiable);
6668
}
6769

6870
@Override
@@ -81,7 +83,7 @@ public void initStaticNeurons() {
8183
entityBN = addBindingNeuron(model, "Entity (Phrase)", 2.5)
8284
.setTypeDescription("Abstract Entity -> Phrase BN");
8385

84-
entityBN.makeAbstract()
86+
entityBN.makeAbstract(false)
8587
.setWeight(getDefaultInputCategorySynapseWeight(entityBN.getType()))
8688
.adjustBias();
8789

0 commit comments

Comments
 (0)