My notes about computer science, programming, and software
© 2008-2009 Jean-Marc Vanel
e-mail: Send your comments - My home page my FOAF URI: http://jmvanel.free.fr/jmv.rdf#me
Last update:
This is my blog. Sometimes I say things in French there, and sometimes in
english here.
Parfois je dis les choses en Français, et parfois ici en Anglais.
Table of contents -Years before: blog 2004-2007 ; 2008-2010 .
AI use for software development : the new paradigm
EulerGUI Download statistics - To view the EulerGUI downloads: http://sourceforge.net/projects/eulergui/files/
Intermediary versions of EulerGUI - EulerGUI Feature requests
------------------------------------------------------------------------------------
Trying to extract a generic mixed Java-N3 rule:
java:n3_project-ProjectGUI soft:hasFeature java:eulergui-gui-actions-ResultEditorAction .
# TODO etc ...
{
?GUI a java:n3_project-ProjectGUI
; javap:resultManagement ?R .
java:n3_project-ProjectGUI soft:hasFeature ?FEATURE .
} => {
?ResultEditorAction a ?FEATURE ; javam:setProjectGUI( ?GUI ) .
?R javam:addAction ( ?FEATURE ) .
}.
But there is something missing in the framework (N3->Drools translator ) :
Grave: Drools compile ERROR: Rule Compilation error : [Rule name='application-rules.n3 2'] application_rules_n3_1/Rule_application_rules_n3_2_97ad3c23c35d457687021e81498e6d59.java (21:1818) : The method addAction(Action) in the type ResultManagement is not applicable for the arguments (String)
The red line is the root cause : ?FEATURE varaible has value
java:eulergui-gui-actions-ResultEditorAction, but this is not
implemented.
One solution is to make a new ad-hoc builtin in the consequent :
} => {
?ResultEditorAction eg:javaInstantiation ?FEATURE ; javam:setProjectGUI( ?GUI ) .
?R javam:addAction ( ?FEATURE ) .
}.
Onother solution without ad-hoc stuff is add this in the antecedent :
{
?GUI a java:n3_project-ProjectGUI
; javap:resultManagement ?R .
java:n3_project-ProjectGUI soft:hasFeature ?FEATURE .
?FEATURE a java:java-lang-Class .
} => {
more satisfying, but needs more work to implement ! (both in antecedent and consequent )
Voted up conan's video : http://www.dzone.com/links/build_pong_in_13_minutes_using_jboss_drools.html
Build a Graphical Adventure Game in 20 minutes using JBoss Drools : All Hail the Wumpus
http://www.youtube.com/watch?v=4CvjKqUOEzM
SWIG
https://sourceforge.net/projects/eulergui/files/eulergui/1.11/
EG 1.10 sur Drools, Protégé , ATTEMPTO
Added eulergui/src/test/java/eulergui/drools_engine/MiscTestJMV.java
Test with 5.4.0-CR1 :
svn update -r r3021 mvn eclipse:eclipse --no-plugin-updates --offline
Tests run: 181, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6:21:24.064s [INFO] Finished at: Thu May 10 19:09:46 CEST 2012
http://stackoverflow.com/questions/101752/aborting-a-merge-in-git
Remove setMinimalFeatures() in
I begin to be suspicious with 5.5.0-SNAPSHOT , revert to 5.4.0.CR1
java.lang.InstantiationError: java.lang.CharSequenceat ConditionEvaluatorb092039c249f413690018d4aae5fc2cd.evaluate(Unknown Source)at org.drools.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:167)at org.drools.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:124)at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137)at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59)at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240)at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:337)at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:298)at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:888)at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847)at org.drools.integrationtests.MiscTest.testJMV3(MiscTest.java:11110)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:601)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)at org.junit.runners.ParentRunner.run(ParentRunner.java:300)at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
After last correction by Mario F. , that was enough to make this work :
@prefix string: <http://www.w3.org/2000/10/swap/string#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:s1 rdfs:label "papillon".
{ ?M rdfs:label ?L. ?L string:contains "pap". } => { :test :pass_contains0_res ?L . } .
--------------------------------------------------------------------
https://sourceforge.net/apps/trac/sourceforge/wiki/SVN%20adminrepo
http://en.wikipedia.org/wiki/IHTSDO
http://ihtsdo.org/fileadmin/user_upload/doc/
http://en.wikipedia.org/wiki/SNOMED_CT#Structure
N3DroolsEngineFacade.waitUpdateThreads() FINISHED
java.lang.ClassCastException: n3_project.helpers.LineTrackingTriple cannot be cast to java.lang.CharSequence
at ConditionEvaluator33a3076ed8ae4a52b58ab512fa2be595.evaluate(Unknown Source)
at org.drools.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:167)
at org.drools.rule.constraint.MvelConstraint.isAllowedCachedLeft(MvelConstraint.java:136)
at org.drools.common.DoubleBetaConstraints.isAllowedCachedLeft(DoubleBetaConstraints.java:168)
at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:96)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:196)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:71)
at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:98)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:196)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:71)
at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:98)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:196)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:145)
at org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:154)
at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59)
at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:364)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)
at org.drools.reteoo.EntryPointNode.assertQuery(EntryPointNode.java:146)
at org.drools.reteoo.ReteooWorkingMemory.getQueryResults(ReteooWorkingMemory.java:189)
at eulergui.inference.drools.impl.N3DroolsEngineFacade.getQueryResults(N3DroolsEngineFacade.java:218)
at eulergui.project.Project.search(Project.java:1110)
at n3_project.SourceFilesView$1.actionPerformed(SourceFilesView.java:176)
When reading an ISO-8859-1 file (Latin 1) :
/home/jmv/src/cbfcm_euler/cbfcmKnow002.n3: The file could not be loaded correctly (some data might be lost) with the encoding "UTF-8". (java.nio.charset.MalformedInputException: Input length = 1) Try selecting a different encoding. It can be selected with the menu File->Reload with Encoding. If you want it to be done automatically, add the candidates into "List of fallback encodings" in Encodings pane of Global Options.
This is a strange file :
% file *now*3 cbfcmKnow002.n3: Non-ISO extended-ASCII English text, with very long lines, with CRLF line terminators
Minimal EulerGUI 1.11
This is the first release of the Minimal EulerGUI.
It has exactly the same licence as Maximal (full) EulerGUI, that is LGPL. It is just a simpler version for Semantic Web users, who are not interested in importing UML, XMI, XML, and Java framework for application building.
Only one inference engine is available: Euler EYE engine ( http://eulersharp.sourceforge.net/ ).
Main features:
- N3 editor: syntax coloring, tooltip with explanations about the resource under the mouse; HTTP connection to prefix.cc site for filling missing N3 prefixes; when an N3 file is modified on disk or Internet, it is re-parsed, and syntax errors are highlighted
- button to import from: N3/Turtle, RDF, OWL/XML, from local files or URL
- show tree view of OWL inferred class hierarchy using Pellet OWL reasoner
- action to add all refered ontologies (through N3 prefixes) to current project
- automatically loads the rule base for "Case Based Fuzzy Cognitive Maps" when the prefix fl: is referred ( for
http://eulersharp.sourceforge.net/2003/03swap/fl-rules# )
ERROR in running Drools Inference Engine
Cause:
java.lang.ClassCastException: n3_project.helpers.LineTrackingTriple cannot be cast to java.lang.CharSequence
Andy Seaborne andy@apache.org
18:39 (Il y a 46 minutes)
à jena-users
Jena is moving to be a top level project at Apache:
As part of this, the project infrastructure is moving to be under jena.apache.org
Unlike the move into the Apache incubator in the first place, much of this is handled by redirections.
== Website
The website will move to jena.apache.org, and a redirection from the incubator location will be left in-place.
== Mailing Lists
These will become
users@jena.apache.org
dev@jena.apache.org
commits@jena.apache.org
but redirections from the old incubator names are in place.
== svn
The code has been moved to
https://svn.apache.org/repos/asf/jena/
with the same layout as before. You can use 'svn switch' on working copies or check out a fresh copy.
e.g.
# All one line:
svn co https://svn.apache.org/repos/asf/jena/Jena2/Fuseki/trunk/ jena-fuseki
We are discussing a reorganistion of svn within the new area.
== Maven repositories
We already release under a group/artifact name which is org.apache.jena:... and this remains the same.
The version numbers of *new* code will drop the "-incubator" part. Previous releases are unchanged.
Andy
PS Personally I've checkout out fresh copies with:
svn co https://svn.apache.org/repos/asf/jena/Jena2/ARQ/trunk jena-arqsvn co https://svn.apache.org/repos/asf/jena/Jena2/Fuseki/trunk jena-fusekisvn co https://svn.apache.org/repos/asf/jena/Jena2/IRI/trunk jena-irisvn co https://svn.apache.org/repos/asf/jena/Jena2/jena/trunk jena-coresvn co https://svn.apache.org/repos/asf/jena/Jena2/JenaTop/trunk jena-topsvn co https://svn.apache.org/repos/asf/jena/Jena2/JenaZip/trunk apache-jenasvn co https://svn.apache.org/repos/asf/jena/Jena2/SDB/trunk jena-sdbsvn co https://svn.apache.org/repos/asf/jena/Jena2/TDB/trunk jena-tdbsvn co https://svn.apache.org/repos/asf/jena/Jena2/LARQ/trunk jena-larq
<jmvanel> Features : http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/?view=log
<jmvanel> the first since the release !!!
<jmvanel> there is a mini application based on a table view;
<jmvanel> it updates the KB, but the modifications are not kept at application closing ;
<jmvanel> also no way of adding a property or new triple;
<jmvanel> this will be the job of the new TripleComboBoxes component
COMMIT TODO >>>>>>>>>
remove debug switches in N3SourcetoDrools
COMMIT
- upgrade Euler from version 2012-04 to version 2012-05
- FIX cell updates in N3TabularEditorComponent : in EditCellListener: now use oldValue to update the Triple on tripleStore
- TripleStoreDrools: FIX: updateTriple():
* use workingMemory.getFactHandle
* use workingMemory.update() instead of retract() and insert()
TODO: also use workingMemory.update() in kb:update builtin
test suite PASSES
Running deductions.runtime.swing.N3TableModelTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.649 sec <<< FAILURE!
I need a Java list , but which also maintains a correspondance value => index
So I could replace internally LinkedList<MyItem> by LinkedList<ReferenceTo<MyItem>> , plus using a Map <MyItem, ReferenceTo<MyItem>> .
Interesting posts on GF + attempto
TODO >>>>>>>>>
{ ?FORM :addTripleWidget ?SUBJECT.
_:d e:findall ( ?PROP { ?SUBJECT a ?CLASS .
?PROP rdfs:domain ?CLASS . }
?PROPS ).
} => {
?CB a java:javax-swing-JComboBox.
?FORM javam:add ( ?CB ).
}.
http://www.molto-project.eu/
https://issues.jboss.org/browse/JBRULES-3488
<jmvanel> complete with test case !
https://github.com/jmvanel/drools/commit/1d31e94e6f9c457cf1d6124e640ada12da976032#diff-1
https://github.com/droolsjbpm/drools/pull/118
http://help.github.com/send-pull-requests/
https://issues.jboss.org/browse/JBRULES-3488
TODO
<ge0ffrey> jmvanel: git clone the drools repo, mvn clean install it, open it in m2eclipse/intellij/netbeans, look for MiscTest and copy paste an existing test - it should be fairly obvious
<jmvanel> I have a stack and I know where in the code the loop is
<ge0ffrey> if you run into any problem, just ask here
<jmvanel> guues it works also with eclipse ?
<jmvanel> I already have git working dirs, but there are several dirs : drools droolsjbpm-build-bootstrap droolsjbpm-build-distribution droolsjbpm-integration droolsjbpm-knowledge droolsjbpm-tools drools-planner guvnor jbpm
<jmvanel> I guess I just mean to build drools
<ge0ffrey> jmvanel: to setup eclipse, the latest m2elcipse should work, but there's an alternative way too, see https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/blob/master/README.md
<ge0ffrey> jmvanel: It's likely we 'll do 5.4.0.Final monday or next week. So, the sooner it is, the higher the chance that it gets fixed before 5.4.0.Final
<ge0ffrey> if it doesn't make 5.4.0.Final, it could take a long time for a community release with a fix is out :(
cd /home/jmv/src/droolsjbpm/drools/ gvim drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Try to upgrade to Drools Beta 5.4.0.CR1 : nothing changed.
This loop goes wild at line 460 in class FromNode in public void updateSink( final LeftTupleSink sink,
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
for ( RightTuple rightTuple = rightTuples; rightTuple != null; rightTuple = (RightTuple) rightIter.next( rightTuples ) ) {
Daemon Thread [SwingWorker-pool-3-thread-1] (Suspended (breakpoint at line 477 in FromNode)) FromNode.updateSink(LeftTupleSink, PropagationContext, InternalWorkingMemory) line: 477 RightInputAdapterNode.attach(InternalWorkingMemory[]) line: 240 BuildUtils.attachNode(BuildContext, BaseNode) line: 149 AccumulateBuilder.build(BuildContext, BuildUtils, RuleConditionElement) line: 74 PatternBuilder.attachPattern(BuildContext, BuildUtils, Pattern) line: 126 PatternBuilder.build(BuildContext, BuildUtils, RuleConditionElement) line: 79 GroupElementBuilder$AndBuilder.build(BuildContext, BuildUtils, RuleConditionElement) line: 116 GroupElementBuilder.build(BuildContext, BuildUtils, RuleConditionElement) line: 72 ReteooRuleBuilder.addSubRule(BuildContext, GroupElement, int, Rule) line: 154 ReteooRuleBuilder.addRule(Rule, InternalRuleBase, IdGenerator) line: 125 ReteooBuilder.addRule(Rule) line: 116 ReteooRuleBase.addRule(Rule) line: 445 ReteooRuleBase(AbstractRuleBase).addRule(Package, Rule) line: 955 ReteooRuleBase(AbstractRuleBase).addPackages(Collection<Package>) line: 626 ReteooRuleBase.addPackages(Collection<Package>) line: 472 ReteooRuleBase.addPackage(Package) line: 479 N3SourcetoDrools.droolsCompile(String, String) line: 425 N3SourcetoDrools.translate(IRDFIterator, String, boolean, boolean, boolean) line: 320 N3SourcetoDrools.translate(N3Source, boolean, boolean, boolean) line: 262 N3DroolsEngineFacade.translate(N3Source, boolean, boolean, boolean) line: 91 Project.doTranslateN32Drools(boolean, boolean) line: 944 Project.translateN32Drools(boolean) line: 895 Project.prepareDrools(boolean) line: 873 Project.doRunDrools(boolean) line: 827 Project.runDroolsTriples(boolean) line: 778 DroolsInferenceEngine.launch() line: 30 InferenceSwingWorker.doInBackground() line: 48 InferenceSwingWorker.doInBackground() line: 1 SwingWorker$1.call() line: 296 FutureTask$Sync.innerRun() line: 334 SwingWorker$2(FutureTask<V>).run() line: 166 InferenceSwingWorker(SwingWorker<T,V>).run() line: 335 ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110 ThreadPoolExecutor$Worker.run() line: 603 Thread.run() line: 722
Found a minimal rule that creates an infinite loop. Removing the green condition prevents the infinite loop.
rule "test.n3 0"
when
$LIST : java.util.List( )
from accumulate( $Triple_1 : Triple( $CN : subject, predicate == "<http://deductions.sf.net/samples/princing.n3p.n3#number>", $N : object )
, collectList( $N ) )
$NUMBER : Number() from accumulate(
$NUMBER_STRING_ : String() from $LIST
, sum( Double.parseDouble( $NUMBER_STRING_)) )
then
Triple newTriple;
TripleResult newTripleResult;
newTriple = new Triple( );
newTriple.setSubject( "<http://deductions.sf.net/samples/princing.n3p.n3#list>" );
newTriple.setPredicate( "<http://deductions.sf.net/samples/princing.n3p.n3#is>".toString() );
newTriple.setObject( $LIST ); insertLogical( newTriple );
end
Strange : XStream is only for test:
Exception in thread "main" java.lang.NoClassDefFoundError: com/thoughtworks/xstream/XStream at eulergui.inference.drools.impl.N3SourcetoDrools.debugDrools(N3SourcetoDrools.java:205) at eulergui.inference.drools.impl.N3SourcetoDrools.<init>(N3SourcetoDrools.java:169) at eulergui.inference.drools.impl.N3DroolsEngineFacade.<init>(N3DroolsEngineFacade.java:44)
Trouble : repositories for XStream and for Pellet ( courtesy Thorsten Möller ) are gone !!!!!!!!
mvn versions:display-dependency-updates [INFO] The following dependencies in Dependencies have newer versions: [INFO] com.thoughtworks.xstream:xstream ........................ 1.2 -> 1.4.2 [INFO] commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist [INFO] jline:jline ............................................... 1.0 -> 2.6 [INFO] org.drools:drools-compiler .................. 5.3.1.Final -> 5.4.0.CR1
Drools Error: Unable to Analyse Expression "\"gateau\"" == $X .toString():
[Error: unable to resolve method using strict-mode: n3_project.helpers.Triple.$X()]
[Near : {... "\"gateau\"" == $X .toString() ....}]
^
[Line: 57, Column: 30]
ErrorLines: - 57
# pb !!!!!!!!!!!!!!!!!!!!!!!
{ ?S ?P ?X .
?X log:equalTo "gateau" .
} => {
:test :equalTo3 "OK"
} .
{ ?S ?P ?X .
"gateau" log:equalTo ?X .
} => {
:test :equalTo2 "OK"
} .
Algorithm for log:equalTo
(should be OK if there is a variable binding after, but 2 pass translation not implemented)
DroolsTripleHandler.n3VariableOrLiteral2DroolsExpression(arg)
if one argument is literal, and the other is bound, the bound variable should on left side of ==
if all is literal , can directly generate true or false
http://debugit.eu/ medical ontology
N3JavaMappingBuiltin.processTripleElementForConsequent(): WARNING: "jmv has been updated at " is not a variable and not a Resource
Drools Error: Unable to Analyse Expression "\"JMV\"" .toString().equals( $N .toString() ):
[Error: unable to resolve method using strict-mode: n3_project.helpers.Triple.$N()]
[Near : {... "\"JMV\"" .toString().equals( $N .toString() ) ....}]
^
[Line: 74, Column: 30]
ErrorLines: - 74
Drools Error: Unable to Analyse Expression "\"jmv\"" .toString().equals( $N .toString() ):
[Error: unable to resolve method using strict-mode: n3_project.helpers.Triple.$N()]
[Near : {... "\"jmv\"" .toString().equals( $N .toString() ) ....}]
^
[Line: 128, Column: 30]
ErrorLines: - 128
http://reasoning.restdesc.org/
Ideas :
Even after removing eval() instruction in Drools translation, that was not enough to make this work :
@prefix string: <http://www.w3.org/2000/10/swap/string#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:s1 rdfs:label "papillon".
{ ?M rdfs:label ?L. ?L string:contains "pap". } => { :test :pass_contains0_res ?L . } .
COMMIT
continue removing Drools eval() instruction in src/main/java/eulergui/inference/drools/impl/ :
MathBuiltins.java , DroolsTripleHandler.java , ListBuiltins.java , LogBuiltins.java
test suite PASSES
With Drools/N3 engine, can now count all the things that have an rdfs:label containing "foo".
<jmvanel> Maybe you think it was possible since long ?
<jmvanel> NO
<jmvanel> What was possible was : count all the things that have an rdfs:label "foo"
<jmvanel> But counting involving string and math builtins was not possible before yesterday.
:test
:pass_contains "true"^^<http://www.w3.org/2001/XMLSchema#boolean> ;
:pass_contains0 "true"^^<http://www.w3.org/2001/XMLSchema#boolean> ;
:pass_contains0_res "papillon" , "vive papi Mougeot!" , "pape" ;
:pass_contains_count
2 ;
:res (:s1 :s1) .
Added fl prefix on prefix.cc : http://eulersharp.sourceforge.net/2003/03swap/fl-rules#
rdfs:comment "to express fuzzy set membership e.g. (:x :C) fl:mu 0.8
says that :x a :C to a degree of 0.8".
rdfs:comment "to express fuzzy subsethood e.g. (:C :D) fl:sigma 0.9
says that :C rdfs:subClassOf :D to a degree of 0.9".
fl:pi a rdf:Property, e:Builtin;
rdfs:domain rdf:List;
rdfs:range xsd:decimal;rdfs:comment "builtin to calculate fuzzy set
membership according to Elpiniki Papageorgiou method".
Highlight jedit plugin "disappeared" from EulerGUI. The reason is that it's now bound to jEdit 4.5.0 , while EulerGUI is still at 4.3.1 :
http://plugins.jedit.org/plugins/?Highlight
Now that math builtins in findall are implemented, there is another trouble: an infinite loop when adding the Drools package.
AND[ Pattern type='[ClassObjectType class=n3_project.helpers.Triple]', index='0', offset='0', identifer='(ValueType = 'Object') $Triple_1', Pattern type='[ClassObjectType class=n3_project.helpers.Triple]', index='1', offset='1', identifer='(ValueType = 'Object') $Triple_2', Pattern type='[ClassObjectType class=java.util.List]', index='2', offset='2', identifer='(ValueType = 'Object') $LIST', Pattern type='[ClassObjectType class=java.lang.Number]', index='9', offset='3', identifer='(ValueType = 'Object') $NUMBER']
XML FormatRecognizer : Could not load from URL http://purl.org/imbi/dco/dco# ; this was expected to be XML, but does not seem to be XML; reason: White spaces are required between publicId and systemId. cause: null Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 50; White spaces are required between publicId and systemId.
wget works fine :
wget 'http://purl.org/imbi/dco/dco#' ... Longueur: 872751 (852K) [application/rdf+xml]
and adding local file doc.rdf works fine too. So the trouble is with FormatRecognizer.
In fact, no !
the trouble is with the XML itself: this is not correct.
The XML header of this is NOT legal :
http://purl.org/imbi/dco/dco#
indeed :
xmllint --noout 'http://purl.org/imbi/dco/dco#'http://www.imbi.uni-freiburg.de/ontology/dco/dco:19: namespace warning : xmlns: URI &ontology;dco# is not absolute <rdf:RDF xmlns="&ontology;dco#"
but I understand the issue :
replacing
<rdf:RDF xmlns="&ontology;dco#" >
with
<rdf:RDF xmlns="&ontology;dco" >
removes the warning
I understand that a default xmlns must be absolute.
cwm --rdf dco.rdf --n3 > dco.n3
COMMIT
Drools N3 engine : now e:findall works with a math builtin in the query, e.g. :
{ _:d e:findall (
?M {?M :height ?H.
?H math:greaterThan 6000 .
} ?LIST ).
?LIST math:memberCount ?COUNT.
} => {
TESTED in test/math.n3 ( via TestReasonning )
TODO : same issue in string buitlins
Caused by: org.drools.RuntimeDroolsException: pricing_n3_0.Rule_pricing_n3_0Eval0Invoker@1d02b098 : java.lang.ClassCastException: n3_project.helpers.LineTrackingTriple cannot be cast to java.util.List
Declaration's:
[(ValueType = 'String') $CN, (ValueType = 'String') $CT, (ValueType = 'Object') $LIST, (ValueType = 'String') $N, (ValueType = 'Object') $PR, (ValueType = 'Object') $Triple_1, (ValueType = 'Object') $Triple_2, (ValueType = 'Object') $Triple_3, (ValueType = 'Object') $Triple_4, (ValueType = 'Object') $Triple_5, (ValueType = 'Object') $Triple_6, (ValueType = 'Object') $Triple_7, (ValueType = 'String') $consumerType1, (ValueType = 'String') $value2, (ValueType = 'String') $value3]
arg0EvalNodeLeftTuple (id=216) [fact 0:65:1878024157:-2086649774:65:DEFAULT:<http://deductions.sf.net/samples/princing.n3p.n3#CT1> <http://deductions.sf.net/samples/princing.n3p.n3#value> 5 . ] [fact 0:65:1878024157:-2086649774:65:DEFAULT:<http://deductions.sf.net/samples/princing.n3p.n3#CT1> <http://deductions.sf.net/samples/princing.n3p.n3#value> 5 . ] [fact 0:70:1971836583:1395426466:70:DEFAULT:<http://deductions.sf.net/samples/princing.n3p.n3#CN1> <http://deductions.sf.net/samples/princing.n3p.n3#consumerType> <http://deductions.sf.net/samples/princing.n3p.n3#CT1> . ] [fact 0:71:689809977:305116845:71:DEFAULT:<http://deductions.sf.net/samples/princing.n3p.n3#CN1> <http://deductions.sf.net/samples/princing.n3p.n3#number> 200 . ] [fact 0:58:2072854871:-657863811:58:DEFAULT:<http://deductions.sf.net/samples/princing.n3p.n3#pricing> <http://deductions.sf.net/samples/princing.n3p.n3#theExpectedConsummerNumber> <http://deductions.sf.net/samples/princing.n3p.n3#CN1> . ] [fact 0:57:575741458:-1249255924:57:DEFAULT:<http://deductions.sf.net/samples/princing.n3p.n3#pricing> <http://deductions.sf.net/samples/princing.n3p.n3#theConsummerType> <http://deductions.sf.net/samples/princing.n3p.n3#CT1> . ] [fact 0:56:1425088407:-2049757810:56:DEFAULT:<http://deductions.sf.net/samples/princing.n3p.n3#pricing> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://deductions.sf.net/samples/princing.n3p.n3#Pricing> . ]
The offending rule is :
# create consumerNumberProfit for consumerType and consumerNumber
{
?PR a Pricing.
?PR theConsummerType ?CT.
# ?NUMBER : sum of the ?N such that :
# ?PR theExpectedConsummerNumber ?CN . ?CN number ?N .
# ?CN!consumerType!value >= CT!value
_:d e:findall ( ?N {
?PR theExpectedConsummerNumber ?CN.
?CN number ?N.
?CN!consumerType!value math:notLessThan ?CT!value .
# cf Paths in http://www.w3.org/DesignIssues/Notation3
} ?LIST ).
?LIST math:sum ?NUMBER.
} => {
?CNP a ConsumerNumberProfit.
?PR consumerNumberProfit ?CNP.
?CNP consummerType ?CT.
?CNP number ?NUMBER.
}.
Error, but not with drspp :
em-laptop: ~/src/APE/ % ./ape.exe -text 'Every man has a name. p:Paul has "Paul" and "Paul" is a name.' -solo owlfsspp
<?xml version="1.0" encoding="UTF-8"?>
<messages>
<message
importance="error"
type="owl"
sentence="2"
token="8"
value="be"
repair="Subject or object of this verb makes an illegal reference."/>
</messages>
How are the "" removed ?
eg test/javaMappingAccessFieldAsN3Variable.n3
http://www.w3.org/2001/sw/wiki/Category:RDF_or_OWL_Browser
This DeferredMethodCall is not working :
# DeferredMethodCall>> <http://eulergui.sourceforge.net/engine.owl#demo_main_window> <http://java.sun.com/method#add> [_:sk_B_6]
because the method that is found is not the right one :
public void java.awt.Component.add(java.awt.PopupMenu)
The argument is an instance of eulergui.util.ClassLauncherAction. This class extends AbstractAction .
because the method that should be found is :
public void java.awt.Container.add( java.awt.Component )
rsync --verbose /home/jmv/jmv_ubuntu_11.4/jmvanel.free.fr/* /media/JMV/jmvanel.free.fr umount /media/JMV
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: org.eclipse.emf.ecore.xmi.PackageNotFoundException: Package with uri 'http://schema.omg.org/spec/XMI/2.1' not found. (file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/ontologies/edmsemantics.xmi, 3, 76)
<lcpvrr> I never saw application build by eg
<jmvanel> " build by eg" is not the right expression;
<jmvanel> once the business rules are there, they are interpreted by the engine
<jmvanel> what remains to do is adding the user actions ;
<jmvanel> suppose you want a FOAF contact manager as a local Swing app ;
<jmvanel> user actions will be : create a contact ( or another type ) ; remove ; update; search a contact by a string in any property
<jmvanel> If you want to see this, you 'll have it before 24 h
<jmvanel> the form generator will help for create and update ;
<jmvanel> what it really interesting is adding rules for detecting near duplicates, etc
<lcpvrr> I I well understand form generator make able to generate a ABOX editor ?
<jmvanel> yes
I am pleased to announce the release 1.10 of EulerGUI, a development tool and a framework for the Semantic Web and rules.
The improvements mainly concern the inference engine with RETE Drools N3, and SPARQL queries.
With the Drools inference engine, adapted to the N3 rule language for the Semantic Web, you can build applications where all the business logic is interpreted directly by the engine ( see EulerGUI application building Framework ).
More builtin functions: mathematical, string , were added .
In addition, we rely on Drools for automatically retracting GUI components when a business data is deleted ( see Leverage on Drools to automatically retract GUI components ).
We worked on the capability of extension point in the configuration files in N3, like Eclipse or Spring, but more powerful (see configure EulerGUI in N3).
SPARQL queries belong to the features "graphical tool for exploring the Semantic Web", usable by the users of these technologies, and also for teaching Semantic Web .
There are several fixes for SPARQL:
Sometimes the query was executed twice
Progress indicator when the query runs
Results buttons disabled until the request is completed
can be changed after the fact the query type (SELECT, CONSTRUCT, ...),
We added buttons to display the graph N3/RDF as an array.
Download:
https://sourceforge.net/projects/eulergui/
Documentation :
http://eulergui.sourceforge.net/documentation.html
Change Log :
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/CHANGELOG
In N3Source . convertToN3() :
do not retry when SocketException: Connection reset : in fact retry did not work
( test suite passes, but still a random error in eulergui.gui.TestJavaEditor )
<jmvanel> now you have no excuse for not building EG from source !
<rszeno> :)
<jmvanel> the other day I built it on a newly installed Mageia linux, with just openjdk 6 (installed by default) , and Maven ( installed from regular package by me )
<jmvanel> and started ./quick_build.sh
COMMIT
FIX random socket exception "Connexion reset" in test suite :
in ProjectGUI moved this line :
app.redoLayoutFrame(); // in case something was changed through user preferences
before starting thread with:
app.rethrowEventsExceptGUIUpdater();
so that all calls to getLocalN3() due to redoLayoutFrame() will not perturb the Drools launch
source quick_tests.sh ... [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 14:19.659s
DISPLAY=:1 LANG=en mvn -DPARSER4J_TESTS=no release:perform ... [INFO] Cleaning up after release... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 45:02.924s [INFO] Finished at: Sun Apr 22 15:23:57 CEST 2012
Add in TestJemmy.generateAndLaunch()
Thread.sleep( 20000 );// TODO dirty trick; normally the Drools button should be active when project preparation is done
target/checkout/target/surefire-reports/eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules-output.txt
[INFO] Tests in error: [INFO] test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Skill" loaded [INFO] test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Employee" loaded [INFO] testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Wait for "Class Component Chooser "JEditTextArea"(..) [INFO] test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait JLabel with text "title" loaded
[INFO] Tests in error: [INFO] test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1 [INFO] test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Skill" loaded
COMMIT
- TestJemmy.tearDown() : disposing all windows is now done in main (test) thread, and after disposing main window
- N3Source.java . manageParseN3() : add : assert localN3 != null
- SourceFactory.java : Connect_Timeout = 4000; // was 2000
- add ClassLauncherAction.java (WIP)
Still one Test in error:
testURLProjectOWL(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*index\.rdf.*"
[INFO] Tests in error: [INFO] testSimpleProjectLocal(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*book\.n3$|.*book\.n3 .*"
[INFO] Tests in error: [INFO] test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait JLabel with text "cvTitle" loaded [INFO] testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w
seeks
http://copernicus.deri.ie/
http://changingminds.org/techniques/questioning/5w1h.htm
com.opensymphony.oscache.base.persistence.CachePersistenceException: Unable to write '/home/jmv/.eulergui/rule_bases_cache/application/E/2/1/E2129229DB9F951AFB77620FA7656489.cache' in the cache. Exception: java.lang.UnsupportedOperationException, Message: null at com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener.store(AbstractDiskPersistenceListener.java:376) at com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener.store(AbstractDiskPersistenceListener.java:238) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.persistStore(AbstractConcurrentReadCache.java:1113) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.put(AbstractConcurrentReadCache.java:1679) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.put(AbstractConcurrentReadCache.java:864) at com.opensymphony.oscache.base.Cache.putInCache(Cache.java:637) at com.opensymphony.oscache.base.Cache.putInCache(Cache.java:602) at com.opensymphony.oscache.general.GeneralCacheAdministrator.putInCache(GeneralCacheAdministrator.java:249) at com.opensymphony.oscache.general.GeneralCacheAdministrator.putInCache(GeneralCacheAdministrator.java:259) at eulergui.infrastructure.cache.URICacheOSCache.cacheObject(URICacheOSCache.java:77) at eulergui.project.Project.translateN32Drools(Project.java:901) at eulergui.project.Project.prepareDrools(Project.java:873) at eulergui.project.Project.doRunDrools(Project.java:827) at eulergui.project.Project.runDroolsTriples(Project.java:778) at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:30) at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:48)
Demonstrations specifications:
demo1 a EulerGUI_demo ; rdfs:label "simple bizz rule + Java liaison" ; project <examples/BloodPressure.n3p> . demo2 a EulerGUI_demo ; rdfs:label "Swing form generation" ; project <../deductions/n3_nojs/person-app.n3p>. demo3 a EulerGUI_demo ; rdfs:label "Truth Maintenance" ; project <test/n3JavaMapping-GUI.n3p>. democ1 a shell_command_demo; rdfs:label "ATTEMPTO parser (APE)" ; command [ "ape.exe" "-text" "?" "-solo" "drspp" ].
Mixed rule base:
demo_main_window a java:javax-swing-JFrame
; javam:setTitle ( "EulerGUI framework demos" )
; javam:pack ()
; javam:setVisible ( true ).
{ ?DEMO a EulerGUI_demo ; rdfs:label ?L ; project ?P .
} => {
?B a java:eulergui-util-ClassLauncherAction
; javam:setLaunchedClass ( java:n3_project-ProjectGUI )
; javam:setArguments ( ?P )
; javam:setLabel ( ?L ).
# ?B a java:javax-swing-JButton
# ; javam:setText ( ?L )
# ; javam:setAction
# { java:n3_project-ProjectGUI javam:main ( ?P ) } . # not implemented !!!!!!!!
} .
[INFO] Failed tests: testLocalFacebookSearch(eulergui.gui.TestFacebookSearch) [INFO] testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells [INFO] [INFO] Tests in error: [INFO] testDoUpdateBoolean(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-7679769972719149484.n3 ; http://live.dbpedia.org/sparql [INFO] testURLProjectOWL(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*index\.rdf.*"
[INFO] Failed tests: testLocalFacebookSearch(eulergui.gui.TestFacebookSearch) [INFO] [INFO] Tests in error: [INFO] testProjectFromURL(eulergui.project.TestProject) [INFO] testURLProject(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*employee.uml.*"
stream reasonner
loing running queries
d2rq.org + SPARQL update
COMMIT:
- GUIGenerationHelper.java : in forceRepack(Container container) , keep only window.pack();
- remove TestGenericGuiGeneration , that is not relevant anymore, and too much trouble to maintain
- added debug print to clarify this test in error: testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*"
- SwingHelper.java : add method listComponents(JComponent component)
Duplicate URI Prefixes: : ==> http://jmvanel.free.fr/ontology/gui_generic.owl# , from gui_generic.n3 , previous Value: http://jmvanel.free.fr/ontology/examples/person# : ==> http://jmvanel.free.fr/ontology/java_projection.owl# , from java_event-rules.n3 , previous Value: http://jmvanel.free.fr/ontology/gui_generic.owl# : ==> http://jmvanel.free.fr/ontology/software_applications.owl# , from software_applications.n3 , previous Value: http://jmvanel.free.fr/ontology/java_projection.owl# : ==> http://eulersharp.sourceforge.net/2003/03swap/rpo-rules# , from rpo-rules-small.n3 , previous Value: http://jmvanel.free.fr/ontology/software_applications.owl# : ==> http://jmvanel.free.fr/ontology/gui_generic.owl# , from form-rules.n3 , previous Value: http://eulersharp.sourceforge.net/2003/03swap/rpo-rules# : ==> http://java.sun.com/class# , from java_library.n3 , previous Value: http://jmvanel.free.fr/ontology/gui_generic.owl#
Duplicate URI Prefixes: : ==> http://jmvanel.free.fr/ontology/gui_generic.owl# , from gui_generic.n3 , previous Value: http://jmvanel.free.fr/ontology/examples/person# : ==> http://jmvanel.free.fr/ontology/java_projection.owl# , from java_event-rules.n3 , previous Value: http://jmvanel.free.fr/ontology/gui_generic.owl# : ==> http://jmvanel.free.fr/ontology/software_applications.owl# , from software_applications.n3 , previous Value: http://jmvanel.free.fr/ontology/java_projection.owl# : ==> http://eulersharp.sourceforge.net/2003/03swap/rpo-rules# , from rpo-rules-small.n3 , previous Value: http://jmvanel.free.fr/ontology/software_applications.owl# : ==> http://jmvanel.free.fr/ontology/gui_generic.owl# , from form-rules.n3 , previous Value: http://eulersharp.sourceforge.net/2003/03swap/rpo-rules# : ==> http://java.sun.com/class# , from java_library.n3 , previous Value: http://jmvanel.free.fr/ontology/gui_generic.owl#
Removed this from person-events.n3 :
@prefix ded: <http://deductions.sf.net/owl/events#> .
@prefix : <http://jmvanel.free.fr/ontology/examples/person#> .
# <http://deductions.sf.net/owl/events#exception>
{ ?P a :Person .
?P :name "bush" .
} => {
ded:exception :throw " is already retired!" .
} .
What is in this demo :
using in real time a forward chaining rule engine and a generic rule set
Forward chaining rule engine :
except that there is a logical language (N3) to specify both what to listen, and what action to take
What the rule base does:
net.sf.parser4j.parser.service.ParserException: java.io.IOException: closed N3Source.manageParseN3(): Erreur pendant re-parsing N3 source "person-data.n3" getLocalN3(): /home/jmv/src/deductions/n3_nojs/person-data.n3 getURI(): person-data.n3 file:/home/jmv/src/deductions/n3_nojs/person-data.n3 n3_project.exceptions.parser.ParsingException: Last character read : "@" on line 0
java.lang.NoSuchMethodException: <unbound>=N3Source.setProject(ProjectLegacy); at java.beans.Statement.invokeInternal(Statement.java:313) at java.beans.Statement.access$000(Statement.java:58) at java.beans.Statement$2.run(Statement.java:185) at java.security.AccessController.doPrivileged(Native Method) at java.beans.Statement.invoke(Statement.java:182) at java.beans.Expression.getValue(Expression.java:153) at com.sun.beans.decoder.ObjectElementHandler.getValueObject(ObjectElementHandler.java:166) at com.sun.beans.decoder.NewElementHandler.getValueObject(NewElementHandler.java:123) at com.sun.beans.decoder.ElementHandler.endElement(ElementHandler.java:169) at com.sun.beans.decoder.DocumentHandler.endElement(DocumentHandler.java:305) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(SAXParser.java:392) at com.sun.beans.decoder.DocumentHandler.parse(DocumentHandler.java:356) at java.beans.XMLDecoder.parsingComplete(XMLDecoder.java:192) at java.beans.XMLDecoder.readObject(XMLDecoder.java:238) at eulergui.project.ProjectFactory.normalizeAndReadXMLEncoderStream(ProjectFactory.java:192) at eulergui.project.ProjectFactory.restoreXMLFile(ProjectFactory.java:104) at eulergui.project.ProjectFactory.restoreXML(ProjectFactory.java:87) at eulergui.project.ProjectFactory.restoreXMLURL(ProjectFactory.java:216) at eulergui.project.ProjectFactory.restore(ProjectFactory.java:65) at eulergui.project.ProjectFactory.restoreAnyFromURI(ProjectFactory.java:375) at eulergui.CommandLineArguments.makeProjectsFromUserArgument(CommandLineArguments.java:60) at n3_project.ProjectGUI.main(ProjectGUI.java:202)
Caused by: java.lang.ClassCastException: n3_project.helpers.LineTrackingTriple cannot be cast to java.util.List at pricing_n3_0.Rule_pricing_n3_0Eval0Invoker.evaluate(Unknown Source)
DISPLAY=:1 LANG=en mvn --offline -DargLine="-DDEDUCTIONS_PROJECTS=local" -Dtest=eulergui.gui test
printer config on Ubuntu :
system-config-printer
Added debug print to clarify this test in error:
testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*"
DISPLAY=:1 LANG=en mvn -Dtest='eulergui.gui.TestImportSwrl#testRemoteImportSwrlWithDrools' test
Cette première video sur EulerGUI sera suivie par d'autres:
deductions/n3_nojs/person-app.n3p
show class tree with tooltips
show mini-application from class tree (? test)
power of subproperty
OWL rule to categorize resources
Documentation : fix bad viewvc links :
200,$s=http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/==
Error in test TestGenericGuiGeneration.java : removed test , as it is old anyway, and I suspect parallel changes in Drools translation settings and Swing rules.
ERROR in running Drools Inference Engine Cause: Exception executing consequence for rule "generic_gui_projection-rules.n3 7" in generic_gui_projection_rules_n3_4: org.drools.RuntimeDroolsException: Unexpected exception executing action org.drools.common.TruthMaintenanceSystem$LogicalRetractCallback@1f49a696 ERROR
I upgraded to the "natty" upgrade. While the laptop was running the upgrade, my wife closed the laptop lid and apparently interrupted the install.
Next morning, I went to boot up and it wouldn't. It goes to where it lists "generic" versions (each with recovery mode version)...nothing will load. When i chose one, it goes to a point of running all kinds of script or something...then saying in the last few lines "The disk drive for / is not ready yet or present". Next line: "Continue to wait; pr Press S to skip mounting or M for manual recovery". Nothing I try with those options does anything to boot.
selected M to get to a comand line; ran
sudo mount -o remount,rw /
then was able to run
dpkg --configure -a
selecting the defaults whenever given a choice.
After that it hung, I restarted and I was able to log in normally, went to update manager and was prompted to do a partial upgrade
Tests in error:
testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*"
test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Image" loaded
TestN3SourceInGUI OK after this :
mvn clean DISPLAY=:1 LANG=en mvn -Dtest=eulergui.gui.TestN3SourceInGUI test
Results :
Tests in error:
testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*"
testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*"
test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded
test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded
test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded
test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded
testURLProjectOWL(eulergui.gui.TestJavaEditor): Wait for "getText() Component Chooser "rdfs:label="Agent""(..)
testAddNewN3SourceEditor(eulergui.gui.TestN3SourceInGUI): eulergui.gui.TestN3SourceInGUI.chooseFileAddTextInEditorAndSave(Ljava/lang/String;Ljava/lang/String;)V
<jmvanel> travelling to Lyon this morning ...
<jmvanel> still one thing not working with SPARQL :
<jmvanel> scenario : create a SPARQL query ; edit it ; choose endpoint
<jmvanel> then the query does not run again
<jmvanel> one must edit again the query
please test it with your SWRL rule bases and SQWRL queries
Martin O'Connor
18:49 (Il y a 15 heures)
à protege-owl
The 3.5 alpha release of Protege-OWL is now available on the Protege web site [1]. The main focus of the 3.5 series is the SWRLTab's support of the Drools rule engine, thus providing a completely free and open source solution for executing SWRL rules in Protege-OWL. Previously, executing SWRL rules or SQWRL queries in the SWRLTab required the use of the Jess rule engine, which is not open source and requires a license (though it is free for academic and U.S. government use). A new tab called the SWRLDroolsTab provides a graphical interface for interacting with the Drools implementation. SQWRL and all existing SWRL built-in libraries are supported by the Drools implementation. The existing SWRLJessTab is still available.
A major new feature is the use of OWL 2 RL-based reasoners [2] by the Jess and Drools implementations. Previously, the SWRLTab provided very incomplete OWL reasoning when executing SWRL rules or SQWRL queries. These reasoners are highly configurable via GUI-based or API-based interfaces [3].
The Jess and Drools implementations are functionally identical. For small ontologies, the Drools-based OWL 2 RL reasoner will typically be slightly slower than the Jess-based reasoner because of its greater startup time. However, Drools is typically slightly faster than Jess for the inference process itself, though the difference here is minor. By default, both implementations will be somewhat slower than the Jess implementation in 3.4.8 and earlier because of the more robust reasoning that is being performed. As mentioned, the reasoners are configurable so users may increase inference speeds by reducing the number of inferences being generated.
We would encourage users to try the new 3.5 alpha with their existing SWRL and SQWRL rule and query collections. Please post any problems to the list or send me (off-list) ontologies that I can use to replicate reported problems. Make sure to use the latest alpha release build (currently #644) before reporting a problem.
[1] http://protegewiki.stanford.edu/wiki/Protege_3.5_Alpha_Release_Notes
[2] http://www.w3.org/TR/owl2-profiles/#OWL_2_RL
[3] http://protege.cim3.net/cgi-bin/wiki.pl?SWRLTabOWL2RL
http://dbooth.org/2010/ambiguity/paper.html#sameAs
<rszeno> +33-6-89162952 must be +33-689-162-952
<rszeno> http://en.wikipedia.org/wiki/ITU
http://www.google.com/search?q=owl%3AsameAs+problems
See http://wiki.foaf-project.org/w/FOAFBulletinBoard
http://moustaki.org/foaf.rdf#moustaki : Yves Raymond's FOAF
http://bblfish.net/people/henry/card#me Henry Story
IDEAS:
TODO:
FIX : in person-app.n3p demo, the new label added by rule is not showing unless the window is resized
SPARQL : possibility to switch at any time between SELECT and CONSTRUCT
SELECT DISTINCT ?pname ?v
# CONSTRUCT { dbpedia:Buddy_Guy ?p ?v . }
WHERE {
dbpedia:Buddy_Guy ?p ?v .
?p rdfs:label ?pname .
}
Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded Tests run: 184, Failures: 1, Errors: 7, Skipped: 0
COMMIT
- change API in ITripleStore : searchBySubjectAndPredicate() returns a List
- WIP: test N3TableModel
http://wiki.musicbrainz.org/LinkedBrainz#SPARQL_Endpoint
http://ismir2009.dbtune.org/taxonomy/term/5
http://dbtune.org/musicbrainz/sparql
Thread [rethrowEventsExceptListener(guiUpdater)] (Suspended (breakpoint at line 76 in N3SourceFromSPARQLSource)) N3SourceFromSPARQLSource.doUpdate(boolean) line: 76 N3SourceFromSPARQLSource.doUpdate() line: 66 N3SourceFromSPARQLSource.getLocalN3() line: 145 N3SourceFromSPARQLSource(N3Source).manageParseN3() line: 414 N3SourceFromSPARQLSource(N3Source).update() line: 394 N3ConversionRefesher.updateN3(N3Source) line: 121 UpdateN3Thread.run() line: 40 N3ConversionRefesher.doN3SourceAdded(Project, N3Source) line: 77 N3ConversionRefesher.n3SourceAdded(Project, N3Source) line: 57 ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 86 Project.rethrowEventsPlease(ProjectChangeSupport) line: 1379 ProjectChangeSupport.rethrowEventsExceptListener(Project, ProjectListener) line: 190 Project.rethrowEventsExceptListener(ProjectListener) line: 1510 ProjectGUI.rethrowEventsExceptGUIUpdater() line: 329 ProjectGUI.access$0(ProjectGUI) line: 326 ProjectGUI$1.run() line: 316 Thread.run() line: 722
I thought to send this Mail to Jena list, but the problems was in EG ( bad request type CONSTRUCT or SELECT ).
This query runs fine from command line :
egcp arq.remote --results n3 --query virtuoso.rq --service=http://live.dbpedia.org/sparql --verbose --debug --strict
The query in virtuoso.rq is :
SELECT ?C ?P ?V
WHERE {
?C rdfs:label ?LAB .
?LAB <bif:contains> "instrument" .
?C ?P ?V .
} LIMIT 200
but not from the API. FIXED
As the Jena command lines program are hard to debug, and there is sure a difference somewhere, I ask if you have an idea about what can be the reason.
Another related question is : how can I get all the error information when the query fails ? I hope that in some servers ( Virtuoso ? Jena TDB ? others ? ) some HTTP headers give informations.
COMMIT
- avoid redo the query if it already aborted
( by setting updateTimestamp in finally block in N3SourceFromSPARQLSource.doUpdate() )
- avoid running the SPARQL query in main thread when opening a project including SPARQL queries
( do not call doUpdate in prepare in class N3SourceFromSPARQLSource )
I had the impression that updateTimestamp is set in doUpdate() , and when doUpdate() is called a second time in same thread, the value is 0 !!??
but that was a wrong guess from the debug print !
----------------------------------
<jmvanel> will be at WWW 2012 , in my birth city
<rszeno> lyon?
<jmvanel> Yes. I should have prepared something like in 2000
<jmvanel> http://www9.org/w9-devxml.html
Tests in error: testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded testSimpleURLProject(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*book\.n3$|.*book\.n3 .*|.*book\.n3_.*"
running arq.remote with args:
--results n3 --query euler_project.xml.n3p.rq --service=http://live.dbpedia.org/sparql --verbose --debug --strict
works !
but not in EG :( . However I use the API like recommended .
cf http://jena.sourceforge.net/ARQ/cmds.html#arq.remote
http://www.geonames.org/export/ws-overview.html
<rszeno> take a look to http://www.wiwiss.fu-berlin.de/en/institute/pwo/bizer/research/publications/Bizer-FIS2010-Pay-As-You-Go-Talk.pdf
<rszeno> source is http://linkeddatabook.com/editions/1.0/#effortDistribution
Tests in error: testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded testURLProject(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*employee.uml.*" testSimpleProjectLocal(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*book\.n3$|.*book\.n3 .*" Tests run: 180, Failures: 0, Errors: 8, Skipped: 0
With Revision 2980, the extension point capabilities of EulerGUI are used for real.
Now the result display features are set by N3 configuration rules in
src/main/resources/eulergui/gui/controller/application-rules.n3
These result display features are displayed by 4 buttons on upper right corner of main window, and are implemented by there classes:
ResultEditorAction, ResultEditorN3Action, ResultGraphvizAction, ResultTableAction
There is just one rule to configure these features :
{
?GUI a java:n3_project-ProjectGUI
; javap:resultManagement ?R .
} => {
?ResultEditorAction a java:eulergui-gui-actions-ResultEditorAction
; javam:setProjectGUI( ?GUI ).
?ResultEditorN3Action a java:eulergui-gui-actions-ResultEditorN3Action
; javam:setProjectGUI( ?GUI ).
?ResultGraphvizAction a java:eulergui-gui-actions-ResultGraphvizAction
; javam:setProjectGUI( ?GUI ).
?ResultTableAction a java:eulergui-gui-actions-ResultTableAction
; javam:setProjectGUI( ?GUI ).
?R
javam:addAction ( ?ResultEditorAction )
; javam:addAction ( ?ResultEditorN3Action )
; javam:addAction ( ?ResultGraphvizAction )
; javam:addAction ( ?ResultTableAction )
}.
This rule says : "for each main window ProjectGUI, with a field resultManagement ?R, create the 4 objects ?ResultEditorAction ,
etc, and add them to ?R through method addAction".
The method addAction on class ResultManagement is just one of 10 extension points that are planned :
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/architecture.html#L762
In the Roadmap for EulerGUI 2.0 :
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#L9989
this task is described this way :
| Features
and code changes |
Comments | Estimate
(skilled developper) |
Sub-feature | Sub-feature |
|---|---|---|---|---|
| extension points for adding features in N3 configuration file | will also enable many things: user defined extensions à la eclipse; several user modes ; this will also be similar to Spring configuration, but with possibly platform and context -aware rules here; estimation just for creating interfaces and containers in Java | 2 | new N3 sources types: RDFa, ATTEMPTO sentences, ng4j / semweb client |
Note that the main architectural advantage of extensions point à la eclipse is to be able to add a feature without modifying a line in the Java code.
But here, contrary to Spring or eclipse stuff, we have the whole power of rules here: it is possible to take in account machine and user context and history.
This mechanism is usable also in applications built with the EulerGUI framework.
CAVEAT:
- no support for checking Java methods and classes is provided in EulerGUI editor, so error here raise Drools compliation errors that are not user-friendly
- the above rule N3 file is accessible to EulerGUI through the classpath, so to modify the internal rules, one must rebuild EulerGUI (or work in eclipse).
------------------------------------------------
COMMIT
ARCH: now the result display features are set by N3 configuration rules in
src/main/resources/eulergui/gui/controller/application-rules.n3
ResultEditorAction, ResultEditorN3Action, ResultGraphvizAction, ResultTableAction
This does work (but replacing the variable ?ResultTableAction with an URI fails )
{
?GUI a java:n3_project-ProjectGUI
; javap:resultManagement ?R .
} => {
?ResultTableAction a java:eulergui-gui-actions-ResultTableAction
; javam:setProjectGUI( ?GUI ).
?R javam:addAction ( ?ResultTableAction );
}.
This could be made to work (singleton instantiation and use)
:ResultTableAction a java:eulergui-gui-actions-ResultTableAction .
{
?GUI a java:n3_project-ProjectGUI
; javap:resultManagement ?R .
:ResultTableAction a java:eulergui-gui-actions-ResultTableAction .
} => {
:ResultTableAction javam:setProjectGUI( ?GUI ).
?R javam:addAction ( :ResultTableAction );
}.
java.lang.RuntimeException: Erreur pendant re-parsing N3 source "BloodPressure.n3" getLocalN3(): /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/BloodPressure.n3 getURI(): BloodPressure.n3 at eulergui.project.N3Source.manageParseN3(N3Source.java:446) at eulergui.project.N3Source.update(N3Source.java:394) at eulergui.gui.controller.N3ConversionRefesher.updateN3(N3ConversionRefesher.java:121) at eulergui.gui.controller.UpdateN3Thread.run(UpdateN3Thread.java:40) at eulergui.gui.controller.N3ConversionRefesher.doN3SourceAdded(N3ConversionRefesher.java:77) at eulergui.gui.controller.N3ConversionRefesher.n3SourceAdded(N3ConversionRefesher.java:57) at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.java:86) at eulergui.project.Project.rethrowEventsPlease(Project.java:1379) at eulergui.project.ProjectChangeSupport.rethrowEventsExceptListener(ProjectChangeSupport.java:190) at eulergui.project.Project.rethrowEventsExceptListener(Project.java:1510) at n3_project.ProjectGUI.rethrowEventsExceptGUIUpdater(ProjectGUI.java:329) at n3_project.ProjectGUI.access$0(ProjectGUI.java:326) at n3_project.ProjectGUI$1.run(ProjectGUI.java:316) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.NullPointerException at net.sf.parser4j.parser.service.ParseStackAction.reduce(ParseStackAction.java:198) at net.sf.parser4j.parser.service.Parser.matchManagement(Parser.java:1033) at net.sf.parser4j.parser.service.Parser.checkForMatch(Parser.java:926) at net.sf.parser4j.parser.service.Parser.shiftByToken(Parser.java:814) at net.sf.parser4j.parser.service.Parser.parse(Parser.java:397) at eulergui.parser.n3.impl.parser4j.service.N3Parser.parseN3(N3Parser.java:178) at eulergui.drools_engine.ParserLink.doParse(ParserLink.java:155) at eulergui.drools_engine.ParserLink.parse(ParserLink.java:117) at eulergui.project.N3Source.doParseN3(N3Source.java:499) at eulergui.project.N3Source.manageParseN3(N3Source.java:434)
Important stack to fix:
java.lang.RuntimeException: Erreur pendant re-parsing N3 source "BloodPressure.n3"
getLocalN3(): /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/BloodPressure.n3
getURI(): BloodPressure.n3
at eulergui.project.N3Source.manageParseN3(N3Source.java:446)
at eulergui.project.N3Source.update(N3Source.java:394)
at eulergui.gui.controller.N3ConversionRefesher.updateN3(N3ConversionRefesher.java:121)
at eulergui.gui.controller.UpdateN3Thread.run(UpdateN3Thread.java:40)
at eulergui.gui.controller.N3ConversionRefesher.doN3SourceAdded(N3ConversionRefesher.java:77)
at eulergui.gui.controller.N3ConversionRefesher.n3SourceAdded(N3ConversionRefesher.java:57)
at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.java:86)
at eulergui.project.Project.rethrowEventsPlease(Project.java:1379)
at eulergui.project.ProjectChangeSupport.rethrowEventsExceptListener(ProjectChangeSupport.java:190)
at eulergui.project.Project.rethrowEventsExceptListener(Project.java:1510)
at n3_project.ProjectGUI.rethrowEventsExceptGUIUpdater(ProjectGUI.java:329)
at n3_project.ProjectGUI.access$0(ProjectGUI.java:326)
at n3_project.ProjectGUI$1.run(ProjectGUI.java:316)
at java.lang.Thread.run(Thread.java:722)
Caused by: net.sf.parser4j.parser.service.ParserException: java.io.IOException: closed
at net.sf.parser4j.parser.service.Parser.readTerminalValue(Parser.java:861)
at net.sf.parser4j.parser.service.Parser.readTerminalValueAndParse(Parser.java:642)
at net.sf.parser4j.parser.service.Parser.parse(Parser.java:387)
at eulergui.parser.n3.impl.parser4j.service.N3Parser.parseN3(N3Parser.java:178)
at eulergui.drools_engine.ParserLink.doParse(ParserLink.java:155)
at eulergui.drools_engine.ParserLink.parse(ParserLink.java:117)
at eulergui.project.N3Source.doParseN3(N3Source.java:499)
at eulergui.project.N3Source.manageParseN3(N3Source.java:434)
... 13 more
Caused by: java.io.IOException: closed
at net.sf.parser4j.parser.service.ParserInput.read(ParserInput.java:56)
at net.sf.parser4j.parser.service.Parser.readTerminalValue(Parser.java:859)
This does not work :
@prefix java: <http://java.sun.com/class#> .
@prefix javam: <http://java.sun.com/method#> .
@prefix javap: <http://java.sun.com/predicate#> .
:f a java:javax-swing-JFrame .
:lab a java:javax-swing-JLabel .
{ ?F a java:javax-swing-JFrame
; javap:contentPane ?CP.
} => {
?CP javam:add( :lab ) .
This does not work :
:ResultTableAction a java:eulergui-gui-actions-ResultTableAction .
{
?GUI a java:n3_project-ProjectGUI
; javap:resultManagement ?R .
} => {
:ResultTableAction javam:setProjectGUI( ?GUI ).
?R javam:addAction ( :ResultTableAction );
}.
PREFIX fn: <http://www.w3.org/2005/xpath-functions#>
COMMIT
add button to show inference Result as a Table
This does not work , but works with the dbpedia web user interface !
SELECT ?C ?P ?V WHERE { ?C rdfs:label ?LAB . ?LAB <bif:contains> "instrument" . ?C ?P ?V . } LIMIT 200
search ( green ) , or orange ( main ) queries
{ :x :p ?V . ?V :p2 ?W . } => { :y :p ?V }.
"instrument" : label qui existe pas ==> on va aider l'utilisateur à créer une propriété :on va deviner: rdfs:label ; rdfs:domain ?? ; on va lui demander le type de valeur : litéral lequel ou resource
s'appuyer sur une ontologie de référence , lien entre "instrument" et des concepts
je pense à dbPedia ; requête : HELAS , marche mal !!!!!!!!!!!! Virtuoso :(((((((((
SELECT ?C ?P ?V WHERE { ?C rdfs:label ?LAB . FILTER regex( ?LAB , ".*instrument.*" ) ?C ?P ?V . } LIMIT 200
Virtuoso S1T00 Error SR171: Transaction timed out SPARQL query: PREFIX owl: PREFIX xsd: PREFIX rdfs: PREFIX rdf: PREFIX foaf: PREFIX dc: PREFIX : PREFIX dbpedia2: PREFIX dbpedia: PREFIX skos: SELECT ?C ?P ?V WHERE { ?C rdfs:label ?LAB . FILTER regex( ?LAB , ".*instrument.*" ) ?C ?P ?V . } LIMIT 200
<jmv__> Hi Is there a dbPedia endpoint not run by Virtuoso ?
Autre idée : utiliser WN 2.0 en Français ( Wolf )
-----------------------
D'n'd : transférer la ligne et les triplets
les propriétés musicales devraient commencer par des minuscules.
property - value pair to a resource
TDB : ACID ???
player todo
sort on artist
JMV:
?C a owl:Class .
COMMIT
FIX TestGenericGuiGeneration :
- add a remove method in GUIKBAdapter ( retraction errors occured, due to new retraction mechanism with Drools retraction listener
but still TODO : ERROR in running Drools Inference Engine
Cause:
Exception executing consequence for rule "generic_gui_projection-rules.n3 7" in generic_gui_projection_rules_n3_4: org.drools.RuntimeDroolsException: Unexpected exception executing action org.drools.common.TruthMaintenanceSystem$LogicalRetractCallback@798daa3f ERROR
- in N3Source.manageParseN3(), the call to doParseN3() is synchronized in all cases ( one thread was closing the input stream while another was reading )
FIX TestSPARQLInGUI
EEEE == passes in isolation in eclipse
Tests in error: testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" EEEE test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded testURLProject(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*employee.uml.*" EEEE
COMMIT : doc. :
add "Uploading a snapshot", links to ACE videos
some links were not relative
Daemon Thread [SwingWorker-pool-3-thread-1] (Suspended) N3Source.manageN3Cache(N3Source) line: 609 IOManager.getLocalCache(N3Source) line: 180 N3SourceFromSPARQLSource(N3Source).getLocalCache() line: 746 N3SourceFromSPARQLSource(N3Source).getLocalN3() line: 742 N3SourceFromSPARQLSource.getLocalN3() line: 128 N3SourceFromSPARQLSource(N3Source).manageParseN3() line: 413 N3SourceFromSPARQLSource(N3Source).update() line: 393 N3ConversionRefesher.updateN3(N3Source) line: 121 UpdateN3Thread.run() line: 40 N3ConversionRefesher.doN3SourceAdded(Project, N3Source) line: 77 N3ConversionRefesher.n3SourceAdded(Project, N3Source) line: 57 ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 86 Project.addN3Source(N3Source, boolean) line: 313 Project.addN3Source(N3Source) line: 293 SPARQLServiceInputAction$1.doInBackground() line: 113 SPARQLServiceInputAction$1(N3SourceWorker).doInBackground() line: 1 SwingWorker$1.call() line: 296 FutureTask$Sync.innerRun() line: 334 SwingWorker$2(FutureTask<V>).run() line: 166 SPARQLServiceInputAction$1(SwingWorker<T,V>).run() line: 335 ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110 ThreadPoolExecutor$Worker.run() line: 603 Thread.run() line: 722
Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded
http://dbpedia.org/page/Jimi_Hendrix
<jmvanel> uploading a snapshot : SPARQL fixes ;
<jmvanel> should work in any way : existing project, new query, changing an query (even from SELECT to CONSTRUCT),
<jmvanel> failing query, bad syntax, changing the endpoint
Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: testProjectFromURL(eulergui.project.TestProject) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Skill" loaded testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded Tests run: 185, Failures: 1, Errors: 7, Skipped: 0
FIX: ProjectGUI_Updater was added twice :
Thread [main] (Suspended (breakpoint at line 24 in ProjectGUI_Updater)) ProjectGUI_Updater.<init>(ProjectGUI) line: 24 ProjectGUI.setProject(Project) line: 842 ProjectGUI.<init>(Project) line: 148 ProjectGUI.newWindow(Project, boolean) line: 260 ProjectGUI.main(String[]) line: 219
------
Thread [main] (Suspended (breakpoint at line 24 in ProjectGUI_Updater)) ProjectGUI_Updater.<init>(ProjectGUI) line: 24 ProjectGUI.populateWindow(Project, boolean) line: 290 ProjectGUI.newWindow(Project, boolean) line: 274 ProjectGUI.main(String[]) line: 219
------------------------
Daemon Thread [SwingWorker-pool-4-thread-1] (Suspended (breakpoint at line 226 in ButtonsForN3Source)) ButtonsForN3Source.<init>(SourceFilesView, N3Source, boolean) line: 226 SourceFilesView.doAddButtonForFile(N3Source, boolean) line: 126 ProjectGUI_Updater.n3SourceAdded(Project, N3Source) line: 36 ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 85 Project.addN3Source(N3Source, boolean) line: 313 Project.addN3Source(N3Source) line: 293 SPARQLServiceInputAction$1.doInBackground() line: 113 SPARQLServiceInputAction$1(N3SourceWorker).doInBackground() line: 1 SwingWorker$1.call() line: 296 FutureTask$Sync.innerRun() line: 334 SwingWorker$2(FutureTask<V>).run() line: 166 SPARQLServiceInputAction$1(SwingWorker<T,V>).run() line: 335 ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110 ThreadPoolExecutor$Worker.run() line: 603 Thread.run() line: 722
COMMIT
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
CONSTRUCT {
?P a rdfs:Property.
} WHERE { ?s ?p ?o }
SPARQL SELECT table button :
- now does NOT redo the query
- is disabled until query is done
http://www.prova.ws/ is now up !
<jmvanel> watched screencast on ontowiki : http://docs.ontowiki.net/ontowiki/screencasts/2008-01-22/
<jmvanel> nice tool !
looking for a tool or library to query Google API's ( contacts, agenda, mail ) and give N3 or RDF answer .
( nothing mentioned in the "standard" page http://www.w3.org/wiki/ConverterToRd )
<mhausenblas> jmvanel, maybe http://ceur-ws.org/Vol-521/paper1.pdf is of help?
* nonge est parti (Quit: Verlassend)
<jmvanel> mhausenblas, can be ; it's not an Open Source lib., and it's more general than Google API , which is good, as I have other use cases , like MusicBrainz
ANN: WebDataCommons.org - Offering 3.2 billion quads current RDFa, Microdata and Miroformat data extracted from 65.4 million websites
http://www.javaoracleblog.com/java/Rules_Engines_Pandora_Ushihidi_and_Everything_Else.jsf
http://www.w3.org/community/openannotation/
http://www.w3.org/community/rww/
./ape.exe -solo paraphrase -guess -text \ 'If there is an order O then there is a demand-for-payment D, and D is associated-to O .' If there is an order X1 then a n:demand-for-payment is a:associated-to the order X1. ./ape.exe -solo paraphrase -guess -text 'If there is an alert A then A v:is-displayed in the dashboard.' If there is an alert X1 then the alert X1 v:is-displayed in a dashboard.
http://www.openlinksw.com/
W3C Community and Business Groups
http://www.w3.org/community/
I'm looking for some kind of web application Open Source framework, backed by a SPARQL endpoint : either CMS, or collaborative, or data input and display.
But I can not find one!! it is possible that it does not exists; I just saw http://incubator.apache.org/clerezza/ , but it's more a general RDF toolkit than a toolkit for collaborative apps .
LDIF translates heterogeneous Linked Data from the Web into a clean, local target representation while keeping track of data provenance.
http://www4.wiwiss.fu-berlin.de/bizer/ldif/
http://semtechbizsf2012.semanticweb.com/sessionPop.cfm?confid=65&proposalid=4671
http://spqr.cerch.kcl.ac.uk/?page_id=94
On swig IRC:
<ww> jmvanel: what about ontowiki?
<MacTed> jmvanel - you might look at http://ods.openlinksw.com/ which rides atop http://virtuoso.openlinksw.com/ (either open source or commercial edition). (ObDisclaimer: I work for OpenLink Software.)
<jmvanel> ww, ontowiki looks fine ; PHP is not my favorite language , but the code looks clean :)
<jmvanel> MacTed, is there such a thing as "design documentation" for Virtuoso ODS ?
<MacTed> jmvanel - not sure what you mean by "design documentation"... The Programmer's Guide is probably a good place to start -- http://ods.openlinksw.com/wiki/ODS/ODSProgrammersGuide
<jmvanel> MacTed, thanks, these pages are valuable ; they look like a howto for different modules, but some global architecture pages would be nice ...
<MacTed> jmvanel - perhaps this -- http://ods.openlinksw.com/wiki/ODS/OdsFramework
<MacTed> jmvanel - I can tell you that Virtuoso Open Source is in fairly broad use, based on public SPARQL endpoints provided by a number of different projects/companies/gov't orgs/etc. I can't speak to ODS usage levels, as it's purely open source, and can be used atop either VOS or Virtuoso Commercial without telling us a thing...
Book on Linked Data : http://linkeddatabook.com/editions/1.0/
http://www.innovation.ch/java/HTTPClient/getting_started.html
Looked for "SPARQL 1.1 diagnostic"
http://docs.openlinksw.com/virtuoso/rdfsparql.html
Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded
Example:
{ ?X :p ?V . ?V string:contains "bla" . ?X foaf:name ?N .
} => {
?X foaf:name ?N .
}.
How to do ?
For each row in answer, find the value of ?X and ?N byt looking in each Triple object. Then build the triple answer. The algorithm will interpret the query as an N3 graph.
To ask on swig : is there a connector to get Google API's as triples ?
<rszeno> need a 'webaccess' module
<rszeno> code can be reused
<rszeno> for example writing such a module in scala will reuse the code you have by calling 'actions' from existing and use info provided by others java parts
<jmvanel> yes, and SourceFactory is not modular , if I want to add new N3 source types, I have to add code in a big if - else black :(
<rszeno> this is why i said that scala can be used to control the 'flow' in eg
<rszeno> n3 sources you mean accept headers, file extensions, etc. ?
<jmvanel> N3Source subclasses are associated to different ways of translating stuff into N3 : from RDF, plain XML , UML, etc
<rszeno> a dispatcher who use a hash array? giventype: given-translator
<rszeno> giventype is computed based on some criteria: file extension, accept headers, server response status, etc.
<rszeno> what you have now in SourceFactory
<rszeno> adding a new type is as simple as building: 1. the decision logic for given type, 2. the translator and 3. adding the pair to dispacher
<rszeno> thing become complicated if you want to do 'error recovery', that mean the server return rdf/xml but is html+rdfa
<rszeno> but is still more easy to extend this based on 'current state' after attempting execution of the action( translation)
-------------------------------------
COMMIT
- added code so that http://education.data.gov.uk/id/school/118217 now works ;
in case of redirect, set the Accept header to application/rdf+xml
TODO SourceFactory is not modular , if I want to add new N3 source types, I have to add code in a big if - else block :(
the "keep actions separated from getters and decisions" is not there :(
Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: testProjectFromURL(eulergui.project.TestProject) test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded
- follow Redirect Explicitly, that is, do not rely on {@link HttpURLConnection} default redirect following
Tested with http://education.data.gov.uk/id/school/118217 , but does not work on this site, because it needs a simple Accept header: application/rdf+xml
- set Request Property "User-Agent" => "EulerGUI/1.10"
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4113495
Saw this in HttpQuery.execCommon() in ARQ :
// +++ WORKAROUND for badly behaved apps.
// Apps sometimes call QueryExecution.close straight after .execSelect.
// that results in some resuls being seen, not all of them => XMl parse errors.
Is there a way to transform an HTML document into a PDF document?
My requirement is to transform hyperlinks into end notes, keeping the hyperlink in the body of the text.
oem-laptop: ~/bizz/taxochronos/src/audio-dam/ % sudo aptitude install gitk
[sudo] password for jmv:
Les NOUVEAUX paquets suivants vont être installés :
gitk
Les paquets suivants seront ENLEVÉS :
libasound2{u} libasound2-plugins{u} libasyncns0{u} libatk1.0-0{u} libcairo2{u}
libdatrie1{u} libflac8{u} libgdk-pixbuf2.0-0{u} libgtk2.0-0{u} libjack-jackd2-0{u}
libjasper1{u} libjson0{u} libnspr4-0d{u} libnss3-1d{u} libogg0{u} libpango1.0-0{u}
libpixman-1-0{u} libpulse0{u} libsamplerate0{u} libsndfile1{u} libspeexdsp1{u}
libthai0{u} libvorbis0a{u} libvorbisenc2{u} libwrap0{u} libxcb-render0{u} libxcb-shm0{u}
libxcomposite1{u} libxcursor1{u} libxft2{u} libxinerama1{u} libxrandr2{u}
nspluginviewer{u} nspluginwrapper{u}
0 paquets mis à jour, 1 nouvellement installés, 34 à enlever et 0 non mis à jour.
Il est nécessaire de télécharger 132 ko d'archives. Après dépaquetage, 19,8 Mo seront libérés.
Voulez-vous continuer ? [Y/n/?] Y
http://software.intel.com/en-us/blogs/2011/05/18/the-first-thing-we-do-lets-kill-all-the-object-oriented-programming/
Example for processing HTTP 303 (redirect) :
http://education.data.gov.uk/id/school/118217
New Java module system : alas it's still in project
http://openjdk.java.net/projects/jigsaw/
http://openjdk.java.net/projects/jigsaw/doc/quickstart.html
Now we have a new table view for each N3 source.
Currently the class TableModelFromN3 takes as argument a list of triples from which row and columns are computed
Currently it has several flaws:
Some enhancements are already possible by the framework:
{ ?X ... } => { ?X :newProperty ?COMPUTED_VALUE }.
For point 1. , the design explained in previous post in the list must be used. More precisely, there will be a new class N3TableModel extending DefaultTableModel, and with methods :
/** populate the table with rows made of all triples ?uri ?P ?V */ void setRows( List<String> uri ); List<String> uri getRows(); List<String> uri getColumns(); /** add at the end of table a row made of all triples ?uri ?P ?V */ void add( String uri ); void remove( String uri ); /** add in table after given Uri a row made of all triples ?uri ?P ?V */ void add( String uri, String afterUri ); void add( String uri ); /** add a cell in the table; several cases: - if cell exists but is empty, it is filled - if cell exists but is not empty, a new colunm will be added - if cell does not exist, a new colunm will be added */ void addElement( ITriple t ); void removeElement( ITriple t );
For implementation, we will extract methods from TableModelFromN3.
For point 2., the above API offers methods. For implemeting drag and drop for columns, there is no obvious way, cf this Google search:
move rows by clicking jtable
One thing is sure, by default sorters in JTable manipulate the view, and the table model remains unchanged by default, see :
http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#sorting
In list semantic-web this drew my attention :
implementation of the Linked Data API [2]. Elda is available from
the downloads page [3] of http://elda.googlecode.com. Elda is
open source available by cloning its Mercurial repository [4].
The Linked Data API provides a configurable way to access RDF data
using simple RESTful URLs that are translated into queries to a SPARQL
endpoint. The API developer writes an API spec (in RDF) which specifies
how to translate URLs into queries.
[1] http://www.epimorphics.com
[2] http://code.google.com/p/linked-data-api/
[3] http://code.google.com/p/elda/downloads/list
[4] http://elda.googlecode.com/hg/
[5] http://elda.googlecode.com/hg/ReleaseNotes/Release1.2.8.text
D2RQ is an open-source system for database-to-RDF mapping. It makes the contents of relational databases accessible as SPARQL endpoints, as Linked Data, and as RDF dumps.
http://d2rq.org/
New features in this version include preliminary SPARQL 1.1 support, Firebird support, generation of RDFS/OWL schemas for databases, and download maps for making the content of CLOB/BLOB columns accessible via HTTP. Datatype compatibility with Oracle, MySQL, SQL Server and HSQLDB has been greatly improved, and many bugs have been fixed. See [2] for the full list of changes.
Idea: use generated form for query parameter or "simple SPARQL"
on Ubuntu I have other troubles : mouse becomes slow and irreponsive when there are 2 screens :(
<jmv_> on a single screen , everything works for me ubuntu
<jmv_> sound, and even skype video + sound :)
I experimented a way to leverage on Drools to automatically retract GUI components and content when some domain fact triple is retracted from the Knowledge Base.
We leverage on Drools thruth maintenance (alias logical insert) .
How to test :
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/
==> a new Window with "data" appears
x :p "new data" .
==> in new window , "new data" appears
@prefix kb: <http://deductions.sf.net/ontology/knowledge_base.owl#> . _:d kb:retract ( :x :p "data" ) .
==> in new window , "data" disappears
How it works:
There is a Swing DefaultListModel associated to the URI :listModel .
Then the rule says: whenever there is a triple :x :p ?V , add ?V to the ListModel .
:listModel a java:javax-swing-DefaultListModel.
{
:x :p ?V .
} => {
:listModel javam:addElement ( ?V ).
} .
The DefaultListModel is added in a JList object itself added to a JFrame ( standard Swing technology, just wrapped in N3 ) :
:JFRAME a java:javax-swing-JFrame . :JLIST a java:javax-swing-JList . :JLIST javam:setModel ( :listModel ) . :JFRAME javam:add :JLIST . :JFRAME javam:setSize ( 200 200 ) . :JFRAME java:visible true .
So the scene is set at step 2.
As a by-product, this has added to the KB an object DeferredMethodCall that represents the addElement() method call in the consequent of the rule. This is N3 + Drools engine machinery ( BTW it allows to make calls deferred until both subject and arguments are bound ) .
Now, when the triple :x :p "data" is retracted, Drools automatically retracts the DeferredMethodCall object representing the addElement() method call:
We added a class JavaObjectsRetractionListener implementing WorkingMemoryEventListener which is called when the DeferredMethodCall object is retracted. The listener calls removeElement when the method was addElement (also another common pattern : remove and add methods names).
So the element "data" is removed from DefaultListModel, which removes the list item in the window by standard Swing Model - View design pattern.
% identify myImage1.jpg myImage1.jpg JPEG 4608x3072 4608x3072+0+0 8-bit DirectClass 5.912MB 0.000u 0:00.000 % convert -resample 2300x1500 myImage1.jpg myImage1a.jpg
It took 2.6 Gb , more than the memory, so I was forced to kill the command !!!
<rszeno> i think i start something foolish
<jmv> :)
<rszeno> i join to few online courses, e-learning
<rszeno> accidentaly i discover there are few free and i was thinking that is not a bad idea to join
<rszeno> now i'm student,
<rszeno> ;
<jmv> :)
<jmv> what subjects are you taking ?
<rszeno> machine learning, natural language processing and model thinking
<jmv> :)
<rszeno> i'm tempted to join few others but i'm not sure if this three are not already too much
<jmv> what are the e-learning features of the platform ? just presentations or videos , or also personalized questions and exercices ?
<rszeno> prezentation, learning materials, problems, programming, tests, forum for learning in groups
<rszeno> https://www.coursera.org/landing/hub.php
<rszeno> http://www.ml-class.org/course/auth/welcome
<rszeno> game theory, is Shovam course
<rszeno> half of it
<rszeno> :) this is devide by number of theachers in fact, not contribution
------------------------------------
<rszeno> anyway, i have a relative solid background re this subject
<rszeno> markov, bayes and statistics/probablility are part of my work
<rszeno> anyway i still have probably a lot of things to learn, :) this is never ends
<rszeno> do you use R and octave?
<rszeno> if not probably you will need them now, :)
<jmv> no, I have little knowledge on probability and statistics, and no experience of tools :( .
<rszeno> is very useful but unfortunately many people misunderstand both of them
<rszeno> http://zedshaw.com/essays/programmer_stats.html
COMMIT
Leverage on Drools to automatically retract GUI components
- added class JavaObjectsRetractionListener implements WorkingMemoryEventListener
- Reactivated insertLogical in DroolsTripleHandler , and activated it in N3JavaMappingBuiltin
TESTED with test/n3JavaMapping-GUI.n3p: paste this in N3 shell:
@prefix kb: <http://deductions.sf.net/ontology/knowledge_base.owl#> . _:d kb:retract ( <http://test#x> <http://test#p> "data" ) .
- Retracting a plain N3 fact undoes the DeferredMethodCall, which removes the list item in the window !
Thread [N3 Shell] (Suspended (breakpoint at line 111 in TripleStoreDrools)) TripleStoreDrools.remove(ITriple) line: 111 CRUD_builtins.acceptList(String, String, List<String>, String) line: 116 DroolsTripleHandler.acceptList(String, LinesAndCols, String, LinesAndCols, List<String>, List<LinesAndCols>, String, LinesAndCols) line: 190 ParserLink.visitAllURI(LineTrackingTripleHandler) line: 681 N3SourcetoDrools.translate(IRDFIterator, String, boolean, boolean, boolean) line: 291 N3SourcetoDrools.translate(N3Source, boolean, boolean, boolean) line: 263 N3DroolsEngineFacade.translate(N3Source, boolean, boolean, boolean) line: 91 Project.translateToDrools(N3Source, boolean, boolean) line: 983 N3ConversionRefesher.updateKB(Project, N3Source) line: 173 UpdateN3Thread.run() line: 41 N3ConversionRefesher.doN3SourceAdded(Project, N3Source) line: 77 N3ConversionRefesher.n3SourceAdded(Project, N3Source) line: 57 ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 85 Project.addN3Source(N3Source, boolean) line: 310 Project.addN3Source(N3Source) line: 291 BasicRuntimeShell(BasicRuntime).parseN3Source(String) line: 241 BasicRuntimeShell(BasicRuntime).processTriplesOrRules(String) line: 204 BasicRuntimeShell(BasicRuntime).executeLine(String) line: 192 BasicRuntimeShell.run() line: 83 Thread.run() line: 722
<jmv> This is what I'll implement to retract GUI elements :
public interface WorkingMemoryEventListener extends EventListener {
void objectInserted(ObjectInsertedEvent event);
void objectUpdated(ObjectUpdatedEvent event);
void objectRetracted(ObjectRetractedEvent event);
}
Searching RuleBase.newStatefulSession() :
eulergui.inference.drools.impl - src/main/java - eulergui DroolsFactsLoadStore main(String[]) DroolsRunExportedProjectOldAPI main(String[]) N3SourcetoDrools launchDrools() N3SourcetoDrools() setRuleBase(RuleBase) samples - src/test/java - eulergui DroolsSample genericTestOldAPI(Object, String) unif - src/main/java - eulergui TripleStoreDrools createNewEmptyWorkingMemory_test() createNewEmptyWorkingMemory()
what I want to add today , in the case of retract of myImage "something"
add a listener in Drools for retraction of ?P javam:addElement ?C .
that will call :
?P.remove ( ?C)
<jmv> implemented the callback for retraction of add Java method calls , that calls remove
<jmv> it's not very clean and maybe not efficient ...
Paste this in N3 shell:
@prefix kb: <http://deductions.sf.net/ontology/knowledge_base.owl#> . _:d kb:retract ( <http://test#x> <http://test#p> "data" ) .
callback on this:
# DeferredMethodCall>> <http://test#listModel> <http://java.sun.com/method#addElement> ["data"]
Erreur pendant Engine N3 run ERROR in running Drools Inference Engine Cause: Exception executing consequence for rule "DeferredMethodCall" in infrastructure_rules: java.lang.UnsupportedOperationException: this is implemented by StatefulKnowledgeImpl
==> have to use : iterateObjects()
Reactivated insertLogical in DroolsTripleHandler , and activated it in N3JavaMappingBuiltin
==> Now the test works !!!!!!!!!!
Retracting a plain N3 fact undoes the DeferredMethodCall , which removes the list item in the window !!! :)))
Tests have usual errors :
Results : Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Skill" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded Tests run: 185, Failures: 1, Errors: 5, Skipped: 0
<rszeno> found one: http://www.cs.virginia.edu/~evans/cs655/readings/smalltalk.html
<rszeno> is fine that web is monotonic, :)
<jmv> Design Principles Behind Smalltalk
<jmv> Daniel H. H. Ingalls
<jmv> Learning Research Group
<jmv> Xerox Palo Alto Research Center
<jmv> 3333 Coyote Hill Rd
<jmv> Palo Alto, CA 94304
<jmv> BYTE Magazine, August 1981. Reproduced with permission.
<jmv> ?
<rszeno> imo, this article is the best presentation of what oop is
<jmv> OK, I got the same in PDF
<rszeno> from where?
<jmv> http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cts=1331387702133&ved=0CDMQFjAA&url=http%3A%2F%2Fuserweb.cs.utexas.edu%2F~shmat%2Fcourses%2Fcs345%2Fingalls.pdf&ei=LF1bT6jxAYmr0QWilY3bDQ&usg=AFQjCNHQiP9epIbrJXfrP658RLYV0wTPag
<jmvanel> once more I'm doing something that is not on the roadmap
<jmvanel> because I forgot to add it
<rszeno> ?
<jmvanel> I try a way to leverage on Drools to automatically retract GUI components and content when some fact triple is retracted
<jmvanel> That is, leverage on Drools TMS .
<rszeno> events, :)
<jmvanel> yes
<rszeno> dangerous sport, :)
<rszeno> we use to forget that 4-th dimension, time, exists
<jmvanel> this is what Euler does
This is my use case .
:listModel a java:javax-swing-DefaultListModel.
{
:x :p ?V .
} => {
:listModel javam:addElement ( ?V ).
} .
If I retract the triple
:x :p "data" .
, I want that "data" disappears in the generated window .
Here is the N3 shell session :
~/bin/n3shell test/n3JavaMapping-GUI.n3p
...
Bound prefixes: [:, eg:, java:, javam:]
==> ?A ?B ?C .
?A ?B ?C .
FactCount: 10
<http://test#x> <http://test#p> "data" .
_:list0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://test#listModel> .
_:list0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
==> :a :a :a .
:a :a :a .
FactCount: 15
==> @prefix kb: <http://deductions.sf.net/ontology/knowledge_base.owl#> .
@prefix kb: <http://deductions.sf.net/ontology/knowledge_base.owl#> .
FactCount: 15
==> _:d kb:retract ( <http://test#x> <http://test#p> "data" ) .
_:d kb:retract ( <http://test#x> <http://test#p> "data" ) .
FactCount: 26
<jmv> In this example, the domain model that is automatically added to the GUI is the set :x :p ?V .
<jmv> the event stack is :
<jmv> add some :x :p "something" . ( or retract )
<jmv> this calls addElement on the Java object ListModel
<jmv> then automatically by standard Java observer design pattern , the JList GUI object is updated
<jmv> And what I want to add today , in the case of retract of :x :p "something"
add a listener in Drools for retraction of ?P javam:addElement ?C .
that will call :
?P.remove ( ?C)
This will automatically remove the widget, by standard Java observer design pattern.
I saw a strange crash in commad line (works from eclipse ) :
% ~/bin/n3shell test/n3JavaMapping-GUI.n3p Exception in thread "main" java.lang.IllegalAccessError: tried to access field com.hp.gloze.Gloze.target from class eulergui.inputs.N3SourceFromXML_Gloze at eulergui.inputs.N3SourceFromXML_Gloze.convertToN3(N3SourceFromXML_Gloze.java:94) at eulergui.project.N3Source.manageN3Cache(N3Source.java:609) at eulergui.project.N3Source.doUpdate(N3Source.java:407) at eulergui.inputs.N3SourceFromXML_Gloze.prepare(N3SourceFromXML_Gloze.java:47) at eulergui.project.N3Source.placeInProject(N3Source.java:333) at eulergui.project.N3Source.prepare(N3Source.java:357) at eulergui.inputs.N3SourceFromXML_Gloze.prepare(N3SourceFromXML_Gloze.java:46) at n3_project.SourceFactory.addSource(SourceFactory.java:109) at eulergui.CommandLineArguments.makeProjectFromEulerCommandLine(CommandLineArguments.java:121) at eulergui.CommandLineArguments.makeProjectsFromUserArgument(CommandLineArguments.java:71) at n3_project.ProjectGUI.main(ProjectGUI.java:202)
REFACTOR : finish move math stuff from DroolsTripleHandler to class MathBuiltins
REFACTOR : move processMathBuiltin() from DroolsTripleHandler to class MathBuiltins
REFACTOR extract class LogBuiltins from DroolsTripleHandler
This works with Drools/N3 engine :
@prefix : <http://example.com#> .
:a :p (10 20) .
{ :a :p (10 20) } => { :a :p :v . } .
But this is not working:
{ :a :p (?V1 ?V2) } => { :a :p ?V1 . } .
Because it translates into :
rule "list-in-antecedent.n3 0"
when
$Triple_1 : Triple( subject == "<http://example.com#a>", predicate == "<http://example.com#p>", object == "( ?V1 ?V2 )" )
then ...
<rszeno> is like using an external css file to style a page, :)
<rszeno> or fresnel to change the view and content of data
<rszeno> biggest avantage of triples is that are 6-tuples, :)
<jmvanel> were you abler to install an run fresnel ?
<rszeno> not yet
<jmvanel> didn't success
<rszeno> ?
<jmvanel> didn't succeed in runniong fresnel
<rszeno> which one?
<jmvanel> you icon made me think :)
<jmvanel> fresnel , there are several ?
<jmvanel> it's a spec ?
<rszeno> only two parts are tricky, the fsl parser and the generator
<rszeno> yes, and manuals
<rszeno> one minute
<rszeno> http://www.w3.org/2005/04/fresnel-info/manual/
<rszeno> http://www.w3.org/2005/04/fresnel-info/fsl/
<rszeno> it need a extension for events
<rszeno> are few implementations, one in java, hardcoded, i don't like it defeat the purpose of fresnel
<rszeno> ww in python but i didn't succed to make it work
<rszeno> graphviz ontology
<rszeno> http://www.w3.org/2001/02pd/gv
<rszeno> google loose search engine market, :)
<jmvanel> in favor of who ?
<rszeno> baidu probably
<rszeno> the rest of se anyway
<rszeno> last year i stop using google doc
<rszeno> one month ago i stop using google search, :)
<rszeno> if they continue with this js mess i will probably stop to use their mail
<rszeno> anyway yahoo is not better then google
<rszeno> http://search.carrot2.org/stable/search
<rszeno> but this is a metase
<rszeno> give fine results
<rszeno> cuil seems closed
<rszeno> and quintura is same vizual mess, :)
<rszeno> did you take a look at proton?
Results : Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*"
Now builtins are taken in account; tested with :
:tune :genre "Blues" .
@prefix string: <http://www.w3.org/2000/10/swap/string#>.
{ ?X ?P ?V0. ?V0 string:contains "Blues" . } => { :result :member ?X .}.
The trouble was due to changing the rule base after fact were inserted .
java -cp target/eulergui-1.10-SNAPSHOT-jar-with-dependencies.jar \
deductions.runtime.BasicRuntimeShell
:tune :genre "Blues" .
@prefix string: <http://www.w3.org/2000/10/swap/string#>.
{ ?X ?P ?V0. ?V0 string:contains "Blues" . } => { :result :member ?X .}.
?A ?B ?C .
Same trouble with Drools 5.4.0-Beta2 !!!!!
The Drools code is :
rule "2 0" when $Triple_1 : Triple( $X : subject, $P : predicate, $V0 : object ) eval( $V0.toString().contains( "Blues" .toString() ) ) then Triple newTriple = new Triple(); newTriple.setSubject( "<http://user-input/result>" ); newTriple.setPredicate( "<http://user-input/member>".toString() ); newTriple.setObject( $X ); insertLogical( newTriple );
java.util.logging.Logger.getLogger("theDefault").setLevel( java.util.logging.Level.INFO )
Due to double KB initialization, queries do not work.
First time:
Thread [main] (Suspended (modification of field workingMemory in N3SourcetoDrools)) N3SourcetoDrools.setWorkingMemory(StatefulSession) line: 1037 N3SourcetoDrools.<init>() line: 162 N3DroolsEngineFacade.<init>() line: 44 Project.initializeDrools() line: 1004 Project.getTranslator() line: 1059 ApplicationKB.<init>() line: 96 ApplicationKB.instance() line: 77 PlayerGUI.initKB() line: 85 PlayerGUI.init() line: 59 PlayerGUI.main(String[]) line: 48
Second time:
Thread [main] (Suspended (modification of field workingMemory in N3SourcetoDrools)) N3SourcetoDrools.setWorkingMemory(StatefulSession) line: 1037 N3SourcetoDrools.setRuleBase(RuleBase) line: 1030 N3DroolsEngineFacade.setRuleBase(RuleBase) line: 175 Project.compiledRulebaseLoadedFromCache(String) line: 744 Project.translateN32Drools(boolean) line: 891 Project.prepareDrools(boolean) line: 870 ApplicationKB.<init>() line: 99 ApplicationKB.instance() line: 77 PlayerGUI.initKB() line: 85 PlayerGUI.init() line: 59 PlayerGUI.main(String[]) line: 48
-------------------------------------------------
Second time:
Thread [main] (Suspended (modification of field workingMemory in N3SourcetoDrools))
N3SourcetoDrools.setWorkingMemory(StatefulSession) line: 1037
N3SourcetoDrools.<init>() line: 162
N3DroolsEngineFacade.<init>() line: 44
Project.initializeDrools() line: 1004
Project.getTranslator() line: 1059
ApplicationKB.<init>() line: 96
ApplicationKB.instance() line: 77
PlayerGUI.initKB() line: 80
PlayerGUI.init() line: 55
PlayerGUI.main(String[]) line: 44
First time:
Thread [main] (Suspended (modification of field workingMemory in N3SourcetoDrools)) N3SourcetoDrools.setWorkingMemory(StatefulSession) line: 1037 N3SourcetoDrools.setRuleBase(RuleBase) line: 1030 N3DroolsEngineFacade.setRuleBase(RuleBase) line: 175 Project.compiledRulebaseLoadedFromCache(String) line: 744 Project.translateN32Drools(boolean) line: 891 Project.prepareDrools(boolean) line: 870 KBManager.initKB() line: 35 Player.<init>() line: 16 PlayerGUI.<init>() line: 31 PlayerGUI.main(String[]) line: 43
Daemon Thread [SwingWorker-pool-4-thread-1] (Suspended (breakpoint at line 543 in N3Source)) N3Source.hasChanged() line: 543 N3Source.manageN3Cache(N3Source) line: 580 IOManager.getLocalCache(N3Source) line: 179 N3Source.getLocalCache() line: 746 N3Source.getLocalN3() line: 742 N3Source.manageParseN3() line: 413 N3Source.update() line: 393 N3Source.parseResult() line: 479 N3SourcetoDrools.translate(N3Source, boolean, boolean, boolean) line: 258 N3DroolsEngineFacade.translate(N3Source, boolean, boolean, boolean) line: 91 Project.translateToDrools(N3Source, boolean, boolean) line: 983 N3ConversionRefesher.updateKB(Project, N3Source) line: 173 UpdateN3Thread.run() line: 41 N3ConversionRefesher.doN3SourceAdded(Project, N3Source) line: 77 N3ConversionRefesher.n3SourceAdded(Project, N3Source) line: 57 ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 85 Project.addN3Source(N3Source, boolean) line: 310 Project.addN3Source(N3Source) line: 291 SourceFilesManagement$AddN3Action$1AddN3SourceWorker.doInBackground() line: 277 SourceFilesManagement$AddN3Action$1AddN3SourceWorker.doInBackground() line: 1 SwingWorker$1.call() line: 296 FutureTask$Sync.innerRun() line: 334 SwingWorker$2(FutureTask<V>).run() line: 166 SourceFilesManagement$AddN3Action$1AddN3SourceWorker(SwingWorker<T,V>).run() line: 335 ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110 ThreadPoolExecutor$Worker.run() line: 603 Thread.run() line: 722
Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded
http://ontologydesignpatterns.org/wiki/Main_Page
COMMIT
refactor GUI tests: extract addTextInUnsavedEditor()
<jmvanel> rszeno, what about SPARQL queries in EG ?
<rszeno> i will try to finish it asap
<jmvanel> :) no rush
<jmvanel> a new release could be made tomorrow
<jmvanel> also I'm tracking a bug regarding the user Drools + N3 KB : when N3 data are added to project , the KB is not updated ; just after saving and restarting , it is effective :(
<jmvanel> no functional test for that :(
<jmvanel> also the Drools / N3 engine does match in antecedent :
?S :prop ( ?L1 L2 ) .
<jmvanel> ( working on the musical semantic player , but alas this is not OSS for now ...
<jmvanel> I'll ask permission to put the audio tag N3 source in OSS in EG ...
equalIgnoringCase
containsIgnoringCase
endsWith
greaterThan
lessThan
startsWith
{ ?X ?P ?V . ?V string:contains "my value" . } => { eg:result list:member ?X . } .
?X :pref:myProperty ?V . ?V string:contains "my value" .
{ :a :a :a } => { :b :b :b } .
:a :a :a .
:b ?X ?Y .
@prefix kb: <http://deductions.sf.net/ontology/knowledge_base.owl#> .
_:d kb:retract ( :a :a :a ) .
com.opensymphony.oscache.base.persistence.CachePersistenceException: Unable to write '/home/jmv/.eulergui/rule_bases_cache/application/C/A/D/CADE3025B7A4C01EC318D52A21F08252.cache' in the cache. Exception: java.lang.UnsupportedOperationException, Message: null
at com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener.store(AbstractDiskPersistenceListener.java:376)
at com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener.store(AbstractDiskPersistenceListener.java:238)
at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.persistStore(AbstractConcurrentReadCache.java:1113)
at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.put(AbstractConcurrentReadCache.java:1679)
at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.put(AbstractConcurrentReadCache.java:864)
at com.opensymphony.oscache.base.Cache.putInCache(Cache.java:637)
at com.opensymphony.oscache.base.Cache.putInCache(Cache.java:602)
at com.opensymphony.oscache.general.GeneralCacheAdministrator.putInCache(GeneralCacheAdministrator.java:249)
at com.opensymphony.oscache.general.GeneralCacheAdministrator.putInCache(GeneralCacheAdministrator.java:259)
at eulergui.infrastructure.cache.URICacheOSCache.cacheObject(URICacheOSCache.java:77)
at eulergui.project.Project.translateN32Drools(Project.java:898)
at eulergui.project.Project.prepareDrools(Project.java:870)
at deductions.runtime.BasicRuntime.initialize(BasicRuntime.java:124)
at eulergui.tools.N3ShellFactory.makeN3ShellPane(N3ShellFactory.java:27)
at eulergui.tools.N3ShellFrame.makeN3ShellFrame(N3ShellFrame.java:57)
at eulergui.tools.N3ShellFrame.actionPerformed(N3ShellFrame.java:52)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
the next AGI conference should be in Oxford, way closer to Paris
http://docs.oracle.com/javase/tutorial/uiswing/components/progress.html
http://www.google.fr/search?hl=fr&q=FCA+ontology
COMMIT 1
- extract makeProgressFrame()
- call n3Source.getProject().fireN3SourceUpdated(n3Source);
instead of n3Source.doUpdate(false);
TODO :
- feature: have ProgressFrame in the case of SPARQL source update
- fix: when the SELECT/CONSTRUCT kind changes in the SPARQL source, update the the table button
- internal: further tidy for strict MVC pattern
COMMIT 2
- rename fireN3SourceUpdated(n3) to project.fireN3SourcePrepared : clearer
- SPARQLServiceInputAction : FIX: for Choose Service Action call n3Source.getProject().fireN3SourceChanged(n3) instead of fireN3SourceUpdated() : progressFrame did not work because fireN3SourceUpdated returns immediately
- add class N3SourceWorker : use SwingWorker and InferenceProgressFrame for long tasks in background.
COMMIT 3
TODO when opening dbpedia.n3p , all SPARQL queries are done before the GUI appears :(
mvn -Dmaven.test.skip=true deploy
Tests run: 182, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] <<< maven-surefire-report-plugin:2.11:report (default-cli) @ eulergui <<< [INFO] [INFO] --- maven-surefire-report-plugin:2.11:report (default-cli) @ eulergui --- [WARNING] Unable to locate Test Source XRef to link to - DISABLED [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 17:09.321s
http://mbostock.github.com/d3/ex/force.html mentioned by melvster
<melvster> ivan_herman: jmvanel: yes ive just switched from rdf / json to json - ld ... also experimenting with json LD macros https://github.com/antoniogarrote/json-ld-macros
<jmvanel> thanks ivan_herman and melvster , I like more rdf / json ; json ld tried to reproduce the Turtle syntaxic sugar , but it make the dish less healthy I think
<melvster> jmvanel: thing is that I think rdf / json may no longer be maintained / supported
<ivan_herman> melvster: that may indeed be true
<melvster> tho, to be fair, it may not change much
<melvster> or need to change much
<ivan_herman> of course, Ian should know. But json-ld has quite some traction
<melvster> i guess is may need to change if subjects one day become literals
<melvster> s/is/it
* mhausenblas est parti (Quit: mhausenblas)
<melvster> the idea i think is that json-ld can be non disruptive wrt existing json 'apis'
<melvster> and if you use the macros you can even add your own context
<melvster> perhaps that's one way to make existing json into LD ... you could have a set of API / transformation triples made public
* diegolo (~diego@host51-140-dynamic.51-82-r.retail.telecomitalia.it) a rejoint #swig
<melvster> <API-URI> :hasContext <Context-URI>
<melvster> then you can have one team working on exposing data, and another team making it linked data
<melvster> jmvanel: one nice thing about LD is that it has a canonicalization algorithm so that you can more easily do things like signing
* chrigi s'appelle maintenant cmollekopf
<jmvanel> ok, I'll this for future reference . So JSON LD could be a useful tool for connecting SEMWEB sources producing JSON to d3 ?
* mhausenblas (~mhausenbl@wlan-nat.fwgal01.deri.ie) a rejoint #swig
<melvster> maybe yes
<melvster> that's the approach I think I'll take
try ARQ command line sparql.remote
upgrade to latest ARQ
AI training: Mulgara, Open Enzo
I'm looking for some kind of web application Open Source framework, backed by a SPARQL endpoint : either CMS, or collaborative, or data input and display.
But I can not find one!! it is possible that it does not exists; I just saw http://incubator.apache.org/clerezza/ , but it's more a general RDF toolkit than a toolkit for collaborative apps .
This is not the first time I search.
Semantic Web Interest Group IRC log : http://swig.xmlhack.com/
<rszeno> sri had developed, i don't know when, a bot detector, log analyzer based on snark i guess
<jmvanel> find no trace of snark in my blog ...
<jmvanel> and no trace in my little mind ...
<rszeno> http://en.wikipedia.org/wiki/SNARK_theorem_prover
<rszeno> http://www.ai.sri.com/pubs/files/986.pdf
# Action [Ajouter une requête SPARQL] starting! # Action [Ajouter une source N3 (URL)] effectuée
prefix foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?personnes ?nom
FROM <http://www.w3.org/People/Berners-Lee/card>
where {
<http://www.w3.org/People/Berners-Lee/card#i> foaf:knows ?personnes.
?personnes foaf:name ?nom.
}
http://www4.wiwiss.fu-berlin.de/bizer/pub/linkeddatatutorial/
<jmvanel> bonjour rszeno
<jmvanel> beside EG and roqet , what other tool could I use for remore SPARQL queries ?
<jmvanel> remote
<jmvanel> could I just use wget or curl ?
<jmvanel> it seems that SPARQL support is broken :(
<jmvanel> no, in fact it's just that it's not possible to create new SELECT queries
http://www.sparql.org/query.html
looking for an RDF or N-triples dump of Linked Open Data sources
<jmvanel> AFAIK only a JSON dump of KCAN is available , and the CKAN API is not SPARQL
<kwijibo> jmvanel: http://dsi.lod-cloud.net
<kwijibo> also http://semantic.ckan.net/sparql
<jmvanel> haaaaaaa thanks kwijibo
<kwijibo> jmvanel: np - there is also http://dsi.lod-cloud.net/sparql
<kwijibo> "http://dsi.lod-cloud.net/ is part of the LATC project funded by EU FP7 http://latc-project.eu
SPARQL Endpoints Status
http://labs.mondeca.com/sparqlEndpointsStatus/
Returns nothing : http://thedatahub.org/dataset?q=botany , but plants returns this and others :
http://thedatahub.org/dataset/linked-open-data-of-ecology
http://thedatahub.org/dataset?q=foaf
http://thedatahub.org/dataset?q=foaf&res_format=api/sparql
http://thedatahub.org/dataset?tags=format-foaf&q=foaf&res_format=api/sparql
http://thedatahub.org/dataset/dcs-sheffield
http://wiki.ckan.org/API
EulerGUI : this runs forever ( returns HTML ) :
eg http://identi.ca/user/33
http://www.w3.org/People/Berners-Lee/FAQ.html
http://www.w3.org/People/Berners-Lee/card.n3
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
CONSTRUCT {?X foaf:knows ?Y .} WHERE {?X foaf:knows ?Y .} LIMIT 300
looks good : http://www.productontology.org/
Ontology ID http://www.productontology.org/#
Namespace http://www.productontology.org/id/
Class Identifier http://www.productontology.org/id/Hammer
Added this in my home page :
<link rel="alternate" type="application/rdf+xml" href="jmv.rdf#me" />
eg 'http://jmvanel.free.fr/jmv.rdf#me'
...
java.lang.IllegalArgumentException: URI has a fragment component
at java.io.File.<init>(File.java:399)
at n3_project.ProjectGUI.setLastFile(ProjectGUI.java:894)
at n3_project.ProjectGUI.<init>(ProjectGUI.java:185)
at n3_project.ProjectGUI.newWindow(ProjectGUI.java:260)
at n3_project.ProjectGUI.main(ProjectGUI.java:219)
Protege 4.2 build 256, fact++, , platform specific libraries issue on Debian 6
http://protege-ontology-editor-knowledge-acquisition-system.136.n4.nabble.com/Protege-4-2-build-256-fact-platform-specific-libraries-issue-on-Debian-6-td4393521.html
Error 1 Logged at Thu Feb 16 10:42:53 CET 2012
OWLRuntimeException: java.lang.UnsatisfiedLinkError: /tmp/ProtegeCache-720a4ee6-1463-4641-ae2d-e457b8965773/bundle14/version0.0/bundle.jar-lib/0/lib/native
/64bit /libFaCTPlusPlusJNI.so: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /tmp/ProtegeCache-720a4ee6-1463-4641-ae2d-e457b8965773/bundle14/version0.0/bundle.jar-lib/0/lib/native/64bit/libFaCTPlusPlusJNI.so)
uk.ac.manchester.cs.factplusplus.protege.FaCTPlusPlusFactory.getReasonerFactory(Unknown Source)
org.protege.editor.owl.model.inference.ReasonerInfoComparator.compare(ReasonerInfoComparator.java:9)
org.protege.editor.owl.model.inference.ReasonerInfoComparator.compare(ReasonerInfoComparator.java:5)
java.util.TimSort.countRunAndMakeAscending(TimSort.java:325)
java.util.TimSort.sort(TimSort.java:189)
java.util.TimSort.sort(TimSort.java:173)
java.util.Arrays.sort(Arrays.java:659)
java.util.Collections.sort(Collections.java:217)
org.protege.editor.owl.model.OWLWorkspace.rebuildReasonerMenu(OWLWorkspace.java:500)
My bug report : SPARQL query fails with Jena ARQ 2.8.8
<rszeno> 4.1 from roadmap for SPARQL generation
<rszeno> command line for engines can be generated from n3. this mean to control the flow using rules
<jmvanel> which also means having a rule engine controling another
<jmvanel> well maybe that's a good way ...
<jmvanel> but I really would like point 2 to be done
<jmvanel> Good news ! while preparing my AI course, I tested all of Jos' genric OWL+RDFS rules with Euler and Drools
<jmvanel> just had to fix something with integrity constraints.
[] a owl:Class ;
rdfs:subClassOf :free-software-developer ;
owl:intersectionOf (:developer [ a owl:Restriction ;
owl:onProperty :participate-in ;
owl:someValuesFrom
[ a owl:Class ;
owl:intersectionOf (owl:Thing :free-software-project)
]
]) .
You can then add this data to trigger the rule:
@prefix : <http://jmvanel.free.fr/jmv.rdf#> . @prefix sf: <http://sourceforge.net/projects/> . @prefix ex: <http://eulergui.sf.net/examples.owl#> . @keywords a. me ex:participate-in sf:eulergui ; a ex:developer. sf:eulergui a ex:free-software-project .
which should entail:
me a ex:free-software-developer .
I tried to simplify the OWL expression :
:participateRestriction
a owl:Restriction ;
owl:onProperty :participate-in ;
owl:someValuesFrom :free-software-project
;
rdfs:subClassOf :free-software-developer
.
java.lang.RuntimeException: Erreur pendant re-parsing N3 source "dbpedia-construct.sparql"
getLocalN3(): /home/jmv/.eulergui/n3_cache/dbpedia-construct.sparql_7686357754521563757.n3
getURI(): dbpedia-construct.sparql
at eulergui.project.N3Source.manageParseN3(N3Source.java:449)
at eulergui.project.N3Source.update(N3Source.java:393)
at eulergui.gui.controller.N3ConversionRefesher.updateN3(N3ConversionRefesher.java:121)
at eulergui.gui.controller.UpdateN3Thread.run(UpdateN3Thread.java:40)
at eulergui.gui.controller.N3ConversionRefesher.doN3SourceAdded(N3ConversionRefesher.java:77)
at eulergui.gui.controller.N3ConversionRefesher.n3SourceAdded(N3ConversionRefesher.java:57)
at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.java:85)
at eulergui.project.Project.rethrowEventsPlease(Project.java:1376)
at eulergui.project.ProjectChangeSupport.rethrowEventsExceptListener(ProjectChangeSupport.java:189)
at eulergui.project.Project.rethrowEventsExceptListener(Project.java:1506)
at n3_project.ProjectGUI.rethrowEventsExceptListener(ProjectGUI.java:325)
at n3_project.ProjectGUI.access$000(ProjectGUI.java:71)
at n3_project.ProjectGUI$1.run(ProjectGUI.java:314)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
at net.sf.parser4j.parser.service.Parser.shiftByToken(Parser.java:797)
at net.sf.parser4j.parser.service.Parser.parse(Parser.java:397)
at eulergui.parser.n3.impl.parser4j.service.N3Parser.parseN3(N3Parser.java:177)
at eulergui.drools_engine.ParserLink.doParse(ParserLink.java:155)
at eulergui.drools_engine.ParserLink.parse(ParserLink.java:117)
at eulergui.project.N3Source.doParseN3(N3Source.java:502)
at eulergui.project.N3Source.manageParseN3(N3Source.java:433)
... 13 more
URI list ==> triple list ==> TableModelFromN3
?E list:in ?LIST. ?E ?P ?V. => :tableComponent :add ( ?E ?P ?V ) .
<utopiah_> jmvanel: too late but it might still interest you http://decibel.cirsfid.unibo.it/icail2011-workshop/?page_id=32
<hivemind-sb> Title: About Computational Law Workshop | icail2011 workshop (at decibel.cirsfid.unibo.it)
<jmvanel> thanks utopia
<jmvanel> indeed interesting , but I don't run after conferences right now, I look for customers :) willing to have rule-based applications using my framework ...
<jmvanel> I made my first video on youtube (in french for now ) : http://www.youtube.com/watch?v=KMmo9dvJEKI
<hivemind-sb> Title: démo cadriciel EulerGUI : mélanger règles métier et règles Java - YouTube (at www.youtube.com)
<jmvanel> Title: mix business rules and Java
rszeno, I guess it's not in your radar, but I'm looking for some kind of collaborative web app backed by a SPARQL endpoint
My bug report : SPARQL query fails with Jena ARQ 2.8.8
java.lang.RuntimeException: Erreur pendant re-parsing N3 source "owl-rules.n3"
getLocalN3(): /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/owl-rules.n3
getURI(): owl-rules.n3
at eulergui.project.N3Source.manageParseN3(N3Source.java:449)
at eulergui.project.N3Source.update(N3Source.java:393)
at eulergui.gui.controller.N3ConversionRefesher.updateN3(N3ConversionRefesher.java:121)
at eulergui.gui.controller.UpdateN3Thread.run(UpdateN3Thread.java:40)
at eulergui.gui.controller.N3ConversionRefesher.doN3SourceAdded(N3ConversionRefesher.java:77)
at eulergui.gui.controller.N3ConversionRefesher.n3SourceAdded(N3ConversionRefesher.java:57)
at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.java:85)
at eulergui.project.Project.rethrowEventsPlease(Project.java:1376)
at eulergui.project.ProjectChangeSupport.rethrowEventsExceptListener(ProjectChangeSupport.java:189)
at eulergui.project.Project.rethrowEventsExceptListener(Project.java:1506)
at n3_project.ProjectGUI.rethrowEventsExceptListener(ProjectGUI.java:325)
at n3_project.ProjectGUI.access$000(ProjectGUI.java:71)
at n3_project.ProjectGUI$1.run(ProjectGUI.java:314)
at java.lang.Thread.run(Thread.java:722)
Caused by: net.sf.parser4j.parser.service.ParserException: java.io.IOException: closed
at net.sf.parser4j.parser.service.Parser.readTerminalValue(Parser.java:861)
at net.sf.parser4j.parser.service.Parser.readTerminalValueAndParse(Parser.java:642)
at net.sf.parser4j.parser.service.Parser.parse(Parser.java:387)
at eulergui.parser.n3.impl.parser4j.service.N3Parser.parseN3(N3Parser.java:177)
at eulergui.drools_engine.ParserLink.doParse(ParserLink.java:155)
at eulergui.drools_engine.ParserLink.parse(ParserLink.java:117)
at eulergui.project.N3Source.doParseN3(N3Source.java:502)
at eulergui.project.N3Source.manageParseN3(N3Source.java:433)
... 13 more
Caused by: java.io.IOException: closed
at net.sf.parser4j.parser.service.ParserInput.read(ParserInput.java:56)
at net.sf.parser4j.parser.service.Parser.readTerminalValue(Parser.java:859)
... 20 more
ERROR [rethrowEventsExceptListener(guiUpdater)] (TemporaryFrame.java:48) - TemporaryFrame.TemporaryFrame(): ERROR during project opening (N3 rethrow Event)
Erreur pendant re-parsing N3 source "owl-rules.n3"
getLocalN3(): /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/owl-rules.n3
getURI(): owl-rules.n3
Cause:
net.sf.parser4j.parser.service.ParserException: java.io.IOException: closed ERROR
pasted from http://wiki.dbpedia.org/OnlineAccess :
There is a public Faceted Browser search and find
user interface at
http://DBpedia.org/fct, and a corresponding faceted
web service over the DBpedia data set at
http://DBpedia.org/fct/service. Usage details
can be found in the
Virtuoso Facets Web Service documentation.
http://dbpedia.org/describe/?url=http://dbpedia.org/resource/B.B._King
@pkleef
A similar SELECT query works :
PREFIX dbpedia: <http://dbpedia.org/resource/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?pname ?v
WHERE {
dbpedia:Buddy_Guy ?p ?v .
?p rdfs:label ?pname .
}
In the console :
Caused by: com.hp.hpl.jena.shared.JenaException: org.xml.sax.SAXParseException; lineNumber: 521; columnNumber: 92; The reference to entity "q" must end with the ';' delimiter.
at com.hp.hpl.jena.rdf.model.impl.RDFDefaultErrorHandler.fatalError(RDFDefaultErrorHandler.java:45)
at com.hp.hpl.jena.rdf.arp.impl.ARPSaxErrorHandler.fatalError(ARPSaxErrorHandler.java:35)
at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:225)
at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.fatalError(XMLHandler.java:255)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.scanAttributeValue(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanAttribute(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:142)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:158)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:145)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:215)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:197)
at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execModel(QueryEngineHTTP.java:169)
at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execConstruct(QueryEngineHTTP.java:158)
at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execConstruct(QueryEngineHTTP.java:156)
at n3_project.SPARQLToN3Converter.doQuery(SPARQLToN3Converter.java:79)
at eulergui.inputs.N3SourceFromSPARQLSource.doUpdate(N3SourceFromSPARQLSource.java:96)
... 14 more
In the debugger:
Thread [main] (Suspended (breakpoint at line 44 in RDFDefaultErrorHandler)) RDFDefaultErrorHandler.fatalError(Exception) line: 44 JenaHandler(ARPSaxErrorHandler).fatalError(SAXParseException) line: 35 RDFXMLParser(XMLHandler).warning(Taint, int, SAXParseException) line: 225 RDFXMLParser(XMLHandler).fatalError(SAXParseException) line: 255 ErrorHandlerWrapper.fatalError(String, String, XMLParseException) line: not available XMLErrorReporter.reportError(XMLLocator, String, String, Object[], short) line: not available XMLErrorReporter.reportError(String, String, Object[], short) line: not available XMLDocumentScannerImpl(XMLScanner).reportFatalError(String, Object[]) line: not available XMLDocumentScannerImpl(XMLScanner).scanAttributeValue(XMLString, XMLString, String, boolean, String) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanAttribute(XMLAttributes) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanStartElement() line: not available XMLDocumentScannerImpl$ContentDispatcher(XMLDocumentFragmentScannerImpl$FragmentContentDispatcher).dispatch(boolean) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean) line: not available StandardParserConfiguration(DTDConfiguration).parse(boolean) line: not available StandardParserConfiguration(DTDConfiguration).parse(XMLInputSource) line: not available RDFXMLParser$SAXParserWithEncodingCheck(XMLParser).parse(XMLInputSource) line: not available RDFXMLParser$SAXParserWithEncodingCheck(AbstractSAXParser).parse(InputSource) line: not available RDFXMLParser.parse(InputSource, String) line: 142 JenaReader.read(Graph, InputSource, String, Model) line: 158 JenaReader.read(Model, InputSource, String) line: 145 JenaReader.read(Model, InputStream, String) line: 215 ModelCom.read(InputStream, String) line: 197 QueryEngineHTTP.execModel(Model) line: 169 QueryEngineHTTP.execConstruct(Model) line: 158 QueryEngineHTTP.execConstruct() line: 156 SPARQLToN3Converter.doQuery(Query, URL, String, File) line: 79 N3SourceFromSPARQLSource.doUpdate(boolean) line: 99 TestSPARQL.testDoUpdateBoolean() line: 32 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 FrameworkMethod$1.runReflectiveCall() line: 45 FrameworkMethod$1(ReflectiveCallable).run() line: 15 FrameworkMethod.invokeExplosively(Object, Object...) line: 42 InvokeMethod.evaluate() line: 20 BlockJUnit4ClassRunner(ParentRunner<T>).runLeaf(Statement, Description, RunNotifier) line: 263 BlockJUnit4ClassRunner.runChild(FrameworkMethod, RunNotifier) line: 68 BlockJUnit4ClassRunner.runChild(Object, RunNotifier) line: 47 ParentRunner$3.run() line: 231 ParentRunner$1.schedule(Runnable) line: 60 BlockJUnit4ClassRunner(ParentRunner<T>).runChildren(RunNotifier) line: 229 ParentRunner<T>.access$000(ParentRunner, RunNotifier) line: 50 ParentRunner$2.evaluate() line: 222 BlockJUnit4ClassRunner(ParentRunner<T>).run(RunNotifier) line: 300 JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution) line: 50 TestExecution.run(ITestReference[]) line: 38 RemoteTestRunner.runTests(String[], String, TestExecution) line: 467 RemoteTestRunner.runTests(TestExecution) line: 683 RemoteTestRunner.run() line: 390 RemoteTestRunner.main(String[]) line: 197
Tests in error: testDoUpdateBoolean(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-9043668807154012866.n3 ; http://dbpedia.org/sparql testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Wait for "getText() Component Chooser "@prefix "(..) testSimpleProjectLocal(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*book\.n3$|.*book\.n3 .*"
TestSPARQLInGUI and TestSPARQL are related to a dbPedia problem ( see 2012-02-13 ).
marc: tu as le paquet sysstat ?
moi: ok : installé
moi: j(ai ces colonnes :
# Time TGID TID %usr %system %guest %CPU CPU minflt/s majflt/s VSZ RSS %MEM kB_rd/s kB_wr/s kB_ccwr/s cswch/s nvcswch/s Command
marc: avec ca tu as la tendance naturelle des process au locking
moi: combinable avec une moteur de règles donc ?
marc: oui
ex
si %cpu user tres haut
moi: je lance EG
marc: implqque que le thread est dans le code de l'utilsateur -> thread ump -> correaltion avec la methode
si %sys elevé
alors plsucas possible
18:13
bcps de rkb wkb le thread consomme du temps dans des call systeme io blocks -> thread dump
methode coupable
moi: rkb wkb ?
marc: si voluntary context swicth élévé et peu d'ecriture ==> forte presomption de locking
kB_rd/s kB_wr/s
c cool ?
;)
moi: ça a l'air bien
marc: un peit truc crafter au coindu feu
pidstat -udhtswr -C java | awk '{ if (( $7 > 0) || ( $8 == "%CPU" ) ){ print }}' > analyse.txt && jstack -l `pgrep java` | perl tda.pl >> analyse.txt
je t'envoie le perl
moi: ok
18:16
marc: ca fait quoi ?
ca prends un instantané des mesure systeme
en // ca oblige le process java a dumpé ces thread
ca convertis via le perl les id java en id systeme
18:17
et ca te fait un fichier d'analyser
moi: reçu le perl :)
marc: je debug des prod en 3 sec ;)
avec ca
j'ai une version degradé quand systat et pas installé
et bientot le developpeur de collectl
18:18
un concurrent de systat
un version qui gere les context switc
pidstat -C chromium -wIldhurt pidstat -C xchat -wIldhurt pidstat -C empathy -wIldhurt pidstat -C java -wIldhurt
marc: brace cun une tchon qui egnere des agent
pour la jvm
une sorte d'aop
mais sirect sur la vm
genre intercepte tous les call socket connect
tu voit l'idée
18:38
moi: oui
marc: et je te pris a chaud
;)
moi: :)
"une tchon" ?
marc: le tout c l'algo de correlation
truc
18:39
moi: ;)
btrace comme strace mais mieux adapté aux pg Java ?
marc: tiens cconnias tu autojump?
moi: non
marc: alors je vais te faire gagner 1 minute par jour
pour tous les jour futur
marc: http://www.youtube.com/watch?v=tnNyoMGnbKg
tu vas perdre 5 minute a voir la video et l'installer
mais noramlement c amortis jeudi prochain ;)
18:54
c un truc pour naviqguer dans les repertoire
j'en suis fou
moi: ok
marc: il memorise tes navigation
genre mon repertoire de travail
un autre petit outils
que j'aime ack-grep
un grep special code
et aussi git
I saw a regression here with Drools/N3 :
{ (1 2) math:sum ?R .
(?R 4) math:product ?P .
} => {
:test :pass_expression true .
:test :pass_expression ?P .
} .
Broken :
{
?PR a Pricing.
?PR consumerNumberProfit ?CNP.
# ?CNP a ConsumerNumberProfit. # EST CE NECESSAIRE ?
?CNP consummerType ?CT.
?CT value ?CTVALUE.
?CNP number ?NUMBER.
?PR marginalCost ?COST.
( ?CTVALUE ?COST ) math:difference ?MARGIN.
( ?MARGIN ?NUMBER) math:product ?PV.
} => {
?CNP profit ?PV.
}.
translated as :
...
$Triple_6 : Triple( subject == $PR, predicate == "<http://deductions.sf.net/samples/princing.n3p.n3#marginalCost>", $COST : object )
then
Double $PV = new Double( MARGIN * Double.parseDouble( Triple.n3ValueToNumeric($NUMBER )) );
...
COMMIT
Drools/N3 engine: Reuse a variable in another math expression now works , e.g. :
{ (1 2) math:sum ?R .
(?R 4) math:product ?P . } =>
Drools/N3 engine: add implementation of math:difference, quotient and remainder
N3SourcetoDrools.translate(): java.lang.RuntimeException: Drools exception during package addition to rule base
java.lang.RuntimeException: translate(IRDFIterator iterator, ... file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/deductions/samples/pricing/pricing.n3
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:328)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:263)
at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:91)
at eulergui.project.Project.doTranslateN32Drools(Project.java:941)
at eulergui.project.Project.translateN32Drools(Project.java:892)
at eulergui.project.Project.prepareDrools(Project.java:870)
at eulergui.project.Project.doRunDrools(Project.java:824)
at eulergui.project.Project.runDroolsTriples(Project.java:775)
at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:30)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:48)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:17)
at javax.swing.SwingWorker$1.call(SwingWorker.java:296)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at javax.swing.SwingWorker.run(SwingWorker.java:335)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: Drools exception during package addition to rule base
at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:428)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:321)
... 17 more
Caused by: org.drools.RuntimeDroolsException: pricing_n3_0.Rule_pricing_n3_0Eval0Invoker@1d02b098 : java.lang.ClassCastException: n3_project.helpers.LineTrackingTriple cannot be cast to java.util.List
at org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:119)
at org.drools.reteoo.EvalConditionNode.assertLeftTuple(EvalConditionNode.java:178)
at org.drools.reteoo.JoinNode.updateSink(JoinNode.java:420)
at org.drools.reteoo.EvalConditionNode.attach(EvalConditionNode.java:132)
at org.drools.reteoo.builder.BuildUtils.attachNode(BuildUtils.java:150)
at org.drools.reteoo.builder.EvalBuilder.build(EvalBuilder.java:39)
at org.drools.reteoo.builder.GroupElementBuilder$AndBuilder.build(GroupElementBuilder.java:126)
at org.drools.reteoo.builder.GroupElementBuilder.build(GroupElementBuilder.java:73)
at org.drools.reteoo.builder.AccumulateBuilder.build(AccumulateBuilder.java:70)
at org.drools.reteoo.builder.PatternBuilder.attachPattern(PatternBuilder.java:122)
at org.drools.reteoo.builder.PatternBuilder.build(PatternBuilder.java:76)
at org.drools.reteoo.builder.GroupElementBuilder$AndBuilder.build(GroupElementBuilder.java:126)
at org.drools.reteoo.builder.GroupElementBuilder.build(GroupElementBuilder.java:73)
at org.drools.reteoo.builder.ReteooRuleBuilder.addSubRule(ReteooRuleBuilder.java:152)
at org.drools.reteoo.builder.ReteooRuleBuilder.addRule(ReteooRuleBuilder.java:123)
at org.drools.reteoo.ReteooBuilder.addRule(ReteooBuilder.java:110)
at org.drools.reteoo.ReteooRuleBase.addRule(ReteooRuleBase.java:441)
at org.drools.common.AbstractRuleBase.addRule(AbstractRuleBase.java:821)
at org.drools.common.AbstractRuleBase.addPackages(AbstractRuleBase.java:555)
at org.drools.reteoo.ReteooRuleBase.addPackages(ReteooRuleBase.java:458)
at org.drools.reteoo.ReteooRuleBase.addPackage(ReteooRuleBase.java:465)
at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:426)
... 18 more
I'm trying to debug generated Java code; I use setDumpDir() , but the trouble is that the line number is not available
http://docs.jboss.org/drools/release/5.3.0.Final/drools-expert-docs/html_single/index.html#d0e4051
5.8.3.3.6. Unification
Drools does not allow bindings to the same declaration. However this is an important aspect to derivation query unification. While positional arguments are always processed with unification a special unification symbol, ':=', was introduced for named arguments named arguments. The following "unifies" the age argument across two people.
Person( $age := age ) Person( $age := age)
In essence unification will declare a binding for the first occurance, and constrain to the same value of the bound field for sequence occurances.
http://stackoverflow.com/questions/138511/what-are-java-command-line-options-to-set-to-allow-jvm-to-be-remotely-debugged
java -agentlib:runjdwp:transport=dt_socket,address=8000,server=y,suspend=y \
-jar target/eulergui-1.10-SNAPSHOT-jar-with-dependencies.jar
http://www.google.fr/search?&q=javascript+drawing
http://code.google.com/p/svg-edit/
http://svg-edit.googlecode.com/svn/branches/2.5.1/editor/svg-editor.html
http://www.draw2d.org/draw2d/
http://javascript.open-libraries.com/utilities/drawing/10-best-javascript-drawing-and-canvas-libraries/
http://zwibbler.com/
http://stackoverflow.com/questions/96486/javascript-drawing-library
Autojump: a cd command that learns
http://www.youtube.com/watch?v=tnNyoMGnbKg
How to query the FOAF social graph using our API
http://www.foaf-search.net/ApiDocs
http://www.foaf-search.net/SearchRDFType?type=http://dbpedia.org/ontology/MusicalArtist
http://www.foaf-search.net/
add webapp.html : how to make a rule based web app with Wicket
But Wicket applications are not like applications written in either Tapestry or Echo, because in Wicket you get the best of both worlds. You get the benefits of a first-class component model and a non-intrusive approach to HTML. In many situations, this combination may prove to be a significant development advantage.
Stanford Encyclopedy of philosophy
https://inpho.cogs.indiana.edu/
Gotten a LOG IN AND ACCOUNT : W3C Community and Business Groups
http://www.w3.org/community/semwebprog/
http://www.w3.org/community/ontolex/
http://www.w3.org/community/rww/
http://www.openannotation.org/ns/
http://www.w3.org/community/groups/#userix
http://www.w3.org/community/groups/
http://static.springsource.org/docs/Spring-MVC-step-by-step/part2.html
looking at the ACEWIKI video : http://attempto.ifi.uzh.ch/acewiki/
jmvanel in here ! no good : http://www.w3.org/DesignIssues/Notation3.html
view-source:http://www.w3.org/DesignIssues/Notation3.html
Yesterday tried akinator with my daughter ; it found easily "Buddy Miles" and "Gotlob Frege".
http://plato.stanford.edu/search/searcher.py?query=Gotlob+Frege
<rszeno> this remember me that i want to tell you about a link from a long time
<rszeno> https://inpho.cogs.indiana.edu/owl/
<rszeno> is a owl file
<rszeno> it work with eg, :)
<jmvanel> indeed, d'n'd worked perfectly
http://www.miximum.fr/methodes-et-outils/77-interfacer-git-avec-un-depot-subversion
sudo apt-get install git-svn git svn clone http://eulergui.svn.sourceforge.net/svnroot/eulergui/trunk eulergui_trunk.git ... : -empty_dir: eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/service/N3ParserSession.java r220 = fbccab9ebfeab372226385d03140f88ca2557698 (refs/remotes/git-svn) La requête de la couche RA a échoué: REPORT de '/svnroot/eulergui/!svn/vcc/default': Could not read response body: Connexion ré-initialisée par le correspondant (http://eulergui.svn.sourceforge.net) at /usr/lib/git-core/git-svn line 5091
http://www.pocock.com.au/migrating-a-sourceforge-project-from-subversion-to-git
oem-laptop: ~/jmv_ubuntu_11.4/src/droolsjbpm/ % droolsjbpm-build-bootstrap/script/git-clone-others.sh ... =============================================================================== Repository: droolsjbpm-build-distribution =============================================================================== Cloning into droolsjbpm-build-distribution... remote: Counting objects: 4140, done. remote: Compressing objects: 100% (2185/2185), done. remote: Total 4140 (delta 1729), reused 3986 (delta 1575) Receiving objects: 100% (4140/4140), 4.76 MiB | 847 KiB/s, done. Resolving deltas: 100% (1729/1729), done. Disk size: 1,2M droolsjbpm-build-bootstrap 34M droolsjbpm-knowledge 153M drools 184M drools-planner 31M jbpm 32M droolsjbpm-integration 139M guvnor 17M droolsjbpm-tools 7,1M droolsjbpm-build-distribution Total time: 500s
gnome-display-properties
owl-time geonames
http://www.w3.org/TR/owl-time/
<jmv> done this video !!!!!!!!!
<jmv> found bugs in EG :( but worked around them :)
<jmv> on the way I used pitivi to edit and merge videos .
<jmv> now going to upload
my 2 original recordings are in 1354 x 768 in .ogv
<rszeno> 3. somebody who watch a video doesn't expect to see to text, mainly a way how to explore eg using the mouse or other vizual things
<jmvanel> but after perginf in pitivi it created the black surroundings :(
due to bad setting in pitivi , it went to 720 x 576 :( and from 15 to 25 image / sec ( bad also )
enhanced my slides before recording the video: http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/fr/connaissances_DL_CNL_regles.xhtml#(29)
<jmvanel> i recorded my second video : the video is good , but no sound !!!!!!!!!!!
<jmvanel> I discovered that the gui volulme controler is bugged and does not keep the setting that I use the analogic mike :(
<jmvanel> that's debian
<jmvanel> so I'll go back to ubuntu but gnome classic no effects
<rszeno> try byzanz
<jmvanel> http://www.ubuntugeek.com/desktop-recording-made-easy-with-byzanz.html
<jmvanel> I may try byzanz
<jmvanel> but right now my problem is more basic : the basic sound recorder does not work !!!
The quantity of memory taken by browsers is shocking !!!!
Tests in error: testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait JLabel with text "title" loaded test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Employee" loaded testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl)
Tests in error: testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch) test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical) testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_person_import3(eulergui.gui.TestGenericGuiGeneration) test_SaveExistingProjectAsN3(eulergui.gui.TestN3FormatForProject)
COMMIT tests:
- raised ComponentOperator.WaitComponentTimeout to 10000
- added print of test name at beginning of test
- added debug print for local N3 mangement
mvn surefire-report:report-only
Now the test suite passes, but the worm is still in the apple :( !
[INFO] The following dependencies in Dependencies have newer versions: [INFO] commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist [INFO] org.drools:drools-compiler ................ 5.3.1.Final -> 5.4.0.Beta2
animesh: Hi
moi: hi
animesh: how is response for your launch?
moi: 55 since 22th jan ; expected more
animesh:
moi: and I don't know if these 55 represent old followers or newcomers that will be disappointed and won't say nothing
but that's the hard law of open source
animesh: yes, but if more following, it will click
moi: sure ; I know that I'm in the right direction, it's just that modeling in formal logic , be it Drools or N3 is not familiar to the majority of developers.
BTW I'll record videos today
animesh: Great!! are you using Drools too?
moi: sure
Drools is a solid infrastructure
they help me when I have problems
AFAIK EulerGUI is the only project mixing Drools and semantic web
animesh: yes right, your project is good
any commercial talk in progress?
moi: I have a customer ; they develop a semantic musical player
and one partnership are in progress
also I give a course about IA in an engineer school
and also I gor an encouraging meeting at a ministry friday
animesh: oh Great!!!
you are sincere, it will pay off, hope you gain critical mass to award me some paid job (some small task to begin with)
moi: yeah
That's great to have a customer willing to try a new framework
My AI course (in french and work in progress ) : http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/fr/ia1_logique.xhtml
http://echo.nextapp.com/site/node/102
Tests in error: test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait JLabel with text "title" loaded
[--nope, file:///media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/dl-safe.owl_data.n3, file:///media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/dl-safe_small.owl, file:///tmp/dl-safe_small.owl.as.rules.n3, --query, file:///media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/dl-safe.owlQ.n3]
testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
java.lang.RuntimeException: ** ERROR ** file://https://eulersharp.svn.sourceforge.net/svnroot/eulersharp/trunk/2003/03swap/agent.n3 ** error(existence_error(source_sink,https://eulersharp.svn.sourceforge.net/svnroot/eulersharp/trunk/2003/03swap/agent.n3),[open/3|local_sp(269060340,269059464,[],[])])
http://maven.apache.org/plugins/maven-site-plugin/examples/site-deploy-to-sourceforge.net.html
http://sourceforge.net/apps/trac/sourceforge/wiki/SSH%20keys
DISPLAY=:1 LANG=en mvn -DPARSER4J_TESTS=no -Dmaven.test.skip=true deploy
Removed this in manual:
CAUTION: |
There is a workaround for a Maven issue that waits for weeks to be corrected (bug report : jar-with-dependencies: class from the source in project does NOT override the class in jar dependency ). If you don't do that, with the executable jar, it is impossible to open the N3 editor . |
You have to apply this hack after mvn package : |
REL=1.9
cd target/classes
zip -r ../eulergui-${REL}-SNAPSHOT-jar-with-dependencies.jar .
cp ../eulergui-${REL}-SNAPSHOT-jar-with-dependencies.jar \
~/.m2/repository/eulergui/eulergui/${REL}-SNAPSHOT/
cd ../..
|
I fixed the long-awaiting problem that a zip command was necessary after building EG .
The issue was that 4 jEdit classes are redefined in the EulerGUI source . Bad practice !!!!!!!! And Maven does not handle this !
So I removed these 4 classes from the jEdit jar provided on our Maven repo, and changed build*.sh .
JAR=~/apps/jedit-4.3.1.jar
mvn deploy:deploy-file \
-Durl=sftp://web.sourceforge.net/home/groups/e/eu/eulergui/htdocs/maven2 \
-DrepositoryId=repository.eulergui.sf.net \
-Dfile=${JAR} \
-DgroupId=org.jedit \
-DartifactId=jedit \
-Dversion=4.3.1 -Dpackaging=jar
Trace:
Start to wait action "Wait for "getText() Component Chooser "PREFIX "
" subcomponent to be displayed"
Trace:
"Wait for "getText() Component Chooser "PREFIX "
" subcomponent to be displayed" action has been produced in 2 milliseconds with result
: org.gjt.sp.jedit.textarea.JEditTextArea[,0,24,1113x841,layout=org.gjt.sp.jedit.textarea.ScrollLayout,alignmentX=0.0,alignmentY=0.0,border=org.gjt.sp.jedit.textarea.TextAreaBorder@7a083b7b,flags=0,maximumSize=,minimumSize=,preferredSize=,caret=1098,caretLine=23,caretScreenLine=23,electricScroll=3,horizontalOffset=0,magicCaret=-1,offsetXY=java.awt.Point[x=0,y=391],oldCaretLine=0,screenLastLine=23,visibleLines=49,firstPhysicalLine=0,physLastLine=23]
Trace:
Start to wait dialog "Dialog with title "File Browser"" opened
09:58:47 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type)
09:58:47 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: N3SourceFromSPARQLSource.isSelect(): java.io.FileNotFoundException: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type)
09:58:47 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: N3SourceFromSPARQLSource.isSelect(): java.io.FileNotFoundException: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type)
09:58:47 [doN3SourceAdded: file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq] [error] rq: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type)
09:58:47 [doN3SourceAdded: file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq] [error] rq: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type)
09:58:47 [doN3SourceAdded: file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq] [error] rq: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type)
09:58:47 [doN3SourceAdded: file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq] [error] rq: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type)
09:58:47 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: N3SourceFromSPARQLSource.isSelect(): java.io.FileNotFoundException: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type)
09:58:47 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: N3SourceFromSPARQLSource.isSelect(): java.io.FileNotFoundException: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type)
Error:
Dialog "Dialog with title "File Browser"" has not been opened in 60007 milliseconds
http://echo.nextapp.com/site/node/25
Proposition de Luc :
/**
* la facade du service
*/
public interface IHTMLPageServer {
/* @param path le chemin relatif de la page
* @return le document HTML de la page sur le navigateur
*/
HTMLDocument getHTMLDocument(String path);
/* @param path le chemin relatif de la page
* @param listener celui qui gère les événement sur la page au chemin relatif path
*/
void addListerner(String path,IHTMLPageServerListener listener);
}
/**
* le contrat du listener des événements coté navigateur
*/
public IHTMLPageServerListener {
void pageRequest(IHTMLPageServer pageServer,String path,IHTMLEvent htmlEvent);
void pageEvent(IHTMLPageServer pageServer,String path,IHTMLEvent htmlEvent);
}
The project has two facets, and you can use just what you need :
- tool for exploring the Semantic Web format through the readable N3 syntax and SPARQL queries
- framework to develop Java applications centered on an expert system
Hi all,
I am happy to announce the release of EulerGUI 1.9.
If you are looking for a tool to download and edit in the convenient N3 format : RDF, OWL and LOD resources, you should try EulerGUI.
It has SPARQL queries, drag'n'drop, prefix completion using prefix.cc, and other goodies.
Apart from that, EulerGUI is also a framework to develop portable applications centered on an expert system for the N3 rules language.
It can launch several inference engines for N3 logic. It is Open Source, written in Java Swing.
DOWNLOAD:
http://sourceforge.net/projects/eulergui/
User Manual: http://eulergui.sourceforge.net/documentation.html
Cheers,
http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
http://www.stopacta.info/
Server returned HTTP response code: 406 for URL: http://www.w3.org/TR/2004/REC-rdf-schema-20040210/rdfs-namespace
https://accounts.google.com/b/0/NewPrivacyPolicy?service=mail&continue=https://mail.google.com/mail/%3Fui%3D2
https://help.ubuntu.com/community/ComposeKey
How to generate these special characters with the french keyboard :
ł , ż , ę , ą , ñ , ń , ó
this morning, my first commit since last EulerGUI release
<jmvanel> ( Scala branch is not quite merged now, but worked on this )
COMMIT : add html/fr/ia1_logique.xhtml : first part of an AI training ( in french )
Given this morning at http://www.ingesup.com/
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/fr/ia1_logique.xhtml
http://help.github.com/linux-set-up-git/
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCv4Ef56BvkamiOnInAfyq8LZHNegYSu2caC8Oww8CrCZJH//XBEQgM/SJKY/G8Qz+xVldfB5QBpbVrxfCtPsUQbX4vl5oLaqbCKw7D5Mr26hsVZ3peet5ZJbdA5dPmA9fJYI60RYcWa2mO1wfJ6BzYYefCkG1iDlyfMD4SaIifmhU0LOd9TrzcX0N3Jh6Wig4Yih/yI+SlJkFCq9Xj13P1ES4QaRRTmBJ74kT1Cw1ucpnZnW59f+UjB9AsHDzWPi5lGZ4zIOteWL1APqrxTvGUBejJ5tz1PvIk8sU4v6CgZrKojhIOn2rdlnzl837DKRHLBS8zIvXcnpDxHwjDWK9j jeanmarc.vanel@gmail.com
ssh-keygen -t rsa -C "jeanmarc.vanel@gmail.com"
DO 178== méthodologie utilisée à Thales
http://www.imagemagick.org/Usage/resize/
convert -resize 70% Cornus_florida_voeux.jpg Cornus_florida_voeux2.jpg
<jmvanel> I had another idea to manage the liaison with a script in a Web page
<jmvanel> use https://sourceforge.net/apps/trac/eulergui/wiki/EulerGUIServer
<jmvanel> the HTML user events would be sent on the socket as N3 text, in which every source of event will have an URI identify them
<jmvanel> the response can be some Javascript that is directly evaluable by Javascript .
Not responding :
http://download.scala-ide.org/nightly-update-master-2.9
Starting eclipse on JDK 6 because of Scala
eclipse -vm /home/jmv/jmv_ubuntu_11.4/apps/jdk1.6.0_24/bin/java
mvn -Dmaven.test.skip=true scala:compile
http://xchat.org/encoding/
Now that the release is out , I begin the merging with Scala branch
scala branch: pom.xml : merge latest from main branch
http://scala-ide.org/blog/scala-ide-roadmap.html
Announce
- EulerGUI as a tool for exploring the Semantic Web
- EulerGUI as framework to develop portable applications centered on an expert system
pom.xml : fix sourceforge URI for release upload
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy (default-deploy) on project eulergui: Failed to deploy artifacts: Could not transfer artifact eulergui:eulergui:jar:1.9 from/to repository.eulergui.sf.net (scp://shell.sourceforge.net:/home/project-web/eulergui/htdocs/maven2): Cannot connect. Reason: Auth fail -> [Help 1]
eulergui.gui.TestEulerGUIOutputs : lasting forever ??
cd /home/jmv/src/eulergui/
java -jar ~/apps/dependometer-java-1.2.5/lib/dependometer-java-1.2.5.jar \
-file dependometer.xml
http://www.eclipsezone.com/eclipse/forums/t53736.html
Classycle Plugin for Eclipse
Installation with the Install/Update Manager from Eclipse
remote site informations http://classycleplugin.graf-tec.ch/update
Both tools flag a cycle in EG .
SUCCEEDED !
DISPLAY=:1 LANG=en mvn -Dmaven.test.skip=true release:prepare
Fix application-examples.html
Fix TestForJos : bad file URI
http://en.wikipedia.org/wiki/SPARK_(programming_language)
[INFO] Tests in error: [INFO] testProjectFromURL(eulergui.project.TestProject) [INFO] testFromEulerSharp(eulergui.parser.n3.impl.parser4j.service.TestForJos) [INFO] testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" [INFO] testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" [INFO] testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Dialog with title "File Browser" [INFO] test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded
NOT reproduced in eclipse : TestProject, TestImportSwrl, TestGenericGuiGeneration
at a prez about PAUG Android : http://www.meetup.com/Android-Paris/events/46922312/
http://www.oracle.com/technetwork/java/javase/samplecode-138571.html#JMStudio
gnome-control-center display
cvs -d:pserver:anonymous@jffmpeg.cvs.sourceforge.net:/cvsroot/jffmpeg login cvs -z3 -d:pserver:anonymous@jffmpeg.cvs.sourceforge.net:/cvsroot/jffmpeg co -P jffmpeg cd jffmpeg export JMFHOME=/home/jmv/src/w/jffmpeg mvn dependency:get -DartifactId=jmf -DgroupId=javax.media -Dversion=2.1.1e -DrepoUrl=http://download.java.net/maven/2/ -Dtransitive=true
A table view of properties of a resource is probably easier to implement in Java, while remaining generic.
==> There are the pointers to add in the user KB
We can also implement a recursive descent with adjustable depth.
void makeTableView(JComponent c, List<List<Triple>> data, List<List<Triple>> properties, );
New snapshot !!!!!!! Révision de la dernière modification : 2868
MD5 sum : 84c746a01c6b12fec9b6b4138d1b91e9
java.lang.InstantiationException: eulergui.n3model.LinesAndCols Continuing ... java.lang.RuntimeException: failed to evaluate: <unbound>=Class.new();
Renamed this JavaBean method in N3Source: getLocation() with location()
% wc wordnet-synset.rdf 577135 610413 22437182 wordnet-synset.rdf
Orange message:
N3Source.manageParseN3(): wordnet-synset.rdf : freeMemory=467_919_120 < necessaryMemory=1_520_213_440 this N3 source will NOT have tooltips in editor, and Drools runs will not include it; it is suggested to restart EulerGUI with -Xmx2G or more.
Adding -Xmx2G .
The orange message becomes:
freeMemory=276_727_088 < necessaryMemory=1_520_213_440
Running in Euler the rules base with owl-subclass-assertions-to-rules.n3 swrl-n3-rules.n3 is not done in background :( .
And opening the jEdit lasts very long !!!!!
The file is 193M .
Same problem with jedit_4.3.2 from Debian package :( !
However , the latest version jedit_4.5pre1_all.deb of jEdit from sf.net says :
/home/jmv/ontologies/dbpedia/instance_types_fr.nt: There was insufficent Java heap memory to complete this request. Try increasing the maximum heap size. Documentation on changing the Java heap size can be found in the "Buffers" section of the "jEdit Basics" chapter of the user guide.
And if start the latest version with:
java -Xmx2G -jar /usr/share/jEdit/jedit.jar dbpedia/instance_types_fr.nt
I don't even get the window ! It is stuck at 650Mb with 100% CPU.
However, starting with
JAVA_HEAP_MAX_SIZE=1920 jedit wordnet-synset.rdf
gives this message:
The buffer is very large and jEdit may become unresponsive because of syntax highlight. You should consider the
following options.
-Keep Full syntax : jEdit's syntax highlight will work as usual, jEdit
may become very slow, this is not recommanded.
-Context insensitive syntax highlight. In that case jEdit will try to
keep some syntax highlight, but the result may not be perfect. The
buffer is highlighted line by line without taking care of the context
of the previous line. So it is possible that the syntax is not accurate
if you have tokens on multiple lines (multiline comments, xml tags ...)
EulerGUI stack in AWT event view:
Thread [AWT-EventQueue-0] (Suspended) CMap$CMapFormat12.getGlyph(int) line: 1021 TrueTypeGlyphMapper.getGlyphFromCMAP(int) line: 80 TrueTypeGlyphMapper.charToGlyph(int) line: 156 TrueTypeFont(Font2D).charToGlyph(int) line: 496 SunLayoutEngine.nativeLayout(Font2D, FontStrike, float[], int, int, char[], int, int, int, int, int, int, int, Point2D$Float, GlyphLayout$GVData, long, long) line: not available [native method] SunLayoutEngine.layout(FontStrikeDesc, float[], int, int, TextRecord, int, Point2D$Float, GlyphLayout$GVData) line: 160 GlyphLayout$EngineRecord.layout() line: 664 GlyphLayout.layout(Font, FontRenderContext, char[], int, int, int, StandardGlyphVector) line: 463 Font.layoutGlyphVector(FontRenderContext, char[], int, int, int) line: 2603 Chunk.init(Segment, TabExpander, float, FontRenderContext) line: 331 DisplayTokenHandler.initChunk(Chunk, Segment) line: 194 DisplayTokenHandler.handleToken(Segment, byte, int, int, TokenMarker$LineContext) line: 120 TokenMarker.handleRule(ParserRule, boolean) line: 504 TokenMarker.markTokens(TokenMarker$LineContext, TokenHandler, Segment) line: 162 Buffer(JEditBuffer).markTokens(int, TokenHandler) line: 1336 ChunkCache.lineToChunkList(int, List<Chunk>) line: 786 ChunkCache.getLineSubregionCount(int) line: 269 DisplayManager.updateScreenLineCount(int) line: 664 DisplayManager.getScreenLineCount(int) line: 192 ScrollLineCount.reset() line: 54 DisplayManager.notifyScreenLineChanges() line: 547 DisplayManager.resetAnchors() line: 740 DisplayManager.init() line: 513 DisplayManager.bufferLoaded() line: 680 BufferHandler.bufferLoaded(JEditBuffer) line: 67 Buffer(JEditBuffer).fireBufferLoaded() line: 2577 Buffer.access$700(Buffer) line: 89 Buffer$1.run() line: 281 WorkThreadPool.doAWTRequest(WorkThreadPool$Request) line: 398 WorkThreadPool.doAWTRequests() line: 383 WorkThreadPool.access$200(WorkThreadPool) line: 37 WorkThreadPool$RunRequestsInAWTThread.run() line: 483 InvocationEvent.dispatch() line: 251 EventQueue.dispatchEventImpl(AWTEvent, Object) line: 705 EventQueue.access$000(EventQueue, AWTEvent, Object) line: 101 EventQueue$3.run() line: 666 EventQueue$3.run() line: 664 AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method] ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76 EventQueue.dispatchEvent(AWTEvent) line: 675 EventDispatchThread.pumpOneEventForFilters(int) line: 211 EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 128 EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 117 EventDispatchThread.pumpEvents(int, Conditional) line: 113 EventDispatchThread.pumpEvents(Conditional) line: 105 EventDispatchThread.run() line: 90
COMMIT
relative URI for N3 sources including parent directories , e.g. ../dir/file.n3
added dependency org.apache.commons / commons-io
allSaved is set to false here :
Thread [main] (Suspended (modification of field allSaved in ProjectGUI)) ProjectGUI.setAllSaved(boolean) line: 1060 ProjectGUI_Updater.subprojectAdded(Project, Project) line: 75 ProjectChangeSupport.fireAddSubproject(Project, Project) line: 116 Project.rethrowEventsPlease(ProjectChangeSupport) line: 1402 ProjectChangeSupport.rethrowEventsForListener(Project, ProjectListener) line: 195 Project.rethrowEventsForListener(ProjectListener) line: 1509 ProjectGUI.rethrowEventsForListener(ProjectListener) line: 326 ProjectGUI.populateWindow(Project, boolean) line: 293 ProjectGUI.newWindow(Project, boolean) line: 274 ProjectGUI.main(String[]) line: 219
properties allSaved and lastFile should only be modified upon user actions
DONE
FIX: N3 shell : in case of syntax error, must remove the line from the project, so that the saved lines are correct, and the Euler runs too .
Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError: n3_project.SourceFilesView.getButtonsPanel()Ljavax/swing/JPanel;
at n3_project.ProjectFileManagement$OpenProjectAction.actionPerformed(ProjectFileManagement.java:539)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
<jmvanel> I have an issue with: Runtime.getRuntime().exec()
<jmvanel> I run "/usr/bin/mplayer" , and it actually works, but stops after about 30 seconds .
syddraf, I understand better now what's happening with mplayer ; by default this interactive music player outputs lots of things on the console ; it 's very conspicuous as it's overwritten on a normal console; and it works fine from Java I add options to mplayer to be non -verbose ;
<jmvanel> so my understanding it that Runtime().exec() has a buffer for std output that gets full after some time
So this code works in a main() :
Process process = Runtime.getRuntime().exec(
new String[] { "/usr/bin/mplayer" , "-msglevel", "all=-1",
"Countdown.mp3" },
null,
new File( System.getProperty( "user.dir" ) ) );
Thread.sleep( 9*60*1000);
so I changed the rule to do :
mplayer -msglevel all=-1 Countdown.mp3
But I must catch the standard output to avoid troubles with other verbose commands .
Maybe reusing some existing code ?
I think I'll reuse Jos' class euler.Process
<jmvanel> I could do some smart GUI stuff in the N3 shell , but for I'll just absorb the std out
<rszeno> jos class have some code specific for what he need, will be ok?
<rszeno> plus writing your own can't take to long, i write it in less then one hour, if i recall corectly, you are much more familiar then me with java
<jmvanel> Jos's one is tested, and pretty general
http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=1
Is there a convention for (human) langage used in javadocs comments?
TODO: EulerGUI: in N3 shell :
COMMIT
in new method Project.checkURIPrefixes(), report Duplicate diverging URI Prefix
- display warning in LaunchWMDump and LaunchUserWMN3Editor Actions
M src/main/java/eulergui/gui/TemporaryFrame.java
M src/main/java/eulergui/tools/LaunchWMDump.java
M src/main/java/eulergui/tools/LaunchUserWMN3Editor.java
M src/main/java/eulergui/project/Project.java
M src/main/java/n3_project/ToolsManagement.java
http://stackoverflow.com/questions/309023/howto-bring-a-java-window-to-the-front
vlc --extraintf http
Drools Error: Rule Compilation error $G cannot be resolved
ErrorLines: - 443
TODO EulerGUI
http://www.ldodds.com/projects/musicbrainz/
http://musicbrainz.1054305.n4.nabble.com/Java-API-http-svn-musicbrainz-org-libmusicbrainz-java-trunk-td1557916.html
http://en.wikipedia.org/wiki/%C5%9Etefan_Odobleja
TO READ:
Mission-Critical Development with Open Source Software:
Lessons Learned
Jeff Norris, NASA Jet Propulsion Laboratory
they reorganized youtube so there is a section special for each musician
<rszeno> http://www.youtube.com/artist/Bobby_McFerrin?feature=watch_video_title
http://eulersharp.sourceforge.net/maven2/euler/euler/2012-01/
You can try to take a screencaption(screenshot/scree ndump of only the picture, and the search on google. Go to google, press picturesearch --> press the small icon with the camera next to the searchbar --> upload your picture and try to find the source. ;-)
I should add to rules-documentator.n3 rules for plain triples
http://missioncriticalit.com/odase.html#135Enter238+-6ae72a3d
convert -sample 15%x15% Cornus_florida_voeux.jpg Cornus_florida_voeux4.jpg ls -l Cornus_florida_voeux.jpg Cornus_florida_voeux4.jpg -rw-r--r-- 1 jmv jmv 49617 6 janv. 18:28 Cornus_florida_voeux4.jpg -rw-r--r-- 1 jmv jmv 491613 6 janv. 18:09 Cornus_florida_voeux.jpg
In fact the original file was 3,8 Mio , and I reduced by saving in gimp.
But using convert is obviously the most convernient.
owl-rules.n3 in Drools :
:IntegrityConstraintId112 :falseModel_because :rule_112_is_violated . #R :IntegrityConstraintId113 :falseModel_because :rule_113_is_violated . #R
_:X <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:A .
_:X <http://eulersharp.sourceforge.net/2003/03swap/owl-rules#inSomeOf> _:B .
junit.framework.AssertionFailedError: check Pattern Triple Handler,
for test test/list_alone.n3, unsatisfied Patterns:
[_:X_1 <http://eulersharp.sourceforge.net/2003/03swap/owl-rules#inSomeOf> _:B_1. .
]
at junit.framework.Assert.fail(Assert.java:50)
at junit.framework.Assert.assertTrue(Assert.java:20)
at eulergui.drools_engine.TestReasonning.testRunDrools(TestReasonning.java:386)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:243)
at junit.framework.TestSuite.run(TestSuite.java:238)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
COMMIT
Drools/N3 engine: Infinite loop with owl-rules.n3 : isolated RDF lists are now implemented
Tests in error: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) Tests run: 176, Failures: 0, Errors: 2, Skipped: 0 [ERROR] There are test failures. Please refer to /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/target/surefire-reports for the individual test results. [INFO] [INFO] <<< maven-surefire-report-plugin:2.11:report (default-cli) @ eulergui <<< [INFO] [INFO] --- maven-surefire-report-plugin:2.11:report (default-cli) @ eulergui --- [WARNING] Unable to locate Test Source XRef to link to - DISABLED [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 16:13.970s [INFO] Finished at: Fri Jan 06 14:43:31 CET 2012 [INFO] Final Memory: 32M/229M
http://www.bioontology.org/wiki/index.php/Introduction_to_Bio-Ontologies
java.lang.InstantiationException: eulergui.n3model.LinesAndCols Continuing ... java.lang.RuntimeException: failed to evaluate: <unbound>=Class.new();
This is probably due to this method in N3Source:
public URL getLocation()
Not reproduced
not reproduced on Linux !!!!!!
file:/C:/Users/ltemal/Dropbox/Taxo_share_Temal/Ontologies/TaxoPlayerOntologies/peuplingTest.n3
makes lots of irrelevant messages in standard output (on Linux ) ,
while on Windows there is another problem
Other issues :
log:uri when subject is
unbound{ ?L :alert "true"
# ; log:uri ?LL .
} => { :application :displayAlert ?L . }.
{ :application :displayAlert ?LL .
} => {
?F a java:eulergui-gui-TemporaryFrame
; javap:localizedMessage ?LL .
}.
I get the warning about memory insufficient , but -Xmx is 2g , and using the same OWL donloaded manually , it works !
- The name of the directory containing the Java properties files (default ".")
- The name of the key that will be the URI for each property file (or a single or multiple file )
- RDF / XML prefix for keys
This is going into an infinite loop :
{?S rdf:first ?A. ?X a ?A} => {?X :inSomeOf ?S}.
_:S rdf:first _:A . _:X a _:A.
because of bad list management, the first triple is lost in translation ;) .
COMMIT
owl-rules.n3 :
- now no more a concatenation; taken from https://eulersharp.svn.sourceforge.net/svnroot/eulersharp/trunk/2003/03swap/owl-rules.n3
- changed one rule and removed one not compiling in Drools
Preceding commits :
oem-laptop: ~/src/eulergui/examples/ % svn log owl-rules.n3 ------------------------------------------------------------------------ r2801 | jmvanel | 2011-11-11 22:06:21 +0100 (ven. 11 nov. 2011) | 5 lignes replace examples/owl-rules.n3 with a concatenation of all Jos' rules for OWL: eulersharp/trunk/2003/03swap/owl-*.n3 Compiles and runs with Drools / N3 engine ------------------------------------------------------------------------ r1919 | jmvanel | 2010-11-23 12:37:30 +0100 (mar. 23 nov. 2010) | 5 lignes - add a version of owl-rules.n3 in examples/ ; just move log:notEqualTo at the end of the antecedent. TODO The problem is that the implementation of log:notEqualTo expects that all variables were already used in preceding triples in same rule. This is not easy to implement with Drools. The translation should be postponed to end of the antecedent. ------------------------------------------------------------------------
#TRACE_RULE ( owl-rules.n3 293 $B=_:sk_S_79964 $X=<http://www.w3.org/2000/01/rdf-schema#seeAlso> ) #TRACE_RULE ( owl-rules.n3 293 $B=_:sk_S_79965 $X=<http://www.w3.org/2000/01/rdf-schema#seeAlso> ) ...
TODO
new search : button does not appear
In owl-rules-concat.n3
Drools Error: [ERR 102] Line 862:27 mismatched input ':' in rule "owl-rules.n3 31"
ErrorLines: - 862
Drools Error: [ERR 102] Line 1046:27 mismatched input ':' in rule "owl-rules.n3 37"
http://openjena.org/wiki/Fuseki
http://on.cs.unibas.ch/maven/repository/com/owldl/pellet/
http://cs.uga.edu/research/index.htm
http://en.wikipedia.org/wiki/Scripting_language#Extension.2Fembeddable_languages
Lots of interestring projects at Innsbruck :
http://www.sti-innsbruck.at/research/projects/
Fifth annual report for the STEPS project
interesting : http://www.w3.org/wiki/LargeTripleStores
http://seaborne.blogspot.com/2008/06/tdb-loading-uniprot.html
the latter indirectly linked to the first
Andy's response:
It looks like it's because the data (which isn't Turtle, or as claimed N3, but N-triples already) has huge numbers of bNodes in it.
The parser keeps a map of the bnode labels so that when it's reused in a file, it's the same bNode, but that requires state to be keep and the file seems to have a massive number of bNodes.
Set the heap large and hope.
I tried 4G and the parser ran -
There are internally to the parser different bNode label policies but these aren't exposed in a convenient way currently.
Another way is to convert the bNodes to URIs - the data is simply full for synthetic URIs so why it uses bNodes I don't know.
Beginning with this release the group ID is now org.apache.jena and the artifact names for jar files are all of the form jena-*
Code artifacts in this release:
org.apache.jena jena-core v2.7.0
org.apache.jena jena-arq v2.9.0
org.apache.jena jena-iri v0.9.0
See
http://incubator.apache.org/jena/download/maven.html
for full details.
Tests in error: testProjectFromURL(eulergui.project.TestProject) testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI)
Table of contents