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

------------------------------------------------------------------------------------

2012-05-11

EulerGUI's configuration in N3

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 (Drools)

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

Announces EulerGUI minimal

SWIG

https://sourceforge.net/projects/eulergui/files/eulergui/1.11/

EG 1.10 sur Drools, Protégé , ATTEMPTO

Troubles with Drools dev branch : queries miss some results

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 

2012-05-10

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)

2012-05-09

Tested entering rule after facts in N3 shell : DOES work

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# )

2012-05-07

ERROR in running Drools Inference Engine

Cause:

java.lang.ClassCastException: n3_project.helpers.LineTrackingTriple cannot be cast to java.lang.CharSequence

Jena migration to Apache top level project

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

2012-05-06

New snapshot !

<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!

2012-05-04

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/

Bug report for Drools : JBRULES-3488

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

2012-05-03

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

2012-05-02

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

  1. if nothing is bound or literal, print a warning

    (should be OK if there is a variable binding after, but 2 pass translation not implemented)

  2. if both arguments are bound or literal, just generate == test with arguments given by
    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

  3. if one argument is bound or literal, and the other is unbound, generate a variable substitution (NOT IMPLEMENTED)

2012-05-01

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://ruben.verborgh.org/

http://reasoning.restdesc.org/

Ideas :

Tested entering rule after facts in N3 shell : does not work

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 . } .                                                                    

Drools/N3 engine: counting involving string and math builtins

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) .

2012-04-29

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

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

Pricing EulerGUI example: continued

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']

EulerGUI : trouble when add DCO ontology (in RDF/XML)

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

2012-04-28

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

2012-04-27

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.
}.

2012-04-26

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

2012-04-25

Drools N3 engine : troubles with DeferredMethodCall

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 )

2012-04-24

Synchronizing my web site local machine ==> USB device

rsync --verbose /home/jmv/jmv_ubuntu_11.4/jmvanel.free.fr/*  /media/JMV/jmvanel.free.fr
umount  /media/JMV

2012-04-24

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)

2012-04-22

TODO

application build by eg

<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

EulerGUI release 1.10

Announce EulerGUI 1.10 : my mailing list

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

COMMITs

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

2012-04-21

[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

2012-04-20

WWW 2012

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 !!!!!!!!
} .

2012-04-19

[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

2012-04-16

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#

2012-04-14

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!" .
} .

EulerGUI video : form generation

What is in this demo :

Forward chaining rule engine :

What the rule base does:

2012-04-13

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

2012-04-12

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

Videos in the works

2012-04-11

Documentation : fix bad viewvc links :

200,$s=http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/==

2012-04-10

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

Ubuntu upgrade 10.04 to 11.10 was interrupted

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

2012-04-09

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

2012-04-05

<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

[protege-owl] Free, open source Drools rule engine now supported in Protege 3.5 Alpha SWRLTab

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

2012-04-04

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

FOAF starting points

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

2012-04-02

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

2012-04-01

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

2012-03-31

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

ARQ in command line and through API

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.

Why SPARQL is called 4 times ?

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 !

----------------------------------

WWW 2012

<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

2012-03-30



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_.*"

2012-03-29

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

Post in EulerGUI list : extension point capabilities of EulerGUI

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).

------------------------------------------------

Drools / N3 engine : things that do not work well : calls with deferred stztus not clearly set

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 );
}.

Important stacks 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: 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)

2012-03-28

Add a feature by N3 configuration : result Management

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

Trying <bif:contains> ( Virtuoso specific )

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

2012-03-27

EulerGUI TODO

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 .

2012-03-26

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

2012-03-25

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

2012-03-24

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

2012-03-23

http://www.prova.ws/ is now up !

<jmvanel> watched screencast on ontowiki : http://docs.ontowiki.net/ontowiki/screencasts/2008-01-22/

<jmvanel> nice tool !

2012-03-22

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://webdatacommons.org/

2012-03-21

http://www.javaoracleblog.com/java/Rules_Engines_Pandora_Ushihidi_and_Everything_Else.jsf

2012-03-19

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.

Web app backed by a SPARQL endpoint

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...

2012-03-18

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

Enhance N3 searches in EulerGUI

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.

2012-03-17

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

Processing HTTP 303 (redirect)

- 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

2012-03-16

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.

2012-03-14

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

EulerGUI : enhance the table view

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:

  1. it only offers a snapshot of the given triples, it does not allow dynamics updates or removals, following model-view design pattern
  2. the order of rows, and columns, is determined arbitrarily by the underlying Drools working memory; it is not possible for the user to change the order of rows (preferably by drag and drop), and the changes are not reflected in the KB
  3. URI resources should have a relevant look-and-feel: either shown as hyperlinks, or show tooltip with properties for this URI, or give choice to download the URI, and highlight other occurences in current table
  4. no possibility of showing multi-valued properties for a given resource

Some enhancements are already possible by the framework:

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

Release of Elda 1.2.8 (Epimorphics)

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

Release of D2RQ v0.8 , database-to-RDF mapping

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.

2012-03-13

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 :)

Mail to the EG list: Leverage on Drools to automatically retract GUI components

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 :

  1. Open test/n3JavaMapping-GUI.n3p

    http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/

  2. run Drools engine

    ==> a new Window with "data" appears

  3. Open N3 shell
  4. Open N3 shell:
    x :p "new data" .

    ==> in new window , "new data" appears

  5. paste this in N3 shell:
    @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.

convert -resample last forever

% 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 !!!

2012-03-11

<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

Leverage on Drools to automatically retract GUI components

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

2012-03-10

<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

Leverage on Drools to automatically retract GUI components

<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)

2012-03-09

REFACTOR Drools N3 engine : builtins

REFACTOR : finish move math stuff from DroolsTripleHandler to class MathBuiltins

REFACTOR : move processMathBuiltin() from DroolsTripleHandler to class MathBuiltins

REFACTOR extract class LogBuiltins from DroolsTripleHandler

2012-03-07

List with variable in antecedent - Drools /N3 engine

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  ...

2012-03-02

Annotation in GUI: discussion with Zeno

<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?

2012-03-01

EulerGUI

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.*"

EulerGUI Search (Drools query) enhancement

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 .}.

Chasing a bug in EulerGUI queries ...

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 );

201202-29

java.util.logging.Logger.getLogger("theDefault").setLevel( java.util.logging.Level.INFO )

Problems with audio application

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

2012-02-27

Failed tests:   testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells
Tests in error: 
  test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded

2012-02-26

http://ontologydesignpatterns.org/wiki/Main_Page

COMMIT

refactor GUI tests: extract addTextInUnsavedEditor()

2012-02-25

Test SPARQL queries in EG

<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 ...

2012-02-22

implement more String N3 Builtins

equalIgnoringCase

containsIgnoringCase

endsWith

greaterThan

lessThan

startsWith

2012-02-21

Drools/N3 engine : implement string:contains

{ ?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

2012-02-20

http://docs.oracle.com/javase/tutorial/uiswing/components/progress.html

http://www.google.fr/search?hl=fr&q=FCA+ontology

2012-02-19

EulerGUI : cleaning SPARQL feature

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

D3.js, RDF in JSON

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

2012-02-18

Web app backed by a SPARQL endpoint

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

2012-02-16

EulerGUI FEATURES

SPARQL Endpoints

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

http://sparql.org/sparql.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" />

Bug in EulerGUI command line

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)

Bug report for Protégé build 256

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)

2012-02-15

EulerGUI snapshot

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

2012-02-14

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

2012-02-13

EulerGUI : dbpedia:Buddy_Guy problems, etc

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 :

1.2. Public Faceted Web Service Interface

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

2012-02-12

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 ?

autojump

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

Drools/N3 : arithmetic processing

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

New stuff Drools in 5.3 : Unification

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.

Remote Java debug

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

2012-02-11

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/

Wicket : attractive

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.

Philosophy on the Web

Stanford Encyclopedy of philosophy

https://inpho.cogs.indiana.edu/

W3C Community and Business Groups

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://vivoweb.org/sitemap

2012-02-10

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/

2012-02-08

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

Added http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/backward_chaining_sparql.html

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

2012-02-06

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 )

Recorded a demo video of EulerGUI

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 !!!

2012-02-05

The quantity of memory taken by browsers is shocking !!!!

EulerGUI : fix test suite

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)

debug print , raise Jemmy Timeout

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

What's up, JM ?

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

2012-02-04

http://echo.nextapp.com/site/node/102

EulerGUI : FIXes

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 workaround for building

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

EulerGUI : FIX test TestSPARQLInGUI

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);
}

2012-02-02

Announce Release EulerGUI 1.9

See Release EulerGUI 1.8

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

semantic-web@w3.org

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,

2012-02-01

http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html

2012-01-30

http://www.stopacta.info/

Server returned HTTP response code: 406 for URL: http://www.w3.org/TR/2004/REC-rdf-schema-20040210/rdfs-namespace

2012-01-29

https://accounts.google.com/b/0/NewPrivacyPolicy?service=mail&continue=https://mail.google.com/mail/%3Fui%3D2

The Compose Key on Debian

https://help.ubuntu.com/community/ComposeKey

How to generate these special characters with the french keyboard :

ł , ż , ę , ą , ñ , ń , ó

EulerGUI development

this morning, my first commit since last EulerGUI release

<jmvanel> ( Scala branch is not quite merged now, but worked on this )

2012-01-27

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

2012-01-26

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

2012-01-25

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 .

2012-01-24

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

2012-01-22

http://xchat.org/encoding/

EulerGUI 1.9 : release

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

EulerGUI 1.9 release on sf.net

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 ??

Java Dependency checking tools

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 .

2012-01-21

SUCCEEDED !

DISPLAY=:1 LANG=en mvn -Dmaven.test.skip=true release:prepare

2012-01-20

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

2012-01-19

at a prez about PAUG Android : http://www.meetup.com/Android-Paris/events/46922312/

2012-01-18

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

2012-01-16

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, );


2012-01-15

Work on EulerGUI : TODO before release 1.9

New snapshot !!!!!!! Révision de la dernière modification : 2868

MD5 sum : 84c746a01c6b12fec9b6b4138d1b91e9

EulerGUI: opening jEdit with large file

% 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 !!!!!

EulerGUI: opening jEdit with large N-Triples file 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

2012-01-14

EulerGUI: relative URI's with ..

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

2012-01-13

EulerGUI: FIX: N3 shell : in case of syntax error

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)

2012-01-12

issue with: Runtime.getRuntime().exec()

<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 :

2012-01-11

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

2012-01-10

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

2012-01-08

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. ;-)

2012-01-07

I should add to rules-documentator.n3 rules for plain triples

http://missioncriticalit.com/odase.html#135Enter238+-6ae72a3d

2012-01-06

Reducing a photo for my greetings

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

2012-01-05

http://www.bioontology.org/wiki/index.php/Introduction_to_Bio-Ontologies

EulerGUI : TODO before release 1.9

Not reproduced

Other issues :

2012-01-04

http://www.b2science.org/

Working on Drools/N3 engine to run owl-rules.n3

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 ;) .

2012-01-03

EulerGUI : owl-rules.n3

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.                                                                                                                                                                                                                                                                      ------------------------------------------------------------------------       

Infinite loop with owl-rules.n3

#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"

2012-01-02

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

2012-01-01

Revisit TBD issues with large databases

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.

Jena 2.7.0 : upgrade of EulerGUI TODO

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