[Reasoner4j-user] SF.net SVN: reasoner4j:[41] trunk/reasoner4j
Status: Pre-Alpha
Brought to you by:
luc_peuvrier
|
From: <luc...@us...> - 2010-12-25 04:43:58
|
Revision: 41
http://reasoner4j.svn.sourceforge.net/reasoner4j/?rev=41&view=rev
Author: luc_peuvrier
Date: 2010-12-25 04:43:52 +0000 (Sat, 25 Dec 2010)
Log Message:
-----------
clean up, java doc/comment updated/added, todo updated, doc updated
Modified Paths:
--------------
trunk/reasoner4j/doc/doc.txt
trunk/reasoner4j/doc/todo.txt
trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/AbstractFactSet.java
trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/AbstractSubFactSet.java
trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/AllFactSet.java
trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/ISubFactSet.java
trunk/reasoner4j/src/test/java/net/sf/reasoner4j/builtin/provider/BuiltinComputerForTests.java
trunk/reasoner4j/src/test/resources/log4j.properties
Modified: trunk/reasoner4j/doc/doc.txt
===================================================================
--- trunk/reasoner4j/doc/doc.txt 2010-12-25 04:05:44 UTC (rev 40)
+++ trunk/reasoner4j/doc/doc.txt 2010-12-25 04:43:52 UTC (rev 41)
@@ -14,19 +14,17 @@
Premise:
--------
-Premise PremiseTable PremiseVariableTable (fact set view)
- BuiltinPremiseTable VariableTable (a premise fact set)
- need for retraction
-PremiseNotListening PremiseTableNotListening PremiseVariableTable (fact set view)
-AssertedPremise AssertedPremiseTable VariableTable (a premise fact set)
- need for retraction
-PremiseAndDefault PremiseTable PremiseVariableTableAndDefault (fact set view)
-PremiseAndDefaultNotListening PremiseTableNotListening PremiseVariableTableAndDefault (fact set view)
+Premise PremiseTable
+ BuiltinPremiseTable
+PremiseNotListening PremiseTableNotListening
+AssertedPremise AssertedPremiseTable
+PremiseAndDefault PremiseTable
+PremiseAndDefaultNotListening PremiseTableNotListening
Merge:
------
-MergeTable VariableTable
+MergeTable
Conclusion:
-----------
Modified: trunk/reasoner4j/doc/todo.txt
===================================================================
--- trunk/reasoner4j/doc/todo.txt 2010-12-25 04:05:44 UTC (rev 40)
+++ trunk/reasoner4j/doc/todo.txt 2010-12-25 04:43:52 UTC (rev 41)
@@ -1,9 +1,3 @@
-is blankNode premise needed ?
------------------------------
-
-why not AssertedPremise("","",?E) instead of Premise("","blankNode",?E)
-to test
-
IBuitinTermProvider chain
-------------------------
@@ -20,9 +14,6 @@
inList builtin
--------------
-
-
-
premise negation
----------------
@@ -32,16 +23,6 @@
fact asserted => fire retract to listener
fact retracted => fire assert to listener
-negate fact conclusion
-----------------------
-
-negate fact conclusion retract the fact
-
-FactSet:
---------
-
-problem with is empty: no fact and no listener
-
Rule:
-----
@@ -55,4 +36,18 @@
optimization:
- sort premise to better rete
-- reuse common premise and merge table (take care with rule removing)
\ No newline at end of file
+- reuse common premise and merge table (take care with rule removing)
+
+------------------------------------------------------------------------------------------------------------
+
+ -------------
+ WHY NOT TO DO
+ -------------
+
+is blankNode premise needed ?
+-----------------------------
+
+why not AssertedPremise("","",?E) instead of Premise("","blankNode",?E) ?
+no, because create ("","",?E) fact !
+
+
\ No newline at end of file
Modified: trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/AbstractFactSet.java
===================================================================
--- trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/AbstractFactSet.java 2010-12-25 04:05:44 UTC (rev 40)
+++ trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/AbstractFactSet.java 2010-12-25 04:43:52 UTC (rev 41)
@@ -52,11 +52,15 @@
@Override
public void removeListener(final IFactSetListener<T> listener) {
listenerSet.remove(listener);
- if (isEmpty()) {
+ if (!hasListener() && isEmpty()) {
fireNoListenerAndEmpty();
}
}
+ /**
+ * call when remove last listener of empty fact set, or remove last fact of
+ * fact set and has no listener
+ */
protected abstract void fireNoListenerAndEmpty();
@Override
@@ -66,19 +70,16 @@
protected void assertOpen() {
if (!open) {
- throw new ReasonerException("fact set closed", whoClose);
+ throw new ReasonerException("fact set closed");
}
}
- private Exception whoClose; // FIXME _for test
-
@Override
public void close() {
if (open) {
open = false;
- whoClose = new Exception();
} else {
- throw new ReasonerException("fact set closed", whoClose);
+ throw new ReasonerException("fact set closed");
}
}
Modified: trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/AbstractSubFactSet.java
===================================================================
--- trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/AbstractSubFactSet.java 2010-12-25 04:05:44 UTC (rev 40)
+++ trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/AbstractSubFactSet.java 2010-12-25 04:43:52 UTC (rev 41)
@@ -58,21 +58,25 @@
@Override
protected void fireNoListenerAndEmpty() {
+ // notify this is empty and has not listener, parent must clean itself
parentFactSet.fireNoListenerAndEmpty(this);
}
@Override
public T getSubject() {
+ // by default no subject defined
return null;
}
@Override
public T getPredicate() {
+ // by default no predicate defined
return null;
}
@Override
public T getObject() {
+ // by default no object defined
return null;
}
Modified: trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/AllFactSet.java
===================================================================
--- trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/AllFactSet.java 2010-12-25 04:05:44 UTC (rev 40)
+++ trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/AllFactSet.java 2010-12-25 04:43:52 UTC (rev 41)
@@ -219,7 +219,7 @@
@Override
protected void fireNoListenerAndEmpty() {
- // nothing to do
+ // nothing to do, no parent sub fact set to clean
}
@Override
Modified: trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/ISubFactSet.java
===================================================================
--- trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/ISubFactSet.java 2010-12-25 04:05:44 UTC (rev 40)
+++ trunk/reasoner4j/src/main/java/net/sf/reasoner4j/fact/ISubFactSet.java 2010-12-25 04:43:52 UTC (rev 41)
@@ -30,35 +30,26 @@
*/
public interface ISubFactSet<T> extends IFactSet<T> {
- // /**
- // *
- // * @param fact
- // * @param doFire
- // * @return true if fact added
- // */
- // boolean addFact(CauseIdentifiedFact<T> fact, boolean doFire);
- //
- // // /**
- // // * also exists in {@link IFactSet} to make able to add asserted premise
- // // */
- // // @Override
- // // boolean addFact(CauseIdentifiedFact<T> fact, boolean doFire);
- //
- // /**
- // *
- // * @param fact
- // * @return true if fact removed
- // */
- // boolean removeFact(CauseIdentifiedFact<T> fact);
-
SingleFactSet<T> getOrCreateSingleFactSet(T subject, T predicate, T object);
void fireNoListenerAndEmpty(ISubFactSet<T> subFactSet);
+ /**
+ *
+ * @return subject of this sub fact set, null if none
+ */
T getSubject();
+ /**
+ *
+ * @return predicate of this sub fact set, null if none
+ */
T getPredicate();
+ /**
+ *
+ * @return object of this sub fact set, null if none
+ */
T getObject();
void fireAsserted(CauseIdentifiedFact<T> fact);
Modified: trunk/reasoner4j/src/test/java/net/sf/reasoner4j/builtin/provider/BuiltinComputerForTests.java
===================================================================
--- trunk/reasoner4j/src/test/java/net/sf/reasoner4j/builtin/provider/BuiltinComputerForTests.java 2010-12-25 04:05:44 UTC (rev 40)
+++ trunk/reasoner4j/src/test/java/net/sf/reasoner4j/builtin/provider/BuiltinComputerForTests.java 2010-12-25 04:43:52 UTC (rev 41)
@@ -55,7 +55,7 @@
for (BuiltinValue<String> elt : parameter) {
if (!elt.isSingleValue()) {
throw new ReasonerException(
- "product parameter must be a singlr value");
+ "product parameter must be a single value");
}
final String strFactor = elt.getSingleValue();
result *= Double.parseDouble(strFactor);
@@ -72,7 +72,7 @@
for (BuiltinValue<String> elt : parameter) {
if (!elt.isSingleValue()) {
throw new ReasonerException(
- "sum parameter must be a singlr value");
+ "sum parameter must be a single value");
}
final String strFactor = elt.getSingleValue();
result += Double.parseDouble(strFactor);
Modified: trunk/reasoner4j/src/test/resources/log4j.properties
===================================================================
--- trunk/reasoner4j/src/test/resources/log4j.properties 2010-12-25 04:05:44 UTC (rev 40)
+++ trunk/reasoner4j/src/test/resources/log4j.properties 2010-12-25 04:43:52 UTC (rev 41)
@@ -19,7 +19,7 @@
log4j.logger.net.sf.joafip.meminspector=warn
log4j.logger.net.sf.joafip.java.util=warn
-log4j.logger.net.sf.reasoner4j.TestReteTable=debug
+#log4j.logger.net.sf.reasoner4j.TestReteTable=debug
#log4j.logger.net.sf.reasoner4j.TestExistential=debug
#log4j.logger.net.sf.reasoner4j.TestBasicInference=debug
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|